commit c7897e55a88ccc16acbde887e42d91eac8f64248 Author: bdnugget Date: Tue May 5 23:13:26 2026 +0200 Init zig project with raylib bindings diff --git a/.zig-cache/args/b3c1b286504546cdf07344596669b39e1e84484e5f5563222fc5735f8df36418 b/.zig-cache/args/b3c1b286504546cdf07344596669b39e1e84484e5f5563222fc5735f8df36418 new file mode 100644 index 0000000..08e9fb4 --- /dev/null +++ b/.zig-cache/args/b3c1b286504546cdf07344596669b39e1e84484e5f5563222fc5735f8df36418 @@ -0,0 +1 @@ +"-cflags" "-std=gnu99" "--" "/home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rcore.c" "/home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rshapes.c" "/home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rtextures.c" "/home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rtext.c" "/home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rmodels.c" "/home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raudio.c" "-cflags" "--" ".zig-cache/o/da8bf749420ef1065612c05b8ed536b3/raygui.c" "-ODebug" "-target" "wasm32-emscripten" "-mcpu" "baseline" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/platforms" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/src" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-I" "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include" "-D_GNU_SOURCE=" "-DGL_SILENCE_DEPRECATION=199309L" "-DSUPPORT_MODULE_RSHAPES=1" "-DSUPPORT_MODULE_RTEXTURES=1" "-DSUPPORT_MODULE_RTEXT=1" "-DSUPPORT_MODULE_RMODELS=1" "-DSUPPORT_MODULE_RAUDIO=1" "-DPLATFORM_WEB=" "-DGRAPHICS_API_OPENGL_ES2=" "-Mroot" "-lc" "--cache-dir" ".zig-cache" "--global-cache-dir" "/home/bd/.cache/zig" "--name" "raylib" "-static" "--zig-lib-dir" "/home/bd/.cache/zig/p/N-V-__8AAFFSVRWqblwBIcA-Yqv-u7sbjsJoww8K0mWaHbmJ/lib/" "--listen=-" \ No newline at end of file diff --git a/.zig-cache/h/0b3a4cb207407ae977bd9b797d381783.txt b/.zig-cache/h/0b3a4cb207407ae977bd9b797d381783.txt new file mode 100644 index 0000000..83cc9ea --- /dev/null +++ b/.zig-cache/h/0b3a4cb207407ae977bd9b797d381783.txt @@ -0,0 +1,438 @@ +0 +460816 2104748 1749858906000000000 19b59f2a2768926dd4cb35a090cb8868 0 /lib64/libGL.so +1313184 11320745 1770539241000000000 e72e4619f955c3a38211536766b516f4 0 /lib64/libX11.so +47088 11321900 1769439156000000000 da6f4be2e87e2aa16772a75fa6a36f63 0 /lib64/libXrandr.so +14328 11321926 1769438631000000000 621184dc819e1014d93ea9a7f28bdccb 0 /lib64/libXinerama.so +75832 11321942 1725514872000000000 8080cfc6a1c65c31d450aeb5fedf0788 0 /lib64/libXi.so +47048 11322029 1730878554000000000 81c5a9837f418f236c79e736ea7f1e53 0 /lib64/libXcursor.so +179546 15592265 1777923927288426459 e6c02b151e39c59246cdfe8aeaaa21f4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rcore.c +94278 15592270 1777923927290426456 148e15819214db74e0525ec276acecdd 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rshapes.c +226085 15592272 1777923927291426454 57703b4cb9d20c85f2494106b300ce4c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rtextures.c +117970 15592271 1777923927291426454 31672e71fc2d475bd7ec65a7f43b43cb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rtext.c +338872 15592269 1777923927290426456 76fc55680b7dd750a09c7c8d4885d438 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rmodels.c +113824 15592256 1777923927286426463 eaa3ac47a6f370a3247b2e595e877cae 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raudio.c +6000 15592267 1777923927288426459 c08daa562131e2220de1a06bca726720 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rglfw.c +50 15596151 1777925798684431311 fd3888aa7ca9778df50390896cce6318 2 o/da8bf749420ef1065612c05b8ed536b3/raygui.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +53032 11322525 1770636718000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +4286 11322288 1770636718000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11322493 1770636718000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11322492 1770636718000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11322476 1770636718000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11322407 1770636718000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11322597 1770636718000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11322607 1770636718000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11322294 1770636718000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11322510 1770636718000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11322509 1770636718000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5402 11322295 1770636718000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11322289 1770636718000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +4929 11322268 1770636718000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11322267 1770636718000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +1215 11322269 1770636718000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11322271 1770636718000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11322270 1770636718000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11322297 1770636718000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11322296 1770636718000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11322299 1770636718000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11322298 1770636718000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11322287 1770636718000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +6268 15568152 1777922721698272920 f23d0597dbe24fbef0b9db0a6a912bdb 1 include/float.h +42963 11322601 1770636718000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +1697 11322469 1770636718000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11322470 1770636718000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +983 11322423 1770636718000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11322414 1770636718000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +5713 11322677 1770636718000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +8806 11322409 1770636718000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11322459 1770636718000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11322405 1770636718000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +143 11322418 1770636718000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11322419 1770636718000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11322456 1770636718000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11322457 1770636718000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11322368 1770636718000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11322485 1770636718000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +1905 11322253 1770636718000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11322254 1770636718000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +2450 11322244 1770636718000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11322460 1770636718000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11322651 1770636718000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11322334 1770636718000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11322430 1770636718000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11322416 1770636718000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11322454 1770636718000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11322453 1770636718000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11322328 1770636718000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11322403 1770636718000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11322327 1770636718000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11322243 1770636718000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11322382 1770636718000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11322383 1770636718000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11322230 1770636718000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11322425 1770636718000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11322377 1770636718000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +34258 11322599 1770636718000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +381 11322413 1770636718000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11322415 1770636718000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11322412 1770636718000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11322411 1770636718000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11322410 1770636718000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11322433 1770636718000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11322420 1770636718000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11322375 1770636718000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +21266 11322602 1770636718000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11322603 1770636718000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +10969 11322481 1770636718000000000 dd17390845739df8331656ac5a17ef8e 0 /usr/include/ctype.h +20199 15592238 1777923927282426471 f594338f23ce56591d8032c04431a84a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_rect_pack.h +6841 11322240 1770636718000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +199176 15592239 1777923927282426471 db1ca3cdcf9606efbbb14aa8bbde39c4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_truetype.h +15326 11322698 1770636718000000000 dd0cebc61fc90f380c881a1cbd85230a 0 /usr/include/time.h +3331 11322404 1770636718000000000 d088285f55f90486f8680c7de68e427d 0 /usr/include/bits/time.h +6203 11322408 1770636718000000000 ccfa5c0039c1ddbdb09c6db5d1922cc3 0 /usr/include/bits/timex.h +760 11322455 1770636718000000000 3cf515d0336ee94d22cc413b45febc49 0 /usr/include/bits/types/struct_tm.h +288 11322436 1770636718000000000 2de06c14c40bd39deaf2f372dace4ac7 0 /usr/include/bits/types/struct_itimerspec.h +557459 15592112 1777923927256426522 2ee4da35738ca3fd429e246ffcc4e963 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glad.h +27519 15568253 1777922721701272909 1bf965d23c79a082ac103b8d4944724e 1 include/stdint.h +8268 11322598 1770636718000000000 07868a6486476f79d1af8befa09ff966 0 /usr/include/stdint.h +1906 11322472 1770636718000000000 eb31012558f3028fc2c3c0def47ccc8a 0 /usr/include/bits/wchar.h +1049 11322370 1770636718000000000 df8b58b124e95d233ec646186fc72d07 0 /usr/include/bits/stdint-uintn.h +1305 11322369 1770636718000000000 e13a68eb8203cd6be160c31f99d931f7 0 /usr/include/bits/stdint-least.h +90849 15592263 1777923927287426462 db41cf17388962b34436c4fde7782f23 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raymath.h +22533 15592266 1777923927288426459 cbeefe4aa2ae48eebcd037e4f86c02e6 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rgestures.h +22184 15592264 1777923927287426462 cd673acb0eee1d11118f9c543c1b96ed 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rcamera.h +21703 15592233 1777923927279426477 a147737b6c68b2b89f993a9fe8b5e03b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/sinfl.h +28109 15592232 1777923927279426477 9a39a8073b251d465d23f4f98d4d0e0b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/sdefl.h +3794 15568174 1777922721699272917 42f44f0344ca976c19820ae587ff2c10 1 include/limits.h +5839 11322521 1770636718000000000 93606ee9e7d5800ac5b8e3efedd3f157 0 /usr/include/limits.h +5198 11322317 1770636718000000000 a6dd17f359e45199ea5666f65b1113a6 0 /usr/include/bits/posix1_lim.h +3175 11322292 1770636718000000000 b08b1c7bc1b5a70132a5b8b175b8c0db 0 /usr/include/bits/local_lim.h +937 8943972 1770625897000000000 65da8eafce628e0f5da011204e471ee0 0 /usr/include/linux/limits.h +1214 11322325 1770636718000000000 2fe7b4205802733911a5efa9b71bb5e6 0 /usr/include/bits/pthread_stack_min-dynamic.h +2867 11322318 1770636718000000000 7d8aa86701e9a380845c5cd8a669e984 0 /usr/include/bits/posix2_lim.h +3858 11322477 1770636718000000000 6056c22530b9b6e43d3215eee277a553 0 /usr/include/bits/xopen_lim.h +1385 11322462 1770636718000000000 59219f4f906088fd1473df647db44849 0 /usr/include/bits/uio_lim.h +11631 15592231 1777923927279426477 e20f072c356800ba394b5b82e64a3a40 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/rprand.h +45053 11322703 1770636718000000000 61decd3126c9fca1538df8298cac1894 0 /usr/include/unistd.h +5910 11322319 1770636718000000000 3ab8ab6e5779785e032604f1768b415c 0 /usr/include/bits/posix_opt.h +3791 11322255 1770636718000000000 e918da89dc6f1bc95caac7b9e99e3ccc 0 /usr/include/bits/environments.h +23828 11322246 1770636718000000000 9cf65881ab165e5e8e291a2f7fcd0a71 0 /usr/include/bits/confname.h +1810 11322274 1770636718000000000 996cb3fd9509868b01621c74e4a86ade 0 /usr/include/bits/getopt_posix.h +3667 11322272 1770636718000000000 ac9188a8d7cc4aac4ca3ac108e99f032 0 /usr/include/bits/getopt_core.h +2035 11322465 1770636718000000000 0cb61ab97cf5643355f3236fdfb9904c 0 /usr/include/bits/unistd_ext.h +377 8943771 1770625897000000000 7ed06359dec8788b24849d80d4e70c9a 0 /usr/include/linux/close_range.h +13793 11322661 1770636718000000000 9f12c6bf198df3a88c2d747996baf030 0 /usr/include/sys/stat.h +2231 11322363 1770636718000000000 eeced79f6a58db284452746e269ed387 0 /usr/include/bits/stat.h +6210 11322384 1770636718000000000 2fe01a59de528f1892df1bc5eef7c7cc 0 /usr/include/bits/struct_stat.h +1400 11322367 1770636718000000000 2002a64c42584c7d184facbe3d81a350 0 /usr/include/bits/statx.h +7838 8944322 1770625897000000000 c0813c1096a17ee5a243bf75dcb7977a 0 /usr/include/linux/stat.h +1829 8944384 1770625897000000000 64ed48c0a52d7d50d7685f6332d61a80 0 /usr/include/linux/types.h +31 8943632 1770625897000000000 748039e47be584104c75dc853bfee6d8 0 /usr/include/asm/types.h +233 8943572 1770625897000000000 ff35ee9081c54a4556677db7b6ac43bd 0 /usr/include/asm-generic/types.h +864 8943546 1770625897000000000 de8f38f0cdc81bf3a5b301889f3dc586 0 /usr/include/asm-generic/int-ll64.h +321 8943578 1770625897000000000 426fd8fd87f0a7222c2d8dc0b1c11a1e 0 /usr/include/asm/bitsperlong.h +1092 8943539 1770625897000000000 ea09d2bd626e1051f84d4ecee37ba039 0 /usr/include/asm-generic/bitsperlong.h +1098 8944239 1770625897000000000 d50b3f49c69b44a5ecd1f232af677d5e 0 /usr/include/linux/posix_types.h +2135 8944323 1770625897000000000 7f1dcecb733611ba8bc38c8fa69c11bb 0 /usr/include/linux/stddef.h +224 8943606 1770625897000000000 d200bb7a30c7371a4580f935befe5542 0 /usr/include/asm/posix_types.h +609 8943608 1770625897000000000 45284a1e84848c31de23d3bd515534ee 0 /usr/include/asm/posix_types_64.h +2420 8943556 1770625897000000000 27c6e0a2b3849c0a9a5f71c86e17deb5 0 /usr/include/asm-generic/posix_types.h +2409 11322366 1770636718000000000 1ca18c39930458d2b106898c1f1ed517 0 /usr/include/bits/statx-generic.h +1202 11322451 1770636718000000000 adf1f98ff50dc6da3f9c81c1f7718940 0 /usr/include/bits/types/struct_statx_timestamp.h +2248 11322450 1770636718000000000 13e0688c779dbc994826255da64ed106 0 /usr/include/bits/types/struct_statx.h +12617 11322482 1770636718000000000 f18eaf57a7b514f3b577f9f5a6bc2d33 0 /usr/include/dirent.h +1771 11322248 1770636718000000000 23e0e14a4e8b16a68e0bc2941bc51c70 0 /usr/include/bits/dirent.h +1275 11322249 1770636718000000000 05d55b8f8aff261c558e2bf919c00c3e 0 /usr/include/bits/dirent_ext.h +93702 15592247 1777923927284426468 9bce58225fa3dedb03ed4cab5c2b195a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/platforms/rcore_desktop_glfw.c +241826 15592156 1777923927261426513 86501dc510331da26275322e654ec46a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3.h +417 15568047 1777922721690272950 d2edf43390585163b0f70c6bd1d7e3b7 1 include/__stddef_header_macro.h +717 15568052 1777922721690272950 81288588f2bdd7ac4f213fa113429ef2 1 include/__stddef_ptrdiff_t.h +708 15568051 1777922721690272950 04b70454bf7cdd0c492cfaf134f95be7 1 include/__stddef_offsetof.h +9164 11322670 1770636718000000000 d2e1b3053beaf053af8a55c6a804fde1 0 /usr/include/sys/time.h +21201 15592157 1777923927261426513 368cd78bfbe5e29e658aa2a5326f9063 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3native.h +99801 11320731 1770539241000000000 f2e7c6c90e11927568ff931d109f936c 0 /usr/include/X11/Xlib.h +20137 7769018 1766144024000000000 382791d667a3393547f807899249bfc0 0 /usr/include/X11/X.h +7946 7769025 1766144024000000000 8a5039c8a7aa3a4eab5f7181393ac108 0 /usr/include/X11/Xfuncproto.h +3115 7769030 1766144024000000000 d53b0559a65c0bcdb77ed0459f1b9976 0 /usr/include/X11/Xosdefs.h +17060 11321897 1769439156000000000 1884746db8290f2b31b7f8451b1cf4b3 0 /usr/include/X11/extensions/Xrandr.h +6909 7769087 1766144024000000000 401965d00acc575149fba334f8bc506d 0 /usr/include/X11/extensions/randr.h +33826 96756 1734163523000000000 cd6d26a1a49037b6952f6ad6add5241b 0 /usr/include/X11/extensions/Xrender.h +21355 11320737 1770539241000000000 52ce1ad0b2c8b33c883e4de9cf2e58fc 0 /usr/include/X11/Xutil.h +2769 7769135 1766144024000000000 0d41ae60a19d8f9ba25f1763119261cc 0 /usr/include/X11/keysym.h +186629 7769136 1766144024000000000 bd52d531f256dfa6f7971ce3c84e5d8b 0 /usr/include/X11/keysymdef.h +6933 7769092 1766144024000000000 f3454f10c8ec914bc2cacc67ae344c58 0 /usr/include/X11/extensions/render.h +2401 7769024 1766144024000000000 8c25483e69b3966a7bf02ad71233d30b 0 /usr/include/X11/Xdefs.h +2518 7769023 1766144024000000000 a6ecf58bbcdb259e383e67043e2a7022 0 /usr/include/X11/Xatom.h +45680 15592241 1777923927283426469 eb116170525d41104424990ac7adcf2f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/tinyobj_loader_c.h +1679 11322488 1770636718000000000 abb7aa3ce3560985cdcc5222002abe0a 0 /usr/include/errno.h +1426 11322258 1770636718000000000 f5901b3b5db0a666bc76fe7ac755756b 0 /usr/include/bits/errno.h +23 8943817 1770625897000000000 0e9514526df5411989c0921d62c34bb0 0 /usr/include/linux/errno.h +31 8943586 1770625897000000000 303204c8e8dd5d0b26a8bbfede43c812 0 /usr/include/asm/errno.h +5648 8943542 1770625897000000000 8becdc7faaf464f4f03c90038b9730e0 0 /usr/include/asm-generic/errno.h +1612 8943541 1770625897000000000 9e53730016da2684ae9a8bb2284166de 0 /usr/include/asm-generic/errno-base.h +894 11322421 1770636718000000000 21d9a2571870c420b53485fe487743c5 0 /usr/include/bits/types/error_t.h +205754 15592105 1777923927253426528 5d2f236b6f6ef5d9a1b295fd3d1846d5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/cgltf.h +19659 15592242 1777923927284426468 6f6765d6e719e243ad70cc22023392da 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/vox_loader.h +306683 15592223 1777923927268426499 15241acfe0a45badbe1236db00c6ea81 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/m3d.h +72865 15592225 1777923927278426479 9dc0644bac4164f220adfabe1352af5b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/par_shapes.h +14504 15592172 1777923927262426511 b27f6b3bb53bc837cf7ea3290ce6416e 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/init.c +35817 15592174 1777923927262426511 f72e6da24b2e8dc2c561d4faf974a05c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/internal.h +6421 15592189 1777923927264426507 9430a43cbffb7932dc5ccfe1bf2d0807 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/platform.h +11827 15592185 1777923927264426507 4beac7be71da25898297d83d4e922499 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/null_platform.h +44741 15592217 1777923927266426503 6868a25f2f702569928920058ddd21bf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_platform.h +13045 11322593 1770636718000000000 efc9e225e109bb08a8dec4661ace2e4c 0 /usr/include/signal.h +3313 11322351 1770636718000000000 c7b07d26fe58fc7ceff1ae4edad8acd6 0 /usr/include/bits/signum-generic.h +2580 11322350 1770636718000000000 500defef7a2bd9a9e56449a3aea3b0f9 0 /usr/include/bits/signum-arch.h +272 11322427 1770636718000000000 52033494d2efb18f3ae4d42d90be994c 0 /usr/include/bits/types/sig_atomic_t.h +3892 11322429 1770636718000000000 9f30a8a17236994ddab5a49513bee1c1 0 /usr/include/bits/types/siginfo_t.h +1148 11322417 1770636718000000000 cef99022964de0d2a9bb4a66335a242a 0 /usr/include/bits/types/__sigval_t.h +729 11322345 1770636718000000000 732ba145bdaaec5752d3851d994fb038 0 /usr/include/bits/siginfo-arch.h +7537 11322347 1770636718000000000 4397eb5131c9e02a702340cc690db708 0 /usr/include/bits/siginfo-consts.h +204 11322346 1770636718000000000 070bf764547621a5cbd9eca15e56bf40 0 /usr/include/bits/siginfo-consts-arch.h +599 11322431 1770636718000000000 9a9be4e0a7b8d98d52679616ab1b7362 0 /usr/include/bits/types/sigval_t.h +1204 11322428 1770636718000000000 ab141640b4254a15993e20837b92ffa9 0 /usr/include/bits/types/sigevent_t.h +1471 11322344 1770636718000000000 2763ca41204119b32bf53713071bb096 0 /usr/include/bits/sigevent-consts.h +2935 11322342 1770636718000000000 abb4550dd27d1f45d7bd71b5a552f386 0 /usr/include/bits/sigaction.h +4266 11322343 1770636718000000000 8e4aadcbffc06002a69da0003c1793a1 0 /usr/include/bits/sigcontext.h +1062 11322432 1770636718000000000 3418e41d444a3efa09c1989618745709 0 /usr/include/bits/types/stack_t.h +5842 11322678 1770636718000000000 3850964a3dfeecfdf8d6341ce10a867b 0 /usr/include/sys/ucontext.h +1168 11322352 1770636718000000000 8d25e4dc4342ca228643759acadb8af6 0 /usr/include/bits/sigstack.h +1283 11322353 1770636718000000000 3177a841d4601f625a64ad164ae45250 0 /usr/include/bits/sigstksz.h +1188 11322361 1770636718000000000 0a23e9e025646d8d7930c5f34b481456 0 /usr/include/bits/ss_flags.h +1073 11322449 1770636718000000000 6ec7e47258c49e849f75f41527e676a0 0 /usr/include/bits/types/struct_sigstack.h +1692 11322354 1770636718000000000 bc31047fff5a76a10c2880762a977d27 0 /usr/include/bits/sigthread.h +1285 11322348 1770636718000000000 368ef36453d66bf3b3d3595424daf7ac 0 /usr/include/bits/signal_ext.h +10628 11320736 1770539241000000000 9b0233263c20c2e8be88d5e81fbf2202 0 /usr/include/X11/Xresource.h +13200 11322026 1730878554000000000 3e56a893977bb933a42f01ba8765a1e8 0 /usr/include/X11/Xcursor/Xcursor.h +30994 11320728 1770539241000000000 658cd959aab5d6441ea7ca46bbfcb740 0 /usr/include/X11/XKBlib.h +19697 7769051 1766144024000000000 1231e8955febccf3c025770c66a93818 0 /usr/include/X11/extensions/XKBstr.h +28212 7769048 1766144024000000000 6a2dd9db6376855e6a13ac1dc2254091 0 /usr/include/X11/extensions/XKB.h +1964 11321922 1769438631000000000 8307bc8fd193fbd4b22c24a07b9e56ad 0 /usr/include/X11/extensions/Xinerama.h +21969 11321939 1725514872000000000 f898f73ab9f0b0455f75ad7e86f933d4 0 /usr/include/X11/extensions/XInput2.h +11151 7769045 1766144024000000000 f4e9b097c0ff2c41507c68b4960a37cb 0 /usr/include/X11/extensions/XI2.h +1928 8741105 1769438528000000000 4e4a900ecc48c6c5eaaadb164d67df47 0 /usr/include/X11/extensions/Xge.h +7750 4242540 1756837749000000000 0d98a55dff8c00f367e9aece0d0a1143 0 /usr/include/X11/extensions/Xfixes.h +5924 7769123 1766144024000000000 b5e9bd0eec3d3c1748a593e505171a71 0 /usr/include/X11/extensions/xfixeswire.h +4132 8741110 1769438528000000000 8aaad0750a17168ab35987a0fd39ecf0 0 /usr/include/X11/extensions/shape.h +1878 7769098 1766144024000000000 104206d1aae79c53870ed605be13e54f 0 /usr/include/X11/extensions/shapeconst.h +1288 15592220 1777923927267426501 e581c6e4cdd807e79c0a665fc1bb619f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/xkb_unicode.h +1292 15592192 1777923927264426507 c453ea96e91669ea925c8bfb93fe5bb7 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_poll.h +22 11322569 1770636718000000000 0ea58fcbabea8c4434197b25c0da0032 0 /usr/include/poll.h +3030 11322636 1770636718000000000 fdfc712b78cbcaa0020d4464fb281b64 0 /usr/include/sys/poll.h +2076 11322315 1770636718000000000 d4de1743efaa71a7637fb37b349b20f7 0 /usr/include/bits/poll.h +1424 15592183 1777923927263426509 9ae4151868a02c1a8ea9749672383fb1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/null_joystick.h +2322 15592176 1777923927262426511 a5affdc2a0143346be41f93f566b6938 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/linux_joystick.h +16913 8943925 1770625897000000000 19cc0a8c96115bd0b4fbe906dc1f6915 0 /usr/include/linux/input.h +2032 11322622 1770636718000000000 cbe6601caeaa9849483d92383653843e 0 /usr/include/sys/ioctl.h +1005 11322283 1770636718000000000 38935023d2f5efc233bbd63192a23f93 0 /usr/include/bits/ioctls.h +32 8943591 1770625897000000000 1014a0ae33d0bed260382fbd3c912982 0 /usr/include/asm/ioctls.h +3987 8943548 1770625897000000000 d4ce71e9aa1f00a5b67c8b21b6a30d5b 0 /usr/include/asm-generic/ioctls.h +163 8943932 1770625897000000000 9a139ff78a7a978a13a83c0722fc021d 0 /usr/include/linux/ioctl.h +31 8943590 1770625897000000000 5f11f2dd8e479e58c3cf546e72403770 0 /usr/include/asm/ioctl.h +3518 8943547 1770625897000000000 4b7aa229557b073687359ca327709a32 0 /usr/include/asm-generic/ioctl.h +6846 8944315 1770625897000000000 d2b055f7283492c05492a5924f94aec4 0 /usr/include/linux/sockios.h +33 8943625 1770625897000000000 ddabb13f9fd87bf61e5f15f7a99b4729 0 /usr/include/asm/sockios.h +447 8943565 1770625897000000000 e503e15c8b0357f68274467ba5f06da4 0 /usr/include/asm-generic/sockios.h +2089 11322282 1770636718000000000 93897a02d50af887190f5248a717605e 0 /usr/include/bits/ioctl-types.h +3568 11322676 1770636718000000000 7fd74c28a21229e87ba5588cee27bd8c 0 /usr/include/sys/ttydefaults.h +31350 8943924 1770625897000000000 7eb002eb71a3e9a208ffc627561eda0b 0 /usr/include/linux/input-event-codes.h +25940 11322580 1770636718000000000 d3d9037b10d420aa0b919ad6d97bdab1 0 /usr/include/regex.h +1674 15592194 1777923927264426507 4c75518582750b9acebe3f524a3ea420 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_thread.h +48570 11322576 1770636718000000000 df73001c3d08af59a57b790c20f13f2a 0 /usr/include/pthread.h +5043 11322584 1770636718000000000 e6a51b852746c12c94ed682ec128431b 0 /usr/include/sched.h +5952 11322332 1770636718000000000 0926186d78c26fdbfea09ab846c93da9 0 /usr/include/bits/sched.h +4558 8944287 1770625897000000000 13cfeea4f632939bde4c2db64ec930ff 0 /usr/include/linux/sched/types.h +1073 11322442 1770636718000000000 fd5bfcedcccd0699759e0e9b4b5f31d2 0 /usr/include/bits/types/struct_sched_param.h +4516 11322247 1770636718000000000 eab9f52a0722cf3bd47401680264c9bd 0 /usr/include/bits/cpu-set.h +1287 11322338 1770636718000000000 81b3c862d757d31fa9585485df82c1f6 0 /usr/include/bits/setjmp.h +1467 11322434 1770636718000000000 c65b4aa95fccac40bd98fee3ba150e60 0 /usr/include/bits/types/struct___jmp_buf_tag.h +1489 15592196 1777923927264426507 d9c9c16faccc333851fa1d1a1a9c0e0f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_time.h +6332 15592188 1777923927264426507 e46b39fefa824d3bef7915a22a3cbeab 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/platform.c +25760 15592168 1777923927262426511 91513c3fe4d6179408927b6f25a20e31 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/context.c +15194 15592179 1777923927263426509 cc2653c900eea5854d3118df97d564cc 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/monitor.c +35148 15592210 1777923927265426505 371ef2deaaf656211c21bd031730bc45 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/window.c +41395 15592173 1777923927262426511 fd2bdc39d9a0f3e9cbdf4151a429af0b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/input.c +504825 15592177 1777923927263426509 e792314d005187ea839d8a118bf5a826 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/mappings.h +11947 15592197 1777923927264426507 a6026f9e8a003c782bd514b578ed47fb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/vulkan.c +1816 15592190 1777923927264426507 becad53c5bcd77daf7f13b36a669ff80 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_module.c +8794 11322483 1770636718000000000 1e941a0fcec84e68e593320606a258d5 0 /usr/include/dlfcn.h +2521 11322251 1770636718000000000 ce423e8702be28530185e4b09b199fdf 0 /usr/include/bits/dlfcn.h +1119 11322250 1770636718000000000 212bcf73af743c3898fdc9ef533a0cbf 0 /usr/include/bits/dl_find_object.h +3245 15592193 1777923927264426507 6da2432577062b037d05bf9685421152 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_thread.c +2206 15592195 1777923927264426507 f4c2594a47b4f565719a8a5a9f0a444c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_time.c +3044 15592191 1777923927264426507 34fbca07f16ff7c4f5d37b58374af726 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_poll.c +12404 15592175 1777923927262426511 ebe2a4724621dc831b6c06e12f74d4d5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/linux_joystick.c +3901 11322620 1770636718000000000 51573e40baf39611dae19b6b79da6b5a 0 /usr/include/sys/inotify.h +1080 11322281 1770636718000000000 23db2031318a86cc91c8de94ba8271de 0 /usr/include/bits/inotify.h +11458 11322491 1770636718000000000 6761c01cab1e7a637ff70b712787863d 0 /usr/include/fcntl.h +2246 11322264 1770636718000000000 230f6d44354f98fab2643bb2fe61a31c 0 /usr/include/bits/fcntl.h +15826 11322263 1770636718000000000 a89c09049a7837aa75452e239a5650fd 0 /usr/include/bits/fcntl-linux.h +1066 11322435 1770636718000000000 930adb19f5f9cbc3933b958f4a1e5ffa 0 /usr/include/bits/types/struct_iovec.h +4477 8943829 1770625897000000000 cb9419cc89a7af265a184c1f6f002f00 0 /usr/include/linux/falloc.h +1450 8944213 1770625897000000000 dfc953efad59381f85cedbcaf15d1f22 0 /usr/include/linux/openat2.h +2041 11322311 1770636718000000000 7fb288a7769cdc7b7a64bda1f15cccd2 0 /usr/include/bits/openat2.h +22943 15592219 1777923927267426501 61daf1865cea794f6fe989a933855d52 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/xkb_unicode.c +29639 15592169 1777923927262426511 1a0561496727613edebd464a7417f6c3 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/egl_context.c +11935 15592187 1777923927264426507 4c3e6494b0bcc0aee47c28a18bda9100 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/osmesa_context.c +70569 15592215 1777923927266426503 95309a7537992a74bb2bc4bf449110d0 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_init.c +7675 11322523 1770636718000000000 f38e3af658cf4e4d245a435a9a10f0a0 0 /usr/include/locale.h +1368 11322293 1770636718000000000 a15e215b176aca549a08eeec063be072 0 /usr/include/bits/locale.h +20136 15592216 1777923927266426503 fb57e4d2291d8c29f447b0cda750a942 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_monitor.c +106419 15592218 1777923927267426501 71a3c2a523df63f5cb929d61fe0824c3 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_window.c +3118 11320738 1770539241000000000 49c18fff52345f9fbca72361b14cde5c 0 /usr/include/X11/cursorfont.h +5236 7769027 1766144024000000000 d1fbdb8a1a35d2391ee2c34805ef3f1e 0 /usr/include/X11/Xmd.h +23690 15592171 1777923927262426511 38704d9b41375b7557c5fe54e0e4eb99 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/glx_context.c +283010 15592234 1777923927280426475 da0de4b77a864a92ca0a84752ae64a25 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image.h +201616 15568149 1777922721698272920 c59721a008a14bf4245225c8d6dd981f 1 include/emmintrin.h +120340 15568276 1777922721702272906 8e35d00e3ce60714ef2dd6312b645f5d 1 include/xmmintrin.h +60004 15568188 1777922721700272913 9d96163416d339553543c8056304615f 1 include/mmintrin.h +1929 15568187 1777922721700272913 b6b5caf8039b8eeb1a472434df3e6037 1 include/mm_malloc.h +76007 15592230 1777923927279426477 a736a10590b842a754f3c9d9bba6437a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/rltexgpu.h +18326 15592228 1777923927278426479 0a1701580c647f7b4f8a424d04ac746d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoi.h +71221 15592236 1777923927282426471 ca3d5f23a730342b4f4dd18653e45db1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image_write.h +17918 15592237 1777923927282426471 2bb87817ffe9d6d6d3187db2bffe388c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_perlin.h +457839 15592235 1777923927281426473 d73e04ebd94264210f8f82aac82d1da4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image_resize2.h +101720 15568245 1777922721701272909 65d276eda8a6b7f54badd06b69b605d7 1 include/smmintrin.h +31927 15568257 1777922721701272909 a94b62300284d904ddd77a8612722040 1 include/tmmintrin.h +11390 15568207 1777922721700272913 af3b468e9f028463cda1ea1862bdd32f 1 include/pmmintrin.h +1948 15568208 1777922721700272913 0d0dc43525f7392cd17b908e07c520a2 1 include/popcntintrin.h +3347 15568148 1777922721698272920 fb37aa3848b11ad0dde9222206788fed 1 include/crc32intrin.h +16632 15568165 1777922721699272917 70963188f6adf02d47abf0e69307e3ce 1 include/immintrin.h +1727 15568274 1777922721702272906 02224c13847552071474f4b8a67094f2 1 include/x86gprintrin.h +1395 15568160 1777922721699272917 fb46b2d83a3e08fdd2816a60bb34c1f4 1 include/hresetintrin.h +5079 15568259 1777922721701272909 17e8211de80c4aedcb92d94180a78574 1 include/uintrintrin.h +1572 15568261 1777922721701272909 090a143fbece0766fad22b1d0a3d99de 1 include/usermsrintrin.h +2073 15568223 1777922721700272913 b7662e91645d1456a47a0baff1a8e60b 1 include/prfchiintrin.h +6748 15568227 1777922721700272913 60e92c0f22c6fd0127612d8d4fb33f1a 1 include/raointintrin.h +2383 15568146 1777922721698272920 3d1c9e6b8d2f63d088f4554226dea82d 1 include/cmpccxaddintrin.h +659 15568273 1777922721702272906 88839041dd2d933a1ceb26cde857faea 1 include/wmmintrin.h +5269 15568058 1777922721690272950 73101524ee05bfb36c066bf9bb6e60d7 1 include/__wmmintrin_aes.h +2036 15568059 1777922721690272950 679b048994ef6e3eb20b4627ae70bbf3 1 include/__wmmintrin_pclmul.h +1193 15568143 1777922721698272920 0a42c930a770c0836dbe4a3703bb4512 1 include/clflushoptintrin.h +1229 15568144 1777922721698272920 c053e392024dcadcb1da23c409ffb040 1 include/clwbintrin.h +201849 15568132 1777922721698272920 b4ccac975fdcf069bc879ccf03d0b80f 1 include/avxintrin.h +192637 15568104 1777922721697272924 215b76cd9cf97075404f4c97c36c24f0 1 include/avx2intrin.h +5524 15568151 1777922721698272920 a8307854b76c9de85b83d9befd78477f 1 include/f16cintrin.h +20350 15568138 1777922721698272920 52d5562b0fcd60ad86d13264e78f569d 1 include/bmiintrin.h +7546 15568137 1777922721698272920 e3a2aaeac7ef1aaf72d32c13e79fabf8 1 include/bmi2intrin.h +3659 15568185 1777922721700272913 da624bb823db719405e0df2f497fd83e 1 include/lzcntintrin.h +29337 15568154 1777922721699272917 37368c2b3ac26685c39d619149a048a5 1 include/fmaintrin.h +392651 15568110 1777922721697272924 417c1f0ac26fce36e4bf57569e3ae768 1 include/avx512fintrin.h +330339 15568123 1777922721698272920 49a5250ddc213c5fcbbde5cef04535e8 1 include/avx512vlintrin.h +77845 15568107 1777922721697272924 52fdf0987ae18302e0e01534ef877cc2 1 include/avx512bwintrin.h +2626 15568106 1777922721697272924 4c8c0fd807ad9e5271cdd15d2977f9d0 1 include/avx512bitalgintrin.h +4327 15568108 1777922721697272924 d60cce9efd3cf6e1817c5b6437e4be3d 1 include/avx512cdintrin.h +2357 15568129 1777922721698272920 6f8315696bf9a22f42ec05d59da5d065 1 include/avx512vpopcntdqintrin.h +3957 15568130 1777922721698272920 abb99a6c6070cfc30e96f19e82cc0bbb 1 include/avx512vpopcntdqvlintrin.h +4428 15568127 1777922721698272920 d65f32b0b2809f1f45646161d119f357 1 include/avx512vnniintrin.h +13736 15568125 1777922721698272920 f0bad1557e9b86244734e891fe49a319 1 include/avx512vlvnniintrin.h +10690 15568136 1777922721698272920 3cc87c685806872776354f4a0b5d2155 1 include/avxvnniintrin.h +60287 15568109 1777922721697272924 b9a24e2c100dbc7ee399c43d96773394 1 include/avx512dqintrin.h +4629 15568118 1777922721697272924 312bc5534b5826436e11de728e563806 1 include/avx512vlbitalgintrin.h +124474 15568119 1777922721697272924 9c4b311057a3d5598fd23dc67c776400 1 include/avx512vlbwintrin.h +8141 15568120 1777922721697272924 d74858c8ea47f20ff9c4092d113ea41c 1 include/avx512vlcdintrin.h +47827 15568121 1777922721697272924 3c73b81ef4b33ba6bcb6714431e09354 1 include/avx512vldqintrin.h +2660 15568112 1777922721697272924 6400d05d435160c1d6d346c344a76086 1 include/avx512ifmaintrin.h +4712 15568113 1777922721697272924 fa03ebe74dbaca356d64dbe640460035 1 include/avx512ifmavlintrin.h +5886 15568131 1777922721698272920 0e78550e483532f19c0908b38276ec64 1 include/avxifmaintrin.h +3920 15568115 1777922721697272924 5700f088b6969618471ef25f630669d0 1 include/avx512vbmiintrin.h +7402 15568116 1777922721697272924 16d47f57484ed296b3e6e1368e704595 1 include/avx512vbmivlintrin.h +13493 15568114 1777922721697272924 b105a7215373b26faee90ebcf9611298 1 include/avx512vbmi2intrin.h +26633 15568124 1777922721698272920 3e9303ac0a4faf37b84922e7f0c7fbac 1 include/avx512vlvbmi2intrin.h +160735 15568111 1777922721697272924 74efdcbf12d39f136d48990ed6247ae4 1 include/avx512fp16intrin.h +87561 15568122 1777922721697272924 f6fd101ffd8ecd06bab96e21091b3f55 1 include/avx512vlfp16intrin.h +10832 15568105 1777922721697272924 f328f474b8b2f7ecd99fc38496b8ba0c 1 include/avx512bf16intrin.h +19922 15568117 1777922721697272924 ae2035290c3da7e9ee66b53aa998e2e8 1 include/avx512vlbf16intrin.h +934 15568206 1777922721700272913 9eec7d1953339f7017502cf78723950d 1 include/pkuintrin.h +1086 15568269 1777922721702272906 637855aacd197db9868d139d6fafe450 1 include/vpclmulqdqintrin.h +2671 15568263 1777922721701272909 57f64f1aed9ee8ed6eca03464494e60c 1 include/vaesintrin.h +9822 15568156 1777922721699272917 220fde0fd70770eba04dde846bdbbef7 1 include/gfniintrin.h +17431 15568135 1777922721698272920 a7d4a6dc8f028f8c7ace573ef994a4d1 1 include/avxvnniint8intrin.h +14432 15568133 1777922721698272920 72cc1449016b76cd7ab84c886811a3e2 1 include/avxneconvertintrin.h +6088 15568239 1777922721701272909 0f30b3a47ff82ec3699c8cd0e40cbc92 1 include/sha512intrin.h +7470 15568242 1777922721701272909 bc67c183035f74d21e316c8ab20ae2f0 1 include/sm3intrin.h +8401 15568244 1777922721701272909 6ab760098261dfe1782c73be8e138705 1 include/sm4intrin.h +16222 15568134 1777922721698272920 682df57b668a75daebe49e56a2f1c645 1 include/avxvnniint16intrin.h +1280 15568235 1777922721701272909 6eab1c6b32be874b9c82a3ff1d2772e6 1 include/rtmintrin.h +873 15568282 1777922721702272906 dcac3c4fb2d9e8fc2e32c099cc2f4a7c 1 include/xtestintrin.h +7660 15568240 1777922721701272909 3ce15406906216d7b4f3b25709fd0765 1 include/shaintrin.h +2890 15568155 1777922721699272917 72e559c6284e7b3e59ece194e6e3e2f1 1 include/fxsrintrin.h +1678 15568279 1777922721702272906 adc179a954bd6419ecb3679e88e76d89 1 include/xsaveintrin.h +1026 15568280 1777922721702272906 5e941b1ef68d3e6e9aa207d5d00dba2f 1 include/xsaveoptintrin.h +2574 15568278 1777922721702272906 83e5e79720328dd0054ce7660005acd2 1 include/xsavecintrin.h +1268 15568281 1777922721702272906 51ebe3f93e82afad00bcea35da340569 1 include/xsavesintrin.h +3351 15568141 1777922721698272920 940fdc9a595824a3546eb2d73c351f8f 1 include/cetintrin.h +5565 15568060 1777922721690272950 c17718c6485c7659e7890a4cbab75219 1 include/adcintrin.h +3447 15568061 1777922721690272950 a7ca4b601933a32c4855f0ec1ceb8b73 1 include/adxintrin.h +2919 15568229 1777922721701272909 9ba44bec7d615d70d29c2cf49efd2fd9 1 include/rdseedintrin.h +749 15568272 1777922721702272906 ab03b0b2ec3b24b5c381d040fbd5d3f3 1 include/wbnoinvdintrin.h +1207 15568142 1777922721698272920 faf0346a1135a650caebf7c0fa660e06 1 include/cldemoteintrin.h +1357 15568270 1777922721702272906 c29665f4ae7d08f40fdba4bdf3c59fcb 1 include/waitpkgintrin.h +1612 15568190 1777922721700272913 361388a1deda89bbc5200844d0aec7a4 1 include/movdirintrin.h +2025 15568193 1777922721700272913 0f19f76e900e332d57533e05989a2a0c 1 include/movrsintrin.h +7036 15568192 1777922721700272913 2c6fb76c226fac69586d6e93c0fd3908 1 include/movrs_avx10_2intrin.h +3973 15568191 1777922721700272913 19680bd74186f6c0adedde41e57f21e1 1 include/movrs_avx10_2_512intrin.h +1216 15568205 1777922721700272913 b3205c333672913fc7c8acc26dfb5304 1 include/pconfigintrin.h +1816 15568238 1777922721701272909 4814b5f568d79fe0a3ff9a01056fa17b 1 include/sgxintrin.h +1076 15568226 1777922721700272913 3fae1e12e188144704082b5c0de48a7f 1 include/ptwriteintrin.h +764 15568169 1777922721699272917 c4f35c928a775df7195a03f0d5411aff 1 include/invpcidintrin.h +17973 15568171 1777922721699272917 0b48ddfbbe168ffd50b79789be908d2a 1 include/keylockerintrin.h +20304 15568071 1777922721691272946 3381fed3b944ecfc74f30d27ff094bca 1 include/amxintrin.h +3327 15568068 1777922721691272946 f1e5420b9d7fe9febe794a24e96e4ce9 1 include/amxfp16intrin.h +6933 15568066 1777922721691272946 78b4f2aa1cf1c0239e304a1f474331d0 1 include/amxcomplexintrin.h +8839 15568070 1777922721691272946 5ccf1e3f33ad6379d2a262f4438cd502 1 include/amxfp8intrin.h +10853 15568076 1777922721691272946 7921f0f126779340730c078d6b3c9997 1 include/amxtransposeintrin.h +2290 15568072 1777922721691272946 5f7e30d92bb23f379ce740ff06bde41f 1 include/amxmovrsintrin.h +9402 15568073 1777922721691272946 6fa922cc643f704d9fa08f0cce57fd0b 1 include/amxmovrstransposeintrin.h +12986 15568064 1777922721691272946 107cbdc06513520aa9e4e158e3f6c491 1 include/amxavx512intrin.h +3562 15568074 1777922721691272946 fd05d9e0127721d899581134b681ca3c 1 include/amxtf32intrin.h +3643 15568075 1777922721691272946 55a73f65dcb801b11b24e97984ccedb0 1 include/amxtf32transposeintrin.h +3525 15568065 1777922721691272946 52d2749a270864e796b43cc5ee738a7f 1 include/amxbf16transposeintrin.h +3525 15568069 1777922721691272946 42f3593c062932dfe44c29ecf4283afb 1 include/amxfp16transposeintrin.h +12061 15568067 1777922721691272946 3ac118b8b4568263387fa6cc9c6d757d 1 include/amxcomplextransposeintrin.h +3102 15568128 1777922721698272920 731bbd34cb220f83027d2d1b60e5b916 1 include/avx512vp2intersectintrin.h +4782 15568126 1777922721698272920 380ed65ce4ea2eb042a085a39a69d79e 1 include/avx512vlvp2intersectintrin.h +44658 15568097 1777922721696272928 faca47b99e2b7dd009773fe525926cad 1 include/avx10_2bf16intrin.h +108821 15568098 1777922721696272928 fb976c4700d15c22d82fec385805cc26 1 include/avx10_2convertintrin.h +2410 15568099 1777922721696272928 10419d2bc12d8a9878d0e2866a79b6ed 1 include/avx10_2copyintrin.h +13680 15568100 1777922721696272928 3b54fb6f688ef31b5b288d68add52055 1 include/avx10_2minmaxintrin.h +17003 15568101 1777922721696272928 21161b694449a0ad9ec0ff4fd45c5338 1 include/avx10_2niintrin.h +15253 15568102 1777922721696272928 b54db7027b0759bf2c6e98812c65825d 1 include/avx10_2satcvtdsintrin.h +18140 15568103 1777922721696272928 90423834c7a102028a91b8ed880457bd 1 include/avx10_2satcvtintrin.h +23410 15568091 1777922721696272928 95bee4d483b52e84460e33e248d24b78 1 include/avx10_2_512bf16intrin.h +13192 15568092 1777922721696272928 b29bf6fb9e659842d31f4be78f82b58a 1 include/avx10_2_512convertintrin.h +7526 15568093 1777922721696272928 e922b6ff2d475a67b2edd396292f7078 1 include/avx10_2_512minmaxintrin.h +14039 15568094 1777922721696272928 706c14e292a7064003c3a9554b34d98d 1 include/avx10_2_512niintrin.h +13799 15568095 1777922721696272928 9a37b5547f48ae1333e9109ba36c0502 1 include/avx10_2_512satcvtdsintrin.h +16999 15568096 1777922721696272928 cc3b16d0b0f0630231d148f1376082d1 1 include/avx10_2_512satcvtintrin.h +1195 15568243 1777922721701272909 415f4786cb23f5ee37699dc6b7eff360 1 include/sm4evexintrin.h +2167 15568150 1777922721698272920 6e887392f50e32d2c4bc3eb4ca4e4def 1 include/enqcmdintrin.h +881 15568237 1777922721701272909 de461f45e00eb8aa42c96123bef0f9a0 1 include/serializeintrin.h +2015 15568258 1777922721701272909 d9bd2435957a5e62c538d80aea562772 1 include/tsxldtrkintrin.h +4107565 15592224 1777923927276426483 40a300c8571017a8213fcc665a614206 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/miniaudio.h +40129 11322709 1770636718000000000 846d60b8884553e61b200835c9192db4 0 /usr/include/wchar.h +796 11322458 1770636718000000000 eee748e39eee0c3ba0222f7d0a22f5bb 0 /usr/include/bits/types/wint_t.h +135 11322424 1770636718000000000 88a8626270b2c135f6fae239597f3050 0 /usr/include/bits/types/mbstate_t.h +1400 11322613 1770636718000000000 2f0c7eff02f27ac2b7f317551e29ec48 0 /usr/include/sys/eventfd.h +1129 11322261 1770636718000000000 1529b91466df4e72721b7951edd4ed3e 0 /usr/include/bits/eventfd.h +364560 15592110 1777923927256426522 aa3f7a4e5ed2aea4a1ec6c90429905d4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/dr_wav.h +192790 15592240 1777923927283426469 890c281f1c8cc1ed210397614a0eb43c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_vorbis.c +206600 15592109 1777923927255426525 8a111acae971c169c181fb95f0bbb828 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/dr_mp3.h +23845 15592226 1777923927278426479 f136d45fb944c980c3798c30d5d3d443 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoa.h +10241 15592227 1777923927278426479 737b9fb56af4b423417c98b7fd85a98b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoaplay.c +102215 15592222 1777923927267426501 87feda682bd5df29026e59540130ea22 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/jar_xm.h +51996 15592221 1777923927267426501 7826726113566a1ac41845859112fa61 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/jar_mod.h diff --git a/.zig-cache/h/105e49574d170b2495f798f7b29d044b.txt b/.zig-cache/h/105e49574d170b2495f798f7b29d044b.txt new file mode 100644 index 0000000..0200dcc --- /dev/null +++ b/.zig-cache/h/105e49574d170b2495f798f7b29d044b.txt @@ -0,0 +1,441 @@ +0 +460816 2104748 1749858906000000000 19b59f2a2768926dd4cb35a090cb8868 0 /lib64/libGL.so +1313184 11320745 1770539241000000000 e72e4619f955c3a38211536766b516f4 0 /lib64/libX11.so +47088 11321900 1769439156000000000 da6f4be2e87e2aa16772a75fa6a36f63 0 /lib64/libXrandr.so +14328 11321926 1769438631000000000 621184dc819e1014d93ea9a7f28bdccb 0 /lib64/libXinerama.so +75832 11321942 1725514872000000000 8080cfc6a1c65c31d450aeb5fedf0788 0 /lib64/libXi.so +47048 11322029 1730878554000000000 81c5a9837f418f236c79e736ea7f1e53 0 /lib64/libXcursor.so +179546 15592265 1777923927288426459 e6c02b151e39c59246cdfe8aeaaa21f4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rcore.c +94278 15592270 1777923927290426456 148e15819214db74e0525ec276acecdd 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rshapes.c +226085 15592272 1777923927291426454 57703b4cb9d20c85f2494106b300ce4c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rtextures.c +117970 15592271 1777923927291426454 31672e71fc2d475bd7ec65a7f43b43cb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rtext.c +338872 15592269 1777923927290426456 76fc55680b7dd750a09c7c8d4885d438 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rmodels.c +113824 15592256 1777923927286426463 eaa3ac47a6f370a3247b2e595e877cae 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raudio.c +6000 15592267 1777923927288426459 c08daa562131e2220de1a06bca726720 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rglfw.c +50 15596151 1777925798684431311 fd3888aa7ca9778df50390896cce6318 2 o/da8bf749420ef1065612c05b8ed536b3/raygui.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +6268 15568152 1777922721698272920 f23d0597dbe24fbef0b9db0a6a912bdb 1 include/float.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1516 11023891 1776766428000000000 046e6949e60c5229cc0f25afa40a0c7d 0 /usr/include/bits/stdlib-bsearch.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +34258 11024114 1776766428000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +381 11023928 1776766428000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11023930 1776766428000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11023927 1776766428000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11023926 1776766428000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11023925 1776766428000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11023948 1776766428000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11023935 1776766428000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11023890 1776766428000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +5599 11023887 1776766428000000000 e430a87e8deadc82d69f0f011fb6ea3e 0 /usr/include/bits/stdio.h +21266 11024117 1776766428000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11024118 1776766428000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +10969 11023996 1776766428000000000 dd17390845739df8331656ac5a17ef8e 0 /usr/include/ctype.h +20199 15592238 1777923927282426471 f594338f23ce56591d8032c04431a84a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_rect_pack.h +6841 11023755 1776766428000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +199176 15592239 1777923927282426471 db1ca3cdcf9606efbbb14aa8bbde39c4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_truetype.h +15326 11024213 1776766428000000000 dd0cebc61fc90f380c881a1cbd85230a 0 /usr/include/time.h +3331 11023919 1776766428000000000 d088285f55f90486f8680c7de68e427d 0 /usr/include/bits/time.h +6203 11023923 1776766428000000000 ccfa5c0039c1ddbdb09c6db5d1922cc3 0 /usr/include/bits/timex.h +760 11023970 1776766428000000000 3cf515d0336ee94d22cc413b45febc49 0 /usr/include/bits/types/struct_tm.h +288 11023951 1776766428000000000 2de06c14c40bd39deaf2f372dace4ac7 0 /usr/include/bits/types/struct_itimerspec.h +557459 15592112 1777923927256426522 2ee4da35738ca3fd429e246ffcc4e963 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glad.h +27519 15568253 1777922721701272909 1bf965d23c79a082ac103b8d4944724e 1 include/stdint.h +8268 11024113 1776766428000000000 07868a6486476f79d1af8befa09ff966 0 /usr/include/stdint.h +1906 11023987 1776766428000000000 eb31012558f3028fc2c3c0def47ccc8a 0 /usr/include/bits/wchar.h +1049 11023885 1776766428000000000 df8b58b124e95d233ec646186fc72d07 0 /usr/include/bits/stdint-uintn.h +1305 11023884 1776766428000000000 e13a68eb8203cd6be160c31f99d931f7 0 /usr/include/bits/stdint-least.h +90849 15592263 1777923927287426462 db41cf17388962b34436c4fde7782f23 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raymath.h +22533 15592266 1777923927288426459 cbeefe4aa2ae48eebcd037e4f86c02e6 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rgestures.h +22184 15592264 1777923927287426462 cd673acb0eee1d11118f9c543c1b96ed 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rcamera.h +21703 15592233 1777923927279426477 a147737b6c68b2b89f993a9fe8b5e03b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/sinfl.h +28109 15592232 1777923927279426477 9a39a8073b251d465d23f4f98d4d0e0b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/sdefl.h +3794 15568174 1777922721699272917 42f44f0344ca976c19820ae587ff2c10 1 include/limits.h +5839 11024036 1776766428000000000 93606ee9e7d5800ac5b8e3efedd3f157 0 /usr/include/limits.h +5198 11023832 1776766428000000000 a6dd17f359e45199ea5666f65b1113a6 0 /usr/include/bits/posix1_lim.h +3175 11023807 1776766428000000000 b08b1c7bc1b5a70132a5b8b175b8c0db 0 /usr/include/bits/local_lim.h +937 8943972 1770625897000000000 65da8eafce628e0f5da011204e471ee0 0 /usr/include/linux/limits.h +1214 11023840 1776766428000000000 2fe7b4205802733911a5efa9b71bb5e6 0 /usr/include/bits/pthread_stack_min-dynamic.h +2867 11023833 1776766428000000000 7d8aa86701e9a380845c5cd8a669e984 0 /usr/include/bits/posix2_lim.h +3858 11023992 1776766428000000000 6056c22530b9b6e43d3215eee277a553 0 /usr/include/bits/xopen_lim.h +1385 11023977 1776766428000000000 59219f4f906088fd1473df647db44849 0 /usr/include/bits/uio_lim.h +11631 15592231 1777923927279426477 e20f072c356800ba394b5b82e64a3a40 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/rprand.h +45053 11024218 1776766428000000000 61decd3126c9fca1538df8298cac1894 0 /usr/include/unistd.h +5910 11023834 1776766428000000000 3ab8ab6e5779785e032604f1768b415c 0 /usr/include/bits/posix_opt.h +3791 11023770 1776766428000000000 e918da89dc6f1bc95caac7b9e99e3ccc 0 /usr/include/bits/environments.h +23828 11023761 1776766428000000000 9cf65881ab165e5e8e291a2f7fcd0a71 0 /usr/include/bits/confname.h +1810 11023789 1776766428000000000 996cb3fd9509868b01621c74e4a86ade 0 /usr/include/bits/getopt_posix.h +3667 11023787 1776766428000000000 ac9188a8d7cc4aac4ca3ac108e99f032 0 /usr/include/bits/getopt_core.h +2035 11023980 1776766428000000000 0cb61ab97cf5643355f3236fdfb9904c 0 /usr/include/bits/unistd_ext.h +377 8943771 1770625897000000000 7ed06359dec8788b24849d80d4e70c9a 0 /usr/include/linux/close_range.h +13793 11024176 1776766428000000000 9f12c6bf198df3a88c2d747996baf030 0 /usr/include/sys/stat.h +2231 11023878 1776766428000000000 eeced79f6a58db284452746e269ed387 0 /usr/include/bits/stat.h +6210 11023899 1776766428000000000 2fe01a59de528f1892df1bc5eef7c7cc 0 /usr/include/bits/struct_stat.h +1400 11023882 1776766428000000000 2002a64c42584c7d184facbe3d81a350 0 /usr/include/bits/statx.h +7838 8944322 1770625897000000000 c0813c1096a17ee5a243bf75dcb7977a 0 /usr/include/linux/stat.h +1829 8944384 1770625897000000000 64ed48c0a52d7d50d7685f6332d61a80 0 /usr/include/linux/types.h +31 8943632 1770625897000000000 748039e47be584104c75dc853bfee6d8 0 /usr/include/asm/types.h +233 8943572 1770625897000000000 ff35ee9081c54a4556677db7b6ac43bd 0 /usr/include/asm-generic/types.h +864 8943546 1770625897000000000 de8f38f0cdc81bf3a5b301889f3dc586 0 /usr/include/asm-generic/int-ll64.h +321 8943578 1770625897000000000 426fd8fd87f0a7222c2d8dc0b1c11a1e 0 /usr/include/asm/bitsperlong.h +1092 8943539 1770625897000000000 ea09d2bd626e1051f84d4ecee37ba039 0 /usr/include/asm-generic/bitsperlong.h +1098 8944239 1770625897000000000 d50b3f49c69b44a5ecd1f232af677d5e 0 /usr/include/linux/posix_types.h +2135 8944323 1770625897000000000 7f1dcecb733611ba8bc38c8fa69c11bb 0 /usr/include/linux/stddef.h +224 8943606 1770625897000000000 d200bb7a30c7371a4580f935befe5542 0 /usr/include/asm/posix_types.h +609 8943608 1770625897000000000 45284a1e84848c31de23d3bd515534ee 0 /usr/include/asm/posix_types_64.h +2420 8943556 1770625897000000000 27c6e0a2b3849c0a9a5f71c86e17deb5 0 /usr/include/asm-generic/posix_types.h +2409 11023881 1776766428000000000 1ca18c39930458d2b106898c1f1ed517 0 /usr/include/bits/statx-generic.h +1202 11023966 1776766428000000000 adf1f98ff50dc6da3f9c81c1f7718940 0 /usr/include/bits/types/struct_statx_timestamp.h +2248 11023965 1776766428000000000 13e0688c779dbc994826255da64ed106 0 /usr/include/bits/types/struct_statx.h +12617 11023997 1776766428000000000 f18eaf57a7b514f3b577f9f5a6bc2d33 0 /usr/include/dirent.h +1771 11023763 1776766428000000000 23e0e14a4e8b16a68e0bc2941bc51c70 0 /usr/include/bits/dirent.h +1275 11023764 1776766428000000000 05d55b8f8aff261c558e2bf919c00c3e 0 /usr/include/bits/dirent_ext.h +93702 15592247 1777923927284426468 9bce58225fa3dedb03ed4cab5c2b195a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/platforms/rcore_desktop_glfw.c +241826 15592156 1777923927261426513 86501dc510331da26275322e654ec46a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3.h +417 15568047 1777922721690272950 d2edf43390585163b0f70c6bd1d7e3b7 1 include/__stddef_header_macro.h +717 15568052 1777922721690272950 81288588f2bdd7ac4f213fa113429ef2 1 include/__stddef_ptrdiff_t.h +708 15568051 1777922721690272950 04b70454bf7cdd0c492cfaf134f95be7 1 include/__stddef_offsetof.h +9164 11024185 1776766428000000000 d2e1b3053beaf053af8a55c6a804fde1 0 /usr/include/sys/time.h +21201 15592157 1777923927261426513 368cd78bfbe5e29e658aa2a5326f9063 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3native.h +99801 11320731 1770539241000000000 f2e7c6c90e11927568ff931d109f936c 0 /usr/include/X11/Xlib.h +20137 7769018 1766144024000000000 382791d667a3393547f807899249bfc0 0 /usr/include/X11/X.h +7946 7769025 1766144024000000000 8a5039c8a7aa3a4eab5f7181393ac108 0 /usr/include/X11/Xfuncproto.h +3115 7769030 1766144024000000000 d53b0559a65c0bcdb77ed0459f1b9976 0 /usr/include/X11/Xosdefs.h +17060 11321897 1769439156000000000 1884746db8290f2b31b7f8451b1cf4b3 0 /usr/include/X11/extensions/Xrandr.h +6909 7769087 1766144024000000000 401965d00acc575149fba334f8bc506d 0 /usr/include/X11/extensions/randr.h +33826 96756 1734163523000000000 cd6d26a1a49037b6952f6ad6add5241b 0 /usr/include/X11/extensions/Xrender.h +21355 11320737 1770539241000000000 52ce1ad0b2c8b33c883e4de9cf2e58fc 0 /usr/include/X11/Xutil.h +2769 7769135 1766144024000000000 0d41ae60a19d8f9ba25f1763119261cc 0 /usr/include/X11/keysym.h +186629 7769136 1766144024000000000 bd52d531f256dfa6f7971ce3c84e5d8b 0 /usr/include/X11/keysymdef.h +6933 7769092 1766144024000000000 f3454f10c8ec914bc2cacc67ae344c58 0 /usr/include/X11/extensions/render.h +2401 7769024 1766144024000000000 8c25483e69b3966a7bf02ad71233d30b 0 /usr/include/X11/Xdefs.h +2518 7769023 1766144024000000000 a6ecf58bbcdb259e383e67043e2a7022 0 /usr/include/X11/Xatom.h +283010 15592234 1777923927280426475 da0de4b77a864a92ca0a84752ae64a25 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image.h +201616 15568149 1777922721698272920 c59721a008a14bf4245225c8d6dd981f 1 include/emmintrin.h +120340 15568276 1777922721702272906 8e35d00e3ce60714ef2dd6312b645f5d 1 include/xmmintrin.h +60004 15568188 1777922721700272913 9d96163416d339553543c8056304615f 1 include/mmintrin.h +1929 15568187 1777922721700272913 b6b5caf8039b8eeb1a472434df3e6037 1 include/mm_malloc.h +76007 15592230 1777923927279426477 a736a10590b842a754f3c9d9bba6437a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/rltexgpu.h +18326 15592228 1777923927278426479 0a1701580c647f7b4f8a424d04ac746d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoi.h +71221 15592236 1777923927282426471 ca3d5f23a730342b4f4dd18653e45db1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image_write.h +17918 15592237 1777923927282426471 2bb87817ffe9d6d6d3187db2bffe388c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_perlin.h +457839 15592235 1777923927281426473 d73e04ebd94264210f8f82aac82d1da4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image_resize2.h +101720 15568245 1777922721701272909 65d276eda8a6b7f54badd06b69b605d7 1 include/smmintrin.h +31927 15568257 1777922721701272909 a94b62300284d904ddd77a8612722040 1 include/tmmintrin.h +11390 15568207 1777922721700272913 af3b468e9f028463cda1ea1862bdd32f 1 include/pmmintrin.h +1948 15568208 1777922721700272913 0d0dc43525f7392cd17b908e07c520a2 1 include/popcntintrin.h +3347 15568148 1777922721698272920 fb37aa3848b11ad0dde9222206788fed 1 include/crc32intrin.h +16632 15568165 1777922721699272917 70963188f6adf02d47abf0e69307e3ce 1 include/immintrin.h +1727 15568274 1777922721702272906 02224c13847552071474f4b8a67094f2 1 include/x86gprintrin.h +1395 15568160 1777922721699272917 fb46b2d83a3e08fdd2816a60bb34c1f4 1 include/hresetintrin.h +5079 15568259 1777922721701272909 17e8211de80c4aedcb92d94180a78574 1 include/uintrintrin.h +1572 15568261 1777922721701272909 090a143fbece0766fad22b1d0a3d99de 1 include/usermsrintrin.h +2073 15568223 1777922721700272913 b7662e91645d1456a47a0baff1a8e60b 1 include/prfchiintrin.h +6748 15568227 1777922721700272913 60e92c0f22c6fd0127612d8d4fb33f1a 1 include/raointintrin.h +2383 15568146 1777922721698272920 3d1c9e6b8d2f63d088f4554226dea82d 1 include/cmpccxaddintrin.h +659 15568273 1777922721702272906 88839041dd2d933a1ceb26cde857faea 1 include/wmmintrin.h +5269 15568058 1777922721690272950 73101524ee05bfb36c066bf9bb6e60d7 1 include/__wmmintrin_aes.h +2036 15568059 1777922721690272950 679b048994ef6e3eb20b4627ae70bbf3 1 include/__wmmintrin_pclmul.h +1193 15568143 1777922721698272920 0a42c930a770c0836dbe4a3703bb4512 1 include/clflushoptintrin.h +1229 15568144 1777922721698272920 c053e392024dcadcb1da23c409ffb040 1 include/clwbintrin.h +201849 15568132 1777922721698272920 b4ccac975fdcf069bc879ccf03d0b80f 1 include/avxintrin.h +192637 15568104 1777922721697272924 215b76cd9cf97075404f4c97c36c24f0 1 include/avx2intrin.h +5524 15568151 1777922721698272920 a8307854b76c9de85b83d9befd78477f 1 include/f16cintrin.h +20350 15568138 1777922721698272920 52d5562b0fcd60ad86d13264e78f569d 1 include/bmiintrin.h +7546 15568137 1777922721698272920 e3a2aaeac7ef1aaf72d32c13e79fabf8 1 include/bmi2intrin.h +3659 15568185 1777922721700272913 da624bb823db719405e0df2f497fd83e 1 include/lzcntintrin.h +29337 15568154 1777922721699272917 37368c2b3ac26685c39d619149a048a5 1 include/fmaintrin.h +392651 15568110 1777922721697272924 417c1f0ac26fce36e4bf57569e3ae768 1 include/avx512fintrin.h +330339 15568123 1777922721698272920 49a5250ddc213c5fcbbde5cef04535e8 1 include/avx512vlintrin.h +77845 15568107 1777922721697272924 52fdf0987ae18302e0e01534ef877cc2 1 include/avx512bwintrin.h +2626 15568106 1777922721697272924 4c8c0fd807ad9e5271cdd15d2977f9d0 1 include/avx512bitalgintrin.h +4327 15568108 1777922721697272924 d60cce9efd3cf6e1817c5b6437e4be3d 1 include/avx512cdintrin.h +2357 15568129 1777922721698272920 6f8315696bf9a22f42ec05d59da5d065 1 include/avx512vpopcntdqintrin.h +3957 15568130 1777922721698272920 abb99a6c6070cfc30e96f19e82cc0bbb 1 include/avx512vpopcntdqvlintrin.h +4428 15568127 1777922721698272920 d65f32b0b2809f1f45646161d119f357 1 include/avx512vnniintrin.h +13736 15568125 1777922721698272920 f0bad1557e9b86244734e891fe49a319 1 include/avx512vlvnniintrin.h +10690 15568136 1777922721698272920 3cc87c685806872776354f4a0b5d2155 1 include/avxvnniintrin.h +60287 15568109 1777922721697272924 b9a24e2c100dbc7ee399c43d96773394 1 include/avx512dqintrin.h +4629 15568118 1777922721697272924 312bc5534b5826436e11de728e563806 1 include/avx512vlbitalgintrin.h +124474 15568119 1777922721697272924 9c4b311057a3d5598fd23dc67c776400 1 include/avx512vlbwintrin.h +8141 15568120 1777922721697272924 d74858c8ea47f20ff9c4092d113ea41c 1 include/avx512vlcdintrin.h +47827 15568121 1777922721697272924 3c73b81ef4b33ba6bcb6714431e09354 1 include/avx512vldqintrin.h +2660 15568112 1777922721697272924 6400d05d435160c1d6d346c344a76086 1 include/avx512ifmaintrin.h +4712 15568113 1777922721697272924 fa03ebe74dbaca356d64dbe640460035 1 include/avx512ifmavlintrin.h +5886 15568131 1777922721698272920 0e78550e483532f19c0908b38276ec64 1 include/avxifmaintrin.h +3920 15568115 1777922721697272924 5700f088b6969618471ef25f630669d0 1 include/avx512vbmiintrin.h +7402 15568116 1777922721697272924 16d47f57484ed296b3e6e1368e704595 1 include/avx512vbmivlintrin.h +13493 15568114 1777922721697272924 b105a7215373b26faee90ebcf9611298 1 include/avx512vbmi2intrin.h +26633 15568124 1777922721698272920 3e9303ac0a4faf37b84922e7f0c7fbac 1 include/avx512vlvbmi2intrin.h +160735 15568111 1777922721697272924 74efdcbf12d39f136d48990ed6247ae4 1 include/avx512fp16intrin.h +87561 15568122 1777922721697272924 f6fd101ffd8ecd06bab96e21091b3f55 1 include/avx512vlfp16intrin.h +10832 15568105 1777922721697272924 f328f474b8b2f7ecd99fc38496b8ba0c 1 include/avx512bf16intrin.h +19922 15568117 1777922721697272924 ae2035290c3da7e9ee66b53aa998e2e8 1 include/avx512vlbf16intrin.h +934 15568206 1777922721700272913 9eec7d1953339f7017502cf78723950d 1 include/pkuintrin.h +1086 15568269 1777922721702272906 637855aacd197db9868d139d6fafe450 1 include/vpclmulqdqintrin.h +2671 15568263 1777922721701272909 57f64f1aed9ee8ed6eca03464494e60c 1 include/vaesintrin.h +9822 15568156 1777922721699272917 220fde0fd70770eba04dde846bdbbef7 1 include/gfniintrin.h +17431 15568135 1777922721698272920 a7d4a6dc8f028f8c7ace573ef994a4d1 1 include/avxvnniint8intrin.h +14432 15568133 1777922721698272920 72cc1449016b76cd7ab84c886811a3e2 1 include/avxneconvertintrin.h +6088 15568239 1777922721701272909 0f30b3a47ff82ec3699c8cd0e40cbc92 1 include/sha512intrin.h +7470 15568242 1777922721701272909 bc67c183035f74d21e316c8ab20ae2f0 1 include/sm3intrin.h +8401 15568244 1777922721701272909 6ab760098261dfe1782c73be8e138705 1 include/sm4intrin.h +16222 15568134 1777922721698272920 682df57b668a75daebe49e56a2f1c645 1 include/avxvnniint16intrin.h +1280 15568235 1777922721701272909 6eab1c6b32be874b9c82a3ff1d2772e6 1 include/rtmintrin.h +873 15568282 1777922721702272906 dcac3c4fb2d9e8fc2e32c099cc2f4a7c 1 include/xtestintrin.h +7660 15568240 1777922721701272909 3ce15406906216d7b4f3b25709fd0765 1 include/shaintrin.h +2890 15568155 1777922721699272917 72e559c6284e7b3e59ece194e6e3e2f1 1 include/fxsrintrin.h +1678 15568279 1777922721702272906 adc179a954bd6419ecb3679e88e76d89 1 include/xsaveintrin.h +1026 15568280 1777922721702272906 5e941b1ef68d3e6e9aa207d5d00dba2f 1 include/xsaveoptintrin.h +2574 15568278 1777922721702272906 83e5e79720328dd0054ce7660005acd2 1 include/xsavecintrin.h +1268 15568281 1777922721702272906 51ebe3f93e82afad00bcea35da340569 1 include/xsavesintrin.h +3351 15568141 1777922721698272920 940fdc9a595824a3546eb2d73c351f8f 1 include/cetintrin.h +5565 15568060 1777922721690272950 c17718c6485c7659e7890a4cbab75219 1 include/adcintrin.h +3447 15568061 1777922721690272950 a7ca4b601933a32c4855f0ec1ceb8b73 1 include/adxintrin.h +2919 15568229 1777922721701272909 9ba44bec7d615d70d29c2cf49efd2fd9 1 include/rdseedintrin.h +749 15568272 1777922721702272906 ab03b0b2ec3b24b5c381d040fbd5d3f3 1 include/wbnoinvdintrin.h +1207 15568142 1777922721698272920 faf0346a1135a650caebf7c0fa660e06 1 include/cldemoteintrin.h +1357 15568270 1777922721702272906 c29665f4ae7d08f40fdba4bdf3c59fcb 1 include/waitpkgintrin.h +1612 15568190 1777922721700272913 361388a1deda89bbc5200844d0aec7a4 1 include/movdirintrin.h +2025 15568193 1777922721700272913 0f19f76e900e332d57533e05989a2a0c 1 include/movrsintrin.h +7036 15568192 1777922721700272913 2c6fb76c226fac69586d6e93c0fd3908 1 include/movrs_avx10_2intrin.h +3973 15568191 1777922721700272913 19680bd74186f6c0adedde41e57f21e1 1 include/movrs_avx10_2_512intrin.h +1216 15568205 1777922721700272913 b3205c333672913fc7c8acc26dfb5304 1 include/pconfigintrin.h +1816 15568238 1777922721701272909 4814b5f568d79fe0a3ff9a01056fa17b 1 include/sgxintrin.h +1076 15568226 1777922721700272913 3fae1e12e188144704082b5c0de48a7f 1 include/ptwriteintrin.h +764 15568169 1777922721699272917 c4f35c928a775df7195a03f0d5411aff 1 include/invpcidintrin.h +17973 15568171 1777922721699272917 0b48ddfbbe168ffd50b79789be908d2a 1 include/keylockerintrin.h +20304 15568071 1777922721691272946 3381fed3b944ecfc74f30d27ff094bca 1 include/amxintrin.h +3327 15568068 1777922721691272946 f1e5420b9d7fe9febe794a24e96e4ce9 1 include/amxfp16intrin.h +6933 15568066 1777922721691272946 78b4f2aa1cf1c0239e304a1f474331d0 1 include/amxcomplexintrin.h +8839 15568070 1777922721691272946 5ccf1e3f33ad6379d2a262f4438cd502 1 include/amxfp8intrin.h +10853 15568076 1777922721691272946 7921f0f126779340730c078d6b3c9997 1 include/amxtransposeintrin.h +2290 15568072 1777922721691272946 5f7e30d92bb23f379ce740ff06bde41f 1 include/amxmovrsintrin.h +9402 15568073 1777922721691272946 6fa922cc643f704d9fa08f0cce57fd0b 1 include/amxmovrstransposeintrin.h +12986 15568064 1777922721691272946 107cbdc06513520aa9e4e158e3f6c491 1 include/amxavx512intrin.h +3562 15568074 1777922721691272946 fd05d9e0127721d899581134b681ca3c 1 include/amxtf32intrin.h +3643 15568075 1777922721691272946 55a73f65dcb801b11b24e97984ccedb0 1 include/amxtf32transposeintrin.h +3525 15568065 1777922721691272946 52d2749a270864e796b43cc5ee738a7f 1 include/amxbf16transposeintrin.h +3525 15568069 1777922721691272946 42f3593c062932dfe44c29ecf4283afb 1 include/amxfp16transposeintrin.h +12061 15568067 1777922721691272946 3ac118b8b4568263387fa6cc9c6d757d 1 include/amxcomplextransposeintrin.h +3102 15568128 1777922721698272920 731bbd34cb220f83027d2d1b60e5b916 1 include/avx512vp2intersectintrin.h +4782 15568126 1777922721698272920 380ed65ce4ea2eb042a085a39a69d79e 1 include/avx512vlvp2intersectintrin.h +44658 15568097 1777922721696272928 faca47b99e2b7dd009773fe525926cad 1 include/avx10_2bf16intrin.h +108821 15568098 1777922721696272928 fb976c4700d15c22d82fec385805cc26 1 include/avx10_2convertintrin.h +2410 15568099 1777922721696272928 10419d2bc12d8a9878d0e2866a79b6ed 1 include/avx10_2copyintrin.h +13680 15568100 1777922721696272928 3b54fb6f688ef31b5b288d68add52055 1 include/avx10_2minmaxintrin.h +17003 15568101 1777922721696272928 21161b694449a0ad9ec0ff4fd45c5338 1 include/avx10_2niintrin.h +15253 15568102 1777922721696272928 b54db7027b0759bf2c6e98812c65825d 1 include/avx10_2satcvtdsintrin.h +18140 15568103 1777922721696272928 90423834c7a102028a91b8ed880457bd 1 include/avx10_2satcvtintrin.h +23410 15568091 1777922721696272928 95bee4d483b52e84460e33e248d24b78 1 include/avx10_2_512bf16intrin.h +13192 15568092 1777922721696272928 b29bf6fb9e659842d31f4be78f82b58a 1 include/avx10_2_512convertintrin.h +7526 15568093 1777922721696272928 e922b6ff2d475a67b2edd396292f7078 1 include/avx10_2_512minmaxintrin.h +14039 15568094 1777922721696272928 706c14e292a7064003c3a9554b34d98d 1 include/avx10_2_512niintrin.h +13799 15568095 1777922721696272928 9a37b5547f48ae1333e9109ba36c0502 1 include/avx10_2_512satcvtdsintrin.h +16999 15568096 1777922721696272928 cc3b16d0b0f0630231d148f1376082d1 1 include/avx10_2_512satcvtintrin.h +1195 15568243 1777922721701272909 415f4786cb23f5ee37699dc6b7eff360 1 include/sm4evexintrin.h +2167 15568150 1777922721698272920 6e887392f50e32d2c4bc3eb4ca4e4def 1 include/enqcmdintrin.h +881 15568237 1777922721701272909 de461f45e00eb8aa42c96123bef0f9a0 1 include/serializeintrin.h +2015 15568258 1777922721701272909 d9bd2435957a5e62c538d80aea562772 1 include/tsxldtrkintrin.h +45680 15592241 1777923927283426469 eb116170525d41104424990ac7adcf2f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/tinyobj_loader_c.h +1679 11024003 1776766428000000000 abb7aa3ce3560985cdcc5222002abe0a 0 /usr/include/errno.h +1426 11023773 1776766428000000000 f5901b3b5db0a666bc76fe7ac755756b 0 /usr/include/bits/errno.h +23 8943817 1770625897000000000 0e9514526df5411989c0921d62c34bb0 0 /usr/include/linux/errno.h +31 8943586 1770625897000000000 303204c8e8dd5d0b26a8bbfede43c812 0 /usr/include/asm/errno.h +5648 8943542 1770625897000000000 8becdc7faaf464f4f03c90038b9730e0 0 /usr/include/asm-generic/errno.h +1612 8943541 1770625897000000000 9e53730016da2684ae9a8bb2284166de 0 /usr/include/asm-generic/errno-base.h +894 11023936 1776766428000000000 21d9a2571870c420b53485fe487743c5 0 /usr/include/bits/types/error_t.h +205754 15592105 1777923927253426528 5d2f236b6f6ef5d9a1b295fd3d1846d5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/cgltf.h +19659 15592242 1777923927284426468 6f6765d6e719e243ad70cc22023392da 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/vox_loader.h +306683 15592223 1777923927268426499 15241acfe0a45badbe1236db00c6ea81 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/m3d.h +72865 15592225 1777923927278426479 9dc0644bac4164f220adfabe1352af5b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/par_shapes.h +293735 15590661 1777923923667433573 7cfda270441ca39c49b2e81410b1effb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/src/raygui.h +14504 15592172 1777923927262426511 b27f6b3bb53bc837cf7ea3290ce6416e 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/init.c +35817 15592174 1777923927262426511 f72e6da24b2e8dc2c561d4faf974a05c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/internal.h +6421 15592189 1777923927264426507 9430a43cbffb7932dc5ccfe1bf2d0807 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/platform.h +11827 15592185 1777923927264426507 4beac7be71da25898297d83d4e922499 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/null_platform.h +44741 15592217 1777923927266426503 6868a25f2f702569928920058ddd21bf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_platform.h +13045 11024108 1776766428000000000 efc9e225e109bb08a8dec4661ace2e4c 0 /usr/include/signal.h +3313 11023866 1776766428000000000 c7b07d26fe58fc7ceff1ae4edad8acd6 0 /usr/include/bits/signum-generic.h +2580 11023865 1776766428000000000 500defef7a2bd9a9e56449a3aea3b0f9 0 /usr/include/bits/signum-arch.h +272 11023942 1776766428000000000 52033494d2efb18f3ae4d42d90be994c 0 /usr/include/bits/types/sig_atomic_t.h +3892 11023944 1776766428000000000 9f30a8a17236994ddab5a49513bee1c1 0 /usr/include/bits/types/siginfo_t.h +1148 11023932 1776766428000000000 cef99022964de0d2a9bb4a66335a242a 0 /usr/include/bits/types/__sigval_t.h +729 11023860 1776766428000000000 732ba145bdaaec5752d3851d994fb038 0 /usr/include/bits/siginfo-arch.h +7537 11023862 1776766428000000000 4397eb5131c9e02a702340cc690db708 0 /usr/include/bits/siginfo-consts.h +204 11023861 1776766428000000000 070bf764547621a5cbd9eca15e56bf40 0 /usr/include/bits/siginfo-consts-arch.h +599 11023946 1776766428000000000 9a9be4e0a7b8d98d52679616ab1b7362 0 /usr/include/bits/types/sigval_t.h +1204 11023943 1776766428000000000 ab141640b4254a15993e20837b92ffa9 0 /usr/include/bits/types/sigevent_t.h +1471 11023859 1776766428000000000 2763ca41204119b32bf53713071bb096 0 /usr/include/bits/sigevent-consts.h +2935 11023857 1776766428000000000 abb4550dd27d1f45d7bd71b5a552f386 0 /usr/include/bits/sigaction.h +4266 11023858 1776766428000000000 8e4aadcbffc06002a69da0003c1793a1 0 /usr/include/bits/sigcontext.h +1062 11023947 1776766428000000000 3418e41d444a3efa09c1989618745709 0 /usr/include/bits/types/stack_t.h +5842 11024193 1776766428000000000 3850964a3dfeecfdf8d6341ce10a867b 0 /usr/include/sys/ucontext.h +1168 11023867 1776766428000000000 8d25e4dc4342ca228643759acadb8af6 0 /usr/include/bits/sigstack.h +1283 11023868 1776766428000000000 3177a841d4601f625a64ad164ae45250 0 /usr/include/bits/sigstksz.h +1188 11023876 1776766428000000000 0a23e9e025646d8d7930c5f34b481456 0 /usr/include/bits/ss_flags.h +1073 11023964 1776766428000000000 6ec7e47258c49e849f75f41527e676a0 0 /usr/include/bits/types/struct_sigstack.h +1692 11023869 1776766428000000000 bc31047fff5a76a10c2880762a977d27 0 /usr/include/bits/sigthread.h +1285 11023863 1776766428000000000 368ef36453d66bf3b3d3595424daf7ac 0 /usr/include/bits/signal_ext.h +10628 11320736 1770539241000000000 9b0233263c20c2e8be88d5e81fbf2202 0 /usr/include/X11/Xresource.h +13200 11322026 1730878554000000000 3e56a893977bb933a42f01ba8765a1e8 0 /usr/include/X11/Xcursor/Xcursor.h +30994 11320728 1770539241000000000 658cd959aab5d6441ea7ca46bbfcb740 0 /usr/include/X11/XKBlib.h +19697 7769051 1766144024000000000 1231e8955febccf3c025770c66a93818 0 /usr/include/X11/extensions/XKBstr.h +28212 7769048 1766144024000000000 6a2dd9db6376855e6a13ac1dc2254091 0 /usr/include/X11/extensions/XKB.h +1964 11321922 1769438631000000000 8307bc8fd193fbd4b22c24a07b9e56ad 0 /usr/include/X11/extensions/Xinerama.h +21969 11321939 1725514872000000000 f898f73ab9f0b0455f75ad7e86f933d4 0 /usr/include/X11/extensions/XInput2.h +11151 7769045 1766144024000000000 f4e9b097c0ff2c41507c68b4960a37cb 0 /usr/include/X11/extensions/XI2.h +1928 8741105 1769438528000000000 4e4a900ecc48c6c5eaaadb164d67df47 0 /usr/include/X11/extensions/Xge.h +7750 4242540 1756837749000000000 0d98a55dff8c00f367e9aece0d0a1143 0 /usr/include/X11/extensions/Xfixes.h +5924 7769123 1766144024000000000 b5e9bd0eec3d3c1748a593e505171a71 0 /usr/include/X11/extensions/xfixeswire.h +4132 8741110 1769438528000000000 8aaad0750a17168ab35987a0fd39ecf0 0 /usr/include/X11/extensions/shape.h +1878 7769098 1766144024000000000 104206d1aae79c53870ed605be13e54f 0 /usr/include/X11/extensions/shapeconst.h +1288 15592220 1777923927267426501 e581c6e4cdd807e79c0a665fc1bb619f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/xkb_unicode.h +1292 15592192 1777923927264426507 c453ea96e91669ea925c8bfb93fe5bb7 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_poll.h +22 11024084 1776766428000000000 0ea58fcbabea8c4434197b25c0da0032 0 /usr/include/poll.h +3030 11024151 1776766428000000000 fdfc712b78cbcaa0020d4464fb281b64 0 /usr/include/sys/poll.h +2076 11023830 1776766428000000000 d4de1743efaa71a7637fb37b349b20f7 0 /usr/include/bits/poll.h +1424 15592183 1777923927263426509 9ae4151868a02c1a8ea9749672383fb1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/null_joystick.h +2322 15592176 1777923927262426511 a5affdc2a0143346be41f93f566b6938 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/linux_joystick.h +16913 8943925 1770625897000000000 19cc0a8c96115bd0b4fbe906dc1f6915 0 /usr/include/linux/input.h +2032 11024137 1776766428000000000 cbe6601caeaa9849483d92383653843e 0 /usr/include/sys/ioctl.h +1005 11023798 1776766428000000000 38935023d2f5efc233bbd63192a23f93 0 /usr/include/bits/ioctls.h +32 8943591 1770625897000000000 1014a0ae33d0bed260382fbd3c912982 0 /usr/include/asm/ioctls.h +3987 8943548 1770625897000000000 d4ce71e9aa1f00a5b67c8b21b6a30d5b 0 /usr/include/asm-generic/ioctls.h +163 8943932 1770625897000000000 9a139ff78a7a978a13a83c0722fc021d 0 /usr/include/linux/ioctl.h +31 8943590 1770625897000000000 5f11f2dd8e479e58c3cf546e72403770 0 /usr/include/asm/ioctl.h +3518 8943547 1770625897000000000 4b7aa229557b073687359ca327709a32 0 /usr/include/asm-generic/ioctl.h +6846 8944315 1770625897000000000 d2b055f7283492c05492a5924f94aec4 0 /usr/include/linux/sockios.h +33 8943625 1770625897000000000 ddabb13f9fd87bf61e5f15f7a99b4729 0 /usr/include/asm/sockios.h +447 8943565 1770625897000000000 e503e15c8b0357f68274467ba5f06da4 0 /usr/include/asm-generic/sockios.h +2089 11023797 1776766428000000000 93897a02d50af887190f5248a717605e 0 /usr/include/bits/ioctl-types.h +3568 11024191 1776766428000000000 7fd74c28a21229e87ba5588cee27bd8c 0 /usr/include/sys/ttydefaults.h +31350 8943924 1770625897000000000 7eb002eb71a3e9a208ffc627561eda0b 0 /usr/include/linux/input-event-codes.h +25940 11024095 1776766428000000000 d3d9037b10d420aa0b919ad6d97bdab1 0 /usr/include/regex.h +1674 15592194 1777923927264426507 4c75518582750b9acebe3f524a3ea420 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_thread.h +48570 11024091 1776766428000000000 df73001c3d08af59a57b790c20f13f2a 0 /usr/include/pthread.h +5043 11024099 1776766428000000000 e6a51b852746c12c94ed682ec128431b 0 /usr/include/sched.h +5952 11023847 1776766428000000000 0926186d78c26fdbfea09ab846c93da9 0 /usr/include/bits/sched.h +4558 8944287 1770625897000000000 13cfeea4f632939bde4c2db64ec930ff 0 /usr/include/linux/sched/types.h +1073 11023957 1776766428000000000 fd5bfcedcccd0699759e0e9b4b5f31d2 0 /usr/include/bits/types/struct_sched_param.h +4516 11023762 1776766428000000000 eab9f52a0722cf3bd47401680264c9bd 0 /usr/include/bits/cpu-set.h +1287 11023853 1776766428000000000 81b3c862d757d31fa9585485df82c1f6 0 /usr/include/bits/setjmp.h +1467 11023949 1776766428000000000 c65b4aa95fccac40bd98fee3ba150e60 0 /usr/include/bits/types/struct___jmp_buf_tag.h +1489 15592196 1777923927264426507 d9c9c16faccc333851fa1d1a1a9c0e0f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_time.h +6332 15592188 1777923927264426507 e46b39fefa824d3bef7915a22a3cbeab 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/platform.c +25760 15592168 1777923927262426511 91513c3fe4d6179408927b6f25a20e31 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/context.c +15194 15592179 1777923927263426509 cc2653c900eea5854d3118df97d564cc 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/monitor.c +35148 15592210 1777923927265426505 371ef2deaaf656211c21bd031730bc45 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/window.c +41395 15592173 1777923927262426511 fd2bdc39d9a0f3e9cbdf4151a429af0b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/input.c +504825 15592177 1777923927263426509 e792314d005187ea839d8a118bf5a826 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/mappings.h +11947 15592197 1777923927264426507 a6026f9e8a003c782bd514b578ed47fb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/vulkan.c +1816 15592190 1777923927264426507 becad53c5bcd77daf7f13b36a669ff80 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_module.c +8794 11023998 1776766428000000000 1e941a0fcec84e68e593320606a258d5 0 /usr/include/dlfcn.h +2521 11023766 1776766428000000000 ce423e8702be28530185e4b09b199fdf 0 /usr/include/bits/dlfcn.h +1119 11023765 1776766428000000000 212bcf73af743c3898fdc9ef533a0cbf 0 /usr/include/bits/dl_find_object.h +3245 15592193 1777923927264426507 6da2432577062b037d05bf9685421152 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_thread.c +2206 15592195 1777923927264426507 f4c2594a47b4f565719a8a5a9f0a444c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_time.c +3044 15592191 1777923927264426507 34fbca07f16ff7c4f5d37b58374af726 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_poll.c +12404 15592175 1777923927262426511 ebe2a4724621dc831b6c06e12f74d4d5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/linux_joystick.c +3901 11024135 1776766428000000000 51573e40baf39611dae19b6b79da6b5a 0 /usr/include/sys/inotify.h +1080 11023796 1776766428000000000 23db2031318a86cc91c8de94ba8271de 0 /usr/include/bits/inotify.h +11458 11024006 1776766428000000000 6761c01cab1e7a637ff70b712787863d 0 /usr/include/fcntl.h +2246 11023779 1776766428000000000 230f6d44354f98fab2643bb2fe61a31c 0 /usr/include/bits/fcntl.h +15826 11023778 1776766428000000000 a89c09049a7837aa75452e239a5650fd 0 /usr/include/bits/fcntl-linux.h +1066 11023950 1776766428000000000 930adb19f5f9cbc3933b958f4a1e5ffa 0 /usr/include/bits/types/struct_iovec.h +4477 8943829 1770625897000000000 cb9419cc89a7af265a184c1f6f002f00 0 /usr/include/linux/falloc.h +1450 8944213 1770625897000000000 dfc953efad59381f85cedbcaf15d1f22 0 /usr/include/linux/openat2.h +2041 11023826 1776766428000000000 7fb288a7769cdc7b7a64bda1f15cccd2 0 /usr/include/bits/openat2.h +22943 15592219 1777923927267426501 61daf1865cea794f6fe989a933855d52 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/xkb_unicode.c +29639 15592169 1777923927262426511 1a0561496727613edebd464a7417f6c3 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/egl_context.c +11935 15592187 1777923927264426507 4c3e6494b0bcc0aee47c28a18bda9100 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/osmesa_context.c +70569 15592215 1777923927266426503 95309a7537992a74bb2bc4bf449110d0 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_init.c +7675 11024038 1776766428000000000 f38e3af658cf4e4d245a435a9a10f0a0 0 /usr/include/locale.h +1368 11023808 1776766428000000000 a15e215b176aca549a08eeec063be072 0 /usr/include/bits/locale.h +20136 15592216 1777923927266426503 fb57e4d2291d8c29f447b0cda750a942 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_monitor.c +106419 15592218 1777923927267426501 71a3c2a523df63f5cb929d61fe0824c3 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_window.c +3118 11320738 1770539241000000000 49c18fff52345f9fbca72361b14cde5c 0 /usr/include/X11/cursorfont.h +5236 7769027 1766144024000000000 d1fbdb8a1a35d2391ee2c34805ef3f1e 0 /usr/include/X11/Xmd.h +23690 15592171 1777923927262426511 38704d9b41375b7557c5fe54e0e4eb99 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/glx_context.c +4107565 15592224 1777923927276426483 40a300c8571017a8213fcc665a614206 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/miniaudio.h +40129 11024224 1776766428000000000 846d60b8884553e61b200835c9192db4 0 /usr/include/wchar.h +796 11023973 1776766428000000000 eee748e39eee0c3ba0222f7d0a22f5bb 0 /usr/include/bits/types/wint_t.h +135 11023939 1776766428000000000 88a8626270b2c135f6fae239597f3050 0 /usr/include/bits/types/mbstate_t.h +1400 11024128 1776766428000000000 2f0c7eff02f27ac2b7f317551e29ec48 0 /usr/include/sys/eventfd.h +1129 11023776 1776766428000000000 1529b91466df4e72721b7951edd4ed3e 0 /usr/include/bits/eventfd.h +364560 15592110 1777923927256426522 aa3f7a4e5ed2aea4a1ec6c90429905d4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/dr_wav.h +192790 15592240 1777923927283426469 890c281f1c8cc1ed210397614a0eb43c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_vorbis.c +206600 15592109 1777923927255426525 8a111acae971c169c181fb95f0bbb828 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/dr_mp3.h +23845 15592226 1777923927278426479 f136d45fb944c980c3798c30d5d3d443 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoa.h +10241 15592227 1777923927278426479 737b9fb56af4b423417c98b7fd85a98b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoaplay.c +102215 15592222 1777923927267426501 87feda682bd5df29026e59540130ea22 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/jar_xm.h +51996 15592221 1777923927267426501 7826726113566a1ac41845859112fa61 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/jar_mod.h diff --git a/.zig-cache/h/123b7363bcef2053cd44593ee7d4cebf.txt b/.zig-cache/h/123b7363bcef2053cd44593ee7d4cebf.txt new file mode 100644 index 0000000..cb28c33 --- /dev/null +++ b/.zig-cache/h/123b7363bcef2053cd44593ee7d4cebf.txt @@ -0,0 +1,830 @@ +0 +687 15621640 1777936676926911871 71bc21dd5de5c13515012651f2230248 0 src/main.zig +184235 15590296 1777923881918513972 85ad82da3fad2cc8beda806b1ed8bdeb 0 zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/raylib.zig +21780 15588394 1777922722100271428 8372996c7671543c238bcba94bfb7378 1 ubsan_rt.zig +10078942 15618677 1777931228470644734 3cea00fa0fbaf93548f1a94e6df1f53e 2 o/a3694f4287bafd874fd7f54664d82064/libraylib.a +460816 2104748 1749858906000000000 19b59f2a2768926dd4cb35a090cb8868 0 /lib64/libGL.so +1313184 11320745 1770539241000000000 e72e4619f955c3a38211536766b516f4 0 /lib64/libX11.so +47088 11321900 1769439156000000000 da6f4be2e87e2aa16772a75fa6a36f63 0 /lib64/libXrandr.so +14328 11321926 1769438631000000000 621184dc819e1014d93ea9a7f28bdccb 0 /lib64/libXinerama.so +75832 11321942 1725514872000000000 8080cfc6a1c65c31d450aeb5fedf0788 0 /lib64/libXi.so +47048 11322029 1730878554000000000 81c5a9837f418f236c79e736ea7f1e53 0 /lib64/libXcursor.so +25527 15568024 1777922721690272950 8a205f0b1c5732c3190e50f042589dec 1 compiler_rt.zig +10806 15588318 1777922722097271439 8c5b1950a5ebd26914a8e350d73d6999 1 std/std.zig +2525 15587766 1777922722081271498 71e0dabdb301ba10f8ca420941767e70 1 std/BitStack.zig +102991 15587797 1777922722082271495 75827315f3c3585390aebfe0aa119cb6 1 std/Build.zig +4266 15587886 1777922722085271483 16fdba428de22eb1305e855dec42f9a9 1 std/buf_map.zig +4526 15587887 1777922722085271483 8e63f8aad9b21f2cac5dcdcafd975d93 1 std/buf_set.zig +26749 15588047 1777922722090271465 94db977a6517f376d616042aec36c899 1 std/deque.zig +8176 15587798 1777922722082271495 af059436f9aa9ce8410e2a090d402920 1 std/DoublyLinkedList.zig +23691 15588057 1777922722090271465 3804b9a26510c6fe8d6e8e36a68dc482 1 std/dynamic_library.zig +135875 15587827 1777922722083271491 db86574f603d848efccc949d881d7ff4 1 std/Io.zig +46161 15588202 1777922722094271450 56e536443df53290961fcccb0248fae4 1 std/multi_array_list.zig +22225 15588304 1777922722097271439 561ce3400c8ac8d5b974517205c4f0ea 1 std/priority_queue.zig +35249 15588303 1777922722097271439 f30a503fcc87a18b18deced637313484 1 std/priority_dequeue.zig +64903 15587828 1777922722083271491 65a38fafd0d3cb5b25ca2488c18dae3e 1 std/Progress.zig +18069 15587843 1777922722083271491 8d1118eeb93cb6e46910fece65a272b3 1 std/Random.zig +10905 15587844 1777922722084271487 d0732789c7d50ebb4a3644f4b79bfad4 1 std/SemanticVersion.zig +5325 15587845 1777922722084271487 9b3e9e32c95aa2d415f162836c908e22 1 std/SinglyLinkedList.zig +117251 15587877 1777922722085271483 64f19f2a345ce26b80375c5f07d3eb60 1 std/Target.zig +66110 15587878 1777922722085271483 434d2e14ecbcf3813a62db89c218de07 1 std/Thread.zig +24524 15588330 1777922722097271439 1694ad0602c4425ddf33879d415f4ab1 1 std/treap.zig +32908 15587879 1777922722085271483 0effee4fbdb48a21d5a7de6981175d09 1 std/Uri.zig +97347 15587881 1777922722085271483 6e2bf450682db7fe2f70f856e6a69953 1 std/array_list.zig +97238 15587880 1777922722085271483 277386674f342dc4f1bcc7aff33ca523 1 std/array_hash_map.zig +20679 15587883 1777922722085271483 e7807462ad093052a700641168907e85 1 std/atomic.zig +24364 15587884 1777922722085271483 307015c80605830d882c9a9c5a417cb6 1 std/base64.zig +69662 15587885 1777922722085271483 7d9220a12d959c3fbdb0ad5d2dd745a1 1 std/bit_set.zig +43574 15587890 1777922722085271483 9b559f4ead3bbab2ddf320c5d9e35ef8 1 std/builtin.zig +371584 15587902 1777922722086271480 5e032a1afe94597d47a218be0ec20277 1 std/c.zig +77408 15587903 1777922722086271480 80080b1bacb0c8d673dc0bb465cc26e3 1 std/coff.zig +372 15587921 1777922722086271480 b867983786f01e8333e32b633eb10410 1 std/compress.zig +17640 15588317 1777922722097271439 bd79322afba3cc08000a99c21bfd26d7 1 std/static_string_map.zig +14657 15588025 1777922722089271469 ec00cc50efd2df8055faaa18a8b150d4 1 std/crypto.zig +76832 15588046 1777922722090271465 d49109fe127342ca0667bf94eb59fd2f 1 std/debug.zig +4894 15588056 1777922722090271465 61fff94fe737bda88edd8ca624c0a93c 1 std/dwarf.zig +90513 15588058 1777922722090271465 ede53ba4bac041f8a65ea772acae0cf0 1 std/elf.zig +56153 15588059 1777922722090271465 7afe4323fff4ddc8b4fb0b43cb9bf3bc 1 std/enums.zig +58268 15588073 1777922722091271461 642dc1256607ec96b839c549851b2c91 1 std/fmt.zig +729 15588077 1777922722091271461 0215ac7c2c72b37feee794b5911b205e 1 std/fs.zig +4178 15588078 1777922722091271461 55d3b5abd2866f8efe872f7339310a5c 1 std/gpu.zig +4080 15588093 1777922722091271461 571b514d96d7378ef13c8e6325e62ebf 1 std/hash.zig +80547 15588094 1777922722091271461 98d70ba2e89d37b4ed01247687fd83c3 1 std/hash_map.zig +38871 15588103 1777922722092271458 6c2f0da7917bebc86c5cd9528748e166 1 std/heap.zig +39320 15588111 1777922722092271458 3cb1bd9830c559b6288becb2db86fa08 1 std/http.zig +5458 15588124 1777922722092271458 83ba0216673ecfc447f968f67e88f774 1 std/json.zig +4897 15588125 1777922722092271458 7ff89bbb36c1fb140621f1e8fc3862c8 1 std/leb128.zig +7039 15588126 1777922722092271458 c6c6467049074839115f224de558946d 1 std/log.zig +72538 15588127 1777922722092271458 f2001ea91ead4103a9eb9cb995ea88ba 1 std/macho.zig +74865 15588195 1777922722094271450 273f62e9b9f832d5dd38c1402c0a48ed 1 std/math.zig +198145 15588198 1777922722094271450 22953e783cdc7561c4a15182f751d98e 1 std/mem.zig +35008 15588201 1777922722094271450 28f1d6dd4b7d63bc3a3570e9199e8376 1 std/meta.zig +433 15588297 1777922722096271443 74b41a911daaf29c0b0ef736d0df8af9 1 std/os.zig +16798 15588298 1777922722096271443 e6a5612c85472d16e2049377b392e536 1 std/pdb.zig +13777 15588299 1777922722096271443 aee2d674f93679708d83f4bc563d9c31 1 std/pie.zig +60638 15588302 1777922722097271439 91112299d7c1608c1b7c406ef8ca8083 1 std/posix.zig +42615 15588310 1777922722097271439 79697d237229c19709238f38b4dea1ee 1 std/process.zig +39704 15588315 1777922722097271439 204eff1c5332b5ab938ef3e30aac0ff0 1 std/sort.zig +23044 15588311 1777922722097271439 4cb21aacce1e6e69623ab74ec0986ae3 1 std/simd.zig +18221 15587882 1777922722085271483 ba5aad7d300f6596af851529cb14ecec 1 std/ascii.zig +44772 15588322 1777922722097271439 82a4d2308a683c39c74253045d469374 1 std/tar.zig +49967 15588326 1777922722097271439 5985bb10a3df3ffd445cba60cbe8ab90 1 std/testing.zig +1015 15588329 1777922722097271439 0dd8c20d912d8db9104f4b808b86bf8a 1 std/time.zig +10835 15588331 1777922722097271439 9bd3cc2d0b87156ecc92c4873b9f5f96 1 std/tz.zig +84830 15588334 1777922722097271439 a0675cff7ad8bd3379a81efc02f8fb84 1 std/unicode.zig +12292 15588339 1777922722097271439 8757ba546e520503fcc6a58d9b0d0083 1 std/valgrind.zig +17661 15588340 1777922722098271435 a8988138c7ee50f868cd1db24ab3d1d6 1 std/wasm.zig +44987 15588387 1777922722100271428 f86c914b8f81b14502f0d8561b1439b6 1 std/zig.zig +26670 15588388 1777922722100271428 93724928f5f24ae5c14b26c9c2d3ed3f 1 std/zip.zig +1242 15588393 1777922722100271428 c5e5cebc2cfc9353dc65aa5193442b60 1 std/zon.zig +31720 15588316 1777922722097271439 ffd3a427c45dfa3cbc9761a1361d1d3c 1 std/start.zig +60609 15587772 1777922722081271498 75c8c12c985cd8192806ca67e152ab02 1 std/Build/Cache.zig +38981 15587791 1777922722082271495 be5b6a4bf599cf8fb54d6cb84cf21e5a 1 std/Build/Step.zig +26577 15587774 1777922722081271498 98f120af5a4b7824a26104c00a1d4bd1 1 std/Build/Module.zig +43910 15587794 1777922722082271495 a59d963e44dc7302d869d03e948a68a4 1 std/Build/Watch.zig +21695 15587773 1777922722081271498 ad7f7cf87f2d7cecfde3308a9a959c3c 1 std/Build/Fuzz.zig +34965 15587795 1777922722082271495 7b5315aea2d8aae761b704545ca6fd8a 1 std/Build/WebServer.zig +18326 15587796 1777922722082271495 86b3353e10f6891989b87fc619625f26 1 std/Build/abi.zig +778302 15587818 1777922722083271491 4d59b0d04131c010b5f58eb38120fbd9 1 std/Io/Threaded.zig +8949 15587821 1777922722083271491 40de485275e5d9bb6449f34e577313a2 1 std/Io/fiber.zig +184480 15587801 1777922722082271495 051fe407bbf5fa278eb5ba8923864173 1 std/Io/Dispatch.zig +53826 15587809 1777922722082271495 9e4d97b716cad9a064e52a86d622fc34 1 std/Io/Kqueue.zig +224474 15587819 1777922722083271491 8b60359fa3a92d4d6d3abe55a7e324e6 1 std/Io/Uring.zig +87408 15587812 1777922722082271495 9e17e83fad8cb492e5ae4ed460d46786 1 std/Io/Reader.zig +109608 15587820 1777922722083271491 98cc344f10dd258d0b9e9a433b55bb47 1 std/Io/Writer.zig +54298 15587825 1777922722083271491 6c83f2205f839d4830728dcacdc785d4 1 std/Io/net.zig +80457 15587800 1777922722082271495 92155343884f0d4850994d8697afe172 1 std/Io/Dir.zig +26690 15587808 1777922722082271495 7b97a0f8b4be80a0f463b68d50250a5c 1 std/Io/File.zig +5555 15587815 1777922722082271495 f6a7792ba60b33de2cacb4566e345d20 1 std/Io/Terminal.zig +9375 15587813 1777922722082271495 d2e926a1f61d5405b6d47098198f7b8e 1 std/Io/RwLock.zig +1802 15587814 1777922722082271495 6813309428640ae1f7c5714dbb51a16b 1 std/Io/Semaphore.zig +0 15587826 1777922722083271491 82547a8dd7f3efb3f077622e34876868 1 std/Io/test.zig +1811 15587830 1777922722083271491 4f975bd4c885c2b17936c7c15e2a1fa0 1 std/Random/Ascon.zig +2688 15587831 1777922722083271491 64c6fd1bd09becbfb3dca08dd7335a8b 1 std/Random/ChaCha.zig +6100 15587832 1777922722083271491 14fb5367ee7128106466c91abe89d828 1 std/Random/Isaac64.zig +2727 15587833 1777922722083271491 98b129620d81fc551cc2747eb5e93a2d 1 std/Random/Pcg.zig +3242 15587837 1777922722083271491 13e05c7b4ba6bd757c30dbc6e1520198 1 std/Random/Xoroshiro128.zig +3177 15587838 1777922722083271491 ece4176296c0d5a4735a0e13195d3e89 1 std/Random/Xoshiro256.zig +3158 15587835 1777922722083271491 e0b128479f8a117718ec288761f83ac0 1 std/Random/Sfc64.zig +3699 15587834 1777922722083271491 f562dad96707be48e6745a1f57cbf27c 1 std/Random/RomuTrio.zig +530 15587836 1777922722083271491 6862d091fadcbbb652464ab10689bd23 1 std/Random/SplitMix64.zig +4526 15587842 1777922722083271491 8ac3cfca93be2f623ce661fc9fb27686 1 std/Random/ziggurat.zig +600 15587840 1777922722083271491 11504a4d6115814ba14dfe02b3020485 1 std/Random/lcg.zig +0 15587841 1777922722083271491 82547a8dd7f3efb3f077622e34876868 1 std/Random/test.zig +30498 15587847 1777922722084271487 cf7aa2742e3fd138caf72147ec971b51 1 std/Target/Query.zig +115997 15587848 1777922722084271487 bc87bf7bcf6400d24d41b7415b169cc9 1 std/Target/aarch64.zig +2897 15587849 1777922722084271487 a02e557aa365ac787ac2c02b52315ddc 1 std/Target/alpha.zig +108519 15587850 1777922722084271487 a8d3ef24d10efbbb1847d5a2d06fb744 1 std/Target/amdgcn.zig +1274 15587851 1777922722084271487 c251325fefba8d6614a0692c5ceb2eea 1 std/Target/arc.zig +79096 15587852 1777922722084271487 6fb9e355597a9d862f083069aaf2fcd6 1 std/Target/arm.zig +84636 15587853 1777922722084271487 78f08f956d02f181a2fd446cf9402613 1 std/Target/avr.zig +2425 15587854 1777922722084271487 3376bf5f146580e9b3ce5e329a604817 1 std/Target/bpf.zig +77604 15587855 1777922722084271487 be007dfe415760a79fc1d9d7dc89a548 1 std/Target/csky.zig +18058 15587857 1777922722084271487 8ccf22d3bcff20d7636d8251948f4618 1 std/Target/hexagon.zig +4895 15587858 1777922722084271487 b870aa73f7bd666ffa47be26fa7bb580 1 std/Target/hppa.zig +665 15587856 1777922722084271487 1dec26e22b22006cd47d45b427f8a00c 1 std/Target/generic.zig +1881 15587859 1777922722084271487 26256603d875aee0f67f6e2aee670b46 1 std/Target/kvx.zig +1207 15587860 1777922722084271487 2119135642c6ce06557e5005da5d27d3 1 std/Target/lanai.zig +7184 15587861 1777922722084271487 891c7f973054eec39b43f2293eda2bd8 1 std/Target/loongarch.zig +7140 15587862 1777922722084271487 85a640161b5e75f1b0e44aafa7b2ac12 1 std/Target/m68k.zig +17604 15587863 1777922722084271487 404eba23c6a57f7914b92003c464442a 1 std/Target/mips.zig +2227 15587864 1777922722084271487 f424aba074f946c774143fd6a0cc9b02 1 std/Target/msp430.zig +20314 15587865 1777922722084271487 d68d9c5654a2c1114ce6dbc8038ef2f7 1 std/Target/nvptx.zig +35033 15587866 1777922722084271487 af9f967f62c784018632fc7184d14e0c 1 std/Target/powerpc.zig +1396 15587867 1777922722084271487 11966b944c6a6f5eb378759087686f44 1 std/Target/propeller.zig +108921 15587868 1777922722084271487 ff74cb05f762242da93430e2a04837df 1 std/Target/riscv.zig +32139 15587869 1777922722084271487 b9dcac5eace647b63bda3d9c524dc034 1 std/Target/s390x.zig +22391 15587870 1777922722084271487 5f74d7b977102ace4820a6def358a7ae 1 std/Target/sparc.zig +5037 15587871 1777922722084271487 7a802abba56de166296a02820267f278 1 std/Target/spirv.zig +1276 15587872 1777922722084271487 320e5694ddc1e4347015e29952472e47 1 std/Target/ve.zig +6517 15587873 1777922722084271487 1babc8b342fb599193f79f08f76e9463 1 std/Target/wasm.zig +138177 15587874 1777922722084271487 f5c6a3aff25f10c1b8c51ce82ffbb5b4 1 std/Target/x86.zig +1234 15587875 1777922722084271487 9977314bd28dc12c6017784ed96cc578 1 std/Target/xcore.zig +8826 15587876 1777922722085271483 8d42978afbcc85d87e2e98c0a9676a9b 1 std/Target/xtensa.zig +84368 15587889 1777922722085271483 a8bf92242607060c62d642acae8086b7 1 std/builtin/assembly.zig +56465 15587894 1777922722085271483 75c3bc60568091a9ea5edc5bc57ed38a 1 std/c/darwin.zig +17769 15587896 1777922722085271483 e2b778ddd3253970afd02693aed8fd0f 1 std/c/freebsd.zig +13639 15587898 1777922722085271483 de6d72b9cc43ab0645c64780d8e547e5 1 std/c/illumos.zig +12071 15587899 1777922722085271483 b48c05a0bd047e3f2341dbbd8767c1e7 1 std/c/netbsd.zig +8189 15587895 1777922722085271483 31ff648d6f4d2a8a32e4f989005450dc 1 std/c/dragonfly.zig +11736 15587897 1777922722085271483 faf314e053e5b99c66ad05c0570b73e0 1 std/c/haiku.zig +17047 15587900 1777922722085271483 76c2f77ef2816a7f0b4efa24425f0619 1 std/c/openbsd.zig +4446 15587901 1777922722085271483 69f4fd8d8726dca0e21d271d871ac1ad 1 std/c/serenity.zig +5846 15587909 1777922722086271480 37e8d751c7e895b6336511502160706a 1 std/compress/flate.zig +24222 15587912 1777922722086271480 5af5ea9ae660ca1a5c5e59ca3412c7cf 1 std/compress/lzma.zig +8172 15587913 1777922722086271480 3e50158bc60e46aae6beac631af863e1 1 std/compress/lzma2.zig +95 15587917 1777922722086271480 f5a4e96de879e27f05973ae987231c97 1 std/compress/xz.zig +7266 15587920 1777922722086271480 0d0abcd9f7d011ccda93bfe73d0b7e1a 1 std/compress/zstd.zig +10377 15588021 1777922722089271469 6a102711f65e65c4fd8596a251e151de 1 std/crypto/timing_safe.zig +47279 15587938 1777922722087271476 9b37d3e0fffea1f1b265eb76dd5ec80d 1 std/crypto/aegis.zig +6851 15587945 1777922722087271476 ea7fad6fda828c72abcc0148e4659e9c 1 std/crypto/aes_gcm.zig +13389 15587946 1777922722087271476 0b0853e7521a731af48464868cd7c167 1 std/crypto/aes_gcm_siv.zig +20660 15587948 1777922722087271476 f87b68e4f3f0abfaaed777c531726b81 1 std/crypto/aes_siv.zig +15331 15587947 1777922722087271476 250e8a7b0eaeef0184fd38096c7a562a 1 std/crypto/aes_ocb.zig +34240 15587944 1777922722087271476 a23f55c0fa49aee3338a137383c7eac3 1 std/crypto/aes_ccm.zig +47973 15587950 1777922722087271476 45b8c60c342c33749442b0e7b4f595db 1 std/crypto/ascon.zig +51938 15587956 1777922722087271476 40b26141042cd451c52e3d5d62117ae3 1 std/crypto/chacha20.zig +6309 15587981 1777922722088271472 1318dc8b9450bda7d30b2f2bd66ef98f 1 std/crypto/isap.zig +27318 15588015 1777922722089271469 d339759780a2203fc7165aff07d6d9b9 1 std/crypto/salsa20.zig +3626 15587979 1777922722088271472 7d28bd5a64f521b7f7322612e4d5f562 1 std/crypto/hmac.zig +18291 15588019 1777922722089271469 6be864f028108d8cae57460c05505974 1 std/crypto/siphash.zig +6226 15587957 1777922722087271476 4270e1555211de4aca948cd086fc7129 1 std/crypto/cmac.zig +6228 15587955 1777922722087271476 b0c7f4ebda117a1b4a12cec460fc143c 1 std/crypto/cbc_mac.zig +8704 15587943 1777922722087271476 1cd28407835970107e3ffc55d0b925b8 1 std/crypto/aes.zig +15303 15587983 1777922722088271472 ac2b7ab43674f07a4208ffa738f420c5 1 std/crypto/keccak_p.zig +11653 15587987 1777922722088271472 43be60c6dba9df3811d0ea93fb4d96b7 1 std/crypto/modes.zig +8666 15587930 1777922722086271480 3db725807664be68a1f523268f119154 1 std/crypto/25519/x25519.zig +207825 15587980 1777922722088271472 6f8e5747aa0ccf4d1164cae5d7a3017f 1 std/crypto/hybrid_kem.zig +71867 15587986 1777922722088271472 baec87190da463f19137f91c956a1a69 1 std/crypto/ml_kem.zig +9490 15587924 1777922722086271480 b5f8bd262f97fec80ec5c6bbce1d4d75 1 std/crypto/25519/curve25519.zig +25856 15587926 1777922722086271480 9c6b6973fd05e5de7576dfbcbcf8f074 1 std/crypto/25519/edwards25519.zig +16188 15587996 1777922722088271472 eaa7e1c4f3bee68fab2081ca41c5167c 1 std/crypto/pcurves/p256.zig +16384 15588002 1777922722089271469 a08bdcefbc4eeca22d09e82d6e71b464 1 std/crypto/pcurves/p384.zig +7971 15587928 1777922722086271480 d0d33655dcbd80c50d53283108a54034 1 std/crypto/25519/ristretto255.zig +20534 15588008 1777922722089271469 19bb9b198f95ad22e061196119587445 1 std/crypto/pcurves/secp256k1.zig +28981 15587953 1777922722087271476 e43277ffc7f554e017fc549af17d0c11 1 std/crypto/blake2.zig +66773 15587954 1777922722087271476 461aaa010dffed2badd194e564003503 1 std/crypto/blake3.zig +9751 15587984 1777922722088271472 d4911af79a2684c60a4325e9142b1609 1 std/crypto/md5.zig +9321 15587937 1777922722086271480 15ebe6e9b9de51b93b00e1b463f00cb4 1 std/crypto/Sha1.zig +36488 15588017 1777922722089271469 6a526b804e6d522b31243c9c19581539 1 std/crypto/sha2.zig +34393 15588018 1777922722089271469 9156c9859584353dba59a3a04e3b43d0 1 std/crypto/sha3.zig +2756 15587977 1777922722088271472 3f1b15f01d5b6045525b1b5b73081e67 1 std/crypto/hash_composition.zig +3703 15587978 1777922722088271472 09d36564cbdc5d24ea6fa90e4b7dd6e5 1 std/crypto/hkdf.zig +20462 15587976 1777922722088271472 80717cf57bf4cce973e3fcd7792a1640 1 std/crypto/ghash_polyval.zig +7227 15588014 1777922722089271469 d7e68094b5cd519221d91c8f9a9875ed 1 std/crypto/poly1305.zig +29207 15587949 1777922722087271476 94f263cff18e63719fb56351d8958281 1 std/crypto/argon2.zig +40185 15587951 1777922722087271476 d15c97fc7af13704d70dea22de36356f 1 std/crypto/bcrypt.zig +28777 15588016 1777922722089271469 c461f6daa050c5f52fae84aec9156e30 1 std/crypto/scrypt.zig +8451 15587988 1777922722088271472 e0bc6ddf2119b9cfe2a19626ded9635a 1 std/crypto/pbkdf2.zig +13808 15588013 1777922722089271469 82c3f3e7125258f0d01a5199588e0757 1 std/crypto/phc_encoding.zig +36622 15587925 1777922722086271480 8c9984aeca0e229cf80a241e1a124f4c 1 std/crypto/25519/ed25519.zig +389641 15587973 1777922722088271472 0726186a985abbc92e4fa0ff70efa341 1 std/crypto/ecdsa.zig +121853 15587985 1777922722088271472 d7cfd905ace13529f5dbe22b2e44f447 1 std/crypto/ml_dsa.zig +42649 15587975 1777922722088271472 ab7882c88b456a51e3e1f5dea262d267 1 std/crypto/ff.zig +165 15587972 1777922722087271476 0ab9a19cc7544d7896d8555b38c3292a 1 std/crypto/codecs.zig +1825 15587974 1777922722088271472 d28156f6f25a3ec50eb16496ef0b30e4 1 std/crypto/errors.zig +25567 15588024 1777922722089271469 965e374c252f652ecbbbdd4c010aaa9d 1 std/crypto/tls.zig +51526 15587936 1777922722086271480 c9040311a8bb41064e13320ceb1bfd03 1 std/crypto/Certificate.zig +59764 15588034 1777922722090271465 97dd4985f3e67db8805a42b323dd2b5c 1 std/debug/Dwarf.zig +43962 15588038 1777922722090271465 b62ab4a4546b7ca38c9cdf5255805463 1 std/debug/Pdb.zig +21243 15588035 1777922722090271465 e0fe1c3b436c95da3936ab5a37e5e850 1 std/debug/ElfFile.zig +23226 15588037 1777922722090271465 494ab44d53cb322ba4a55c08cf6e7d15 1 std/debug/MachOFile.zig +4448 15588036 1777922722090271465 d79e9edc86be729aaae44fcaa9edbcb3 1 std/debug/Info.zig +8592 15588027 1777922722089271469 28d43178547c2f7d23f09c36470880c0 1 std/debug/Coverage.zig +97088 15588043 1777922722090271465 07a4df481fdae7e1e9173ea1af4ddfd2 1 std/debug/cpu_context.zig +30535 15588042 1777922722090271465 ac5e8a4486eb26d75d3f3e5da357a5ed 1 std/debug/SelfInfo/Windows.zig +17837 15588040 1777922722090271465 94ab10377365b77b448fae97a5090c6d 1 std/debug/SelfInfo/Elf.zig +29884 15588041 1777922722090271465 3af99105c7ca096c7c04dfe0442e1c12 1 std/debug/SelfInfo/MachO.zig +3234 15588045 1777922722090271465 94b504fa568201fccb60245a0380012e 1 std/debug/simple_panic.zig +2349 15588044 1777922722090271465 58f6d8954e49f4e277db7b9bad6e1f3c 1 std/debug/no_panic.zig +3939 15588055 1777922722090271465 5ee5df976eaaf300e36cd234fc3f2f43 1 std/dwarf/TAG.zig +7632 15588049 1777922722090271465 101aeaf3e9df594bf04093c15135dc96 1 std/dwarf/AT.zig +5693 15588054 1777922722090271465 01d731f8d28ba8382ff3c5885d5e0c75 1 std/dwarf/OP.zig +1963 15588053 1777922722090271465 055280c08a34f56d3d4ea7d69cf3fca3 1 std/dwarf/LANG.zig +1399 15588052 1777922722090271465 40a7d4ac60d12c6e9ca294acaed35474 1 std/dwarf/FORM.zig +1479 15588050 1777922722090271465 8bd901aaa561652b86f99819d0da7a57 1 std/dwarf/ATE.zig +857 15588051 1777922722090271465 eabc7cc5311330003544e4fa9b48be68 1 std/dwarf/EH.zig +94864 15588061 1777922722090271465 9f838a528dd1ffb0f4e1bfb3661aecff 1 std/fmt/float.zig +13189 15588072 1777922722091271461 8fcd1365fb1fe2c743d223fc34880b6a 1 std/fmt/parse_float.zig +115637 15588075 1777922722091271461 c8d60085bfbda39db97904d347ae1872 1 std/fs/path.zig +0 15588076 1777922722091271461 82547a8dd7f3efb3f077622e34876868 1 std/fs/test.zig +2797 15588080 1777922722091271461 e2d2903d78455f002bdf1543be5bd9b3 1 std/hash/Adler32.zig +14410 15588081 1777922722091271461 cd5b1a84c317ca8ba9ccce283a58c367 1 std/hash/auto_hash.zig +19972 15588087 1777922722091271461 c36dede4b91e35db37ea45c66dbe6fe9 1 std/hash/crc.zig +1890 15588088 1777922722091271461 8022a7844b1545ef9cc7889a3a71944a 1 std/hash/fnv.zig +9977 15588089 1777922722091271461 26add2cb2571b835338f163c8ca63459 1 std/hash/murmur.zig +12412 15588083 1777922722091271461 cd681dc3507b42839b769eae04b1dc3b 1 std/hash/cityhash.zig +8367 15588091 1777922722091271461 4744eb583f951c0ddcee1cf3bdde33fb 1 std/hash/wyhash.zig +41613 15588092 1777922722091271461 b682042146ed3b411db8eb14cb99500a 1 std/hash/xxhash.zig +41284 15588096 1777922722091271461 9e2c0ca6eeba53dae8ed198c0434b781 1 std/heap/ArenaAllocator.zig +7510 15588100 1777922722091271461 0afc8bd3d67b9a71a6047ee2e9af262b 1 std/heap/SmpAllocator.zig +10192 15588098 1777922722091271461 ee89eecf52bcaf358a5ca7a2e9d97d7e 1 std/heap/FixedBufferAllocator.zig +10150 15588099 1777922722091271461 9e0ab6e7efcbb2f1a65540c4f7a560ef 1 std/heap/PageAllocator.zig +11445 15588097 1777922722091271461 61f511afcd1508b7ca05f5496473488c 1 std/heap/BrkAllocator.zig +62382 15588101 1777922722092271458 be427a53e4015492bc8a4a190a806e5f 1 std/heap/debug_allocator.zig +13267 15588102 1777922722092271458 08b7d341701a499e0e0d42b973d7ab69 1 std/heap/memory_pool.zig +71392 15588106 1777922722092271458 9b5ff49fb65f881c7ed12494a3859cb8 1 std/http/Client.zig +31356 15588109 1777922722092271458 90eef6015c85cd72220c3d81a69a9530 1 std/http/Server.zig +13015 15588107 1777922722092271458 4c7e2ad894ad12f141066550c9bb326a 1 std/http/HeadParser.zig +3791 15588105 1777922722092271458 61420280e3c9986a74a687031fdcf831 1 std/http/ChunkParser.zig +3099 15588108 1777922722092271458 208dea04bf6038830461bfb99eafbce8 1 std/http/HeaderIterator.zig +0 15588110 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/http/test.zig +7992 15588116 1777922722092271458 af3841850a2c29b3668d337e57dbec60 1 std/json/dynamic.zig +3272 15588118 1777922722092271458 39fdbe23f321a0cb11a35e428810a09e 1 std/json/hashmap.zig +72865 15588114 1777922722092271458 0bd906a63c98af2b142fc2a11e0e8ddf 1 std/json/Scanner.zig +33916 15588121 1777922722092271458 4edf437de0e97088b6290948fbceb1fb 1 std/json/static.zig +37299 15588115 1777922722092271458 328e21f9d500de455940ccb3a735aaef 1 std/json/Stringify.zig +0 15588123 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/test.zig +0 15588113 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/JSONTestSuite_test.zig +11506 15588168 1777922722093271454 4f01608c6085251ec5a5f0a6e3ebb50e 1 std/math/float.zig +1859 15588176 1777922722093271454 1e9c6dc339df3808681640d38706fb6e 1 std/math/isnan.zig +7877 15588169 1777922722093271454 21099ae36d31e459824cfc3757a834f2 1 std/math/frexp.zig +4599 15588186 1777922722093271454 d22656b17f575c4645f36971dbdd57b4 1 std/math/modf.zig +1136 15588164 1777922722093271454 9f0946a16071ec7d7cb9f45c227c22f1 1 std/math/copysign.zig +1083 15588174 1777922722093271454 eb357e7577b828d5fc2ce3b4118459f2 1 std/math/isfinite.zig +1775 15588175 1777922722093271454 44fb86a5536455ca3877bb415347c6ac 1 std/math/isinf.zig +1456 15588178 1777922722093271454 a37461dca6f9345d8f8a2729c13b9ff6 1 std/math/iszero.zig +1837 15588177 1777922722093271454 cb4e66e7b3adbf190150294715c788b0 1 std/math/isnormal.zig +19209 15588187 1777922722093271454 000ec81e9c79a332fb482883ab800777 1 std/math/nextafter.zig +1484 15588191 1777922722093271454 4be5196a5746ef5c06a1968c833acd1f 1 std/math/signbit.zig +503 15588190 1777922722093271454 66d1263715127908b281862dba5dc24b 1 std/math/scalbn.zig +6839 15588180 1777922722093271454 65cf74d2abee4d99cea2993060dc9cc0 1 std/math/ldexp.zig +11782 15588188 1777922722093271454 63d5a77b3d074170d5e328d7ab9f7955 1 std/math/pow.zig +7647 15588189 1777922722093271454 0973f1b6b3c7b008fe03e68add8caaab 1 std/math/powi.zig +2797 15588193 1777922722094271450 53aa585d8092381038f9eda1c3c128d1 1 std/math/sqrt.zig +4812 15588140 1777922722093271454 6f62d1f1ae7bff93c034f6f664aeaa12 1 std/math/cbrt.zig +30081 15588129 1777922722092271458 9120d5d144777f39094c64677ed37eda 1 std/math/acos.zig +30241 15588131 1777922722092271458 0dfaed068a87bab2f2a813c1b301adf2 1 std/math/asin.zig +37723 15588133 1777922722092271458 b16a00df0bbbd49d285d16d68d9de116 1 std/math/atan.zig +10553 15588134 1777922722092271458 0cafcb907ba579b6b64631165a647329 1 std/math/atan2.zig +5365 15588172 1777922722093271454 c70a10cbadd81265d9efbd501e601623 1 std/math/hypot.zig +11499 15588166 1777922722093271454 1ddb2b66fbdf7acb2a4ad484203ae340 1 std/math/expm1.zig +5519 15588173 1777922722093271454 eacf48263508740f77738f675caef7a6 1 std/math/ilogb.zig +2531 15588181 1777922722093271454 b3b40fd4682f372913e09bc18ca3fcd6 1 std/math/log.zig +1834 15588184 1777922722093271454 4ebf02b0e7decd5b836db4794717a753 1 std/math/log2.zig +6132 15588182 1777922722093271454 db4699d35a47e4e75c376fa3abd67c0d 1 std/math/log10.zig +4179 15588185 1777922722093271454 210b5a1a5cd0f20e944783da890dfc99 1 std/math/log_int.zig +8872 15588183 1777922722093271454 754de08c8dc06a6115beb96e5a991ad7 1 std/math/log1p.zig +4299 15588132 1777922722092271458 9d6c681faf8421823919e5bf347bf740 1 std/math/asinh.zig +2756 15588130 1777922722092271458 349667a0bb1e62bdc0383bce5747190c 1 std/math/acosh.zig +3399 15588135 1777922722092271458 7b22337c4a4df112f2c4be431b076007 1 std/math/atanh.zig +4294 15588192 1777922722094271450 42ef534228feb279b81e6fa2a5d79333 1 std/math/sinh.zig +4157 15588165 1777922722093271454 1dcc281bf0ca8a9782e5ae845f7b1fa5 1 std/math/cosh.zig +4581 15588194 1777922722094271450 2b64632014a58c73e7052420b356fcaa 1 std/math/tanh.zig +2024 15588171 1777922722093271454 28fd0ee50d92f0c08fd6aab95d6f15ee 1 std/math/gcd.zig +1194 15588179 1777922722093271454 40b3836f0a2277cb76754547dd483869 1 std/math/lcm.zig +11487 15588170 1777922722093271454 c0bf0098a075fd684bcbeff41e5abbc4 1 std/math/gamma.zig +6563 15588163 1777922722093271454 dccdf309b3630a59978e204ea0cbde99 1 std/math/complex.zig +746 15588139 1777922722093271454 cd57ee7b96c9ee1b66a3e7fc3ef16da9 1 std/math/big.zig +19435 15588197 1777922722094271450 c2c009def560d0da77a8b4ff43524293 1 std/mem/Allocator.zig +5936 15588200 1777922722094271450 731e370ecb6a476616ba5957ba5212a4 1 std/meta/trailer_flags.zig +291416 15588242 1777922722095271446 4869165fe9dddf6396b27a9ff488775f 1 std/os/linux.zig +10513 15588245 1777922722095271446 9c49defe45d5132eb0b774e015de8164 1 std/os/plan9.zig +7464 15588283 1777922722096271443 2d75cf68a9a9ca7fe435633981a95d0e 1 std/os/uefi.zig +16085 15588284 1777922722096271443 cbf7731f9fc13816669478d0d86619b2 1 std/os/wasi.zig +32297 15588204 1777922722094271450 65f360158bf4985210015307097e266f 1 std/os/emscripten.zig +206520 15588296 1777922722096271443 63ff2a80fff80a84d5bcaa93ee0f7e53 1 std/os/windows.zig +0 15588301 1777922722096271443 82547a8dd7f3efb3f077622e34876868 1 std/posix/test.zig +4357 15588307 1777922722097271439 95000eed0a91ee9ca99c19f988221556 1 std/process/Child.zig +38308 15588306 1777922722097271439 fed95aed49061092984c2712847bb002 1 std/process/Args.zig +37415 15588308 1777922722097271439 72a8079e3ff625cd0c9d671e09d86fb3 1 std/process/Environ.zig +2508 15588309 1777922722097271439 8376136df00bc63ca0f3095f0ca3689a 1 std/process/Preopens.zig +51714 15588313 1777922722097271439 eb8790d984ce4a6ddd6376d877c85ff1 1 std/sort/block.zig +12404 15588314 1777922722097271439 4aec5577b3c4edbe484599906af3ae5d 1 std/sort/pdq.zig +17695 15588320 1777922722097271439 24ba1410c711ba60c366c789e33f2468 1 std/tar/Writer.zig +0 15588321 1777922722097271439 82547a8dd7f3efb3f077622e34876868 1 std/tar/test.zig +5695 15588324 1777922722097271439 79b2e7cbd2cb182aed04f9377683c628 1 std/testing/FailingAllocator.zig +31908 15588325 1777922722097271439 85bfe90f22d1658f84533528a61699bc 1 std/testing/Smith.zig +6755 15588328 1777922722097271439 b00dfc370ddde87be5237de9f894d759 1 std/time/epoch.zig +7574 15588338 1777922722097271439 d017fea857f95f2c01199efab8dbf965 1 std/valgrind/memcheck.zig +2493 15588337 1777922722097271439 30a771b8491dd283a50c6166babded38 1 std/valgrind/callgrind.zig +1249 15588336 1777922722097271439 6781a2e56089a14f4f2a391169bf7c05 1 std/valgrind/cachegrind.zig +63162 15588386 1777922722100271428 6eeffe690c11f6257c0b5e0566d66f50 1 std/zig/tokenizer.zig +33392 15588350 1777922722098271435 c7c95e9c83f1903d675ab0c975ee4f28 1 std/zig/ErrorBundle.zig +10230 15588354 1777922722098271435 634f3489256d07cec274929dac2605ae 1 std/zig/Server.zig +2260 15588349 1777922722098271435 aa042aba45b700151fd968f123a7266e 1 std/zig/Client.zig +10291 15588355 1777922722098271435 03571043d71a739e9b067f7b96b71631 1 std/zig/TokenSmith.zig +14296 15588373 1777922722099271431 0d186a7370f174935a9c2c3f11942b8c 1 std/zig/string_literal.zig +6720 15588369 1777922722099271431 07baee4aa2d7c097b1307a2cdec422cf 1 std/zig/number_literal.zig +1666 15588372 1777922722099271431 87e0eb501395d68ddce525f8555f960c 1 std/zig/primitives.zig +145138 15588344 1777922722098271435 ab1af8ea616576f755ba7908af0b8ea5 1 std/zig/Ast.zig +567556 15588345 1777922722098271435 a56e781f97d05f34b8f9147799af3174 1 std/zig/AstGen.zig +78968 15588347 1777922722098271435 73a8282784a552df103c813f759de518 1 std/zig/AstSmith.zig +222229 15588357 1777922722099271431 035e30944ed3dc8c9d792b5336c38c8b 1 std/zig/Zir.zig +9178 15588358 1777922722099271431 cb7401f7c5bb5446a01aa5af5eaa2ad3 1 std/zig/Zoir.zig +35999 15588359 1777922722099271431 a86113a78e1f8cf462a758090971d8f9 1 std/zig/ZonGen.zig +51977 15588384 1777922722100271428 b1fdfaeed0b47fe1908cac4bca93213a 1 std/zig/system.zig +22538 15588348 1777922722098271435 85030d1db27b93c3540ce828f6bb4f75 1 std/zig/BuiltinFn.zig +43382 15588346 1777922722098271435 5b945ae5ef98aa0bed48cd16d2c6d004 1 std/zig/AstRlAnnotate.zig +35921 15588352 1777922722098271435 2bb60a489e7e7a4b6c06359c8cb96d52 1 std/zig/LibCInstallation.zig +51355 15588356 1777922722098271435 58aa36ce7c67359021b741bba200bd1d 1 std/zig/WindowsSdk.zig +10091 15588351 1777922722098271435 40d483d775f9a56db993ce02e3448ab7 1 std/zig/LibCDirs.zig +26758 15588385 1777922722100271428 1365cf108e82594e5f641faf1259b59d 1 std/zig/target.zig +247 15588368 1777922722099271431 4fee6920e55c663811dd32d69b7f2937 1 std/zig/llvm.zig +8078 15588361 1777922722099271431 6a5228c368c6a0dea7c7ebc8c6642f10 1 std/zig/c_translation/builtins.zig +16223 15588362 1777922722099271431 9aa7e031559265e0320a9b106d1865db 1 std/zig/c_translation/helpers.zig +120086 15588391 1777922722100271428 fcd145a5d3703b0c905144501d34d648 1 std/zon/parse.zig +46916 15588392 1777922722100271428 7bf4408cdd1c84975a793e5daefb12a8 1 std/zon/stringify.zig +32374 15588390 1777922722100271428 d6fd80a48ef08dc277abac7b527c7110 1 std/zon/Serializer.zig +2159 15588293 1777922722096271443 e912d0164349d3c86eb8b1226a86388f 1 std/os/windows/tls.zig +6710 15567798 1777922721686272965 2f406272323372f06ea32e7ba2671145 1 compiler_rt/count0bits.zig +1072 15567971 1777922721689272954 eb5665f235da79b18b24ad86fe636e3c 1 compiler_rt/parity.zig +1612 15567975 1777922721689272954 d5a192d1e6221072b39fd9489871805a 1 compiler_rt/popcount.zig +2555 15567775 1777922721686272965 94abc6c88d8b95079f2ffa08c953c84c 1 compiler_rt/bitreverse.zig +3053 15567779 1777922721686272965 f7bd2670352233064ec7083d6debbd43 1 compiler_rt/bswap.zig +1542 15567787 1777922721686272965 e86cf64174068e25059755c8b9d3312b 1 compiler_rt/cmp.zig +3992 15567986 1777922721689272954 3814ae54caaedf00b147deed4c0112f2 1 compiler_rt/shift.zig +26650 15567931 1777922721688272957 22806e43d0dac46aa72f227a85ab24f6 1 compiler_rt/int.zig +2729 15567942 1777922721688272957 32bdb9f5e7090032336e0cc3dcf004f1 1 compiler_rt/mulXi3.zig +10004 15568018 1777922721690272950 c75da294f9737c7c23ef89b4ac4a4680 1 compiler_rt/udivmod.zig +671 15567755 1777922721686272965 a6cfe83f9d8eb6e22dee6dc0ccee3367 1 compiler_rt/absv.zig +250 15567758 1777922721686272965 a8533a5e47ce15013e24b841121b73eb 1 compiler_rt/absvsi2.zig +217 15567756 1777922721686272965 3ce3bf7ea907beec5e63de5695aa6067 1 compiler_rt/absvdi2.zig +220 15567760 1777922721686272965 4448933a51a6997d5207f53443eec830 1 compiler_rt/absvti2.zig +1096 15567966 1777922721689272954 3a4bf91b607ee1118dab9735b082df49 1 compiler_rt/negv.zig +920 15567769 1777922721686272965 c5f857dc4717914fa062b400f9622607 1 compiler_rt/addvsi3.zig +959 15567768 1777922721686272965 257639b9472ac430476135afc780b665 1 compiler_rt/addvdi3.zig +850 15567998 1777922721689272954 ac36fb2149d5966ec7d505b909b86806 1 compiler_rt/subvsi3.zig +889 15567997 1777922721689272954 29e5e19036e4c660c957d19977fc2ee4 1 compiler_rt/subvdi3.zig +809 15567960 1777922721689272954 11f5f27cedd3438d13495331ac628626 1 compiler_rt/mulvsi3.zig +2849 15567952 1777922721689272954 86dfcaff625a305b4f8efe5d0533dace 1 compiler_rt/mulo.zig +6009 15567825 1777922721687272961 013ab2758ced7bbc2fc6988565eeb6c7 1 compiler_rt/extendf.zig +749 15567828 1777922721687272961 98eeaa4a548abf8762d1e9af9bc22ca1 1 compiler_rt/extendhfsf2.zig +335 15567827 1777922721687272961 da58ac4390996051556bfd8719d92a85 1 compiler_rt/extendhfdf2.zig +320 15567829 1777922721687272961 8871bda397e6825c39f23f0251ca0d22 1 compiler_rt/extendhftf2.zig +317 15567830 1777922721687272961 aaa7ccf0843a956beb418588dba37f19 1 compiler_rt/extendhfxf2.zig +514 15567831 1777922721687272961 bc571756252a1a5584d093538484a6ad 1 compiler_rt/extendsfdf2.zig +582 15567832 1777922721687272961 4974f1c781c0e5d63fb539beb1bac943 1 compiler_rt/extendsftf2.zig +266 15567833 1777922721687272961 2561f4cdb6d5cba42fa2a5cddaefb2b8 1 compiler_rt/extendsfxf2.zig +600 15567823 1777922721687272961 c095241dde6a34dfe058cf702b751be4 1 compiler_rt/extenddftf2.zig +303 15567824 1777922721687272961 bfc17774e2b2a3829741caae7c642755 1 compiler_rt/extenddfxf2.zig +1511 15567834 1777922721687272961 2a7c11b488cd1af64b87e3ef6e916eb6 1 compiler_rt/extendxftf2.zig +8121 15568005 1777922721689272954 20afe15564559323e44421df48412060 1 compiler_rt/truncf.zig +692 15568007 1777922721689272954 9d5f8f839d8728a9e54f9db08b6fc9f6 1 compiler_rt/truncsfhf2.zig +509 15568003 1777922721689272954 36a7e39f41512b69d8dd4b03148a07e2 1 compiler_rt/truncdfhf2.zig +470 15568004 1777922721689272954 2d0a9da2fc5f44f832277023e3ae7aab 1 compiler_rt/truncdfsf2.zig +318 15568013 1777922721689272954 139d3b014e0554bc57be883dbcb13040 1 compiler_rt/truncxfhf2.zig +239 15568014 1777922721690272950 ae2c69fc5bd6a62401142b0cce712d31 1 compiler_rt/truncxfsf2.zig +239 15568012 1777922721689272954 64b17fde24984d08777a286b452ed71b 1 compiler_rt/truncxfdf2.zig +321 15568009 1777922721689272954 1afa1aed29807fa59e1dd55d76568c92 1 compiler_rt/trunctfhf2.zig +550 15568010 1777922721689272954 c6072c8226886282a81de6ac65a6832f 1 compiler_rt/trunctfsf2.zig +532 15568008 1777922721689272954 c1eaf14f67fcf5d0dcd04b9ea346246e 1 compiler_rt/trunctfdf2.zig +2791 15568011 1777922721689272954 ba812a42d7ab9bcc80710007cb084cf2 1 compiler_rt/trunctfxf2.zig +5022 15567932 1777922721688272957 19bab1ecf558b764bd8e8468a4437453 1 compiler_rt/int_from_float.zig +505 15567843 1777922721687272961 1fa8b56a94273bc472a6be89f8e49cb6 1 compiler_rt/fixhfei.zig +486 15567847 1777922721687272961 3e7787e9660e6e3524cf38eb839127d6 1 compiler_rt/fixsfsi.zig +642 15567845 1777922721687272961 cf2cacfdce0a2700ef1151756d454c85 1 compiler_rt/fixsfdi.zig +583 15567848 1777922721687272961 3d05f9c93a1d9edb2dd8fdfc54a2a5cf 1 compiler_rt/fixsfti.zig +505 15567846 1777922721687272961 24db7b91a9d948a2ad7caf09eac5bac6 1 compiler_rt/fixsfei.zig +504 15567841 1777922721687272961 5f0698948ec15aeb0c7317a8aa00443a 1 compiler_rt/fixdfsi.zig +624 15567839 1777922721687272961 31f529f960e287899bfea39220efe423 1 compiler_rt/fixdfdi.zig +565 15567842 1777922721687272961 1b746ea2e5364fe3d06f59ae59750aec 1 compiler_rt/fixdfti.zig +505 15567840 1777922721687272961 544f2f0344a72b62fc744fe9964fd699 1 compiler_rt/fixdfei.zig +555 15567851 1777922721687272961 21912f18e11f59d98fcda7b2163587dd 1 compiler_rt/fixtfsi.zig +555 15567849 1777922721687272961 f6c717ba5d2610cfee93c3fcc781efd9 1 compiler_rt/fixtfdi.zig +650 15567852 1777922721687272961 879363d43dc2ccd2ccda8c6846a8d86e 1 compiler_rt/fixtfti.zig +506 15567850 1777922721687272961 e0f51045e782f2826083492df6292ff6 1 compiler_rt/fixtfei.zig +280 15567875 1777922721687272961 17542bcca7e4498a30b7ff317688ba9e 1 compiler_rt/fixxfsi.zig +247 15567873 1777922721687272961 8cb1d23d6f6efacc6b4f44a929bbffbb 1 compiler_rt/fixxfdi.zig +505 15567874 1777922721687272961 1fece5086db5fb44264e371192df926b 1 compiler_rt/fixxfei.zig +289 15567859 1777922721687272961 9052b90819d6e134589cf15421be20d3 1 compiler_rt/fixunshfsi.zig +256 15567857 1777922721687272961 6091d7b00dd29ba5314dda663c59d247 1 compiler_rt/fixunshfdi.zig +583 15567860 1777922721687272961 4e766b5ed70ad0738c4cc53db4a55d43 1 compiler_rt/fixunshfti.zig +485 15567858 1777922721687272961 b25d09befb8f331a968d63a91d13f1b3 1 compiler_rt/fixunshfei.zig +498 15567863 1777922721687272961 13a3e3cdc102220cda3e65d6d16b1803 1 compiler_rt/fixunssfsi.zig +639 15567861 1777922721687272961 36a07146caf82dbad47163a3ca473afb 1 compiler_rt/fixunssfdi.zig +619 15567864 1777922721687272961 56789acf458135e6c3a782a8572d6010 1 compiler_rt/fixunssfti.zig +485 15567862 1777922721687272961 3e11a2202c44d57de654ce2d29be9b17 1 compiler_rt/fixunssfei.zig +498 15567855 1777922721687272961 5fcc6dc71f3120b36f2fe57f95a4df13 1 compiler_rt/fixunsdfsi.zig +639 15567853 1777922721687272961 a830fab7334d07637a73ebb72e61c48c 1 compiler_rt/fixunsdfdi.zig +583 15567856 1777922721687272961 c4e648867a929a625fcbe892c855a0cc 1 compiler_rt/fixunsdfti.zig +485 15567854 1777922721687272961 8d7b3d247e80d9f47e5debacbc6e2b88 1 compiler_rt/fixunsdfei.zig +555 15567867 1777922721687272961 14924a3e8dcce47ec68fb9c45f7a6a08 1 compiler_rt/fixunstfsi.zig +555 15567865 1777922721687272961 99d881339bbbe56c6c73f4ac5d192c6f 1 compiler_rt/fixunstfdi.zig +692 15567868 1777922721687272961 abf77a1c7dd0243fd13146b2b275fc9f 1 compiler_rt/fixunstfti.zig +486 15567866 1777922721687272961 96f3507e58f63f9988db501bd3c3881d 1 compiler_rt/fixunstfei.zig +289 15567871 1777922721687272961 7b8251710687d6ab61e988db20cbecaf 1 compiler_rt/fixunsxfsi.zig +256 15567869 1777922721687272961 352c31350bc98c309e28c1705ae709b7 1 compiler_rt/fixunsxfdi.zig +601 15567872 1777922721687272961 805918cac365386594689e0b14d5c23c 1 compiler_rt/fixunsxfti.zig +483 15567870 1777922721687272961 3e85f5658cb15905fc6235fc4609ea39 1 compiler_rt/fixunsxfei.zig +4033 15567876 1777922721687272961 08f568a06331f48d4981b570aa9bf4e7 1 compiler_rt/float_from_int.zig +286 15567889 1777922721688272957 106565430b27b00575389beb7b556c32 1 compiler_rt/floatsihf.zig +489 15567890 1777922721688272957 99ac4b64eae6451228fdf3e76d49ca5a 1 compiler_rt/floatsisf.zig +489 15567888 1777922721688272957 5e6458641b2311288dd5c00c68c662ef 1 compiler_rt/floatsidf.zig +549 15567891 1777922721688272957 5a42b568187c33cfce0199909fcd71c8 1 compiler_rt/floatsitf.zig +304 15567892 1777922721688272957 7136a4ad8f4fb251b019c70d60e112f2 1 compiler_rt/floatsixf.zig +253 15567879 1777922721687272961 b6c524b7b79a0b2ba575668317d16be8 1 compiler_rt/floatdihf.zig +611 15567880 1777922721687272961 3876b9e1125045a0bba7ec7e30502a8b 1 compiler_rt/floatdisf.zig +629 15567878 1777922721687272961 ac4256b4976a496e9da9f3b5cc62e6b8 1 compiler_rt/floatdidf.zig +567 15567881 1777922721687272961 e60a88490ec274e0bcd8a335dffc2f77 1 compiler_rt/floatditf.zig +253 15567882 1777922721687272961 5c41253cc75c758f3d8414c06820b2e8 1 compiler_rt/floatdixf.zig +582 15567894 1777922721688272957 aa003fed3c28fcf0661465916cb226d1 1 compiler_rt/floattihf.zig +564 15567895 1777922721688272957 edebc519fd8c78ffadcfa533755b47e5 1 compiler_rt/floattisf.zig +564 15567893 1777922721688272957 4108329e5b3cd7683c90776309e92291 1 compiler_rt/floattidf.zig +655 15567896 1777922721688272957 5ad2e9750665a0bc0f20e70de861dd2a 1 compiler_rt/floattitf.zig +582 15567897 1777922721688272957 d70e70beff307c5a02db9159d0c10876 1 compiler_rt/floattixf.zig +510 15567884 1777922721687272961 1646d6f1c02bb7b56165f216939a9766 1 compiler_rt/floateihf.zig +510 15567885 1777922721687272961 527c6da025482fa3e66b7143a7d9ea01 1 compiler_rt/floateisf.zig +479 15567883 1777922721687272961 7089012ddd1b9df0b322dd94006d29cb 1 compiler_rt/floateidf.zig +512 15567886 1777922721687272961 7f5adb0ede96341b927fd2b19ae21832 1 compiler_rt/floateitf.zig +479 15567887 1777922721688272957 a23d0cf72c9624bd4deb5bf9ab59680d 1 compiler_rt/floateixf.zig +263 15567909 1777922721688272957 d0eabbfe905bd1955dfbf4ff74789d9b 1 compiler_rt/floatunsihf.zig +516 15567910 1777922721688272957 4889e042d98fd6fe78fdd5512ad1222a 1 compiler_rt/floatunsisf.zig +498 15567908 1777922721688272957 469980dadce3b1303d8e5447b80253e0 1 compiler_rt/floatunsidf.zig +580 15567911 1777922721688272957 ad932fe90a33e55661927317df353bbc 1 compiler_rt/floatunsitf.zig +292 15567912 1777922721688272957 b74eb06b45723852ed8907ef9a3c1e2e 1 compiler_rt/floatunsixf.zig +292 15567899 1777922721688272957 d33b3dad7c05a80047aa89ef177f5de5 1 compiler_rt/floatundihf.zig +640 15567900 1777922721688272957 bfe6adee0ae9ff36f0f3a727942b60ff 1 compiler_rt/floatundisf.zig +622 15567898 1777922721688272957 5b21700386001f90ca76f4a69bbcc531 1 compiler_rt/floatundidf.zig +562 15567901 1777922721688272957 7ecbce03f6e2f7d34f669c43e05b5a5a 1 compiler_rt/floatunditf.zig +292 15567902 1777922721688272957 da5d76f43d53f823d14115e813e1e679 1 compiler_rt/floatundixf.zig +576 15567914 1777922721688272957 2953c33c5afb985a57994b5286303007 1 compiler_rt/floatuntihf.zig +594 15567915 1777922721688272957 05f6dcc434cc4afcdeab7e22fc1dc4ae 1 compiler_rt/floatuntisf.zig +576 15567913 1777922721688272957 b11ac0fc0d92ee51164a46a58d962730 1 compiler_rt/floatuntidf.zig +671 15567916 1777922721688272957 c473c1e7ddec98bb533d1273ad3b4a66 1 compiler_rt/floatuntitf.zig +594 15567917 1777922721688272957 9aa52768facdbbc8d846ea2d3494ecc1 1 compiler_rt/floatuntixf.zig +518 15567904 1777922721688272957 b569e15c4960f096d22a8498695037b3 1 compiler_rt/floatuneihf.zig +518 15567905 1777922721688272957 3da1804fc261f82d9a85f4cb42fcc7cf 1 compiler_rt/floatuneisf.zig +518 15567903 1777922721688272957 72d8c1345792bda65e245e216c54bfb4 1 compiler_rt/floatuneidf.zig +489 15567906 1777922721688272957 250b2f2ee910f6889439f6902e824242 1 compiler_rt/floatuneitf.zig +518 15567907 1777922721688272957 8775dcf872567dbca4aaa9be89c98d5c 1 compiler_rt/floatuneixf.zig +9442 15567795 1777922721686272965 a4d8663a92788da43cb9d84cfbb3e58c 1 compiler_rt/comparef.zig +2605 15567788 1777922721686272965 91858a90e46f0fae6148a5be22f15aba 1 compiler_rt/cmpdf2.zig +3596 15567791 1777922721686272965 ed4eee3b4269a73e58e195ab991424b6 1 compiler_rt/cmptf2.zig +1891 15567793 1777922721686272965 1bcb2490de66ad4411a56bb1b1beadda 1 compiler_rt/cmpxf2.zig +522 15568023 1777922721690272950 3cec9a8449e552edb9ea21bdcfcd5d16 1 compiler_rt/unorddf2.zig +792 15567926 1777922721688272957 bd0ef74753abec5e9bf5ff1ece192ce1 1 compiler_rt/gehf2.zig +1289 15567927 1777922721688272957 752957c0e08ab46d38903882d4e373e6 1 compiler_rt/gesf2.zig +1307 15567925 1777922721688272957 77abb220c445ca209cdc0bd63d0c35f4 1 compiler_rt/gedf2.zig +363 15567929 1777922721688272957 71abd2cb5cc15adfad10f2d1b086455c 1 compiler_rt/gexf2.zig +1102 15567928 1777922721688272957 857b9121c2764ef9fa6c80b222bae740 1 compiler_rt/getf2.zig +6364 15567763 1777922721686272965 a28efd2a8cc22dd72d94e92efdcaf5e8 1 compiler_rt/addf3.zig +258 15567765 1777922721686272965 cdb97ed9e9e4f737d1f50210538b5fa5 1 compiler_rt/addhf3.zig +482 15567766 1777922721686272965 7c66383d101eb8f59fe91827b0fa7052 1 compiler_rt/addsf3.zig +482 15567762 1777922721686272965 e98de91516f58550155b9f3cdc601a6a 1 compiler_rt/adddf3.zig +526 15567767 1777922721686272965 6a3199d5327ebdb5ac2a57b2891ce8e9 1 compiler_rt/addtf3.zig +262 15567770 1777922721686272965 37bb3df1d21ca3fb5c73a77e28251f0a 1 compiler_rt/addxf3.zig +345 15567994 1777922721689272954 d9dd819eb7b3e86e7499f19496aea205 1 compiler_rt/subhf3.zig +605 15567995 1777922721689272954 3730fe6e180d1398a620f7eeb43a77fb 1 compiler_rt/subsf3.zig +623 15567993 1777922721689272954 7be5439bbd27e235a8fb91189b8400e5 1 compiler_rt/subdf3.zig +685 15567996 1777922721689272954 9bd91d1677c201db0fbe5aff338cf3a5 1 compiler_rt/subtf3.zig +305 15567999 1777922721689272954 fe73f8ec762008d8326f6948b3c58f3c 1 compiler_rt/subxf3.zig +8424 15567948 1777922721688272957 8e0c05bcfe476732180e7179a76711cf 1 compiler_rt/mulf3.zig +262 15567951 1777922721688272957 6a4d90f1850cdff4b9101cf5f3653506 1 compiler_rt/mulhf3.zig +468 15567957 1777922721689272954 9e1e52d638844b75ab5c4d9b1605394d 1 compiler_rt/mulsf3.zig +486 15567947 1777922721688272957 f18b5c02041a116c8908d4c293c839fa 1 compiler_rt/muldf3.zig +538 15567959 1777922721689272954 f0405d80ca7cb47530b94f4f2ac72c77 1 compiler_rt/multf3.zig +262 15567962 1777922721689272954 099cf6140d3741138e202d701d1d874a 1 compiler_rt/mulxf3.zig +285 15567808 1777922721686272965 ae5c2e64d205ad937c80f9c50800e579 1 compiler_rt/divhf3.zig +8402 15567811 1777922721686272965 e007dd91050d3f9670856a31b291d71d 1 compiler_rt/divsf3.zig +9199 15567805 1777922721686272965 64b385486134b7bf452a4b4e3d8aa5ee 1 compiler_rt/divdf3.zig +8620 15567818 1777922721686272965 841562b842e29f7fc82e5e830cac819a 1 compiler_rt/divxf3.zig +10560 15567814 1777922721686272965 ebc16bc889cdb5e114e6bd9b797169b6 1 compiler_rt/divtf3.zig +1602 15567979 1777922721689272954 ed08c76b13adf76b35de9a6acfb5f900 1 compiler_rt/powiXf2.zig +2275 15567944 1777922721688272957 31c049fe940585ddd225b0c4f49de0ab 1 compiler_rt/mulc3.zig +364 15567950 1777922721688272957 512781f166a8c3875da561f4f8230be9 1 compiler_rt/mulhc3.zig +331 15567956 1777922721689272954 102e16161771af7814e38255adbe4dca 1 compiler_rt/mulsc3.zig +331 15567946 1777922721688272957 bb3e4f1e45e087a2cbf5e1b8c7294ab5 1 compiler_rt/muldc3.zig +364 15567961 1777922721689272954 0575402536fa7953282dd3719153c560 1 compiler_rt/mulxc3.zig +469 15567958 1777922721689272954 2599c8fc1dd703990f1d52fcc8405afc 1 compiler_rt/multc3.zig +2280 15567802 1777922721686272965 9e6aaeda713b6cd43eca1180606dc9f8 1 compiler_rt/divc3.zig +406 15567807 1777922721686272965 412c7456a893811918eb7e32f5ca2b4f 1 compiler_rt/divhc3.zig +373 15567810 1777922721686272965 7e02e8c2afcd2c36b275e526b50e7de7 1 compiler_rt/divsc3.zig +373 15567804 1777922721686272965 5be22ecc99b60a1e269ebcd07b63ba48 1 compiler_rt/divdc3.zig +373 15567817 1777922721686272965 eb964b5ea20bc7ea6b214d5165684b59 1 compiler_rt/divxc3.zig +511 15567813 1777922721686272965 f00ce0a1115432ed877e70a7210e020d 1 compiler_rt/divtc3.zig +8401 15567797 1777922721686272965 48ce97085562f8f0d3e93ba3a00c6330 1 compiler_rt/cos.zig +11191 15567821 1777922721686272965 233a0c2675fcf9fb0562d061d3f4ef8d 1 compiler_rt/exp.zig +20463 15567822 1777922721686272965 990315018671e600e5f43983656b35c7 1 compiler_rt/exp2.zig +1415 15567835 1777922721687272961 cd3fa4a3253c94922cf7fd4dbe8cf6d6 1 compiler_rt/fabs.zig +8451 15567918 1777922721688272957 0b87695dedb440735139b41072ac04b4 1 compiler_rt/floor_ceil.zig +11101 15567919 1777922721688272957 28c4313cc538b2f5812a52ec4bec4b02 1 compiler_rt/fma.zig +2369 15567920 1777922721688272957 a7f052b4bdafcce80219707ccbcd4a79 1 compiler_rt/fmax.zig +2371 15567921 1777922721688272957 2881caf3353e21fdc068c2894b526e33 1 compiler_rt/fmin.zig +11725 15567922 1777922721688272957 79f5a6f3e0524014ac73e0cb70026778 1 compiler_rt/fmod.zig +27755 15567935 1777922721688272957 8fa60be4c24fa34c552469dc3b4d63cf 1 compiler_rt/log.zig +9191 15567936 1777922721688272957 94721fe1abfbc3e173c681c73594e4b5 1 compiler_rt/log10.zig +8667 15567937 1777922721688272957 49e6cdf9ea75329f51154c609db64cc2 1 compiler_rt/log2.zig +4824 15567985 1777922721689272954 18ecc9f71f2af16e8866e41610d6e1db 1 compiler_rt/round.zig +9430 15567988 1777922721689272954 b933cc2801f9f84ff21b33c81ed4d0a9 1 compiler_rt/sin.zig +14726 15567989 1777922721689272954 d2d11e62b12ffea565f68495b486d0fe 1 compiler_rt/sincos.zig +29204 15567990 1777922721689272954 963eea878eff95387128b7a278530024 1 compiler_rt/sqrt.zig +7816 15568000 1777922721689272954 895ecc118177fee658ce2ed29440e3e3 1 compiler_rt/tan.zig +3960 15568002 1777922721689272954 7e9794fe13282aed8ade46a8cc46fdde 1 compiler_rt/trunc.zig +1976 15567809 1777922721686272965 f40491911afd36dcbdcaf83bde552029 1 compiler_rt/divmodei4.zig +5274 15568020 1777922721690272950 b483f1668e5681f1d01a8d3379d3085c 1 compiler_rt/udivmodei4.zig +8695 15567934 1777922721688272957 7f6b80ee9fd1a888a1cefaf0f0c07003 1 compiler_rt/limb64.zig +2970 15567970 1777922721689272954 73fbe2fafb6bf806bc0f94e0dbcdbb82 1 compiler_rt/os_version_check.zig +12778 15567820 1777922721686272965 32b1cbab0c70a5f07d8449b52a41b212 1 compiler_rt/emutls.zig +9633 15567771 1777922721686272965 5be5ccc2045b773a50cc658d73e3f1fe 1 compiler_rt/arm.zig +2296 15567773 1777922721686272965 adeeb17e089446574c0ac7052482f9da 1 compiler_rt/aulldiv.zig +2443 15567774 1777922721686272965 e279358f66c28bb577bb85cbb84e1b13 1 compiler_rt/aullrem.zig +7898 15567783 1777922721686272965 06f37e75f1f65c2d1968533e3126f595 1 compiler_rt/clear_cache.zig +44080 15567930 1777922721688272957 abec634a6ef8a9483ea381073dda9495 1 compiler_rt/hexagon.zig +22504 15567772 1777922721686272965 ee140ab73a711e099a335fcde147ec95 1 compiler_rt/atomics.zig +8888 15567992 1777922721689272954 e025e27cc09dff6f87418466a43f6126 1 compiler_rt/stack_probe.zig +71732 15567754 1777922721686272965 369d1b315f5a60e440e7b5229d0c2164 1 compiler_rt/aarch64_outline_atomics.zig +6327 15567939 1777922721688272957 8bd7a5b699effd9b48177fb4f42ba749 1 compiler_rt/memcpy.zig +7302 15567940 1777922721688272957 469b60af6c756eaa579028727fd7f021 1 compiler_rt/memmove.zig +3975 15567991 1777922721689272954 c0d2e7ed8026c400d7a40345bd91bf4f 1 compiler_rt/ssp.zig +0 15567964 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negsi2_test.zig +0 15567963 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negdi2_test.zig +0 15567965 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negti2_test.zig +8149 15587771 1777922722081271498 848266c110821122ce6bc572fc7966c9 1 std/Build/Cache/Path.zig +2178 15587770 1777922722081271498 4641e40dd1fb14622c51a7b8ad1a5d37 1 std/Build/Cache/Directory.zig +37904 15587769 1777922722081271498 5df488280e227dc1fae402212d0d1fa0 1 std/Build/Cache/DepTokenizer.zig +2963 15587776 1777922722081271498 3b0a8799da32dd829cea1e048ca0bdd9 1 std/Build/Step/CheckFile.zig +116020 15587777 1777922722081271498 18bac9280e713b80bc53d2471a14f467 1 std/Build/Step/CheckObject.zig +42586 15587779 1777922722081271498 4f4fb7a01d1524c11e465df25bb20bfc 1 std/Build/Step/ConfigHeader.zig +831 15587780 1777922722081271498 0f223ee68995072c4beb7fd3ae600b02 1 std/Build/Step/Fail.zig +2697 15587781 1777922722081271498 3d6cf866859ca04eb013a6b4ae5eda8e 1 std/Build/Step/Fmt.zig +8841 15587782 1777922722081271498 5f12e1d9cd3e301c7d59c6d0462af4e6 1 std/Build/Step/InstallArtifact.zig +4433 15587783 1777922722081271498 c590243c9189e7c05edb58d307b01d4d 1 std/Build/Step/InstallDir.zig +1460 15587784 1777922722081271498 0040eb5b0836e8fa2056b8e33d66b4dd 1 std/Build/Step/InstallFile.zig +8120 15587785 1777922722081271498 295b05d43b5ace3d4b31c0050b107e6c 1 std/Build/Step/ObjCopy.zig +84912 15587778 1777922722081271498 58e730efa305588922a904e148d65c54 1 std/Build/Step/Compile.zig +23120 15587786 1777922722081271498 7ad270e654494ff667c1d415c427537f 1 std/Build/Step/Options.zig +109628 15587787 1777922722081271498 7bf82c87cfe60873b28b35fac908770d 1 std/Build/Step/Run.zig +11889 15587788 1777922722081271498 cfa8e53899ae65e54778a42e84a17a18 1 std/Build/Step/TranslateC.zig +15498 15587790 1777922722081271498 a41fe33f2341ddc013b1fca1385ecd90 1 std/Build/Step/WriteFile.zig +4250 15587789 1777922722081271498 dfabe6ac1052637a178eef042b9afdd3 1 std/Build/Step/UpdateSourceFiles.zig +22253 15587793 1777922722082271495 d9a2b05ebe843fa5e404ed496a247b65 1 std/Build/Watch/FsEvents.zig +0 15587817 1777922722082271495 82547a8dd7f3efb3f077622e34876868 1 std/Io/Threaded/test.zig +3139 15587811 1777922722082271495 fe5fe7e681f4ef3265a652f929df6985 1 std/Io/Reader/Limited.zig +18134 15587823 1777922722083271491 5a0826d8af9243d47ac0ec7740737941 1 std/Io/net/HostName.zig +0 15587824 1777922722083271491 82547a8dd7f3efb3f077622e34876868 1 std/Io/net/test.zig +12759 15587806 1777922722082271495 3c13d2a3cedf8a9f99d87cd0a98d153b 1 std/Io/File/Reader.zig +8053 15587807 1777922722082271495 2ce32c66e785fcb0a179751edc397f1f 1 std/Io/File/Writer.zig +2699 15587803 1777922722082271495 7fd41fc040ad02c0f3e6feba994632f2 1 std/Io/File/Atomic.zig +4691 15587804 1777922722082271495 0b7562cfbeb59f6f8d81b42628098927 1 std/Io/File/MemoryMap.zig +8305 15587805 1777922722082271495 5bf9ca3d1c3edf41a06e7bb0ef18166a 1 std/Io/File/MultiReader.zig +13315 15587893 1777922722085271483 61d05272e7ddb2e66aecfe56b0a6b40e 1 std/c/darwin/dispatch.zig +103441 15587906 1777922722086271480 e55ee93fe7500c447d1110e3f5a59831 1 std/compress/flate/Compress.zig +43916 15587907 1777922722086271480 3c452297218497c6a0d6dfd1e6411bbf 1 std/compress/flate/Decompress.zig +0 15587911 1777922722086271480 82547a8dd7f3efb3f077622e34876868 1 std/compress/lzma/test.zig +10184 15587915 1777922722086271480 21b193ffeea11c4791e036a76504d714 1 std/compress/xz/Decompress.zig +0 15587916 1777922722086271480 82547a8dd7f3efb3f077622e34876868 1 std/compress/xz/test.zig +79574 15587919 1777922722086271480 af8f151b39faf2c007e2c3b1ccfff8a5 1 std/compress/zstd/Decompress.zig +0 15588020 1777922722089271469 82547a8dd7f3efb3f077622e34876868 1 std/crypto/test.zig +23047 15587940 1777922722087271476 b54729e648f909a81268f06167f20669 1 std/crypto/aes/aesni.zig +23360 15587941 1777922722087271476 f5c1c07e89705b24f7bbd58f0a70facd 1 std/crypto/aes/armcrypto.zig +34577 15587942 1777922722087271476 184f3d736969e9c1be3921724324424e 1 std/crypto/aes/soft.zig +14574 15587927 1777922722086271480 b552b509d9ec611014aa027c881ac91c 1 std/crypto/25519/field.zig +33750 15587929 1777922722086271480 1609964fc626671466a751ead6b023a1 1 std/crypto/25519/scalar.zig +338 15587992 1777922722088271472 433b788abb384ec7e4c3641754e6dde9 1 std/crypto/pcurves/p256/field.zig +7435 15587995 1777922722088271472 82696e587c8e76ddb04029021b89c87a 1 std/crypto/pcurves/p256/scalar.zig +5807 15588010 1777922722089271469 59d4f7e4b6bb1d5529e6827ea10d8814 1 std/crypto/pcurves/tests/p256.zig +376 15587998 1777922722089271469 69a49ff5f537dcd2044702ac14b6891c 1 std/crypto/pcurves/p384/field.zig +6683 15588001 1777922722089271469 b62513369dfa0f5b4513e8baae554c59 1 std/crypto/pcurves/p384/scalar.zig +6858 15588011 1777922722089271469 621c32a3c0932bff6aef9a841d5fbfe8 1 std/crypto/pcurves/tests/p384.zig +343 15588004 1777922722089271469 738b22249e1d3a4c001765286bc82756 1 std/crypto/pcurves/secp256k1/field.zig +7440 15588005 1777922722089271469 a2c94ac2ee64aa257045479bbeb08026 1 std/crypto/pcurves/secp256k1/scalar.zig +6215 15588012 1777922722089271469 90125b8a7293d6448bb9a47580368f54 1 std/crypto/pcurves/tests/secp256k1.zig +82002 15587982 1777922722088271472 1f857c6712958ff825aebf76cc32ac36 1 std/crypto/kangarootwelve.zig +12252 15587970 1777922722087271476 2cde0e70f988d3c7402f68a6a0314902 1 std/crypto/codecs/asn1.zig +18414 15587971 1777922722087271476 35b79a3fd55544c4889106069900e621 1 std/crypto/codecs/base64_hex_ct.zig +84508 15588023 1777922722089271469 649a5ecda2066ee55b1b961a952f38e4 1 std/crypto/tls/Client.zig +13687 15587934 1777922722086271480 bc1cd32e365024071d2fc253363bf1d2 1 std/crypto/Certificate/Bundle.zig +3589 15587935 1777922722086271480 1774b11899c6e761cf2c54ab9cf5893a 1 std/crypto/Certificate/Chain.zig +68800 15588033 1777922722090271465 09cdb1c0d0788a66a040ddcb5eddf5a7 1 std/debug/Dwarf/expression.zig +30176 15588032 1777922722090271465 9ea6e3df4e3d610339e5ea8f25755dfe 1 std/debug/Dwarf/Unwind.zig +13415 15588029 1777922722089271469 b8a468905b79bd6e498576d88e341c4a 1 std/debug/Dwarf/SelfUnwinder.zig +9426 15588071 1777922722091271461 19fe74e26814be7f5083c3d8b5a0983e 1 std/fmt/parse_float/parse.zig +2950 15588068 1777922722091271461 e2f6cedde735fdaf086b7e0efdb66505 1 std/fmt/parse_float/convert_hex.zig +5401 15588067 1777922722091271461 cbeba905313f9b6c917fb231993989fe 1 std/fmt/parse_float/convert_fast.zig +48543 15588066 1777922722091271461 82c419f8469193cf67852d0ac4c65f55 1 std/fmt/parse_float/convert_eisel_lemire.zig +4586 15588069 1777922722091271461 2562e4c50c6403023d508a0c7e1f15f0 1 std/fmt/parse_float/convert_slow.zig +3506 15588085 1777922722091271461 9428b7df45d5b928d9c004b955588fe0 1 std/hash/crc/impl.zig +0 15588086 1777922722091271461 82547a8dd7f3efb3f077622e34876868 1 std/hash/crc/test.zig +2075 15588090 1777922722091271461 5910881f138d791cfa09dd89cc12fc40 1 std/hash/verify.zig +0 15588117 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/dynamic_test.zig +0 15588119 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/hashmap_test.zig +0 15588120 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/scanner_test.zig +0 15588122 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/static_test.zig +995 15588167 1777922722093271454 59077bc2784a5df334de08609b4c2a55 1 std/math/expo2.zig +452 15588142 1777922722093271454 ce633e6b665f3caba98995a3f146d7c7 1 std/math/complex/abs.zig +678 15588144 1777922722093271454 9dd2ece0bd4c6366c4a3cb5bf7b3db17 1 std/math/complex/acosh.zig +608 15588143 1777922722093271454 e3a7d70f219edead2e32e66a9476a469 1 std/math/complex/acos.zig +458 15588145 1777922722093271454 2fea305ef49ff29fdd688d2f7342051d 1 std/math/complex/arg.zig +641 15588147 1777922722093271454 59bed4da0e5763cbf2a3e08ec4bc9c6c 1 std/math/complex/asinh.zig +750 15588146 1777922722093271454 26f02f5afc54b9ec7673ddd6d0fcc3a9 1 std/math/complex/asin.zig +645 15588149 1777922722093271454 adf7751d27453fed0d4977a2dc50e85e 1 std/math/complex/atanh.zig +2527 15588148 1777922722093271454 2a909954adb7520e1eb158124c280ca2 1 std/math/complex/atan.zig +484 15588150 1777922722093271454 a9e61e0f7280deab3d077856af6ca8d9 1 std/math/complex/conj.zig +5818 15588152 1777922722093271454 3b53a3d1a1285447f00cc90f422cb7b1 1 std/math/complex/cosh.zig +577 15588151 1777922722093271454 26877517b7d9d620e841272fd8ea3661 1 std/math/complex/cos.zig +4899 15588153 1777922722093271454 4f31c5e9d921097840da690cc0324595 1 std/math/complex/exp.zig +620 15588155 1777922722093271454 4e4bb03cdbb57072938d447952587286 1 std/math/complex/log.zig +608 15588156 1777922722093271454 1258f2af84237de74fd033b6776798f2 1 std/math/complex/pow.zig +628 15588157 1777922722093271454 b5f2e65410101f915fb75fa5712c2fd4 1 std/math/complex/proj.zig +5363 15588159 1777922722093271454 89568cfbf7f8196aafffbd55ea670070 1 std/math/complex/sinh.zig +620 15588158 1777922722093271454 4aade0cdfc8ac82b062412f5566aec6c 1 std/math/complex/sin.zig +4249 15588160 1777922722093271454 0aeb21db75d92940ddcb1491d2f0445e 1 std/math/complex/sqrt.zig +3847 15588162 1777922722093271454 98009ed972f9f5fcb177d10a345456e1 1 std/math/complex/tanh.zig +626 15588161 1777922722093271454 ac4f4ba1ea51c6a8f2101a7bdf3b0d7c 1 std/math/complex/tan.zig +185960 15588137 1777922722093271454 73c91870bf9888390a4fbae783316b31 1 std/math/big/int.zig +3762 15588238 1777922722095271446 2fd0c246f4a8e9ba6ccef5ff7cf0ccfe 1 std/os/linux/vdso.zig +0 15588235 1777922722095271446 82547a8dd7f3efb3f077622e34876868 1 std/os/linux/test.zig +4028 15588209 1777922722094271450 fad889af74c19e89aec8d2d148367ad2 1 std/os/linux/aarch64.zig +5034 15588210 1777922722094271450 71b88c341539b947f3255d37700f0a9e 1 std/os/linux/arm.zig +3380 15588217 1777922722094271450 59d565de222e3a5cfe2a456c9705e122 1 std/os/linux/hexagon.zig +4816 15588220 1777922722094271450 2dc76d90755eb8f1deb0a9e80f359b40 1 std/os/linux/loongarch32.zig +4885 15588221 1777922722094271450 7a3cc3cbebbe2f0b12661a952b75c15d 1 std/os/linux/loongarch64.zig +4232 15588222 1777922722094271450 3395b9bf91d855e572ab17b5c9bcac50 1 std/os/linux/m68k.zig +7917 15588223 1777922722094271450 adf29231543fd97568b09af3e22046da 1 std/os/linux/mips.zig +6527 15588225 1777922722094271450 e063618f62bb68a7e8dae24506b02518 1 std/os/linux/mipsn32.zig +6537 15588224 1777922722094271450 8d0f1af1cac3e5e03b718a1d3425708f 1 std/os/linux/mips64.zig +4947 15588226 1777922722094271450 0d4afd00420b15c35dbaf8d5317340ae 1 std/os/linux/or1k.zig +8650 15588227 1777922722094271450 e09c38d7114a12168881b764ae9e8eba 1 std/os/linux/powerpc.zig +8261 15588228 1777922722094271450 8561a5c808ba8c8069c7df5a10720639 1 std/os/linux/powerpc64.zig +3640 15588229 1777922722094271450 d333fa4c740f3e6afbc45d98d513d684 1 std/os/linux/riscv32.zig +3641 15588230 1777922722094271450 a181350c52396d767c11fff4bc1bfea3 1 std/os/linux/riscv64.zig +4555 15588231 1777922722094271450 ad8917b9284d43622453013ec7d5a083 1 std/os/linux/s390x.zig +6966 15588233 1777922722095271446 9e9cad0859d808d852642ce7b2af7e78 1 std/os/linux/sparc64.zig +7003 15588240 1777922722095271446 e3e3fd9240e6d1ae21e8ecb216b4741a 1 std/os/linux/x86.zig +4300 15588239 1777922722095271446 3fba18c392f7404bdf7c81b1152e27c6 1 std/os/linux/x32.zig +4299 15588241 1777922722095271446 49eb8d69558e313084ba3ac63c3f6709 1 std/os/linux/x86_64.zig +4043 15588236 1777922722095271446 ce94b53cfedc272651855c9aca6eb340 1 std/os/linux/thumb.zig +19371 15588237 1777922722095271446 2596493b8d3ba40e9ca8668f737e002f 1 std/os/linux/tls.zig +47550 15588216 1777922722094271450 32c5da8e114e94ea2adec4c27b6ce0db 1 std/os/linux/bpf.zig +1297 15588219 1777922722094271450 daac8c407161fbb4bb996238aee46635 1 std/os/linux/ioctl.zig +8427 15588232 1777922722095271446 b845f84a2ea6f5532d8ffc78297dafed 1 std/os/linux/seccomp.zig +191416 15588234 1777922722095271446 2171c87abdee6ea939834e72eaa1a5eb 1 std/os/linux/syscalls.zig +19937 15588218 1777922722094271450 8ba8f2488f743f5b2557ce471784ff51 1 std/os/linux/io_uring_sqe.zig +70498 15588208 1777922722094271450 1bca4c9dd309bf457afc8410477d2bfa 1 std/os/linux/IoUring.zig +2126 15588244 1777922722095271446 d6f497f7c3ede56b9dd8eb2cae54c566 1 std/os/plan9/x86_64.zig +2317 15588274 1777922722096271443 be87bd6baef485caa6e53ac7a241c786 1 std/os/uefi/protocol.zig +37311 15588247 1777922722095271446 a67c5d40f56e40984ce32fba49cfa0bc 1 std/os/uefi/device_path.zig +2078 15588248 1777922722095271446 13b23e26af6b210b16c77d73b956e867 1 std/os/uefi/hii.zig +10107 15588275 1777922722096271443 e4c1fe82be2b68376749dbb625002706 1 std/os/uefi/status.zig +10732 15588282 1777922722096271443 68cf12b996f3dbf4516572e7fe0d5f28 1 std/os/uefi/tables.zig +3906 15588249 1777922722095271446 5c4587a7b4f3370e256119bdab607b4a 1 std/os/uefi/pool_allocator.zig +928 15588287 1777922722096271443 bdb9a1476aaf7f283248a744d45098b3 1 std/os/windows/kernel32.zig +24957 15588290 1777922722096271443 d002d05bd824d2a94ac1184a1de432b6 1 std/os/windows/ntdll.zig +6230 15588295 1777922722096271443 ae6102533d158f7aa36956692efdf400 1 std/os/windows/ws2_32.zig +7915 15588286 1777922722096271443 2295f6c84e927b878882595bca445084 1 std/os/windows/crypt32.zig +20117 15588289 1777922722096271443 696b67a75a9a665eb00672233edffbb2 1 std/os/windows/nls.zig +237477 15588291 1777922722096271443 67644436e9162e79563b60f574b36f99 1 std/os/windows/ntstatus.zig +159624 15588294 1777922722096271443 a39f9d487cebae65c6f7885b43d14926 1 std/os/windows/win32error.zig +3697 15588288 1777922722096271443 f5f54b1cf522ff663148d3c96268d459 1 std/os/windows/lang.zig +8449 15588292 1777922722096271443 3c42a760ba486f9b9455bd95d20d2e0b 1 std/os/windows/sublang.zig +134890 15588353 1777922722098271435 df90a233ff7b97b3d629b2cf2e6cb86a 1 std/zig/Parse.zig +133748 15588343 1777922722098271435 a88e2a4e8edd5e42ce36d5497be9cfe3 1 std/zig/Ast/Render.zig +9472 15588375 1777922722099271431 87195797eae5a3842acb5b520146fd13 1 std/zig/system/NativePaths.zig +12220 15588382 1777922722099271431 1f1c4d6952079202735b6347b5864845 1 std/zig/system/windows.zig +2320 15588379 1777922722099271431 e3e5ee526c7cbaefdeb93c1c71a9f4cf 1 std/zig/system/darwin.zig +17272 15588380 1777922722099271431 d567aa2d0fd3fea7e6ba769d0f8ec592 1 std/zig/system/linux.zig +2265 15588381 1777922722099271431 e842ad5fa8bb44c7b2f8d9b6a335fcf3 1 std/zig/system/loongarch.zig +26515 15588383 1777922722099271431 775e2bf6e3c40cf09c216c30e4630474 1 std/zig/system/x86.zig +19938 15588364 1777922722099271431 f668cf11e4bececc793b349896705637 1 std/zig/llvm/BitcodeReader.zig +17757 15588366 1777922722099271431 d9ff99a16b4c64c8b4178f94af361113 1 std/zig/llvm/bitcode_writer.zig +597464 15588365 1777922722099271431 3d2fda42992a57fa8717bda6172f399b 1 std/zig/llvm/Builder.zig +0 15567785 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/clzsi2_test.zig +0 15567784 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/clzdi2_test.zig +0 15567786 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/clzti2_test.zig +0 15567800 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ctzsi2_test.zig +0 15567799 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ctzdi2_test.zig +0 15567801 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ctzti2_test.zig +0 15567837 1777922721687272961 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ffssi2_test.zig +0 15567836 1777922721687272961 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ffsdi2_test.zig +0 15567838 1777922721687272961 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ffsti2_test.zig +0 15567973 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/paritysi2_test.zig +0 15567972 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/paritydi2_test.zig +0 15567974 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/parityti2_test.zig +0 15567977 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/popcountsi2_test.zig +0 15567976 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/popcountdi2_test.zig +0 15567978 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/popcountti2_test.zig +0 15567777 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bitreversesi2_test.zig +0 15567776 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bitreversedi2_test.zig +0 15567778 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bitreverseti2_test.zig +0 15567781 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bswapsi2_test.zig +0 15567780 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bswapdi2_test.zig +0 15567782 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bswapti2_test.zig +0 15567790 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/cmpsi2_test.zig +0 15567789 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/cmpdi2_test.zig +0 15567792 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/cmpti2_test.zig +0 15568016 1777922721690272950 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ucmpsi2_test.zig +0 15568015 1777922721690272950 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ucmpdi2_test.zig +0 15568017 1777922721690272950 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ucmpti2_test.zig +0 15567987 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/shift_test.zig +0 15568019 1777922721690272950 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/udivmoddi4_test.zig +0 15567943 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/mulXi3_test.zig +0 15567941 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/modti3_test.zig +0 15567816 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/divti3_test.zig +0 15568022 1777922721690272950 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/udivmodti4_test.zig +0 15567759 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/absvsi2_test.zig +0 15567757 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/absvdi2_test.zig +0 15567761 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/absvti2_test.zig +0 15567968 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negvsi2_test.zig +0 15567967 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negvdi2_test.zig +0 15567969 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negvti2_test.zig +0 15567954 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/mulosi4_test.zig +0 15567953 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/mulodi4_test.zig +0 15567955 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/muloti4_test.zig +0 15567826 1777922721687272961 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/extendf_test.zig +0 15568006 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/truncf_test.zig +0 15567933 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/int_from_float_test.zig +0 15567877 1777922721687272961 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/float_from_int_test.zig +0 15567796 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/comparesf2_test.zig +0 15567794 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/comparedf2_test.zig +0 15567764 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/addf3_test.zig +0 15567949 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/mulf3_test.zig +0 15567812 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/divsf3_test.zig +0 15567806 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/divdf3_test.zig +0 15567819 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/divxf3_test.zig +0 15567815 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/divtf3_test.zig +0 15567980 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/powiXf2_test.zig +20510 15568001 1777922721689272954 f6b225d4b9feff2de1e103d485dc8e40 1 compiler_rt/trig.zig +6045 15567981 1777922721689272954 18b634df64d66eb7c240db46b32eea60 1 compiler_rt/rem_pio2.zig +2247 15567983 1777922721689272954 2337e183931c970621500018ffe636df 1 compiler_rt/rem_pio2f.zig +5829 15567984 1777922721689272954 402ac72990072faf4f752a5636968782 1 compiler_rt/rem_pio2l.zig +1118 15567938 1777922721688272957 bec039b31d08232f98fc682d19a1ac73 1 compiler_rt/long_double.zig +0 15567923 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/fmodq_test.zig +0 15567924 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/fmodx_test.zig +10730 15587908 1777922722086271480 53adac0f8e0f7d9078504320a3c43e07 1 std/compress/flate/token.zig +12650 15587990 1777922722088271472 56befc361ef070a7bd0a2d3c1dc46994 1 std/crypto/pcurves/common.zig +67958 15587993 1777922722088271472 0f2daafefad01026d6796eec68d65d2e 1 std/crypto/pcurves/p256/p256_64.zig +76136 15587994 1777922722088271472 8ec5f177ef28f7a2a0ec8d103665db00 1 std/crypto/pcurves/p256/p256_scalar_64.zig +134511 15587999 1777922722089271469 2e0dda7c40794e981dd2d2471c4776a5 1 std/crypto/pcurves/p384/p384_64.zig +137291 15588000 1777922722089271469 81eb087d46e6c49907ae0c02d3230828 1 std/crypto/pcurves/p384/p384_scalar_64.zig +73280 15588006 1777922722089271469 c871f98dad15c7a8c29be9ccefa4b181 1 std/crypto/pcurves/secp256k1/secp256k1_64.zig +75859 15588007 1777922722089271469 e29275bdb0eb931fc383e7f2f5ded944 1 std/crypto/pcurves/secp256k1/secp256k1_scalar_64.zig +1807 15587968 1777922722087271476 f47429307ac0920ff18758ce86074549 1 std/crypto/codecs/asn1/der.zig +7105 15587960 1777922722087271476 66ccc511a453a86184290b4cacf80766 1 std/crypto/codecs/asn1/Oid.zig +0 15587969 1777922722087271476 82547a8dd7f3efb3f077622e34876868 1 std/crypto/codecs/asn1/test.zig +4011 15587933 1777922722086271480 a49557210ec6e38ec5826a46866649f7 1 std/crypto/Certificate/Bundle/macos.zig +17121 15588031 1777922722089271469 02ea7c4c86a3f7b66d945d1a88d0860d 1 std/debug/Dwarf/Unwind/VirtualMachine.zig +3081 15588065 1777922722091271461 2aeda0b8b6036bb4d980778abb5a928a 1 std/fmt/parse_float/common.zig +3073 15588064 1777922722091271461 3950e4fa1fdd11d50db0b4abfc254022 1 std/fmt/parse_float/FloatStream.zig +6036 15588063 1777922722091271461 68169ffe43d55f0eb5e26b984ef98670 1 std/fmt/parse_float/FloatInfo.zig +29140 15588070 1777922722091271461 04115d79320f402803a56bd43cc34cf9 1 std/fmt/parse_float/decimal.zig +2726 15588154 1777922722093271454 7f318d60fafbfa10754d5644fd131ffe 1 std/math/complex/ldexp.zig +0 15588138 1777922722093271454 82547a8dd7f3efb3f077622e34876868 1 std/math/big/int_test.zig +4082 15588212 1777922722094271450 11a08913a0ec64b8325b0d29601479a7 1 std/os/linux/bpf/btf.zig +1573 15588215 1777922722094271450 08d401fe72d3ad7d47a05a0dfa21751a 1 std/os/linux/bpf/kern.zig +0 15588207 1777922722094271450 82547a8dd7f3efb3f077622e34876868 1 std/os/linux/IoUring/test.zig +2001 15588265 1777922722096271443 539322409dfd2d684638b127038a6e33 1 std/os/uefi/protocol/service_binding.zig +1715 15588261 1777922722095271446 f6892127566a3c88d1d324cfca22e049 1 std/os/uefi/protocol/loaded_image.zig +4814 15588253 1777922722095271446 ae0050bfba8bda94901399e42fe62869 1 std/os/uefi/protocol/device_path.zig +3896 15588263 1777922722095271446 0eaedbe475401fd4e42c2f72619c3b04 1 std/os/uefi/protocol/rng.zig +544 15588266 1777922722096271443 a0f63cfe62d021c13659600cea4aaa1a 1 std/os/uefi/protocol/shell_parameters.zig +1496 15588267 1777922722096271443 92bd55cb521ba72da3dacbe3d5c5b804 1 std/os/uefi/protocol/simple_file_system.zig +13127 15588255 1777922722095271446 3e58288866670edca5973d3e29efe731 1 std/os/uefi/protocol/file.zig +5143 15588252 1777922722095271446 90c9d2e0c006c58adc3164e19f00657f 1 std/os/uefi/protocol/block_io.zig +1799 15588270 1777922722096271443 f024846a184666b0affa25a2cafbc10b 1 std/os/uefi/protocol/simple_text_input.zig +4974 15588271 1777922722096271443 8f8f74b6ab8260a314f3302e3b60a8b2 1 std/os/uefi/protocol/simple_text_input_ex.zig +9829 15588272 1777922722096271443 e29ba19063da848e891733725e4ef18c 1 std/os/uefi/protocol/simple_text_output.zig +2000 15588269 1777922722096271443 b5984b96aff1463f582bc80721e4a38c 1 std/os/uefi/protocol/simple_pointer.zig +2370 15588251 1777922722095271446 8910b48d0e2ed04512369394e9c24ef9 1 std/os/uefi/protocol/absolute_pointer.zig +4848 15588264 1777922722096271443 5a314d85dc7710d8e0d76e10d6c3922e 1 std/os/uefi/protocol/serial_io.zig +4268 15588256 1777922722095271446 be47eb42c9a36fecb0a4c61de4bdfb28 1 std/os/uefi/protocol/graphics_output.zig +2451 15588254 1777922722095271446 2485a4796e73c7c8a14535333ea36518 1 std/os/uefi/protocol/edid.zig +15926 15588268 1777922722096271443 f79068be4c5ecb4e18235f0494a8f3cf 1 std/os/uefi/protocol/simple_network.zig +9851 15588262 1777922722095271446 6ac87afb334f152ae1f60c7d37e0f794 1 std/os/uefi/protocol/managed_network.zig +13173 15588259 1777922722095271446 6918e512dad7b2ceae3fa8aea799bc07 1 std/os/uefi/protocol/ip6.zig +5348 15588260 1777922722095271446 f0e7e3eb4726b5acc733b4b709a6fb1b 1 std/os/uefi/protocol/ip6_config.zig +8539 15588273 1777922722096271443 75aeba724def9af2f5500e3b6a298bf6 1 std/os/uefi/protocol/udp6.zig +4193 15588257 1777922722095271446 ce7ddcd4ea155a56ac2f54b3d36b865f 1 std/os/uefi/protocol/hii_database.zig +1684 15588258 1777922722095271446 8a5d84a896afd4cbe181b6fe58095e17 1 std/os/uefi/protocol/hii_popup.zig +48199 15588277 1777922722096271443 e446bbeceb8ffaa0a0de93cfca1d074b 1 std/os/uefi/tables/boot_services.zig +18947 15588279 1777922722096271443 cb1eb30776a43459956ea4c0675dee88 1 std/os/uefi/tables/runtime_services.zig +2796 15588278 1777922722096271443 f0a08fa361dffa5eadb351a471801946 1 std/os/uefi/tables/configuration_table.zig +2295 15588280 1777922722096271443 25bf31dd5f33af51b4b9da897fa1e3d5 1 std/os/uefi/tables/system_table.zig +214 15588281 1777922722096271443 cdb95d6c52cd4654ef26be0bd9f114d4 1 std/os/uefi/tables/table_header.zig +0 15588370 1777922722099271431 82547a8dd7f3efb3f077622e34876868 1 std/zig/parser_test.zig +15193 15588376 1777922722099271431 7bce4e957862b1695847095b0e235801 1 std/zig/system/arm.zig +16515 15588378 1777922722099271431 c3ca99f8a604df7a396ed20c35bcebed 1 std/zig/system/darwin/macos.zig +80205 15588367 1777922722099271431 bfc1e840700a8f0e8a1a52a598010f74 1 std/zig/llvm/ir.zig +20581 15567982 1777922721689272954 e8eaf68a4ffa3364b8f352326a575189 1 compiler_rt/rem_pio2_large.zig +5806 15587963 1777922722087271476 92f1dd53520d8191f93c177825b7845c 1 std/crypto/codecs/asn1/der/Decoder.zig +5861 15587964 1777922722087271476 650695830257d32d9ea72d767d918703 1 std/crypto/codecs/asn1/der/Encoder.zig +419 15588213 1777922722094271450 ed7dfc04a5d0c4f0853edb5414ce981e 1 std/os/linux/bpf/btf_ext.zig +24525 15588214 1777922722094271450 52c7fac6ad48da05270f91f073a4af79 1 std/os/linux/bpf/helpers.zig +2972 15587962 1777922722087271476 8c37c40098d399e3b36a078ce1d4e3a1 1 std/crypto/codecs/asn1/der/ArrayListReverse.zig +687 15621640 1777936676926911871 71bc21dd5de5c13515012651f2230248 0 /home/bd/Projects/zig/zig-frugg/src/main.zig +184235 15590296 1777923881918513972 85ad82da3fad2cc8beda806b1ed8bdeb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/raylib.zig +49710 15590294 1777923881917513974 6d3f0781400dc8bd9d56f75863d4309e 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/raylib-ext.zig +35674 15590302 1777923881920513968 f0a6339cb07109132b564312afeff653 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/rlgl.zig +15973 15590299 1777923881919513970 477b270b06d00dcc87cd16fe35c3c924 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/raymath.zig +11416 15590300 1777923881919513970 8a43dcfb1320b98bb7f8ace3cc4f1743 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/rlgl-ext.zig +11139 15590297 1777923881918513972 0d1aa5facb81177d91b77bd9f7d4b6ae 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/raymath-ext.zig diff --git a/.zig-cache/h/1cb85dd91f14b0c6546af81fb6cede92.txt b/.zig-cache/h/1cb85dd91f14b0c6546af81fb6cede92.txt new file mode 100644 index 0000000..329426e --- /dev/null +++ b/.zig-cache/h/1cb85dd91f14b0c6546af81fb6cede92.txt @@ -0,0 +1,125 @@ +0 +338872 15592269 1777923927290426456 76fc55680b7dd750a09c7c8d4885d438 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rmodels.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +90849 15592263 1777923927287426462 db41cf17388962b34436c4fde7782f23 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raymath.h +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +34258 11024114 1776766428000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +381 11023928 1776766428000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11023930 1776766428000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11023927 1776766428000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11023926 1776766428000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11023925 1776766428000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11023948 1776766428000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11023935 1776766428000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11023890 1776766428000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +21266 11024117 1776766428000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11024118 1776766428000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +45680 15592241 1777923927283426469 eb116170525d41104424990ac7adcf2f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/tinyobj_loader_c.h +6841 11023755 1776766428000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +1679 11024003 1776766428000000000 abb7aa3ce3560985cdcc5222002abe0a 0 /usr/include/errno.h +1426 11023773 1776766428000000000 f5901b3b5db0a666bc76fe7ac755756b 0 /usr/include/bits/errno.h +23 8943817 1770625897000000000 0e9514526df5411989c0921d62c34bb0 0 /usr/include/linux/errno.h +31 8943586 1770625897000000000 303204c8e8dd5d0b26a8bbfede43c812 0 /usr/include/asm/errno.h +5648 8943542 1770625897000000000 8becdc7faaf464f4f03c90038b9730e0 0 /usr/include/asm-generic/errno.h +1612 8943541 1770625897000000000 9e53730016da2684ae9a8bb2284166de 0 /usr/include/asm-generic/errno-base.h +894 11023936 1776766428000000000 21d9a2571870c420b53485fe487743c5 0 /usr/include/bits/types/error_t.h +205754 15592105 1777923927253426528 5d2f236b6f6ef5d9a1b295fd3d1846d5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/cgltf.h +417 15568047 1777922721690272950 d2edf43390585163b0f70c6bd1d7e3b7 1 include/__stddef_header_macro.h +717 15568052 1777922721690272950 81288588f2bdd7ac4f213fa113429ef2 1 include/__stddef_ptrdiff_t.h +708 15568051 1777922721690272950 04b70454bf7cdd0c492cfaf134f95be7 1 include/__stddef_offsetof.h +27519 15568253 1777922721701272909 1bf965d23c79a082ac103b8d4944724e 1 include/stdint.h +8268 11024113 1776766428000000000 07868a6486476f79d1af8befa09ff966 0 /usr/include/stdint.h +1906 11023987 1776766428000000000 eb31012558f3028fc2c3c0def47ccc8a 0 /usr/include/bits/wchar.h +1049 11023885 1776766428000000000 df8b58b124e95d233ec646186fc72d07 0 /usr/include/bits/stdint-uintn.h +1305 11023884 1776766428000000000 e13a68eb8203cd6be160c31f99d931f7 0 /usr/include/bits/stdint-least.h +3794 15568174 1777922721699272917 42f44f0344ca976c19820ae587ff2c10 1 include/limits.h +5839 11024036 1776766428000000000 93606ee9e7d5800ac5b8e3efedd3f157 0 /usr/include/limits.h +5198 11023832 1776766428000000000 a6dd17f359e45199ea5666f65b1113a6 0 /usr/include/bits/posix1_lim.h +3175 11023807 1776766428000000000 b08b1c7bc1b5a70132a5b8b175b8c0db 0 /usr/include/bits/local_lim.h +937 8943972 1770625897000000000 65da8eafce628e0f5da011204e471ee0 0 /usr/include/linux/limits.h +1214 11023840 1776766428000000000 2fe7b4205802733911a5efa9b71bb5e6 0 /usr/include/bits/pthread_stack_min-dynamic.h +2867 11023833 1776766428000000000 7d8aa86701e9a380845c5cd8a669e984 0 /usr/include/bits/posix2_lim.h +3858 11023992 1776766428000000000 6056c22530b9b6e43d3215eee277a553 0 /usr/include/bits/xopen_lim.h +1385 11023977 1776766428000000000 59219f4f906088fd1473df647db44849 0 /usr/include/bits/uio_lim.h +6268 15568152 1777922721698272920 f23d0597dbe24fbef0b9db0a6a912bdb 1 include/float.h +19659 15592242 1777923927284426468 6f6765d6e719e243ad70cc22023392da 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/vox_loader.h +306683 15592223 1777923927268426499 15241acfe0a45badbe1236db00c6ea81 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/m3d.h +72865 15592225 1777923927278426479 9dc0644bac4164f220adfabe1352af5b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/par_shapes.h +45053 11024218 1776766428000000000 61decd3126c9fca1538df8298cac1894 0 /usr/include/unistd.h +5910 11023834 1776766428000000000 3ab8ab6e5779785e032604f1768b415c 0 /usr/include/bits/posix_opt.h +3791 11023770 1776766428000000000 e918da89dc6f1bc95caac7b9e99e3ccc 0 /usr/include/bits/environments.h +23828 11023761 1776766428000000000 9cf65881ab165e5e8e291a2f7fcd0a71 0 /usr/include/bits/confname.h +1810 11023789 1776766428000000000 996cb3fd9509868b01621c74e4a86ade 0 /usr/include/bits/getopt_posix.h +3667 11023787 1776766428000000000 ac9188a8d7cc4aac4ca3ac108e99f032 0 /usr/include/bits/getopt_core.h +2035 11023980 1776766428000000000 0cb61ab97cf5643355f3236fdfb9904c 0 /usr/include/bits/unistd_ext.h +377 8943771 1770625897000000000 7ed06359dec8788b24849d80d4e70c9a 0 /usr/include/linux/close_range.h diff --git a/.zig-cache/h/1e933a5fe50958602e80792fc7123a3e.txt b/.zig-cache/h/1e933a5fe50958602e80792fc7123a3e.txt new file mode 100644 index 0000000..d5a44cb --- /dev/null +++ b/.zig-cache/h/1e933a5fe50958602e80792fc7123a3e.txt @@ -0,0 +1,162 @@ +0 +179546 15592265 1777923927288426459 e6c02b151e39c59246cdfe8aeaaa21f4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rcore.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +42963 11322601 1770636718000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +4286 11322288 1770636718000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11322493 1770636718000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11322492 1770636718000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11322476 1770636718000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11322407 1770636718000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11322597 1770636718000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11322607 1770636718000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11322294 1770636718000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11322510 1770636718000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11322509 1770636718000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +1697 11322469 1770636718000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11322470 1770636718000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +4929 11322268 1770636718000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11322267 1770636718000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +983 11322423 1770636718000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11322414 1770636718000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +5713 11322677 1770636718000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +8806 11322409 1770636718000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11322459 1770636718000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11322405 1770636718000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +143 11322418 1770636718000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11322419 1770636718000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11322456 1770636718000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11322457 1770636718000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11322368 1770636718000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11322485 1770636718000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +1905 11322253 1770636718000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11322254 1770636718000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +2450 11322244 1770636718000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11322460 1770636718000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11322651 1770636718000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11322334 1770636718000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11322430 1770636718000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11322416 1770636718000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11322454 1770636718000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11322453 1770636718000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11322328 1770636718000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11322403 1770636718000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11322327 1770636718000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11322243 1770636718000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11322382 1770636718000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11322383 1770636718000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11322230 1770636718000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11322425 1770636718000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11322377 1770636718000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +34258 11322599 1770636718000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +381 11322413 1770636718000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11322415 1770636718000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11322412 1770636718000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11322411 1770636718000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11322410 1770636718000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11322433 1770636718000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11322420 1770636718000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11322375 1770636718000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +21266 11322602 1770636718000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11322603 1770636718000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +15326 11322698 1770636718000000000 dd0cebc61fc90f380c881a1cbd85230a 0 /usr/include/time.h +3331 11322404 1770636718000000000 d088285f55f90486f8680c7de68e427d 0 /usr/include/bits/time.h +6203 11322408 1770636718000000000 ccfa5c0039c1ddbdb09c6db5d1922cc3 0 /usr/include/bits/timex.h +760 11322455 1770636718000000000 3cf515d0336ee94d22cc413b45febc49 0 /usr/include/bits/types/struct_tm.h +288 11322436 1770636718000000000 2de06c14c40bd39deaf2f372dace4ac7 0 /usr/include/bits/types/struct_itimerspec.h +53032 11322525 1770636718000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +5402 11322295 1770636718000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11322289 1770636718000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +1215 11322269 1770636718000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11322271 1770636718000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11322270 1770636718000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11322297 1770636718000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11322296 1770636718000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11322299 1770636718000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11322298 1770636718000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11322287 1770636718000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +557459 15592112 1777923927256426522 2ee4da35738ca3fd429e246ffcc4e963 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glad.h +27519 15568253 1777922721701272909 1bf965d23c79a082ac103b8d4944724e 1 include/stdint.h +8268 11322598 1770636718000000000 07868a6486476f79d1af8befa09ff966 0 /usr/include/stdint.h +1906 11322472 1770636718000000000 eb31012558f3028fc2c3c0def47ccc8a 0 /usr/include/bits/wchar.h +1049 11322370 1770636718000000000 df8b58b124e95d233ec646186fc72d07 0 /usr/include/bits/stdint-uintn.h +1305 11322369 1770636718000000000 e13a68eb8203cd6be160c31f99d931f7 0 /usr/include/bits/stdint-least.h +90849 15592263 1777923927287426462 db41cf17388962b34436c4fde7782f23 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raymath.h +22533 15592266 1777923927288426459 cbeefe4aa2ae48eebcd037e4f86c02e6 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rgestures.h +22184 15592264 1777923927287426462 cd673acb0eee1d11118f9c543c1b96ed 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rcamera.h +21703 15592233 1777923927279426477 a147737b6c68b2b89f993a9fe8b5e03b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/sinfl.h +6841 11322240 1770636718000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +28109 15592232 1777923927279426477 9a39a8073b251d465d23f4f98d4d0e0b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/sdefl.h +3794 15568174 1777922721699272917 42f44f0344ca976c19820ae587ff2c10 1 include/limits.h +5839 11322521 1770636718000000000 93606ee9e7d5800ac5b8e3efedd3f157 0 /usr/include/limits.h +5198 11322317 1770636718000000000 a6dd17f359e45199ea5666f65b1113a6 0 /usr/include/bits/posix1_lim.h +3175 11322292 1770636718000000000 b08b1c7bc1b5a70132a5b8b175b8c0db 0 /usr/include/bits/local_lim.h +937 8943972 1770625897000000000 65da8eafce628e0f5da011204e471ee0 0 /usr/include/linux/limits.h +1214 11322325 1770636718000000000 2fe7b4205802733911a5efa9b71bb5e6 0 /usr/include/bits/pthread_stack_min-dynamic.h +2867 11322318 1770636718000000000 7d8aa86701e9a380845c5cd8a669e984 0 /usr/include/bits/posix2_lim.h +3858 11322477 1770636718000000000 6056c22530b9b6e43d3215eee277a553 0 /usr/include/bits/xopen_lim.h +1385 11322462 1770636718000000000 59219f4f906088fd1473df647db44849 0 /usr/include/bits/uio_lim.h +11631 15592231 1777923927279426477 e20f072c356800ba394b5b82e64a3a40 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/rprand.h +45053 11322703 1770636718000000000 61decd3126c9fca1538df8298cac1894 0 /usr/include/unistd.h +5910 11322319 1770636718000000000 3ab8ab6e5779785e032604f1768b415c 0 /usr/include/bits/posix_opt.h +3791 11322255 1770636718000000000 e918da89dc6f1bc95caac7b9e99e3ccc 0 /usr/include/bits/environments.h +23828 11322246 1770636718000000000 9cf65881ab165e5e8e291a2f7fcd0a71 0 /usr/include/bits/confname.h +1810 11322274 1770636718000000000 996cb3fd9509868b01621c74e4a86ade 0 /usr/include/bits/getopt_posix.h +3667 11322272 1770636718000000000 ac9188a8d7cc4aac4ca3ac108e99f032 0 /usr/include/bits/getopt_core.h +2035 11322465 1770636718000000000 0cb61ab97cf5643355f3236fdfb9904c 0 /usr/include/bits/unistd_ext.h +377 8943771 1770625897000000000 7ed06359dec8788b24849d80d4e70c9a 0 /usr/include/linux/close_range.h +13793 11322661 1770636718000000000 9f12c6bf198df3a88c2d747996baf030 0 /usr/include/sys/stat.h +2231 11322363 1770636718000000000 eeced79f6a58db284452746e269ed387 0 /usr/include/bits/stat.h +6210 11322384 1770636718000000000 2fe01a59de528f1892df1bc5eef7c7cc 0 /usr/include/bits/struct_stat.h +1400 11322367 1770636718000000000 2002a64c42584c7d184facbe3d81a350 0 /usr/include/bits/statx.h +7838 8944322 1770625897000000000 c0813c1096a17ee5a243bf75dcb7977a 0 /usr/include/linux/stat.h +1829 8944384 1770625897000000000 64ed48c0a52d7d50d7685f6332d61a80 0 /usr/include/linux/types.h +31 8943632 1770625897000000000 748039e47be584104c75dc853bfee6d8 0 /usr/include/asm/types.h +233 8943572 1770625897000000000 ff35ee9081c54a4556677db7b6ac43bd 0 /usr/include/asm-generic/types.h +864 8943546 1770625897000000000 de8f38f0cdc81bf3a5b301889f3dc586 0 /usr/include/asm-generic/int-ll64.h +321 8943578 1770625897000000000 426fd8fd87f0a7222c2d8dc0b1c11a1e 0 /usr/include/asm/bitsperlong.h +1092 8943539 1770625897000000000 ea09d2bd626e1051f84d4ecee37ba039 0 /usr/include/asm-generic/bitsperlong.h +1098 8944239 1770625897000000000 d50b3f49c69b44a5ecd1f232af677d5e 0 /usr/include/linux/posix_types.h +2135 8944323 1770625897000000000 7f1dcecb733611ba8bc38c8fa69c11bb 0 /usr/include/linux/stddef.h +224 8943606 1770625897000000000 d200bb7a30c7371a4580f935befe5542 0 /usr/include/asm/posix_types.h +609 8943608 1770625897000000000 45284a1e84848c31de23d3bd515534ee 0 /usr/include/asm/posix_types_64.h +2420 8943556 1770625897000000000 27c6e0a2b3849c0a9a5f71c86e17deb5 0 /usr/include/asm-generic/posix_types.h +2409 11322366 1770636718000000000 1ca18c39930458d2b106898c1f1ed517 0 /usr/include/bits/statx-generic.h +1202 11322451 1770636718000000000 adf1f98ff50dc6da3f9c81c1f7718940 0 /usr/include/bits/types/struct_statx_timestamp.h +2248 11322450 1770636718000000000 13e0688c779dbc994826255da64ed106 0 /usr/include/bits/types/struct_statx.h +12617 11322482 1770636718000000000 f18eaf57a7b514f3b577f9f5a6bc2d33 0 /usr/include/dirent.h +1771 11322248 1770636718000000000 23e0e14a4e8b16a68e0bc2941bc51c70 0 /usr/include/bits/dirent.h +1275 11322249 1770636718000000000 05d55b8f8aff261c558e2bf919c00c3e 0 /usr/include/bits/dirent_ext.h +93702 15592247 1777923927284426468 9bce58225fa3dedb03ed4cab5c2b195a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/platforms/rcore_desktop_glfw.c +241826 15592156 1777923927261426513 86501dc510331da26275322e654ec46a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3.h +417 15568047 1777922721690272950 d2edf43390585163b0f70c6bd1d7e3b7 1 include/__stddef_header_macro.h +717 15568052 1777922721690272950 81288588f2bdd7ac4f213fa113429ef2 1 include/__stddef_ptrdiff_t.h +708 15568051 1777922721690272950 04b70454bf7cdd0c492cfaf134f95be7 1 include/__stddef_offsetof.h +9164 11322670 1770636718000000000 d2e1b3053beaf053af8a55c6a804fde1 0 /usr/include/sys/time.h +21201 15592157 1777923927261426513 368cd78bfbe5e29e658aa2a5326f9063 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3native.h +99801 11320731 1770539241000000000 f2e7c6c90e11927568ff931d109f936c 0 /usr/include/X11/Xlib.h +20137 7769018 1766144024000000000 382791d667a3393547f807899249bfc0 0 /usr/include/X11/X.h +7946 7769025 1766144024000000000 8a5039c8a7aa3a4eab5f7181393ac108 0 /usr/include/X11/Xfuncproto.h +3115 7769030 1766144024000000000 d53b0559a65c0bcdb77ed0459f1b9976 0 /usr/include/X11/Xosdefs.h +17060 11321897 1769439156000000000 1884746db8290f2b31b7f8451b1cf4b3 0 /usr/include/X11/extensions/Xrandr.h +6909 7769087 1766144024000000000 401965d00acc575149fba334f8bc506d 0 /usr/include/X11/extensions/randr.h +33826 96756 1734163523000000000 cd6d26a1a49037b6952f6ad6add5241b 0 /usr/include/X11/extensions/Xrender.h +21355 11320737 1770539241000000000 52ce1ad0b2c8b33c883e4de9cf2e58fc 0 /usr/include/X11/Xutil.h +2769 7769135 1766144024000000000 0d41ae60a19d8f9ba25f1763119261cc 0 /usr/include/X11/keysym.h +186629 7769136 1766144024000000000 bd52d531f256dfa6f7971ce3c84e5d8b 0 /usr/include/X11/keysymdef.h +6933 7769092 1766144024000000000 f3454f10c8ec914bc2cacc67ae344c58 0 /usr/include/X11/extensions/render.h +2401 7769024 1766144024000000000 8c25483e69b3966a7bf02ad71233d30b 0 /usr/include/X11/Xdefs.h +2518 7769023 1766144024000000000 a6ecf58bbcdb259e383e67043e2a7022 0 /usr/include/X11/Xatom.h diff --git a/.zig-cache/h/22ad686ef21954b9d3b845dbe4632ab6.txt b/.zig-cache/h/22ad686ef21954b9d3b845dbe4632ab6.txt new file mode 100644 index 0000000..dde9016 --- /dev/null +++ b/.zig-cache/h/22ad686ef21954b9d3b845dbe4632ab6.txt @@ -0,0 +1,162 @@ +0 +179546 15592265 1777923927288426459 e6c02b151e39c59246cdfe8aeaaa21f4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rcore.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +34258 11024114 1776766428000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +381 11023928 1776766428000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11023930 1776766428000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11023927 1776766428000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11023926 1776766428000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11023925 1776766428000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11023948 1776766428000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11023935 1776766428000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11023890 1776766428000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +21266 11024117 1776766428000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11024118 1776766428000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +15326 11024213 1776766428000000000 dd0cebc61fc90f380c881a1cbd85230a 0 /usr/include/time.h +3331 11023919 1776766428000000000 d088285f55f90486f8680c7de68e427d 0 /usr/include/bits/time.h +6203 11023923 1776766428000000000 ccfa5c0039c1ddbdb09c6db5d1922cc3 0 /usr/include/bits/timex.h +760 11023970 1776766428000000000 3cf515d0336ee94d22cc413b45febc49 0 /usr/include/bits/types/struct_tm.h +288 11023951 1776766428000000000 2de06c14c40bd39deaf2f372dace4ac7 0 /usr/include/bits/types/struct_itimerspec.h +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +557459 15592112 1777923927256426522 2ee4da35738ca3fd429e246ffcc4e963 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glad.h +27519 15568253 1777922721701272909 1bf965d23c79a082ac103b8d4944724e 1 include/stdint.h +8268 11024113 1776766428000000000 07868a6486476f79d1af8befa09ff966 0 /usr/include/stdint.h +1906 11023987 1776766428000000000 eb31012558f3028fc2c3c0def47ccc8a 0 /usr/include/bits/wchar.h +1049 11023885 1776766428000000000 df8b58b124e95d233ec646186fc72d07 0 /usr/include/bits/stdint-uintn.h +1305 11023884 1776766428000000000 e13a68eb8203cd6be160c31f99d931f7 0 /usr/include/bits/stdint-least.h +90849 15592263 1777923927287426462 db41cf17388962b34436c4fde7782f23 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raymath.h +22533 15592266 1777923927288426459 cbeefe4aa2ae48eebcd037e4f86c02e6 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rgestures.h +22184 15592264 1777923927287426462 cd673acb0eee1d11118f9c543c1b96ed 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rcamera.h +21703 15592233 1777923927279426477 a147737b6c68b2b89f993a9fe8b5e03b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/sinfl.h +6841 11023755 1776766428000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +28109 15592232 1777923927279426477 9a39a8073b251d465d23f4f98d4d0e0b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/sdefl.h +3794 15568174 1777922721699272917 42f44f0344ca976c19820ae587ff2c10 1 include/limits.h +5839 11024036 1776766428000000000 93606ee9e7d5800ac5b8e3efedd3f157 0 /usr/include/limits.h +5198 11023832 1776766428000000000 a6dd17f359e45199ea5666f65b1113a6 0 /usr/include/bits/posix1_lim.h +3175 11023807 1776766428000000000 b08b1c7bc1b5a70132a5b8b175b8c0db 0 /usr/include/bits/local_lim.h +937 8943972 1770625897000000000 65da8eafce628e0f5da011204e471ee0 0 /usr/include/linux/limits.h +1214 11023840 1776766428000000000 2fe7b4205802733911a5efa9b71bb5e6 0 /usr/include/bits/pthread_stack_min-dynamic.h +2867 11023833 1776766428000000000 7d8aa86701e9a380845c5cd8a669e984 0 /usr/include/bits/posix2_lim.h +3858 11023992 1776766428000000000 6056c22530b9b6e43d3215eee277a553 0 /usr/include/bits/xopen_lim.h +1385 11023977 1776766428000000000 59219f4f906088fd1473df647db44849 0 /usr/include/bits/uio_lim.h +11631 15592231 1777923927279426477 e20f072c356800ba394b5b82e64a3a40 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/rprand.h +45053 11024218 1776766428000000000 61decd3126c9fca1538df8298cac1894 0 /usr/include/unistd.h +5910 11023834 1776766428000000000 3ab8ab6e5779785e032604f1768b415c 0 /usr/include/bits/posix_opt.h +3791 11023770 1776766428000000000 e918da89dc6f1bc95caac7b9e99e3ccc 0 /usr/include/bits/environments.h +23828 11023761 1776766428000000000 9cf65881ab165e5e8e291a2f7fcd0a71 0 /usr/include/bits/confname.h +1810 11023789 1776766428000000000 996cb3fd9509868b01621c74e4a86ade 0 /usr/include/bits/getopt_posix.h +3667 11023787 1776766428000000000 ac9188a8d7cc4aac4ca3ac108e99f032 0 /usr/include/bits/getopt_core.h +2035 11023980 1776766428000000000 0cb61ab97cf5643355f3236fdfb9904c 0 /usr/include/bits/unistd_ext.h +377 8943771 1770625897000000000 7ed06359dec8788b24849d80d4e70c9a 0 /usr/include/linux/close_range.h +13793 11024176 1776766428000000000 9f12c6bf198df3a88c2d747996baf030 0 /usr/include/sys/stat.h +2231 11023878 1776766428000000000 eeced79f6a58db284452746e269ed387 0 /usr/include/bits/stat.h +6210 11023899 1776766428000000000 2fe01a59de528f1892df1bc5eef7c7cc 0 /usr/include/bits/struct_stat.h +1400 11023882 1776766428000000000 2002a64c42584c7d184facbe3d81a350 0 /usr/include/bits/statx.h +7838 8944322 1770625897000000000 c0813c1096a17ee5a243bf75dcb7977a 0 /usr/include/linux/stat.h +1829 8944384 1770625897000000000 64ed48c0a52d7d50d7685f6332d61a80 0 /usr/include/linux/types.h +31 8943632 1770625897000000000 748039e47be584104c75dc853bfee6d8 0 /usr/include/asm/types.h +233 8943572 1770625897000000000 ff35ee9081c54a4556677db7b6ac43bd 0 /usr/include/asm-generic/types.h +864 8943546 1770625897000000000 de8f38f0cdc81bf3a5b301889f3dc586 0 /usr/include/asm-generic/int-ll64.h +321 8943578 1770625897000000000 426fd8fd87f0a7222c2d8dc0b1c11a1e 0 /usr/include/asm/bitsperlong.h +1092 8943539 1770625897000000000 ea09d2bd626e1051f84d4ecee37ba039 0 /usr/include/asm-generic/bitsperlong.h +1098 8944239 1770625897000000000 d50b3f49c69b44a5ecd1f232af677d5e 0 /usr/include/linux/posix_types.h +2135 8944323 1770625897000000000 7f1dcecb733611ba8bc38c8fa69c11bb 0 /usr/include/linux/stddef.h +224 8943606 1770625897000000000 d200bb7a30c7371a4580f935befe5542 0 /usr/include/asm/posix_types.h +609 8943608 1770625897000000000 45284a1e84848c31de23d3bd515534ee 0 /usr/include/asm/posix_types_64.h +2420 8943556 1770625897000000000 27c6e0a2b3849c0a9a5f71c86e17deb5 0 /usr/include/asm-generic/posix_types.h +2409 11023881 1776766428000000000 1ca18c39930458d2b106898c1f1ed517 0 /usr/include/bits/statx-generic.h +1202 11023966 1776766428000000000 adf1f98ff50dc6da3f9c81c1f7718940 0 /usr/include/bits/types/struct_statx_timestamp.h +2248 11023965 1776766428000000000 13e0688c779dbc994826255da64ed106 0 /usr/include/bits/types/struct_statx.h +12617 11023997 1776766428000000000 f18eaf57a7b514f3b577f9f5a6bc2d33 0 /usr/include/dirent.h +1771 11023763 1776766428000000000 23e0e14a4e8b16a68e0bc2941bc51c70 0 /usr/include/bits/dirent.h +1275 11023764 1776766428000000000 05d55b8f8aff261c558e2bf919c00c3e 0 /usr/include/bits/dirent_ext.h +93702 15592247 1777923927284426468 9bce58225fa3dedb03ed4cab5c2b195a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/platforms/rcore_desktop_glfw.c +241826 15592156 1777923927261426513 86501dc510331da26275322e654ec46a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3.h +417 15568047 1777922721690272950 d2edf43390585163b0f70c6bd1d7e3b7 1 include/__stddef_header_macro.h +717 15568052 1777922721690272950 81288588f2bdd7ac4f213fa113429ef2 1 include/__stddef_ptrdiff_t.h +708 15568051 1777922721690272950 04b70454bf7cdd0c492cfaf134f95be7 1 include/__stddef_offsetof.h +9164 11024185 1776766428000000000 d2e1b3053beaf053af8a55c6a804fde1 0 /usr/include/sys/time.h +21201 15592157 1777923927261426513 368cd78bfbe5e29e658aa2a5326f9063 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3native.h +99801 8947721 1770539241000000000 f2e7c6c90e11927568ff931d109f936c 0 /usr/include/X11/Xlib.h +20137 7769018 1766144024000000000 382791d667a3393547f807899249bfc0 0 /usr/include/X11/X.h +7946 7769025 1766144024000000000 8a5039c8a7aa3a4eab5f7181393ac108 0 /usr/include/X11/Xfuncproto.h +3115 7769030 1766144024000000000 d53b0559a65c0bcdb77ed0459f1b9976 0 /usr/include/X11/Xosdefs.h +17060 8741258 1769439156000000000 1884746db8290f2b31b7f8451b1cf4b3 0 /usr/include/X11/extensions/Xrandr.h +6909 7769087 1766144024000000000 401965d00acc575149fba334f8bc506d 0 /usr/include/X11/extensions/randr.h +33826 96756 1734163523000000000 cd6d26a1a49037b6952f6ad6add5241b 0 /usr/include/X11/extensions/Xrender.h +21355 8947727 1770539241000000000 52ce1ad0b2c8b33c883e4de9cf2e58fc 0 /usr/include/X11/Xutil.h +2769 7769135 1766144024000000000 0d41ae60a19d8f9ba25f1763119261cc 0 /usr/include/X11/keysym.h +186629 7769136 1766144024000000000 bd52d531f256dfa6f7971ce3c84e5d8b 0 /usr/include/X11/keysymdef.h +6933 7769092 1766144024000000000 f3454f10c8ec914bc2cacc67ae344c58 0 /usr/include/X11/extensions/render.h +2401 7769024 1766144024000000000 8c25483e69b3966a7bf02ad71233d30b 0 /usr/include/X11/Xdefs.h +2518 7769023 1766144024000000000 a6ecf58bbcdb259e383e67043e2a7022 0 /usr/include/X11/Xatom.h diff --git a/.zig-cache/h/288d5a79ebee0ec07b3608f803d8b746.txt b/.zig-cache/h/288d5a79ebee0ec07b3608f803d8b746.txt new file mode 100644 index 0000000..44a94e7 --- /dev/null +++ b/.zig-cache/h/288d5a79ebee0ec07b3608f803d8b746.txt @@ -0,0 +1,57 @@ +0 +179546 15592265 1777923927288426459 e6c02b151e39c59246cdfe8aeaaa21f4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rcore.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +351 15608422 1738927222000000000 da08a2d3368091efc0a7185be5672029 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdarg.h +12030 15608436 1738927222000000000 26ed05f1c0047de7dce6035be193f801 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/alltypes.h +167 15607052 1738927222000000000 e9da61c73c730980972a824176188baf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +4903 15608525 1738927222000000000 ed1c72b1bae7a8f66cf26387f5a3450d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdlib.h +1123 15608335 1738927222000000000 05a6a8793bf10dec3a28bc91a5d11897 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/features.h +219 15608608 1738927222000000000 a3c11fe0f49806a9c8748497c3a5d08c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/alloca.h +6097 15608386 1738927222000000000 bfab932e271831504f4ddaa58ab246c9 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdio.h +67218 15608547 1738927221000000000 1fa71b76d45cf8fef0abb1dae850f9f2 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/wasi/api.h +575 15608576 1738927222000000000 39c69d5b8584a46c3a3c1a1ed7ea7644 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stddef.h +2578 15608527 1738927222000000000 0a5bb2760329226e49320fbf5ceb1abe 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdint.h +815 15608447 1738927222000000000 cd851a9784f94f6596041d1e6a402eb1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/stdint.h +3041 15608333 1738927222000000000 674d66a327c388875d7daa272ead7369 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/string.h +964 15607137 1738927222000000000 b380eb8513f60d9c20a2673704aa7687 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/strings.h +4438 15608577 1738927222000000000 921be7c0960cfe9014899f23d668a85b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/time.h +11491 15608596 1738927222000000000 efae42386740518b1f626a76459cd25d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/math.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +43996 15608530 1738927221000000000 270d44b09e74b6d74250d94bb489167b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/GLES2/gl2.h +1160 15608531 1738927221000000000 45931b5ece6f587fbc7cf553b11ccf06 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/GLES2/gl2platform.h +10279 15608579 1738927221000000000 6c8fa10137b15e62a657a94d167f4d1d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/KHR/khrplatform.h +233400 15608532 1738927221000000000 6d3905b5e9c26a6459e357840cd0a0b3 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/GLES2/gl2ext.h +90849 15592263 1777923927287426462 db41cf17388962b34436c4fde7782f23 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raymath.h +22533 15592266 1777923927288426459 cbeefe4aa2ae48eebcd037e4f86c02e6 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rgestures.h +22184 15592264 1777923927287426462 cd673acb0eee1d11118f9c543c1b96ed 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rcamera.h +21703 15592233 1777923927279426477 a147737b6c68b2b89f993a9fe8b5e03b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/sinfl.h +428 15608607 1738927222000000000 31f38b261e42c4f6912cc4954954c56a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/assert.h +28109 15592232 1777923927279426477 9a39a8073b251d465d23f4f98d4d0e0b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/sdefl.h +4412 15608610 1738927222000000000 f4ca41fb1112c994ce5deadd7009f1fa 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/limits.h +24 15608455 1738927222000000000 773e1f0853282ba140053113f445be6d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/limits.h +11631 15592231 1777923927279426477 e20f072c356800ba394b5b82e64a3a40 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/rprand.h +4281 15608360 1738927222000000000 3eb29d21d878f7d2656bf2612f53b514 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/sys/stat.h +521 15608437 1738927222000000000 a8f7b39b37e5a109cb3086f062ecd235 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/stat.h +1711 15608621 1738927222000000000 99fc83cb96fda4ea6f30d0b248ba4a3b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/dirent.h +201 15608456 1738927222000000000 37d8c95ed51417363955fb7162fcae01 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/dirent.h +14244 15607068 1738927222000000000 9594526477f7ad63c9dbcd11af025579 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/unistd.h +68 15608452 1738927222000000000 f38b9122c92bc19006648b5f6d7a1cf5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/posix.h +82940 15592254 1777923927286426463 bd1e54e2f6460bfe0287a5849a852c4f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/platforms/rcore_web.c +241826 15592156 1777923927261426513 86501dc510331da26275322e654ec46a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3.h +9671 15607087 1738927221000000000 86e49b6fd256e45dc26b273265429f76 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/emscripten.h +14111 15607110 1738927221000000000 4898e19b79e81ea8a6b998995c15b64a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/em_asm.h +1863 15607100 1738927221000000000 dc53755527835a1a7ca61d8e0d281c28 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/em_macros.h +1893 15607111 1738927221000000000 d7e1c28ee3a51c27c4f2484cb14207bd 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/em_types.h +3372 15607108 1738927221000000000 6710bc7695c18f1e1de93cfef4091024 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/em_js.h +7460 15607092 1738927221000000000 0ddd795c97234b43279ef844ee7568f6 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/promise.h +1928 15607086 1738927221000000000 f60b00490148126ecfa90f80e68f1214 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/wget.h +146 15607084 1738947787000000000 9d0ea595ec9580ee0d304fe782543940 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/version.h +30580 15607085 1738927221000000000 dd661b267ed88cacbe7b9d8e694139c7 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/html5.h +9367 15607082 1738927222000000000 47f47346759cf646e990bca53338b254 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/pthread.h +4399 15608598 1738927222000000000 51a1e0abfdcc1d8d6afc363e76c7f970 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/sched.h +1261 15607098 1738927221000000000 f6c322fc54983382533e485bb63478e8 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/eventloop.h +3451 15607093 1738927221000000000 44fda93b7dcbd61b867d19404fca2935 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/console.h +11097 15607114 1738927221000000000 063b9ecd69660c474e7c791601fe3cfd 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/html5_webgl.h +2254 15608377 1738927222000000000 8030fd98d352b473522eef8d986bd45c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/sys/time.h +1332 15608378 1738927222000000000 18432538c3ab3277a7c055dfd1846050 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/sys/select.h diff --git a/.zig-cache/h/2b4dce064b87235e2304f5947f7f5571.txt b/.zig-cache/h/2b4dce064b87235e2304f5947f7f5571.txt new file mode 100644 index 0000000..c9b073f --- /dev/null +++ b/.zig-cache/h/2b4dce064b87235e2304f5947f7f5571.txt @@ -0,0 +1,173 @@ +0 +113824 15592256 1777923927286426463 eaa3ac47a6f370a3247b2e595e877cae 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raudio.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +4107565 15592224 1777923927276426483 40a300c8571017a8213fcc665a614206 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/miniaudio.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +417 15568047 1777922721690272950 d2edf43390585163b0f70c6bd1d7e3b7 1 include/__stddef_header_macro.h +717 15568052 1777922721690272950 81288588f2bdd7ac4f213fa113429ef2 1 include/__stddef_ptrdiff_t.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +708 15568051 1777922721690272950 04b70454bf7cdd0c492cfaf134f95be7 1 include/__stddef_offsetof.h +48570 11024091 1776766428000000000 df73001c3d08af59a57b790c20f13f2a 0 /usr/include/pthread.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5043 11024099 1776766428000000000 e6a51b852746c12c94ed682ec128431b 0 /usr/include/sched.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +5952 11023847 1776766428000000000 0926186d78c26fdbfea09ab846c93da9 0 /usr/include/bits/sched.h +4558 8944287 1770625897000000000 13cfeea4f632939bde4c2db64ec930ff 0 /usr/include/linux/sched/types.h +1829 8944384 1770625897000000000 64ed48c0a52d7d50d7685f6332d61a80 0 /usr/include/linux/types.h +31 8943632 1770625897000000000 748039e47be584104c75dc853bfee6d8 0 /usr/include/asm/types.h +233 8943572 1770625897000000000 ff35ee9081c54a4556677db7b6ac43bd 0 /usr/include/asm-generic/types.h +864 8943546 1770625897000000000 de8f38f0cdc81bf3a5b301889f3dc586 0 /usr/include/asm-generic/int-ll64.h +321 8943578 1770625897000000000 426fd8fd87f0a7222c2d8dc0b1c11a1e 0 /usr/include/asm/bitsperlong.h +1092 8943539 1770625897000000000 ea09d2bd626e1051f84d4ecee37ba039 0 /usr/include/asm-generic/bitsperlong.h +1098 8944239 1770625897000000000 d50b3f49c69b44a5ecd1f232af677d5e 0 /usr/include/linux/posix_types.h +2135 8944323 1770625897000000000 7f1dcecb733611ba8bc38c8fa69c11bb 0 /usr/include/linux/stddef.h +224 8943606 1770625897000000000 d200bb7a30c7371a4580f935befe5542 0 /usr/include/asm/posix_types.h +609 8943608 1770625897000000000 45284a1e84848c31de23d3bd515534ee 0 /usr/include/asm/posix_types_64.h +2420 8943556 1770625897000000000 27c6e0a2b3849c0a9a5f71c86e17deb5 0 /usr/include/asm-generic/posix_types.h +1073 11023957 1776766428000000000 fd5bfcedcccd0699759e0e9b4b5f31d2 0 /usr/include/bits/types/struct_sched_param.h +4516 11023762 1776766428000000000 eab9f52a0722cf3bd47401680264c9bd 0 /usr/include/bits/cpu-set.h +15326 11024213 1776766428000000000 dd0cebc61fc90f380c881a1cbd85230a 0 /usr/include/time.h +3331 11023919 1776766428000000000 d088285f55f90486f8680c7de68e427d 0 /usr/include/bits/time.h +6203 11023923 1776766428000000000 ccfa5c0039c1ddbdb09c6db5d1922cc3 0 /usr/include/bits/timex.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +760 11023970 1776766428000000000 3cf515d0336ee94d22cc413b45febc49 0 /usr/include/bits/types/struct_tm.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +288 11023951 1776766428000000000 2de06c14c40bd39deaf2f372dace4ac7 0 /usr/include/bits/types/struct_itimerspec.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1287 11023853 1776766428000000000 81b3c862d757d31fa9585485df82c1f6 0 /usr/include/bits/setjmp.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +1467 11023949 1776766428000000000 c65b4aa95fccac40bd98fee3ba150e60 0 /usr/include/bits/types/struct___jmp_buf_tag.h +1214 11023840 1776766428000000000 2fe7b4205802733911a5efa9b71bb5e6 0 /usr/include/bits/pthread_stack_min-dynamic.h +6841 11023755 1776766428000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +3794 15568174 1777922721699272917 42f44f0344ca976c19820ae587ff2c10 1 include/limits.h +5839 11024036 1776766428000000000 93606ee9e7d5800ac5b8e3efedd3f157 0 /usr/include/limits.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +5198 11023832 1776766428000000000 a6dd17f359e45199ea5666f65b1113a6 0 /usr/include/bits/posix1_lim.h +3175 11023807 1776766428000000000 b08b1c7bc1b5a70132a5b8b175b8c0db 0 /usr/include/bits/local_lim.h +937 8943972 1770625897000000000 65da8eafce628e0f5da011204e471ee0 0 /usr/include/linux/limits.h +2867 11023833 1776766428000000000 7d8aa86701e9a380845c5cd8a669e984 0 /usr/include/bits/posix2_lim.h +3858 11023992 1776766428000000000 6056c22530b9b6e43d3215eee277a553 0 /usr/include/bits/xopen_lim.h +1385 11023977 1776766428000000000 59219f4f906088fd1473df647db44849 0 /usr/include/bits/uio_lim.h +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +21266 11024117 1776766428000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11024118 1776766428000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +34258 11024114 1776766428000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +381 11023928 1776766428000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11023930 1776766428000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11023927 1776766428000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11023926 1776766428000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11023925 1776766428000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11023948 1776766428000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11023935 1776766428000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11023890 1776766428000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +40129 11024224 1776766428000000000 846d60b8884553e61b200835c9192db4 0 /usr/include/wchar.h +1906 11023987 1776766428000000000 eb31012558f3028fc2c3c0def47ccc8a 0 /usr/include/bits/wchar.h +796 11023973 1776766428000000000 eee748e39eee0c3ba0222f7d0a22f5bb 0 /usr/include/bits/types/wint_t.h +135 11023939 1776766428000000000 88a8626270b2c135f6fae239597f3050 0 /usr/include/bits/types/mbstate_t.h +9164 11024185 1776766428000000000 d2e1b3053beaf053af8a55c6a804fde1 0 /usr/include/sys/time.h +45053 11024218 1776766428000000000 61decd3126c9fca1538df8298cac1894 0 /usr/include/unistd.h +5910 11023834 1776766428000000000 3ab8ab6e5779785e032604f1768b415c 0 /usr/include/bits/posix_opt.h +3791 11023770 1776766428000000000 e918da89dc6f1bc95caac7b9e99e3ccc 0 /usr/include/bits/environments.h +23828 11023761 1776766428000000000 9cf65881ab165e5e8e291a2f7fcd0a71 0 /usr/include/bits/confname.h +1810 11023789 1776766428000000000 996cb3fd9509868b01621c74e4a86ade 0 /usr/include/bits/getopt_posix.h +3667 11023787 1776766428000000000 ac9188a8d7cc4aac4ca3ac108e99f032 0 /usr/include/bits/getopt_core.h +2035 11023980 1776766428000000000 0cb61ab97cf5643355f3236fdfb9904c 0 /usr/include/bits/unistd_ext.h +377 8943771 1770625897000000000 7ed06359dec8788b24849d80d4e70c9a 0 /usr/include/linux/close_range.h +13793 11024176 1776766428000000000 9f12c6bf198df3a88c2d747996baf030 0 /usr/include/sys/stat.h +2231 11023878 1776766428000000000 eeced79f6a58db284452746e269ed387 0 /usr/include/bits/stat.h +6210 11023899 1776766428000000000 2fe01a59de528f1892df1bc5eef7c7cc 0 /usr/include/bits/struct_stat.h +1400 11023882 1776766428000000000 2002a64c42584c7d184facbe3d81a350 0 /usr/include/bits/statx.h +7838 8944322 1770625897000000000 c0813c1096a17ee5a243bf75dcb7977a 0 /usr/include/linux/stat.h +2409 11023881 1776766428000000000 1ca18c39930458d2b106898c1f1ed517 0 /usr/include/bits/statx-generic.h +1202 11023966 1776766428000000000 adf1f98ff50dc6da3f9c81c1f7718940 0 /usr/include/bits/types/struct_statx_timestamp.h +2248 11023965 1776766428000000000 13e0688c779dbc994826255da64ed106 0 /usr/include/bits/types/struct_statx.h +201616 15568149 1777922721698272920 c59721a008a14bf4245225c8d6dd981f 1 include/emmintrin.h +120340 15568276 1777922721702272906 8e35d00e3ce60714ef2dd6312b645f5d 1 include/xmmintrin.h +60004 15568188 1777922721700272913 9d96163416d339553543c8056304615f 1 include/mmintrin.h +1929 15568187 1777922721700272913 b6b5caf8039b8eeb1a472434df3e6037 1 include/mm_malloc.h +1679 11024003 1776766428000000000 abb7aa3ce3560985cdcc5222002abe0a 0 /usr/include/errno.h +1426 11023773 1776766428000000000 f5901b3b5db0a666bc76fe7ac755756b 0 /usr/include/bits/errno.h +23 8943817 1770625897000000000 0e9514526df5411989c0921d62c34bb0 0 /usr/include/linux/errno.h +31 8943586 1770625897000000000 303204c8e8dd5d0b26a8bbfede43c812 0 /usr/include/asm/errno.h +5648 8943542 1770625897000000000 8becdc7faaf464f4f03c90038b9730e0 0 /usr/include/asm-generic/errno.h +1612 8943541 1770625897000000000 9e53730016da2684ae9a8bb2284166de 0 /usr/include/asm-generic/errno-base.h +894 11023936 1776766428000000000 21d9a2571870c420b53485fe487743c5 0 /usr/include/bits/types/error_t.h +8794 11023998 1776766428000000000 1e941a0fcec84e68e593320606a258d5 0 /usr/include/dlfcn.h +2521 11023766 1776766428000000000 ce423e8702be28530185e4b09b199fdf 0 /usr/include/bits/dlfcn.h +1119 11023765 1776766428000000000 212bcf73af743c3898fdc9ef533a0cbf 0 /usr/include/bits/dl_find_object.h +22 11024084 1776766428000000000 0ea58fcbabea8c4434197b25c0da0032 0 /usr/include/poll.h +3030 11024151 1776766428000000000 fdfc712b78cbcaa0020d4464fb281b64 0 /usr/include/sys/poll.h +2076 11023830 1776766428000000000 d4de1743efaa71a7637fb37b349b20f7 0 /usr/include/bits/poll.h +1400 11024128 1776766428000000000 2f0c7eff02f27ac2b7f317551e29ec48 0 /usr/include/sys/eventfd.h +27519 15568253 1777922721701272909 1bf965d23c79a082ac103b8d4944724e 1 include/stdint.h +8268 11024113 1776766428000000000 07868a6486476f79d1af8befa09ff966 0 /usr/include/stdint.h +1049 11023885 1776766428000000000 df8b58b124e95d233ec646186fc72d07 0 /usr/include/bits/stdint-uintn.h +1305 11023884 1776766428000000000 e13a68eb8203cd6be160c31f99d931f7 0 /usr/include/bits/stdint-least.h +1129 11023776 1776766428000000000 1529b91466df4e72721b7951edd4ed3e 0 /usr/include/bits/eventfd.h +364560 15592110 1777923927256426522 aa3f7a4e5ed2aea4a1ec6c90429905d4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/dr_wav.h +192790 15592240 1777923927283426469 890c281f1c8cc1ed210397614a0eb43c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_vorbis.c +206600 15592109 1777923927255426525 8a111acae971c169c181fb95f0bbb828 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/dr_mp3.h +23845 15592226 1777923927278426479 f136d45fb944c980c3798c30d5d3d443 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoa.h +10241 15592227 1777923927278426479 737b9fb56af4b423417c98b7fd85a98b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoaplay.c +102215 15592222 1777923927267426501 87feda682bd5df29026e59540130ea22 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/jar_xm.h +51996 15592221 1777923927267426501 7826726113566a1ac41845859112fa61 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/jar_mod.h diff --git a/.zig-cache/h/2b80cc18ae356599bc344a26ba479dd3.txt b/.zig-cache/h/2b80cc18ae356599bc344a26ba479dd3.txt new file mode 100644 index 0000000..91b8b36 --- /dev/null +++ b/.zig-cache/h/2b80cc18ae356599bc344a26ba479dd3.txt @@ -0,0 +1,230 @@ +0 +226085 15592272 1777923927291426454 57703b4cb9d20c85f2494106b300ce4c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rtextures.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +42963 11322601 1770636718000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +4286 11322288 1770636718000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11322493 1770636718000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11322492 1770636718000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11322476 1770636718000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11322407 1770636718000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11322597 1770636718000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11322607 1770636718000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11322294 1770636718000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11322510 1770636718000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11322509 1770636718000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +1697 11322469 1770636718000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11322470 1770636718000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +4929 11322268 1770636718000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11322267 1770636718000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +983 11322423 1770636718000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11322414 1770636718000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +5713 11322677 1770636718000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +8806 11322409 1770636718000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11322459 1770636718000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11322405 1770636718000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +143 11322418 1770636718000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11322419 1770636718000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11322456 1770636718000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11322457 1770636718000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11322368 1770636718000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11322485 1770636718000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +1905 11322253 1770636718000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11322254 1770636718000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +2450 11322244 1770636718000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11322460 1770636718000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11322651 1770636718000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11322334 1770636718000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11322430 1770636718000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11322416 1770636718000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11322454 1770636718000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11322453 1770636718000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11322328 1770636718000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11322403 1770636718000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11322327 1770636718000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11322243 1770636718000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11322382 1770636718000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11322383 1770636718000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11322230 1770636718000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11322425 1770636718000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11322377 1770636718000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +21266 11322602 1770636718000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11322603 1770636718000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +53032 11322525 1770636718000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +5402 11322295 1770636718000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11322289 1770636718000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +1215 11322269 1770636718000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11322271 1770636718000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11322270 1770636718000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11322297 1770636718000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11322296 1770636718000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11322299 1770636718000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11322298 1770636718000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11322287 1770636718000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +34258 11322599 1770636718000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +381 11322413 1770636718000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11322415 1770636718000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11322412 1770636718000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11322411 1770636718000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11322410 1770636718000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11322433 1770636718000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11322420 1770636718000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11322375 1770636718000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +283010 15592234 1777923927280426475 da0de4b77a864a92ca0a84752ae64a25 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image.h +417 15568047 1777922721690272950 d2edf43390585163b0f70c6bd1d7e3b7 1 include/__stddef_header_macro.h +717 15568052 1777922721690272950 81288588f2bdd7ac4f213fa113429ef2 1 include/__stddef_ptrdiff_t.h +708 15568051 1777922721690272950 04b70454bf7cdd0c492cfaf134f95be7 1 include/__stddef_offsetof.h +3794 15568174 1777922721699272917 42f44f0344ca976c19820ae587ff2c10 1 include/limits.h +5839 11322521 1770636718000000000 93606ee9e7d5800ac5b8e3efedd3f157 0 /usr/include/limits.h +5198 11322317 1770636718000000000 a6dd17f359e45199ea5666f65b1113a6 0 /usr/include/bits/posix1_lim.h +3175 11322292 1770636718000000000 b08b1c7bc1b5a70132a5b8b175b8c0db 0 /usr/include/bits/local_lim.h +937 8943972 1770625897000000000 65da8eafce628e0f5da011204e471ee0 0 /usr/include/linux/limits.h +1214 11322325 1770636718000000000 2fe7b4205802733911a5efa9b71bb5e6 0 /usr/include/bits/pthread_stack_min-dynamic.h +2867 11322318 1770636718000000000 7d8aa86701e9a380845c5cd8a669e984 0 /usr/include/bits/posix2_lim.h +3858 11322477 1770636718000000000 6056c22530b9b6e43d3215eee277a553 0 /usr/include/bits/xopen_lim.h +1385 11322462 1770636718000000000 59219f4f906088fd1473df647db44849 0 /usr/include/bits/uio_lim.h +6841 11322240 1770636718000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +27519 15568253 1777922721701272909 1bf965d23c79a082ac103b8d4944724e 1 include/stdint.h +8268 11322598 1770636718000000000 07868a6486476f79d1af8befa09ff966 0 /usr/include/stdint.h +1906 11322472 1770636718000000000 eb31012558f3028fc2c3c0def47ccc8a 0 /usr/include/bits/wchar.h +1049 11322370 1770636718000000000 df8b58b124e95d233ec646186fc72d07 0 /usr/include/bits/stdint-uintn.h +1305 11322369 1770636718000000000 e13a68eb8203cd6be160c31f99d931f7 0 /usr/include/bits/stdint-least.h +201616 15568149 1777922721698272920 c59721a008a14bf4245225c8d6dd981f 1 include/emmintrin.h +120340 15568276 1777922721702272906 8e35d00e3ce60714ef2dd6312b645f5d 1 include/xmmintrin.h +60004 15568188 1777922721700272913 9d96163416d339553543c8056304615f 1 include/mmintrin.h +1929 15568187 1777922721700272913 b6b5caf8039b8eeb1a472434df3e6037 1 include/mm_malloc.h +76007 15592230 1777923927279426477 a736a10590b842a754f3c9d9bba6437a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/rltexgpu.h +18326 15592228 1777923927278426479 0a1701580c647f7b4f8a424d04ac746d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoi.h +71221 15592236 1777923927282426471 ca3d5f23a730342b4f4dd18653e45db1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image_write.h +17918 15592237 1777923927282426471 2bb87817ffe9d6d6d3187db2bffe388c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_perlin.h +457839 15592235 1777923927281426473 d73e04ebd94264210f8f82aac82d1da4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image_resize2.h +101720 15568245 1777922721701272909 65d276eda8a6b7f54badd06b69b605d7 1 include/smmintrin.h +31927 15568257 1777922721701272909 a94b62300284d904ddd77a8612722040 1 include/tmmintrin.h +11390 15568207 1777922721700272913 af3b468e9f028463cda1ea1862bdd32f 1 include/pmmintrin.h +1948 15568208 1777922721700272913 0d0dc43525f7392cd17b908e07c520a2 1 include/popcntintrin.h +3347 15568148 1777922721698272920 fb37aa3848b11ad0dde9222206788fed 1 include/crc32intrin.h +16632 15568165 1777922721699272917 70963188f6adf02d47abf0e69307e3ce 1 include/immintrin.h +1727 15568274 1777922721702272906 02224c13847552071474f4b8a67094f2 1 include/x86gprintrin.h +1395 15568160 1777922721699272917 fb46b2d83a3e08fdd2816a60bb34c1f4 1 include/hresetintrin.h +5079 15568259 1777922721701272909 17e8211de80c4aedcb92d94180a78574 1 include/uintrintrin.h +1572 15568261 1777922721701272909 090a143fbece0766fad22b1d0a3d99de 1 include/usermsrintrin.h +2073 15568223 1777922721700272913 b7662e91645d1456a47a0baff1a8e60b 1 include/prfchiintrin.h +6748 15568227 1777922721700272913 60e92c0f22c6fd0127612d8d4fb33f1a 1 include/raointintrin.h +2383 15568146 1777922721698272920 3d1c9e6b8d2f63d088f4554226dea82d 1 include/cmpccxaddintrin.h +659 15568273 1777922721702272906 88839041dd2d933a1ceb26cde857faea 1 include/wmmintrin.h +5269 15568058 1777922721690272950 73101524ee05bfb36c066bf9bb6e60d7 1 include/__wmmintrin_aes.h +2036 15568059 1777922721690272950 679b048994ef6e3eb20b4627ae70bbf3 1 include/__wmmintrin_pclmul.h +1193 15568143 1777922721698272920 0a42c930a770c0836dbe4a3703bb4512 1 include/clflushoptintrin.h +1229 15568144 1777922721698272920 c053e392024dcadcb1da23c409ffb040 1 include/clwbintrin.h +201849 15568132 1777922721698272920 b4ccac975fdcf069bc879ccf03d0b80f 1 include/avxintrin.h +192637 15568104 1777922721697272924 215b76cd9cf97075404f4c97c36c24f0 1 include/avx2intrin.h +5524 15568151 1777922721698272920 a8307854b76c9de85b83d9befd78477f 1 include/f16cintrin.h +20350 15568138 1777922721698272920 52d5562b0fcd60ad86d13264e78f569d 1 include/bmiintrin.h +7546 15568137 1777922721698272920 e3a2aaeac7ef1aaf72d32c13e79fabf8 1 include/bmi2intrin.h +3659 15568185 1777922721700272913 da624bb823db719405e0df2f497fd83e 1 include/lzcntintrin.h +29337 15568154 1777922721699272917 37368c2b3ac26685c39d619149a048a5 1 include/fmaintrin.h +392651 15568110 1777922721697272924 417c1f0ac26fce36e4bf57569e3ae768 1 include/avx512fintrin.h +330339 15568123 1777922721698272920 49a5250ddc213c5fcbbde5cef04535e8 1 include/avx512vlintrin.h +77845 15568107 1777922721697272924 52fdf0987ae18302e0e01534ef877cc2 1 include/avx512bwintrin.h +2626 15568106 1777922721697272924 4c8c0fd807ad9e5271cdd15d2977f9d0 1 include/avx512bitalgintrin.h +4327 15568108 1777922721697272924 d60cce9efd3cf6e1817c5b6437e4be3d 1 include/avx512cdintrin.h +2357 15568129 1777922721698272920 6f8315696bf9a22f42ec05d59da5d065 1 include/avx512vpopcntdqintrin.h +3957 15568130 1777922721698272920 abb99a6c6070cfc30e96f19e82cc0bbb 1 include/avx512vpopcntdqvlintrin.h +4428 15568127 1777922721698272920 d65f32b0b2809f1f45646161d119f357 1 include/avx512vnniintrin.h +13736 15568125 1777922721698272920 f0bad1557e9b86244734e891fe49a319 1 include/avx512vlvnniintrin.h +10690 15568136 1777922721698272920 3cc87c685806872776354f4a0b5d2155 1 include/avxvnniintrin.h +60287 15568109 1777922721697272924 b9a24e2c100dbc7ee399c43d96773394 1 include/avx512dqintrin.h +4629 15568118 1777922721697272924 312bc5534b5826436e11de728e563806 1 include/avx512vlbitalgintrin.h +124474 15568119 1777922721697272924 9c4b311057a3d5598fd23dc67c776400 1 include/avx512vlbwintrin.h +8141 15568120 1777922721697272924 d74858c8ea47f20ff9c4092d113ea41c 1 include/avx512vlcdintrin.h +47827 15568121 1777922721697272924 3c73b81ef4b33ba6bcb6714431e09354 1 include/avx512vldqintrin.h +2660 15568112 1777922721697272924 6400d05d435160c1d6d346c344a76086 1 include/avx512ifmaintrin.h +4712 15568113 1777922721697272924 fa03ebe74dbaca356d64dbe640460035 1 include/avx512ifmavlintrin.h +5886 15568131 1777922721698272920 0e78550e483532f19c0908b38276ec64 1 include/avxifmaintrin.h +3920 15568115 1777922721697272924 5700f088b6969618471ef25f630669d0 1 include/avx512vbmiintrin.h +7402 15568116 1777922721697272924 16d47f57484ed296b3e6e1368e704595 1 include/avx512vbmivlintrin.h +13493 15568114 1777922721697272924 b105a7215373b26faee90ebcf9611298 1 include/avx512vbmi2intrin.h +26633 15568124 1777922721698272920 3e9303ac0a4faf37b84922e7f0c7fbac 1 include/avx512vlvbmi2intrin.h +160735 15568111 1777922721697272924 74efdcbf12d39f136d48990ed6247ae4 1 include/avx512fp16intrin.h +87561 15568122 1777922721697272924 f6fd101ffd8ecd06bab96e21091b3f55 1 include/avx512vlfp16intrin.h +10832 15568105 1777922721697272924 f328f474b8b2f7ecd99fc38496b8ba0c 1 include/avx512bf16intrin.h +19922 15568117 1777922721697272924 ae2035290c3da7e9ee66b53aa998e2e8 1 include/avx512vlbf16intrin.h +934 15568206 1777922721700272913 9eec7d1953339f7017502cf78723950d 1 include/pkuintrin.h +1086 15568269 1777922721702272906 637855aacd197db9868d139d6fafe450 1 include/vpclmulqdqintrin.h +2671 15568263 1777922721701272909 57f64f1aed9ee8ed6eca03464494e60c 1 include/vaesintrin.h +9822 15568156 1777922721699272917 220fde0fd70770eba04dde846bdbbef7 1 include/gfniintrin.h +17431 15568135 1777922721698272920 a7d4a6dc8f028f8c7ace573ef994a4d1 1 include/avxvnniint8intrin.h +14432 15568133 1777922721698272920 72cc1449016b76cd7ab84c886811a3e2 1 include/avxneconvertintrin.h +6088 15568239 1777922721701272909 0f30b3a47ff82ec3699c8cd0e40cbc92 1 include/sha512intrin.h +7470 15568242 1777922721701272909 bc67c183035f74d21e316c8ab20ae2f0 1 include/sm3intrin.h +8401 15568244 1777922721701272909 6ab760098261dfe1782c73be8e138705 1 include/sm4intrin.h +16222 15568134 1777922721698272920 682df57b668a75daebe49e56a2f1c645 1 include/avxvnniint16intrin.h +1280 15568235 1777922721701272909 6eab1c6b32be874b9c82a3ff1d2772e6 1 include/rtmintrin.h +873 15568282 1777922721702272906 dcac3c4fb2d9e8fc2e32c099cc2f4a7c 1 include/xtestintrin.h +7660 15568240 1777922721701272909 3ce15406906216d7b4f3b25709fd0765 1 include/shaintrin.h +2890 15568155 1777922721699272917 72e559c6284e7b3e59ece194e6e3e2f1 1 include/fxsrintrin.h +1678 15568279 1777922721702272906 adc179a954bd6419ecb3679e88e76d89 1 include/xsaveintrin.h +1026 15568280 1777922721702272906 5e941b1ef68d3e6e9aa207d5d00dba2f 1 include/xsaveoptintrin.h +2574 15568278 1777922721702272906 83e5e79720328dd0054ce7660005acd2 1 include/xsavecintrin.h +1268 15568281 1777922721702272906 51ebe3f93e82afad00bcea35da340569 1 include/xsavesintrin.h +3351 15568141 1777922721698272920 940fdc9a595824a3546eb2d73c351f8f 1 include/cetintrin.h +5565 15568060 1777922721690272950 c17718c6485c7659e7890a4cbab75219 1 include/adcintrin.h +3447 15568061 1777922721690272950 a7ca4b601933a32c4855f0ec1ceb8b73 1 include/adxintrin.h +2919 15568229 1777922721701272909 9ba44bec7d615d70d29c2cf49efd2fd9 1 include/rdseedintrin.h +749 15568272 1777922721702272906 ab03b0b2ec3b24b5c381d040fbd5d3f3 1 include/wbnoinvdintrin.h +1207 15568142 1777922721698272920 faf0346a1135a650caebf7c0fa660e06 1 include/cldemoteintrin.h +1357 15568270 1777922721702272906 c29665f4ae7d08f40fdba4bdf3c59fcb 1 include/waitpkgintrin.h +1612 15568190 1777922721700272913 361388a1deda89bbc5200844d0aec7a4 1 include/movdirintrin.h +2025 15568193 1777922721700272913 0f19f76e900e332d57533e05989a2a0c 1 include/movrsintrin.h +7036 15568192 1777922721700272913 2c6fb76c226fac69586d6e93c0fd3908 1 include/movrs_avx10_2intrin.h +3973 15568191 1777922721700272913 19680bd74186f6c0adedde41e57f21e1 1 include/movrs_avx10_2_512intrin.h +1216 15568205 1777922721700272913 b3205c333672913fc7c8acc26dfb5304 1 include/pconfigintrin.h +1816 15568238 1777922721701272909 4814b5f568d79fe0a3ff9a01056fa17b 1 include/sgxintrin.h +1076 15568226 1777922721700272913 3fae1e12e188144704082b5c0de48a7f 1 include/ptwriteintrin.h +764 15568169 1777922721699272917 c4f35c928a775df7195a03f0d5411aff 1 include/invpcidintrin.h +17973 15568171 1777922721699272917 0b48ddfbbe168ffd50b79789be908d2a 1 include/keylockerintrin.h +20304 15568071 1777922721691272946 3381fed3b944ecfc74f30d27ff094bca 1 include/amxintrin.h +3327 15568068 1777922721691272946 f1e5420b9d7fe9febe794a24e96e4ce9 1 include/amxfp16intrin.h +6933 15568066 1777922721691272946 78b4f2aa1cf1c0239e304a1f474331d0 1 include/amxcomplexintrin.h +8839 15568070 1777922721691272946 5ccf1e3f33ad6379d2a262f4438cd502 1 include/amxfp8intrin.h +10853 15568076 1777922721691272946 7921f0f126779340730c078d6b3c9997 1 include/amxtransposeintrin.h +2290 15568072 1777922721691272946 5f7e30d92bb23f379ce740ff06bde41f 1 include/amxmovrsintrin.h +9402 15568073 1777922721691272946 6fa922cc643f704d9fa08f0cce57fd0b 1 include/amxmovrstransposeintrin.h +12986 15568064 1777922721691272946 107cbdc06513520aa9e4e158e3f6c491 1 include/amxavx512intrin.h +3562 15568074 1777922721691272946 fd05d9e0127721d899581134b681ca3c 1 include/amxtf32intrin.h +3643 15568075 1777922721691272946 55a73f65dcb801b11b24e97984ccedb0 1 include/amxtf32transposeintrin.h +3525 15568065 1777922721691272946 52d2749a270864e796b43cc5ee738a7f 1 include/amxbf16transposeintrin.h +3525 15568069 1777922721691272946 42f3593c062932dfe44c29ecf4283afb 1 include/amxfp16transposeintrin.h +12061 15568067 1777922721691272946 3ac118b8b4568263387fa6cc9c6d757d 1 include/amxcomplextransposeintrin.h +3102 15568128 1777922721698272920 731bbd34cb220f83027d2d1b60e5b916 1 include/avx512vp2intersectintrin.h +4782 15568126 1777922721698272920 380ed65ce4ea2eb042a085a39a69d79e 1 include/avx512vlvp2intersectintrin.h +44658 15568097 1777922721696272928 faca47b99e2b7dd009773fe525926cad 1 include/avx10_2bf16intrin.h +108821 15568098 1777922721696272928 fb976c4700d15c22d82fec385805cc26 1 include/avx10_2convertintrin.h +2410 15568099 1777922721696272928 10419d2bc12d8a9878d0e2866a79b6ed 1 include/avx10_2copyintrin.h +13680 15568100 1777922721696272928 3b54fb6f688ef31b5b288d68add52055 1 include/avx10_2minmaxintrin.h +17003 15568101 1777922721696272928 21161b694449a0ad9ec0ff4fd45c5338 1 include/avx10_2niintrin.h +15253 15568102 1777922721696272928 b54db7027b0759bf2c6e98812c65825d 1 include/avx10_2satcvtdsintrin.h +18140 15568103 1777922721696272928 90423834c7a102028a91b8ed880457bd 1 include/avx10_2satcvtintrin.h +23410 15568091 1777922721696272928 95bee4d483b52e84460e33e248d24b78 1 include/avx10_2_512bf16intrin.h +13192 15568092 1777922721696272928 b29bf6fb9e659842d31f4be78f82b58a 1 include/avx10_2_512convertintrin.h +7526 15568093 1777922721696272928 e922b6ff2d475a67b2edd396292f7078 1 include/avx10_2_512minmaxintrin.h +14039 15568094 1777922721696272928 706c14e292a7064003c3a9554b34d98d 1 include/avx10_2_512niintrin.h +13799 15568095 1777922721696272928 9a37b5547f48ae1333e9109ba36c0502 1 include/avx10_2_512satcvtdsintrin.h +16999 15568096 1777922721696272928 cc3b16d0b0f0630231d148f1376082d1 1 include/avx10_2_512satcvtintrin.h +1195 15568243 1777922721701272909 415f4786cb23f5ee37699dc6b7eff360 1 include/sm4evexintrin.h +2167 15568150 1777922721698272920 6e887392f50e32d2c4bc3eb4ca4e4def 1 include/enqcmdintrin.h +881 15568237 1777922721701272909 de461f45e00eb8aa42c96123bef0f9a0 1 include/serializeintrin.h +2015 15568258 1777922721701272909 d9bd2435957a5e62c538d80aea562772 1 include/tsxldtrkintrin.h diff --git a/.zig-cache/h/2ba55fc108d980f9b86ed2e0f38b0dee.txt b/.zig-cache/h/2ba55fc108d980f9b86ed2e0f38b0dee.txt new file mode 100644 index 0000000..d0dec15 --- /dev/null +++ b/.zig-cache/h/2ba55fc108d980f9b86ed2e0f38b0dee.txt @@ -0,0 +1,826 @@ +0 +78191 15567711 1777922721684272972 3866f96e196d1cb1288e6a17e2e0f025 1 compiler/build_runner.zig +2463 15618730 1777931357389491449 36e47b302d1095201b7edbe5c81e33fd 0 build.zig +3340 15592333 1777923931637417888 de8ae22fde0525481ce83ff66dd62289 2 o/87217d4d85a93b5ea69bbf310d47154e/dependencies.zig +21780 15588394 1777922722100271428 8372996c7671543c238bcba94bfb7378 1 ubsan_rt.zig +16640 15590160 1777923881894514018 2a6f8a8e33d883bff487d5a5576130a6 0 zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/build.zig +32164 15590848 1777923926852427317 bd00565f079d110b89dcb66d59b9e62f 0 zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/build.zig +9072 15592322 1777923927848425358 2634886604324c6354a198f2c20bff8d 0 zig-pkg/zemscripten-0.2.0-dev-sRlDqApRAACspTbAZnuNKWIzfWzSYgYkb2nWAXZ-tqqt/build.zig +9132 15590533 1777923923457433984 e6220c692b082a0fe44c35e9a23b85a1 0 zig-pkg/zemscripten-0.2.0-dev-sRlDqEtQAAB_1tPdqJsxQIqXxvvklcFu6VN5p6ANy8hw/build.zig +25527 15568024 1777922721690272950 8a205f0b1c5732c3190e50f042589dec 1 compiler_rt.zig +10806 15588318 1777922722097271439 8c5b1950a5ebd26914a8e350d73d6999 1 std/std.zig +2525 15587766 1777922722081271498 71e0dabdb301ba10f8ca420941767e70 1 std/BitStack.zig +102991 15587797 1777922722082271495 75827315f3c3585390aebfe0aa119cb6 1 std/Build.zig +4266 15587886 1777922722085271483 16fdba428de22eb1305e855dec42f9a9 1 std/buf_map.zig +4526 15587887 1777922722085271483 8e63f8aad9b21f2cac5dcdcafd975d93 1 std/buf_set.zig +26749 15588047 1777922722090271465 94db977a6517f376d616042aec36c899 1 std/deque.zig +8176 15587798 1777922722082271495 af059436f9aa9ce8410e2a090d402920 1 std/DoublyLinkedList.zig +23691 15588057 1777922722090271465 3804b9a26510c6fe8d6e8e36a68dc482 1 std/dynamic_library.zig +135875 15587827 1777922722083271491 db86574f603d848efccc949d881d7ff4 1 std/Io.zig +46161 15588202 1777922722094271450 56e536443df53290961fcccb0248fae4 1 std/multi_array_list.zig +22225 15588304 1777922722097271439 561ce3400c8ac8d5b974517205c4f0ea 1 std/priority_queue.zig +35249 15588303 1777922722097271439 f30a503fcc87a18b18deced637313484 1 std/priority_dequeue.zig +64903 15587828 1777922722083271491 65a38fafd0d3cb5b25ca2488c18dae3e 1 std/Progress.zig +18069 15587843 1777922722083271491 8d1118eeb93cb6e46910fece65a272b3 1 std/Random.zig +10905 15587844 1777922722084271487 d0732789c7d50ebb4a3644f4b79bfad4 1 std/SemanticVersion.zig +5325 15587845 1777922722084271487 9b3e9e32c95aa2d415f162836c908e22 1 std/SinglyLinkedList.zig +117251 15587877 1777922722085271483 64f19f2a345ce26b80375c5f07d3eb60 1 std/Target.zig +66110 15587878 1777922722085271483 434d2e14ecbcf3813a62db89c218de07 1 std/Thread.zig +24524 15588330 1777922722097271439 1694ad0602c4425ddf33879d415f4ab1 1 std/treap.zig +32908 15587879 1777922722085271483 0effee4fbdb48a21d5a7de6981175d09 1 std/Uri.zig +97347 15587881 1777922722085271483 6e2bf450682db7fe2f70f856e6a69953 1 std/array_list.zig +97238 15587880 1777922722085271483 277386674f342dc4f1bcc7aff33ca523 1 std/array_hash_map.zig +20679 15587883 1777922722085271483 e7807462ad093052a700641168907e85 1 std/atomic.zig +24364 15587884 1777922722085271483 307015c80605830d882c9a9c5a417cb6 1 std/base64.zig +69662 15587885 1777922722085271483 7d9220a12d959c3fbdb0ad5d2dd745a1 1 std/bit_set.zig +43574 15587890 1777922722085271483 9b559f4ead3bbab2ddf320c5d9e35ef8 1 std/builtin.zig +371584 15587902 1777922722086271480 5e032a1afe94597d47a218be0ec20277 1 std/c.zig +77408 15587903 1777922722086271480 80080b1bacb0c8d673dc0bb465cc26e3 1 std/coff.zig +372 15587921 1777922722086271480 b867983786f01e8333e32b633eb10410 1 std/compress.zig +17640 15588317 1777922722097271439 bd79322afba3cc08000a99c21bfd26d7 1 std/static_string_map.zig +14657 15588025 1777922722089271469 ec00cc50efd2df8055faaa18a8b150d4 1 std/crypto.zig +76832 15588046 1777922722090271465 d49109fe127342ca0667bf94eb59fd2f 1 std/debug.zig +4894 15588056 1777922722090271465 61fff94fe737bda88edd8ca624c0a93c 1 std/dwarf.zig +90513 15588058 1777922722090271465 ede53ba4bac041f8a65ea772acae0cf0 1 std/elf.zig +56153 15588059 1777922722090271465 7afe4323fff4ddc8b4fb0b43cb9bf3bc 1 std/enums.zig +58268 15588073 1777922722091271461 642dc1256607ec96b839c549851b2c91 1 std/fmt.zig +729 15588077 1777922722091271461 0215ac7c2c72b37feee794b5911b205e 1 std/fs.zig +4178 15588078 1777922722091271461 55d3b5abd2866f8efe872f7339310a5c 1 std/gpu.zig +4080 15588093 1777922722091271461 571b514d96d7378ef13c8e6325e62ebf 1 std/hash.zig +80547 15588094 1777922722091271461 98d70ba2e89d37b4ed01247687fd83c3 1 std/hash_map.zig +38871 15588103 1777922722092271458 6c2f0da7917bebc86c5cd9528748e166 1 std/heap.zig +39320 15588111 1777922722092271458 3cb1bd9830c559b6288becb2db86fa08 1 std/http.zig +5458 15588124 1777922722092271458 83ba0216673ecfc447f968f67e88f774 1 std/json.zig +4897 15588125 1777922722092271458 7ff89bbb36c1fb140621f1e8fc3862c8 1 std/leb128.zig +7039 15588126 1777922722092271458 c6c6467049074839115f224de558946d 1 std/log.zig +72538 15588127 1777922722092271458 f2001ea91ead4103a9eb9cb995ea88ba 1 std/macho.zig +74865 15588195 1777922722094271450 273f62e9b9f832d5dd38c1402c0a48ed 1 std/math.zig +198145 15588198 1777922722094271450 22953e783cdc7561c4a15182f751d98e 1 std/mem.zig +35008 15588201 1777922722094271450 28f1d6dd4b7d63bc3a3570e9199e8376 1 std/meta.zig +433 15588297 1777922722096271443 74b41a911daaf29c0b0ef736d0df8af9 1 std/os.zig +16798 15588298 1777922722096271443 e6a5612c85472d16e2049377b392e536 1 std/pdb.zig +13777 15588299 1777922722096271443 aee2d674f93679708d83f4bc563d9c31 1 std/pie.zig +60638 15588302 1777922722097271439 91112299d7c1608c1b7c406ef8ca8083 1 std/posix.zig +42615 15588310 1777922722097271439 79697d237229c19709238f38b4dea1ee 1 std/process.zig +39704 15588315 1777922722097271439 204eff1c5332b5ab938ef3e30aac0ff0 1 std/sort.zig +23044 15588311 1777922722097271439 4cb21aacce1e6e69623ab74ec0986ae3 1 std/simd.zig +18221 15587882 1777922722085271483 ba5aad7d300f6596af851529cb14ecec 1 std/ascii.zig +44772 15588322 1777922722097271439 82a4d2308a683c39c74253045d469374 1 std/tar.zig +49967 15588326 1777922722097271439 5985bb10a3df3ffd445cba60cbe8ab90 1 std/testing.zig +1015 15588329 1777922722097271439 0dd8c20d912d8db9104f4b808b86bf8a 1 std/time.zig +10835 15588331 1777922722097271439 9bd3cc2d0b87156ecc92c4873b9f5f96 1 std/tz.zig +84830 15588334 1777922722097271439 a0675cff7ad8bd3379a81efc02f8fb84 1 std/unicode.zig +12292 15588339 1777922722097271439 8757ba546e520503fcc6a58d9b0d0083 1 std/valgrind.zig +17661 15588340 1777922722098271435 a8988138c7ee50f868cd1db24ab3d1d6 1 std/wasm.zig +44987 15588387 1777922722100271428 f86c914b8f81b14502f0d8561b1439b6 1 std/zig.zig +26670 15588388 1777922722100271428 93724928f5f24ae5c14b26c9c2d3ed3f 1 std/zip.zig +1242 15588393 1777922722100271428 c5e5cebc2cfc9353dc65aa5193442b60 1 std/zon.zig +31720 15588316 1777922722097271439 ffd3a427c45dfa3cbc9761a1361d1d3c 1 std/start.zig +60609 15587772 1777922722081271498 75c8c12c985cd8192806ca67e152ab02 1 std/Build/Cache.zig +38981 15587791 1777922722082271495 be5b6a4bf599cf8fb54d6cb84cf21e5a 1 std/Build/Step.zig +26577 15587774 1777922722081271498 98f120af5a4b7824a26104c00a1d4bd1 1 std/Build/Module.zig +43910 15587794 1777922722082271495 a59d963e44dc7302d869d03e948a68a4 1 std/Build/Watch.zig +21695 15587773 1777922722081271498 ad7f7cf87f2d7cecfde3308a9a959c3c 1 std/Build/Fuzz.zig +34965 15587795 1777922722082271495 7b5315aea2d8aae761b704545ca6fd8a 1 std/Build/WebServer.zig +18326 15587796 1777922722082271495 86b3353e10f6891989b87fc619625f26 1 std/Build/abi.zig +778302 15587818 1777922722083271491 4d59b0d04131c010b5f58eb38120fbd9 1 std/Io/Threaded.zig +8949 15587821 1777922722083271491 40de485275e5d9bb6449f34e577313a2 1 std/Io/fiber.zig +184480 15587801 1777922722082271495 051fe407bbf5fa278eb5ba8923864173 1 std/Io/Dispatch.zig +53826 15587809 1777922722082271495 9e4d97b716cad9a064e52a86d622fc34 1 std/Io/Kqueue.zig +224474 15587819 1777922722083271491 8b60359fa3a92d4d6d3abe55a7e324e6 1 std/Io/Uring.zig +87408 15587812 1777922722082271495 9e17e83fad8cb492e5ae4ed460d46786 1 std/Io/Reader.zig +109608 15587820 1777922722083271491 98cc344f10dd258d0b9e9a433b55bb47 1 std/Io/Writer.zig +54298 15587825 1777922722083271491 6c83f2205f839d4830728dcacdc785d4 1 std/Io/net.zig +80457 15587800 1777922722082271495 92155343884f0d4850994d8697afe172 1 std/Io/Dir.zig +26690 15587808 1777922722082271495 7b97a0f8b4be80a0f463b68d50250a5c 1 std/Io/File.zig +5555 15587815 1777922722082271495 f6a7792ba60b33de2cacb4566e345d20 1 std/Io/Terminal.zig +9375 15587813 1777922722082271495 d2e926a1f61d5405b6d47098198f7b8e 1 std/Io/RwLock.zig +1802 15587814 1777922722082271495 6813309428640ae1f7c5714dbb51a16b 1 std/Io/Semaphore.zig +0 15587826 1777922722083271491 82547a8dd7f3efb3f077622e34876868 1 std/Io/test.zig +1811 15587830 1777922722083271491 4f975bd4c885c2b17936c7c15e2a1fa0 1 std/Random/Ascon.zig +2688 15587831 1777922722083271491 64c6fd1bd09becbfb3dca08dd7335a8b 1 std/Random/ChaCha.zig +6100 15587832 1777922722083271491 14fb5367ee7128106466c91abe89d828 1 std/Random/Isaac64.zig +2727 15587833 1777922722083271491 98b129620d81fc551cc2747eb5e93a2d 1 std/Random/Pcg.zig +3242 15587837 1777922722083271491 13e05c7b4ba6bd757c30dbc6e1520198 1 std/Random/Xoroshiro128.zig +3177 15587838 1777922722083271491 ece4176296c0d5a4735a0e13195d3e89 1 std/Random/Xoshiro256.zig +3158 15587835 1777922722083271491 e0b128479f8a117718ec288761f83ac0 1 std/Random/Sfc64.zig +3699 15587834 1777922722083271491 f562dad96707be48e6745a1f57cbf27c 1 std/Random/RomuTrio.zig +530 15587836 1777922722083271491 6862d091fadcbbb652464ab10689bd23 1 std/Random/SplitMix64.zig +4526 15587842 1777922722083271491 8ac3cfca93be2f623ce661fc9fb27686 1 std/Random/ziggurat.zig +600 15587840 1777922722083271491 11504a4d6115814ba14dfe02b3020485 1 std/Random/lcg.zig +0 15587841 1777922722083271491 82547a8dd7f3efb3f077622e34876868 1 std/Random/test.zig +30498 15587847 1777922722084271487 cf7aa2742e3fd138caf72147ec971b51 1 std/Target/Query.zig +115997 15587848 1777922722084271487 bc87bf7bcf6400d24d41b7415b169cc9 1 std/Target/aarch64.zig +2897 15587849 1777922722084271487 a02e557aa365ac787ac2c02b52315ddc 1 std/Target/alpha.zig +108519 15587850 1777922722084271487 a8d3ef24d10efbbb1847d5a2d06fb744 1 std/Target/amdgcn.zig +1274 15587851 1777922722084271487 c251325fefba8d6614a0692c5ceb2eea 1 std/Target/arc.zig +79096 15587852 1777922722084271487 6fb9e355597a9d862f083069aaf2fcd6 1 std/Target/arm.zig +84636 15587853 1777922722084271487 78f08f956d02f181a2fd446cf9402613 1 std/Target/avr.zig +2425 15587854 1777922722084271487 3376bf5f146580e9b3ce5e329a604817 1 std/Target/bpf.zig +77604 15587855 1777922722084271487 be007dfe415760a79fc1d9d7dc89a548 1 std/Target/csky.zig +18058 15587857 1777922722084271487 8ccf22d3bcff20d7636d8251948f4618 1 std/Target/hexagon.zig +4895 15587858 1777922722084271487 b870aa73f7bd666ffa47be26fa7bb580 1 std/Target/hppa.zig +665 15587856 1777922722084271487 1dec26e22b22006cd47d45b427f8a00c 1 std/Target/generic.zig +1881 15587859 1777922722084271487 26256603d875aee0f67f6e2aee670b46 1 std/Target/kvx.zig +1207 15587860 1777922722084271487 2119135642c6ce06557e5005da5d27d3 1 std/Target/lanai.zig +7184 15587861 1777922722084271487 891c7f973054eec39b43f2293eda2bd8 1 std/Target/loongarch.zig +7140 15587862 1777922722084271487 85a640161b5e75f1b0e44aafa7b2ac12 1 std/Target/m68k.zig +17604 15587863 1777922722084271487 404eba23c6a57f7914b92003c464442a 1 std/Target/mips.zig +2227 15587864 1777922722084271487 f424aba074f946c774143fd6a0cc9b02 1 std/Target/msp430.zig +20314 15587865 1777922722084271487 d68d9c5654a2c1114ce6dbc8038ef2f7 1 std/Target/nvptx.zig +35033 15587866 1777922722084271487 af9f967f62c784018632fc7184d14e0c 1 std/Target/powerpc.zig +1396 15587867 1777922722084271487 11966b944c6a6f5eb378759087686f44 1 std/Target/propeller.zig +108921 15587868 1777922722084271487 ff74cb05f762242da93430e2a04837df 1 std/Target/riscv.zig +32139 15587869 1777922722084271487 b9dcac5eace647b63bda3d9c524dc034 1 std/Target/s390x.zig +22391 15587870 1777922722084271487 5f74d7b977102ace4820a6def358a7ae 1 std/Target/sparc.zig +5037 15587871 1777922722084271487 7a802abba56de166296a02820267f278 1 std/Target/spirv.zig +1276 15587872 1777922722084271487 320e5694ddc1e4347015e29952472e47 1 std/Target/ve.zig +6517 15587873 1777922722084271487 1babc8b342fb599193f79f08f76e9463 1 std/Target/wasm.zig +138177 15587874 1777922722084271487 f5c6a3aff25f10c1b8c51ce82ffbb5b4 1 std/Target/x86.zig +1234 15587875 1777922722084271487 9977314bd28dc12c6017784ed96cc578 1 std/Target/xcore.zig +8826 15587876 1777922722085271483 8d42978afbcc85d87e2e98c0a9676a9b 1 std/Target/xtensa.zig +84368 15587889 1777922722085271483 a8bf92242607060c62d642acae8086b7 1 std/builtin/assembly.zig +56465 15587894 1777922722085271483 75c3bc60568091a9ea5edc5bc57ed38a 1 std/c/darwin.zig +17769 15587896 1777922722085271483 e2b778ddd3253970afd02693aed8fd0f 1 std/c/freebsd.zig +13639 15587898 1777922722085271483 de6d72b9cc43ab0645c64780d8e547e5 1 std/c/illumos.zig +12071 15587899 1777922722085271483 b48c05a0bd047e3f2341dbbd8767c1e7 1 std/c/netbsd.zig +8189 15587895 1777922722085271483 31ff648d6f4d2a8a32e4f989005450dc 1 std/c/dragonfly.zig +11736 15587897 1777922722085271483 faf314e053e5b99c66ad05c0570b73e0 1 std/c/haiku.zig +17047 15587900 1777922722085271483 76c2f77ef2816a7f0b4efa24425f0619 1 std/c/openbsd.zig +4446 15587901 1777922722085271483 69f4fd8d8726dca0e21d271d871ac1ad 1 std/c/serenity.zig +5846 15587909 1777922722086271480 37e8d751c7e895b6336511502160706a 1 std/compress/flate.zig +24222 15587912 1777922722086271480 5af5ea9ae660ca1a5c5e59ca3412c7cf 1 std/compress/lzma.zig +8172 15587913 1777922722086271480 3e50158bc60e46aae6beac631af863e1 1 std/compress/lzma2.zig +95 15587917 1777922722086271480 f5a4e96de879e27f05973ae987231c97 1 std/compress/xz.zig +7266 15587920 1777922722086271480 0d0abcd9f7d011ccda93bfe73d0b7e1a 1 std/compress/zstd.zig +10377 15588021 1777922722089271469 6a102711f65e65c4fd8596a251e151de 1 std/crypto/timing_safe.zig +47279 15587938 1777922722087271476 9b37d3e0fffea1f1b265eb76dd5ec80d 1 std/crypto/aegis.zig +6851 15587945 1777922722087271476 ea7fad6fda828c72abcc0148e4659e9c 1 std/crypto/aes_gcm.zig +13389 15587946 1777922722087271476 0b0853e7521a731af48464868cd7c167 1 std/crypto/aes_gcm_siv.zig +20660 15587948 1777922722087271476 f87b68e4f3f0abfaaed777c531726b81 1 std/crypto/aes_siv.zig +15331 15587947 1777922722087271476 250e8a7b0eaeef0184fd38096c7a562a 1 std/crypto/aes_ocb.zig +34240 15587944 1777922722087271476 a23f55c0fa49aee3338a137383c7eac3 1 std/crypto/aes_ccm.zig +47973 15587950 1777922722087271476 45b8c60c342c33749442b0e7b4f595db 1 std/crypto/ascon.zig +51938 15587956 1777922722087271476 40b26141042cd451c52e3d5d62117ae3 1 std/crypto/chacha20.zig +6309 15587981 1777922722088271472 1318dc8b9450bda7d30b2f2bd66ef98f 1 std/crypto/isap.zig +27318 15588015 1777922722089271469 d339759780a2203fc7165aff07d6d9b9 1 std/crypto/salsa20.zig +3626 15587979 1777922722088271472 7d28bd5a64f521b7f7322612e4d5f562 1 std/crypto/hmac.zig +18291 15588019 1777922722089271469 6be864f028108d8cae57460c05505974 1 std/crypto/siphash.zig +6226 15587957 1777922722087271476 4270e1555211de4aca948cd086fc7129 1 std/crypto/cmac.zig +6228 15587955 1777922722087271476 b0c7f4ebda117a1b4a12cec460fc143c 1 std/crypto/cbc_mac.zig +8704 15587943 1777922722087271476 1cd28407835970107e3ffc55d0b925b8 1 std/crypto/aes.zig +15303 15587983 1777922722088271472 ac2b7ab43674f07a4208ffa738f420c5 1 std/crypto/keccak_p.zig +11653 15587987 1777922722088271472 43be60c6dba9df3811d0ea93fb4d96b7 1 std/crypto/modes.zig +8666 15587930 1777922722086271480 3db725807664be68a1f523268f119154 1 std/crypto/25519/x25519.zig +207825 15587980 1777922722088271472 6f8e5747aa0ccf4d1164cae5d7a3017f 1 std/crypto/hybrid_kem.zig +71867 15587986 1777922722088271472 baec87190da463f19137f91c956a1a69 1 std/crypto/ml_kem.zig +9490 15587924 1777922722086271480 b5f8bd262f97fec80ec5c6bbce1d4d75 1 std/crypto/25519/curve25519.zig +25856 15587926 1777922722086271480 9c6b6973fd05e5de7576dfbcbcf8f074 1 std/crypto/25519/edwards25519.zig +16188 15587996 1777922722088271472 eaa7e1c4f3bee68fab2081ca41c5167c 1 std/crypto/pcurves/p256.zig +16384 15588002 1777922722089271469 a08bdcefbc4eeca22d09e82d6e71b464 1 std/crypto/pcurves/p384.zig +7971 15587928 1777922722086271480 d0d33655dcbd80c50d53283108a54034 1 std/crypto/25519/ristretto255.zig +20534 15588008 1777922722089271469 19bb9b198f95ad22e061196119587445 1 std/crypto/pcurves/secp256k1.zig +28981 15587953 1777922722087271476 e43277ffc7f554e017fc549af17d0c11 1 std/crypto/blake2.zig +66773 15587954 1777922722087271476 461aaa010dffed2badd194e564003503 1 std/crypto/blake3.zig +9751 15587984 1777922722088271472 d4911af79a2684c60a4325e9142b1609 1 std/crypto/md5.zig +9321 15587937 1777922722086271480 15ebe6e9b9de51b93b00e1b463f00cb4 1 std/crypto/Sha1.zig +36488 15588017 1777922722089271469 6a526b804e6d522b31243c9c19581539 1 std/crypto/sha2.zig +34393 15588018 1777922722089271469 9156c9859584353dba59a3a04e3b43d0 1 std/crypto/sha3.zig +2756 15587977 1777922722088271472 3f1b15f01d5b6045525b1b5b73081e67 1 std/crypto/hash_composition.zig +3703 15587978 1777922722088271472 09d36564cbdc5d24ea6fa90e4b7dd6e5 1 std/crypto/hkdf.zig +20462 15587976 1777922722088271472 80717cf57bf4cce973e3fcd7792a1640 1 std/crypto/ghash_polyval.zig +7227 15588014 1777922722089271469 d7e68094b5cd519221d91c8f9a9875ed 1 std/crypto/poly1305.zig +29207 15587949 1777922722087271476 94f263cff18e63719fb56351d8958281 1 std/crypto/argon2.zig +40185 15587951 1777922722087271476 d15c97fc7af13704d70dea22de36356f 1 std/crypto/bcrypt.zig +28777 15588016 1777922722089271469 c461f6daa050c5f52fae84aec9156e30 1 std/crypto/scrypt.zig +8451 15587988 1777922722088271472 e0bc6ddf2119b9cfe2a19626ded9635a 1 std/crypto/pbkdf2.zig +13808 15588013 1777922722089271469 82c3f3e7125258f0d01a5199588e0757 1 std/crypto/phc_encoding.zig +36622 15587925 1777922722086271480 8c9984aeca0e229cf80a241e1a124f4c 1 std/crypto/25519/ed25519.zig +389641 15587973 1777922722088271472 0726186a985abbc92e4fa0ff70efa341 1 std/crypto/ecdsa.zig +121853 15587985 1777922722088271472 d7cfd905ace13529f5dbe22b2e44f447 1 std/crypto/ml_dsa.zig +42649 15587975 1777922722088271472 ab7882c88b456a51e3e1f5dea262d267 1 std/crypto/ff.zig +165 15587972 1777922722087271476 0ab9a19cc7544d7896d8555b38c3292a 1 std/crypto/codecs.zig +1825 15587974 1777922722088271472 d28156f6f25a3ec50eb16496ef0b30e4 1 std/crypto/errors.zig +25567 15588024 1777922722089271469 965e374c252f652ecbbbdd4c010aaa9d 1 std/crypto/tls.zig +51526 15587936 1777922722086271480 c9040311a8bb41064e13320ceb1bfd03 1 std/crypto/Certificate.zig +59764 15588034 1777922722090271465 97dd4985f3e67db8805a42b323dd2b5c 1 std/debug/Dwarf.zig +43962 15588038 1777922722090271465 b62ab4a4546b7ca38c9cdf5255805463 1 std/debug/Pdb.zig +21243 15588035 1777922722090271465 e0fe1c3b436c95da3936ab5a37e5e850 1 std/debug/ElfFile.zig +23226 15588037 1777922722090271465 494ab44d53cb322ba4a55c08cf6e7d15 1 std/debug/MachOFile.zig +4448 15588036 1777922722090271465 d79e9edc86be729aaae44fcaa9edbcb3 1 std/debug/Info.zig +8592 15588027 1777922722089271469 28d43178547c2f7d23f09c36470880c0 1 std/debug/Coverage.zig +97088 15588043 1777922722090271465 07a4df481fdae7e1e9173ea1af4ddfd2 1 std/debug/cpu_context.zig +30535 15588042 1777922722090271465 ac5e8a4486eb26d75d3f3e5da357a5ed 1 std/debug/SelfInfo/Windows.zig +17837 15588040 1777922722090271465 94ab10377365b77b448fae97a5090c6d 1 std/debug/SelfInfo/Elf.zig +29884 15588041 1777922722090271465 3af99105c7ca096c7c04dfe0442e1c12 1 std/debug/SelfInfo/MachO.zig +3234 15588045 1777922722090271465 94b504fa568201fccb60245a0380012e 1 std/debug/simple_panic.zig +2349 15588044 1777922722090271465 58f6d8954e49f4e277db7b9bad6e1f3c 1 std/debug/no_panic.zig +3939 15588055 1777922722090271465 5ee5df976eaaf300e36cd234fc3f2f43 1 std/dwarf/TAG.zig +7632 15588049 1777922722090271465 101aeaf3e9df594bf04093c15135dc96 1 std/dwarf/AT.zig +5693 15588054 1777922722090271465 01d731f8d28ba8382ff3c5885d5e0c75 1 std/dwarf/OP.zig +1963 15588053 1777922722090271465 055280c08a34f56d3d4ea7d69cf3fca3 1 std/dwarf/LANG.zig +1399 15588052 1777922722090271465 40a7d4ac60d12c6e9ca294acaed35474 1 std/dwarf/FORM.zig +1479 15588050 1777922722090271465 8bd901aaa561652b86f99819d0da7a57 1 std/dwarf/ATE.zig +857 15588051 1777922722090271465 eabc7cc5311330003544e4fa9b48be68 1 std/dwarf/EH.zig +94864 15588061 1777922722090271465 9f838a528dd1ffb0f4e1bfb3661aecff 1 std/fmt/float.zig +13189 15588072 1777922722091271461 8fcd1365fb1fe2c743d223fc34880b6a 1 std/fmt/parse_float.zig +115637 15588075 1777922722091271461 c8d60085bfbda39db97904d347ae1872 1 std/fs/path.zig +0 15588076 1777922722091271461 82547a8dd7f3efb3f077622e34876868 1 std/fs/test.zig +2797 15588080 1777922722091271461 e2d2903d78455f002bdf1543be5bd9b3 1 std/hash/Adler32.zig +14410 15588081 1777922722091271461 cd5b1a84c317ca8ba9ccce283a58c367 1 std/hash/auto_hash.zig +19972 15588087 1777922722091271461 c36dede4b91e35db37ea45c66dbe6fe9 1 std/hash/crc.zig +1890 15588088 1777922722091271461 8022a7844b1545ef9cc7889a3a71944a 1 std/hash/fnv.zig +9977 15588089 1777922722091271461 26add2cb2571b835338f163c8ca63459 1 std/hash/murmur.zig +12412 15588083 1777922722091271461 cd681dc3507b42839b769eae04b1dc3b 1 std/hash/cityhash.zig +8367 15588091 1777922722091271461 4744eb583f951c0ddcee1cf3bdde33fb 1 std/hash/wyhash.zig +41613 15588092 1777922722091271461 b682042146ed3b411db8eb14cb99500a 1 std/hash/xxhash.zig +41284 15588096 1777922722091271461 9e2c0ca6eeba53dae8ed198c0434b781 1 std/heap/ArenaAllocator.zig +7510 15588100 1777922722091271461 0afc8bd3d67b9a71a6047ee2e9af262b 1 std/heap/SmpAllocator.zig +10192 15588098 1777922722091271461 ee89eecf52bcaf358a5ca7a2e9d97d7e 1 std/heap/FixedBufferAllocator.zig +10150 15588099 1777922722091271461 9e0ab6e7efcbb2f1a65540c4f7a560ef 1 std/heap/PageAllocator.zig +11445 15588097 1777922722091271461 61f511afcd1508b7ca05f5496473488c 1 std/heap/BrkAllocator.zig +62382 15588101 1777922722092271458 be427a53e4015492bc8a4a190a806e5f 1 std/heap/debug_allocator.zig +13267 15588102 1777922722092271458 08b7d341701a499e0e0d42b973d7ab69 1 std/heap/memory_pool.zig +71392 15588106 1777922722092271458 9b5ff49fb65f881c7ed12494a3859cb8 1 std/http/Client.zig +31356 15588109 1777922722092271458 90eef6015c85cd72220c3d81a69a9530 1 std/http/Server.zig +13015 15588107 1777922722092271458 4c7e2ad894ad12f141066550c9bb326a 1 std/http/HeadParser.zig +3791 15588105 1777922722092271458 61420280e3c9986a74a687031fdcf831 1 std/http/ChunkParser.zig +3099 15588108 1777922722092271458 208dea04bf6038830461bfb99eafbce8 1 std/http/HeaderIterator.zig +0 15588110 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/http/test.zig +7992 15588116 1777922722092271458 af3841850a2c29b3668d337e57dbec60 1 std/json/dynamic.zig +3272 15588118 1777922722092271458 39fdbe23f321a0cb11a35e428810a09e 1 std/json/hashmap.zig +72865 15588114 1777922722092271458 0bd906a63c98af2b142fc2a11e0e8ddf 1 std/json/Scanner.zig +33916 15588121 1777922722092271458 4edf437de0e97088b6290948fbceb1fb 1 std/json/static.zig +37299 15588115 1777922722092271458 328e21f9d500de455940ccb3a735aaef 1 std/json/Stringify.zig +0 15588123 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/test.zig +0 15588113 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/JSONTestSuite_test.zig +11506 15588168 1777922722093271454 4f01608c6085251ec5a5f0a6e3ebb50e 1 std/math/float.zig +1859 15588176 1777922722093271454 1e9c6dc339df3808681640d38706fb6e 1 std/math/isnan.zig +7877 15588169 1777922722093271454 21099ae36d31e459824cfc3757a834f2 1 std/math/frexp.zig +4599 15588186 1777922722093271454 d22656b17f575c4645f36971dbdd57b4 1 std/math/modf.zig +1136 15588164 1777922722093271454 9f0946a16071ec7d7cb9f45c227c22f1 1 std/math/copysign.zig +1083 15588174 1777922722093271454 eb357e7577b828d5fc2ce3b4118459f2 1 std/math/isfinite.zig +1775 15588175 1777922722093271454 44fb86a5536455ca3877bb415347c6ac 1 std/math/isinf.zig +1456 15588178 1777922722093271454 a37461dca6f9345d8f8a2729c13b9ff6 1 std/math/iszero.zig +1837 15588177 1777922722093271454 cb4e66e7b3adbf190150294715c788b0 1 std/math/isnormal.zig +19209 15588187 1777922722093271454 000ec81e9c79a332fb482883ab800777 1 std/math/nextafter.zig +1484 15588191 1777922722093271454 4be5196a5746ef5c06a1968c833acd1f 1 std/math/signbit.zig +503 15588190 1777922722093271454 66d1263715127908b281862dba5dc24b 1 std/math/scalbn.zig +6839 15588180 1777922722093271454 65cf74d2abee4d99cea2993060dc9cc0 1 std/math/ldexp.zig +11782 15588188 1777922722093271454 63d5a77b3d074170d5e328d7ab9f7955 1 std/math/pow.zig +7647 15588189 1777922722093271454 0973f1b6b3c7b008fe03e68add8caaab 1 std/math/powi.zig +2797 15588193 1777922722094271450 53aa585d8092381038f9eda1c3c128d1 1 std/math/sqrt.zig +4812 15588140 1777922722093271454 6f62d1f1ae7bff93c034f6f664aeaa12 1 std/math/cbrt.zig +30081 15588129 1777922722092271458 9120d5d144777f39094c64677ed37eda 1 std/math/acos.zig +30241 15588131 1777922722092271458 0dfaed068a87bab2f2a813c1b301adf2 1 std/math/asin.zig +37723 15588133 1777922722092271458 b16a00df0bbbd49d285d16d68d9de116 1 std/math/atan.zig +10553 15588134 1777922722092271458 0cafcb907ba579b6b64631165a647329 1 std/math/atan2.zig +5365 15588172 1777922722093271454 c70a10cbadd81265d9efbd501e601623 1 std/math/hypot.zig +11499 15588166 1777922722093271454 1ddb2b66fbdf7acb2a4ad484203ae340 1 std/math/expm1.zig +5519 15588173 1777922722093271454 eacf48263508740f77738f675caef7a6 1 std/math/ilogb.zig +2531 15588181 1777922722093271454 b3b40fd4682f372913e09bc18ca3fcd6 1 std/math/log.zig +1834 15588184 1777922722093271454 4ebf02b0e7decd5b836db4794717a753 1 std/math/log2.zig +6132 15588182 1777922722093271454 db4699d35a47e4e75c376fa3abd67c0d 1 std/math/log10.zig +4179 15588185 1777922722093271454 210b5a1a5cd0f20e944783da890dfc99 1 std/math/log_int.zig +8872 15588183 1777922722093271454 754de08c8dc06a6115beb96e5a991ad7 1 std/math/log1p.zig +4299 15588132 1777922722092271458 9d6c681faf8421823919e5bf347bf740 1 std/math/asinh.zig +2756 15588130 1777922722092271458 349667a0bb1e62bdc0383bce5747190c 1 std/math/acosh.zig +3399 15588135 1777922722092271458 7b22337c4a4df112f2c4be431b076007 1 std/math/atanh.zig +4294 15588192 1777922722094271450 42ef534228feb279b81e6fa2a5d79333 1 std/math/sinh.zig +4157 15588165 1777922722093271454 1dcc281bf0ca8a9782e5ae845f7b1fa5 1 std/math/cosh.zig +4581 15588194 1777922722094271450 2b64632014a58c73e7052420b356fcaa 1 std/math/tanh.zig +2024 15588171 1777922722093271454 28fd0ee50d92f0c08fd6aab95d6f15ee 1 std/math/gcd.zig +1194 15588179 1777922722093271454 40b3836f0a2277cb76754547dd483869 1 std/math/lcm.zig +11487 15588170 1777922722093271454 c0bf0098a075fd684bcbeff41e5abbc4 1 std/math/gamma.zig +6563 15588163 1777922722093271454 dccdf309b3630a59978e204ea0cbde99 1 std/math/complex.zig +746 15588139 1777922722093271454 cd57ee7b96c9ee1b66a3e7fc3ef16da9 1 std/math/big.zig +19435 15588197 1777922722094271450 c2c009def560d0da77a8b4ff43524293 1 std/mem/Allocator.zig +5936 15588200 1777922722094271450 731e370ecb6a476616ba5957ba5212a4 1 std/meta/trailer_flags.zig +291416 15588242 1777922722095271446 4869165fe9dddf6396b27a9ff488775f 1 std/os/linux.zig +10513 15588245 1777922722095271446 9c49defe45d5132eb0b774e015de8164 1 std/os/plan9.zig +7464 15588283 1777922722096271443 2d75cf68a9a9ca7fe435633981a95d0e 1 std/os/uefi.zig +16085 15588284 1777922722096271443 cbf7731f9fc13816669478d0d86619b2 1 std/os/wasi.zig +32297 15588204 1777922722094271450 65f360158bf4985210015307097e266f 1 std/os/emscripten.zig +206520 15588296 1777922722096271443 63ff2a80fff80a84d5bcaa93ee0f7e53 1 std/os/windows.zig +0 15588301 1777922722096271443 82547a8dd7f3efb3f077622e34876868 1 std/posix/test.zig +4357 15588307 1777922722097271439 95000eed0a91ee9ca99c19f988221556 1 std/process/Child.zig +38308 15588306 1777922722097271439 fed95aed49061092984c2712847bb002 1 std/process/Args.zig +37415 15588308 1777922722097271439 72a8079e3ff625cd0c9d671e09d86fb3 1 std/process/Environ.zig +2508 15588309 1777922722097271439 8376136df00bc63ca0f3095f0ca3689a 1 std/process/Preopens.zig +51714 15588313 1777922722097271439 eb8790d984ce4a6ddd6376d877c85ff1 1 std/sort/block.zig +12404 15588314 1777922722097271439 4aec5577b3c4edbe484599906af3ae5d 1 std/sort/pdq.zig +17695 15588320 1777922722097271439 24ba1410c711ba60c366c789e33f2468 1 std/tar/Writer.zig +0 15588321 1777922722097271439 82547a8dd7f3efb3f077622e34876868 1 std/tar/test.zig +5695 15588324 1777922722097271439 79b2e7cbd2cb182aed04f9377683c628 1 std/testing/FailingAllocator.zig +31908 15588325 1777922722097271439 85bfe90f22d1658f84533528a61699bc 1 std/testing/Smith.zig +6755 15588328 1777922722097271439 b00dfc370ddde87be5237de9f894d759 1 std/time/epoch.zig +7574 15588338 1777922722097271439 d017fea857f95f2c01199efab8dbf965 1 std/valgrind/memcheck.zig +2493 15588337 1777922722097271439 30a771b8491dd283a50c6166babded38 1 std/valgrind/callgrind.zig +1249 15588336 1777922722097271439 6781a2e56089a14f4f2a391169bf7c05 1 std/valgrind/cachegrind.zig +63162 15588386 1777922722100271428 6eeffe690c11f6257c0b5e0566d66f50 1 std/zig/tokenizer.zig +33392 15588350 1777922722098271435 c7c95e9c83f1903d675ab0c975ee4f28 1 std/zig/ErrorBundle.zig +10230 15588354 1777922722098271435 634f3489256d07cec274929dac2605ae 1 std/zig/Server.zig +2260 15588349 1777922722098271435 aa042aba45b700151fd968f123a7266e 1 std/zig/Client.zig +10291 15588355 1777922722098271435 03571043d71a739e9b067f7b96b71631 1 std/zig/TokenSmith.zig +14296 15588373 1777922722099271431 0d186a7370f174935a9c2c3f11942b8c 1 std/zig/string_literal.zig +6720 15588369 1777922722099271431 07baee4aa2d7c097b1307a2cdec422cf 1 std/zig/number_literal.zig +1666 15588372 1777922722099271431 87e0eb501395d68ddce525f8555f960c 1 std/zig/primitives.zig +145138 15588344 1777922722098271435 ab1af8ea616576f755ba7908af0b8ea5 1 std/zig/Ast.zig +567556 15588345 1777922722098271435 a56e781f97d05f34b8f9147799af3174 1 std/zig/AstGen.zig +78968 15588347 1777922722098271435 73a8282784a552df103c813f759de518 1 std/zig/AstSmith.zig +222229 15588357 1777922722099271431 035e30944ed3dc8c9d792b5336c38c8b 1 std/zig/Zir.zig +9178 15588358 1777922722099271431 cb7401f7c5bb5446a01aa5af5eaa2ad3 1 std/zig/Zoir.zig +35999 15588359 1777922722099271431 a86113a78e1f8cf462a758090971d8f9 1 std/zig/ZonGen.zig +51977 15588384 1777922722100271428 b1fdfaeed0b47fe1908cac4bca93213a 1 std/zig/system.zig +22538 15588348 1777922722098271435 85030d1db27b93c3540ce828f6bb4f75 1 std/zig/BuiltinFn.zig +43382 15588346 1777922722098271435 5b945ae5ef98aa0bed48cd16d2c6d004 1 std/zig/AstRlAnnotate.zig +35921 15588352 1777922722098271435 2bb60a489e7e7a4b6c06359c8cb96d52 1 std/zig/LibCInstallation.zig +51355 15588356 1777922722098271435 58aa36ce7c67359021b741bba200bd1d 1 std/zig/WindowsSdk.zig +10091 15588351 1777922722098271435 40d483d775f9a56db993ce02e3448ab7 1 std/zig/LibCDirs.zig +26758 15588385 1777922722100271428 1365cf108e82594e5f641faf1259b59d 1 std/zig/target.zig +247 15588368 1777922722099271431 4fee6920e55c663811dd32d69b7f2937 1 std/zig/llvm.zig +8078 15588361 1777922722099271431 6a5228c368c6a0dea7c7ebc8c6642f10 1 std/zig/c_translation/builtins.zig +16223 15588362 1777922722099271431 9aa7e031559265e0320a9b106d1865db 1 std/zig/c_translation/helpers.zig +120086 15588391 1777922722100271428 fcd145a5d3703b0c905144501d34d648 1 std/zon/parse.zig +46916 15588392 1777922722100271428 7bf4408cdd1c84975a793e5daefb12a8 1 std/zon/stringify.zig +32374 15588390 1777922722100271428 d6fd80a48ef08dc277abac7b527c7110 1 std/zon/Serializer.zig +2159 15588293 1777922722096271443 e912d0164349d3c86eb8b1226a86388f 1 std/os/windows/tls.zig +6710 15567798 1777922721686272965 2f406272323372f06ea32e7ba2671145 1 compiler_rt/count0bits.zig +1072 15567971 1777922721689272954 eb5665f235da79b18b24ad86fe636e3c 1 compiler_rt/parity.zig +1612 15567975 1777922721689272954 d5a192d1e6221072b39fd9489871805a 1 compiler_rt/popcount.zig +2555 15567775 1777922721686272965 94abc6c88d8b95079f2ffa08c953c84c 1 compiler_rt/bitreverse.zig +3053 15567779 1777922721686272965 f7bd2670352233064ec7083d6debbd43 1 compiler_rt/bswap.zig +1542 15567787 1777922721686272965 e86cf64174068e25059755c8b9d3312b 1 compiler_rt/cmp.zig +3992 15567986 1777922721689272954 3814ae54caaedf00b147deed4c0112f2 1 compiler_rt/shift.zig +26650 15567931 1777922721688272957 22806e43d0dac46aa72f227a85ab24f6 1 compiler_rt/int.zig +2729 15567942 1777922721688272957 32bdb9f5e7090032336e0cc3dcf004f1 1 compiler_rt/mulXi3.zig +10004 15568018 1777922721690272950 c75da294f9737c7c23ef89b4ac4a4680 1 compiler_rt/udivmod.zig +671 15567755 1777922721686272965 a6cfe83f9d8eb6e22dee6dc0ccee3367 1 compiler_rt/absv.zig +250 15567758 1777922721686272965 a8533a5e47ce15013e24b841121b73eb 1 compiler_rt/absvsi2.zig +217 15567756 1777922721686272965 3ce3bf7ea907beec5e63de5695aa6067 1 compiler_rt/absvdi2.zig +220 15567760 1777922721686272965 4448933a51a6997d5207f53443eec830 1 compiler_rt/absvti2.zig +1096 15567966 1777922721689272954 3a4bf91b607ee1118dab9735b082df49 1 compiler_rt/negv.zig +920 15567769 1777922721686272965 c5f857dc4717914fa062b400f9622607 1 compiler_rt/addvsi3.zig +959 15567768 1777922721686272965 257639b9472ac430476135afc780b665 1 compiler_rt/addvdi3.zig +850 15567998 1777922721689272954 ac36fb2149d5966ec7d505b909b86806 1 compiler_rt/subvsi3.zig +889 15567997 1777922721689272954 29e5e19036e4c660c957d19977fc2ee4 1 compiler_rt/subvdi3.zig +809 15567960 1777922721689272954 11f5f27cedd3438d13495331ac628626 1 compiler_rt/mulvsi3.zig +2849 15567952 1777922721689272954 86dfcaff625a305b4f8efe5d0533dace 1 compiler_rt/mulo.zig +6009 15567825 1777922721687272961 013ab2758ced7bbc2fc6988565eeb6c7 1 compiler_rt/extendf.zig +749 15567828 1777922721687272961 98eeaa4a548abf8762d1e9af9bc22ca1 1 compiler_rt/extendhfsf2.zig +335 15567827 1777922721687272961 da58ac4390996051556bfd8719d92a85 1 compiler_rt/extendhfdf2.zig +320 15567829 1777922721687272961 8871bda397e6825c39f23f0251ca0d22 1 compiler_rt/extendhftf2.zig +317 15567830 1777922721687272961 aaa7ccf0843a956beb418588dba37f19 1 compiler_rt/extendhfxf2.zig +514 15567831 1777922721687272961 bc571756252a1a5584d093538484a6ad 1 compiler_rt/extendsfdf2.zig +582 15567832 1777922721687272961 4974f1c781c0e5d63fb539beb1bac943 1 compiler_rt/extendsftf2.zig +266 15567833 1777922721687272961 2561f4cdb6d5cba42fa2a5cddaefb2b8 1 compiler_rt/extendsfxf2.zig +600 15567823 1777922721687272961 c095241dde6a34dfe058cf702b751be4 1 compiler_rt/extenddftf2.zig +303 15567824 1777922721687272961 bfc17774e2b2a3829741caae7c642755 1 compiler_rt/extenddfxf2.zig +1511 15567834 1777922721687272961 2a7c11b488cd1af64b87e3ef6e916eb6 1 compiler_rt/extendxftf2.zig +8121 15568005 1777922721689272954 20afe15564559323e44421df48412060 1 compiler_rt/truncf.zig +692 15568007 1777922721689272954 9d5f8f839d8728a9e54f9db08b6fc9f6 1 compiler_rt/truncsfhf2.zig +509 15568003 1777922721689272954 36a7e39f41512b69d8dd4b03148a07e2 1 compiler_rt/truncdfhf2.zig +470 15568004 1777922721689272954 2d0a9da2fc5f44f832277023e3ae7aab 1 compiler_rt/truncdfsf2.zig +318 15568013 1777922721689272954 139d3b014e0554bc57be883dbcb13040 1 compiler_rt/truncxfhf2.zig +239 15568014 1777922721690272950 ae2c69fc5bd6a62401142b0cce712d31 1 compiler_rt/truncxfsf2.zig +239 15568012 1777922721689272954 64b17fde24984d08777a286b452ed71b 1 compiler_rt/truncxfdf2.zig +321 15568009 1777922721689272954 1afa1aed29807fa59e1dd55d76568c92 1 compiler_rt/trunctfhf2.zig +550 15568010 1777922721689272954 c6072c8226886282a81de6ac65a6832f 1 compiler_rt/trunctfsf2.zig +532 15568008 1777922721689272954 c1eaf14f67fcf5d0dcd04b9ea346246e 1 compiler_rt/trunctfdf2.zig +2791 15568011 1777922721689272954 ba812a42d7ab9bcc80710007cb084cf2 1 compiler_rt/trunctfxf2.zig +5022 15567932 1777922721688272957 19bab1ecf558b764bd8e8468a4437453 1 compiler_rt/int_from_float.zig +505 15567843 1777922721687272961 1fa8b56a94273bc472a6be89f8e49cb6 1 compiler_rt/fixhfei.zig +486 15567847 1777922721687272961 3e7787e9660e6e3524cf38eb839127d6 1 compiler_rt/fixsfsi.zig +642 15567845 1777922721687272961 cf2cacfdce0a2700ef1151756d454c85 1 compiler_rt/fixsfdi.zig +583 15567848 1777922721687272961 3d05f9c93a1d9edb2dd8fdfc54a2a5cf 1 compiler_rt/fixsfti.zig +505 15567846 1777922721687272961 24db7b91a9d948a2ad7caf09eac5bac6 1 compiler_rt/fixsfei.zig +504 15567841 1777922721687272961 5f0698948ec15aeb0c7317a8aa00443a 1 compiler_rt/fixdfsi.zig +624 15567839 1777922721687272961 31f529f960e287899bfea39220efe423 1 compiler_rt/fixdfdi.zig +565 15567842 1777922721687272961 1b746ea2e5364fe3d06f59ae59750aec 1 compiler_rt/fixdfti.zig +505 15567840 1777922721687272961 544f2f0344a72b62fc744fe9964fd699 1 compiler_rt/fixdfei.zig +555 15567851 1777922721687272961 21912f18e11f59d98fcda7b2163587dd 1 compiler_rt/fixtfsi.zig +555 15567849 1777922721687272961 f6c717ba5d2610cfee93c3fcc781efd9 1 compiler_rt/fixtfdi.zig +650 15567852 1777922721687272961 879363d43dc2ccd2ccda8c6846a8d86e 1 compiler_rt/fixtfti.zig +506 15567850 1777922721687272961 e0f51045e782f2826083492df6292ff6 1 compiler_rt/fixtfei.zig +280 15567875 1777922721687272961 17542bcca7e4498a30b7ff317688ba9e 1 compiler_rt/fixxfsi.zig +247 15567873 1777922721687272961 8cb1d23d6f6efacc6b4f44a929bbffbb 1 compiler_rt/fixxfdi.zig +505 15567874 1777922721687272961 1fece5086db5fb44264e371192df926b 1 compiler_rt/fixxfei.zig +289 15567859 1777922721687272961 9052b90819d6e134589cf15421be20d3 1 compiler_rt/fixunshfsi.zig +256 15567857 1777922721687272961 6091d7b00dd29ba5314dda663c59d247 1 compiler_rt/fixunshfdi.zig +583 15567860 1777922721687272961 4e766b5ed70ad0738c4cc53db4a55d43 1 compiler_rt/fixunshfti.zig +485 15567858 1777922721687272961 b25d09befb8f331a968d63a91d13f1b3 1 compiler_rt/fixunshfei.zig +498 15567863 1777922721687272961 13a3e3cdc102220cda3e65d6d16b1803 1 compiler_rt/fixunssfsi.zig +639 15567861 1777922721687272961 36a07146caf82dbad47163a3ca473afb 1 compiler_rt/fixunssfdi.zig +619 15567864 1777922721687272961 56789acf458135e6c3a782a8572d6010 1 compiler_rt/fixunssfti.zig +485 15567862 1777922721687272961 3e11a2202c44d57de654ce2d29be9b17 1 compiler_rt/fixunssfei.zig +498 15567855 1777922721687272961 5fcc6dc71f3120b36f2fe57f95a4df13 1 compiler_rt/fixunsdfsi.zig +639 15567853 1777922721687272961 a830fab7334d07637a73ebb72e61c48c 1 compiler_rt/fixunsdfdi.zig +583 15567856 1777922721687272961 c4e648867a929a625fcbe892c855a0cc 1 compiler_rt/fixunsdfti.zig +485 15567854 1777922721687272961 8d7b3d247e80d9f47e5debacbc6e2b88 1 compiler_rt/fixunsdfei.zig +555 15567867 1777922721687272961 14924a3e8dcce47ec68fb9c45f7a6a08 1 compiler_rt/fixunstfsi.zig +555 15567865 1777922721687272961 99d881339bbbe56c6c73f4ac5d192c6f 1 compiler_rt/fixunstfdi.zig +692 15567868 1777922721687272961 abf77a1c7dd0243fd13146b2b275fc9f 1 compiler_rt/fixunstfti.zig +486 15567866 1777922721687272961 96f3507e58f63f9988db501bd3c3881d 1 compiler_rt/fixunstfei.zig +289 15567871 1777922721687272961 7b8251710687d6ab61e988db20cbecaf 1 compiler_rt/fixunsxfsi.zig +256 15567869 1777922721687272961 352c31350bc98c309e28c1705ae709b7 1 compiler_rt/fixunsxfdi.zig +601 15567872 1777922721687272961 805918cac365386594689e0b14d5c23c 1 compiler_rt/fixunsxfti.zig +483 15567870 1777922721687272961 3e85f5658cb15905fc6235fc4609ea39 1 compiler_rt/fixunsxfei.zig +4033 15567876 1777922721687272961 08f568a06331f48d4981b570aa9bf4e7 1 compiler_rt/float_from_int.zig +286 15567889 1777922721688272957 106565430b27b00575389beb7b556c32 1 compiler_rt/floatsihf.zig +489 15567890 1777922721688272957 99ac4b64eae6451228fdf3e76d49ca5a 1 compiler_rt/floatsisf.zig +489 15567888 1777922721688272957 5e6458641b2311288dd5c00c68c662ef 1 compiler_rt/floatsidf.zig +549 15567891 1777922721688272957 5a42b568187c33cfce0199909fcd71c8 1 compiler_rt/floatsitf.zig +304 15567892 1777922721688272957 7136a4ad8f4fb251b019c70d60e112f2 1 compiler_rt/floatsixf.zig +253 15567879 1777922721687272961 b6c524b7b79a0b2ba575668317d16be8 1 compiler_rt/floatdihf.zig +611 15567880 1777922721687272961 3876b9e1125045a0bba7ec7e30502a8b 1 compiler_rt/floatdisf.zig +629 15567878 1777922721687272961 ac4256b4976a496e9da9f3b5cc62e6b8 1 compiler_rt/floatdidf.zig +567 15567881 1777922721687272961 e60a88490ec274e0bcd8a335dffc2f77 1 compiler_rt/floatditf.zig +253 15567882 1777922721687272961 5c41253cc75c758f3d8414c06820b2e8 1 compiler_rt/floatdixf.zig +582 15567894 1777922721688272957 aa003fed3c28fcf0661465916cb226d1 1 compiler_rt/floattihf.zig +564 15567895 1777922721688272957 edebc519fd8c78ffadcfa533755b47e5 1 compiler_rt/floattisf.zig +564 15567893 1777922721688272957 4108329e5b3cd7683c90776309e92291 1 compiler_rt/floattidf.zig +655 15567896 1777922721688272957 5ad2e9750665a0bc0f20e70de861dd2a 1 compiler_rt/floattitf.zig +582 15567897 1777922721688272957 d70e70beff307c5a02db9159d0c10876 1 compiler_rt/floattixf.zig +510 15567884 1777922721687272961 1646d6f1c02bb7b56165f216939a9766 1 compiler_rt/floateihf.zig +510 15567885 1777922721687272961 527c6da025482fa3e66b7143a7d9ea01 1 compiler_rt/floateisf.zig +479 15567883 1777922721687272961 7089012ddd1b9df0b322dd94006d29cb 1 compiler_rt/floateidf.zig +512 15567886 1777922721687272961 7f5adb0ede96341b927fd2b19ae21832 1 compiler_rt/floateitf.zig +479 15567887 1777922721688272957 a23d0cf72c9624bd4deb5bf9ab59680d 1 compiler_rt/floateixf.zig +263 15567909 1777922721688272957 d0eabbfe905bd1955dfbf4ff74789d9b 1 compiler_rt/floatunsihf.zig +516 15567910 1777922721688272957 4889e042d98fd6fe78fdd5512ad1222a 1 compiler_rt/floatunsisf.zig +498 15567908 1777922721688272957 469980dadce3b1303d8e5447b80253e0 1 compiler_rt/floatunsidf.zig +580 15567911 1777922721688272957 ad932fe90a33e55661927317df353bbc 1 compiler_rt/floatunsitf.zig +292 15567912 1777922721688272957 b74eb06b45723852ed8907ef9a3c1e2e 1 compiler_rt/floatunsixf.zig +292 15567899 1777922721688272957 d33b3dad7c05a80047aa89ef177f5de5 1 compiler_rt/floatundihf.zig +640 15567900 1777922721688272957 bfe6adee0ae9ff36f0f3a727942b60ff 1 compiler_rt/floatundisf.zig +622 15567898 1777922721688272957 5b21700386001f90ca76f4a69bbcc531 1 compiler_rt/floatundidf.zig +562 15567901 1777922721688272957 7ecbce03f6e2f7d34f669c43e05b5a5a 1 compiler_rt/floatunditf.zig +292 15567902 1777922721688272957 da5d76f43d53f823d14115e813e1e679 1 compiler_rt/floatundixf.zig +576 15567914 1777922721688272957 2953c33c5afb985a57994b5286303007 1 compiler_rt/floatuntihf.zig +594 15567915 1777922721688272957 05f6dcc434cc4afcdeab7e22fc1dc4ae 1 compiler_rt/floatuntisf.zig +576 15567913 1777922721688272957 b11ac0fc0d92ee51164a46a58d962730 1 compiler_rt/floatuntidf.zig +671 15567916 1777922721688272957 c473c1e7ddec98bb533d1273ad3b4a66 1 compiler_rt/floatuntitf.zig +594 15567917 1777922721688272957 9aa52768facdbbc8d846ea2d3494ecc1 1 compiler_rt/floatuntixf.zig +518 15567904 1777922721688272957 b569e15c4960f096d22a8498695037b3 1 compiler_rt/floatuneihf.zig +518 15567905 1777922721688272957 3da1804fc261f82d9a85f4cb42fcc7cf 1 compiler_rt/floatuneisf.zig +518 15567903 1777922721688272957 72d8c1345792bda65e245e216c54bfb4 1 compiler_rt/floatuneidf.zig +489 15567906 1777922721688272957 250b2f2ee910f6889439f6902e824242 1 compiler_rt/floatuneitf.zig +518 15567907 1777922721688272957 8775dcf872567dbca4aaa9be89c98d5c 1 compiler_rt/floatuneixf.zig +9442 15567795 1777922721686272965 a4d8663a92788da43cb9d84cfbb3e58c 1 compiler_rt/comparef.zig +2605 15567788 1777922721686272965 91858a90e46f0fae6148a5be22f15aba 1 compiler_rt/cmpdf2.zig +3596 15567791 1777922721686272965 ed4eee3b4269a73e58e195ab991424b6 1 compiler_rt/cmptf2.zig +1891 15567793 1777922721686272965 1bcb2490de66ad4411a56bb1b1beadda 1 compiler_rt/cmpxf2.zig +522 15568023 1777922721690272950 3cec9a8449e552edb9ea21bdcfcd5d16 1 compiler_rt/unorddf2.zig +792 15567926 1777922721688272957 bd0ef74753abec5e9bf5ff1ece192ce1 1 compiler_rt/gehf2.zig +1289 15567927 1777922721688272957 752957c0e08ab46d38903882d4e373e6 1 compiler_rt/gesf2.zig +1307 15567925 1777922721688272957 77abb220c445ca209cdc0bd63d0c35f4 1 compiler_rt/gedf2.zig +363 15567929 1777922721688272957 71abd2cb5cc15adfad10f2d1b086455c 1 compiler_rt/gexf2.zig +1102 15567928 1777922721688272957 857b9121c2764ef9fa6c80b222bae740 1 compiler_rt/getf2.zig +6364 15567763 1777922721686272965 a28efd2a8cc22dd72d94e92efdcaf5e8 1 compiler_rt/addf3.zig +258 15567765 1777922721686272965 cdb97ed9e9e4f737d1f50210538b5fa5 1 compiler_rt/addhf3.zig +482 15567766 1777922721686272965 7c66383d101eb8f59fe91827b0fa7052 1 compiler_rt/addsf3.zig +482 15567762 1777922721686272965 e98de91516f58550155b9f3cdc601a6a 1 compiler_rt/adddf3.zig +526 15567767 1777922721686272965 6a3199d5327ebdb5ac2a57b2891ce8e9 1 compiler_rt/addtf3.zig +262 15567770 1777922721686272965 37bb3df1d21ca3fb5c73a77e28251f0a 1 compiler_rt/addxf3.zig +345 15567994 1777922721689272954 d9dd819eb7b3e86e7499f19496aea205 1 compiler_rt/subhf3.zig +605 15567995 1777922721689272954 3730fe6e180d1398a620f7eeb43a77fb 1 compiler_rt/subsf3.zig +623 15567993 1777922721689272954 7be5439bbd27e235a8fb91189b8400e5 1 compiler_rt/subdf3.zig +685 15567996 1777922721689272954 9bd91d1677c201db0fbe5aff338cf3a5 1 compiler_rt/subtf3.zig +305 15567999 1777922721689272954 fe73f8ec762008d8326f6948b3c58f3c 1 compiler_rt/subxf3.zig +8424 15567948 1777922721688272957 8e0c05bcfe476732180e7179a76711cf 1 compiler_rt/mulf3.zig +262 15567951 1777922721688272957 6a4d90f1850cdff4b9101cf5f3653506 1 compiler_rt/mulhf3.zig +468 15567957 1777922721689272954 9e1e52d638844b75ab5c4d9b1605394d 1 compiler_rt/mulsf3.zig +486 15567947 1777922721688272957 f18b5c02041a116c8908d4c293c839fa 1 compiler_rt/muldf3.zig +538 15567959 1777922721689272954 f0405d80ca7cb47530b94f4f2ac72c77 1 compiler_rt/multf3.zig +262 15567962 1777922721689272954 099cf6140d3741138e202d701d1d874a 1 compiler_rt/mulxf3.zig +285 15567808 1777922721686272965 ae5c2e64d205ad937c80f9c50800e579 1 compiler_rt/divhf3.zig +8402 15567811 1777922721686272965 e007dd91050d3f9670856a31b291d71d 1 compiler_rt/divsf3.zig +9199 15567805 1777922721686272965 64b385486134b7bf452a4b4e3d8aa5ee 1 compiler_rt/divdf3.zig +8620 15567818 1777922721686272965 841562b842e29f7fc82e5e830cac819a 1 compiler_rt/divxf3.zig +10560 15567814 1777922721686272965 ebc16bc889cdb5e114e6bd9b797169b6 1 compiler_rt/divtf3.zig +1602 15567979 1777922721689272954 ed08c76b13adf76b35de9a6acfb5f900 1 compiler_rt/powiXf2.zig +2275 15567944 1777922721688272957 31c049fe940585ddd225b0c4f49de0ab 1 compiler_rt/mulc3.zig +364 15567950 1777922721688272957 512781f166a8c3875da561f4f8230be9 1 compiler_rt/mulhc3.zig +331 15567956 1777922721689272954 102e16161771af7814e38255adbe4dca 1 compiler_rt/mulsc3.zig +331 15567946 1777922721688272957 bb3e4f1e45e087a2cbf5e1b8c7294ab5 1 compiler_rt/muldc3.zig +364 15567961 1777922721689272954 0575402536fa7953282dd3719153c560 1 compiler_rt/mulxc3.zig +469 15567958 1777922721689272954 2599c8fc1dd703990f1d52fcc8405afc 1 compiler_rt/multc3.zig +2280 15567802 1777922721686272965 9e6aaeda713b6cd43eca1180606dc9f8 1 compiler_rt/divc3.zig +406 15567807 1777922721686272965 412c7456a893811918eb7e32f5ca2b4f 1 compiler_rt/divhc3.zig +373 15567810 1777922721686272965 7e02e8c2afcd2c36b275e526b50e7de7 1 compiler_rt/divsc3.zig +373 15567804 1777922721686272965 5be22ecc99b60a1e269ebcd07b63ba48 1 compiler_rt/divdc3.zig +373 15567817 1777922721686272965 eb964b5ea20bc7ea6b214d5165684b59 1 compiler_rt/divxc3.zig +511 15567813 1777922721686272965 f00ce0a1115432ed877e70a7210e020d 1 compiler_rt/divtc3.zig +8401 15567797 1777922721686272965 48ce97085562f8f0d3e93ba3a00c6330 1 compiler_rt/cos.zig +11191 15567821 1777922721686272965 233a0c2675fcf9fb0562d061d3f4ef8d 1 compiler_rt/exp.zig +20463 15567822 1777922721686272965 990315018671e600e5f43983656b35c7 1 compiler_rt/exp2.zig +1415 15567835 1777922721687272961 cd3fa4a3253c94922cf7fd4dbe8cf6d6 1 compiler_rt/fabs.zig +8451 15567918 1777922721688272957 0b87695dedb440735139b41072ac04b4 1 compiler_rt/floor_ceil.zig +11101 15567919 1777922721688272957 28c4313cc538b2f5812a52ec4bec4b02 1 compiler_rt/fma.zig +2369 15567920 1777922721688272957 a7f052b4bdafcce80219707ccbcd4a79 1 compiler_rt/fmax.zig +2371 15567921 1777922721688272957 2881caf3353e21fdc068c2894b526e33 1 compiler_rt/fmin.zig +11725 15567922 1777922721688272957 79f5a6f3e0524014ac73e0cb70026778 1 compiler_rt/fmod.zig +27755 15567935 1777922721688272957 8fa60be4c24fa34c552469dc3b4d63cf 1 compiler_rt/log.zig +9191 15567936 1777922721688272957 94721fe1abfbc3e173c681c73594e4b5 1 compiler_rt/log10.zig +8667 15567937 1777922721688272957 49e6cdf9ea75329f51154c609db64cc2 1 compiler_rt/log2.zig +4824 15567985 1777922721689272954 18ecc9f71f2af16e8866e41610d6e1db 1 compiler_rt/round.zig +9430 15567988 1777922721689272954 b933cc2801f9f84ff21b33c81ed4d0a9 1 compiler_rt/sin.zig +14726 15567989 1777922721689272954 d2d11e62b12ffea565f68495b486d0fe 1 compiler_rt/sincos.zig +29204 15567990 1777922721689272954 963eea878eff95387128b7a278530024 1 compiler_rt/sqrt.zig +7816 15568000 1777922721689272954 895ecc118177fee658ce2ed29440e3e3 1 compiler_rt/tan.zig +3960 15568002 1777922721689272954 7e9794fe13282aed8ade46a8cc46fdde 1 compiler_rt/trunc.zig +1976 15567809 1777922721686272965 f40491911afd36dcbdcaf83bde552029 1 compiler_rt/divmodei4.zig +5274 15568020 1777922721690272950 b483f1668e5681f1d01a8d3379d3085c 1 compiler_rt/udivmodei4.zig +8695 15567934 1777922721688272957 7f6b80ee9fd1a888a1cefaf0f0c07003 1 compiler_rt/limb64.zig +2970 15567970 1777922721689272954 73fbe2fafb6bf806bc0f94e0dbcdbb82 1 compiler_rt/os_version_check.zig +12778 15567820 1777922721686272965 32b1cbab0c70a5f07d8449b52a41b212 1 compiler_rt/emutls.zig +9633 15567771 1777922721686272965 5be5ccc2045b773a50cc658d73e3f1fe 1 compiler_rt/arm.zig +2296 15567773 1777922721686272965 adeeb17e089446574c0ac7052482f9da 1 compiler_rt/aulldiv.zig +2443 15567774 1777922721686272965 e279358f66c28bb577bb85cbb84e1b13 1 compiler_rt/aullrem.zig +7898 15567783 1777922721686272965 06f37e75f1f65c2d1968533e3126f595 1 compiler_rt/clear_cache.zig +44080 15567930 1777922721688272957 abec634a6ef8a9483ea381073dda9495 1 compiler_rt/hexagon.zig +22504 15567772 1777922721686272965 ee140ab73a711e099a335fcde147ec95 1 compiler_rt/atomics.zig +8888 15567992 1777922721689272954 e025e27cc09dff6f87418466a43f6126 1 compiler_rt/stack_probe.zig +71732 15567754 1777922721686272965 369d1b315f5a60e440e7b5229d0c2164 1 compiler_rt/aarch64_outline_atomics.zig +6327 15567939 1777922721688272957 8bd7a5b699effd9b48177fb4f42ba749 1 compiler_rt/memcpy.zig +7302 15567940 1777922721688272957 469b60af6c756eaa579028727fd7f021 1 compiler_rt/memmove.zig +3975 15567991 1777922721689272954 c0d2e7ed8026c400d7a40345bd91bf4f 1 compiler_rt/ssp.zig +0 15567964 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negsi2_test.zig +0 15567963 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negdi2_test.zig +0 15567965 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negti2_test.zig +8149 15587771 1777922722081271498 848266c110821122ce6bc572fc7966c9 1 std/Build/Cache/Path.zig +2178 15587770 1777922722081271498 4641e40dd1fb14622c51a7b8ad1a5d37 1 std/Build/Cache/Directory.zig +37904 15587769 1777922722081271498 5df488280e227dc1fae402212d0d1fa0 1 std/Build/Cache/DepTokenizer.zig +2963 15587776 1777922722081271498 3b0a8799da32dd829cea1e048ca0bdd9 1 std/Build/Step/CheckFile.zig +116020 15587777 1777922722081271498 18bac9280e713b80bc53d2471a14f467 1 std/Build/Step/CheckObject.zig +42586 15587779 1777922722081271498 4f4fb7a01d1524c11e465df25bb20bfc 1 std/Build/Step/ConfigHeader.zig +831 15587780 1777922722081271498 0f223ee68995072c4beb7fd3ae600b02 1 std/Build/Step/Fail.zig +2697 15587781 1777922722081271498 3d6cf866859ca04eb013a6b4ae5eda8e 1 std/Build/Step/Fmt.zig +8841 15587782 1777922722081271498 5f12e1d9cd3e301c7d59c6d0462af4e6 1 std/Build/Step/InstallArtifact.zig +4433 15587783 1777922722081271498 c590243c9189e7c05edb58d307b01d4d 1 std/Build/Step/InstallDir.zig +1460 15587784 1777922722081271498 0040eb5b0836e8fa2056b8e33d66b4dd 1 std/Build/Step/InstallFile.zig +8120 15587785 1777922722081271498 295b05d43b5ace3d4b31c0050b107e6c 1 std/Build/Step/ObjCopy.zig +84912 15587778 1777922722081271498 58e730efa305588922a904e148d65c54 1 std/Build/Step/Compile.zig +23120 15587786 1777922722081271498 7ad270e654494ff667c1d415c427537f 1 std/Build/Step/Options.zig +109628 15587787 1777922722081271498 7bf82c87cfe60873b28b35fac908770d 1 std/Build/Step/Run.zig +11889 15587788 1777922722081271498 cfa8e53899ae65e54778a42e84a17a18 1 std/Build/Step/TranslateC.zig +15498 15587790 1777922722081271498 a41fe33f2341ddc013b1fca1385ecd90 1 std/Build/Step/WriteFile.zig +4250 15587789 1777922722081271498 dfabe6ac1052637a178eef042b9afdd3 1 std/Build/Step/UpdateSourceFiles.zig +22253 15587793 1777922722082271495 d9a2b05ebe843fa5e404ed496a247b65 1 std/Build/Watch/FsEvents.zig +0 15587817 1777922722082271495 82547a8dd7f3efb3f077622e34876868 1 std/Io/Threaded/test.zig +3139 15587811 1777922722082271495 fe5fe7e681f4ef3265a652f929df6985 1 std/Io/Reader/Limited.zig +18134 15587823 1777922722083271491 5a0826d8af9243d47ac0ec7740737941 1 std/Io/net/HostName.zig +0 15587824 1777922722083271491 82547a8dd7f3efb3f077622e34876868 1 std/Io/net/test.zig +12759 15587806 1777922722082271495 3c13d2a3cedf8a9f99d87cd0a98d153b 1 std/Io/File/Reader.zig +8053 15587807 1777922722082271495 2ce32c66e785fcb0a179751edc397f1f 1 std/Io/File/Writer.zig +2699 15587803 1777922722082271495 7fd41fc040ad02c0f3e6feba994632f2 1 std/Io/File/Atomic.zig +4691 15587804 1777922722082271495 0b7562cfbeb59f6f8d81b42628098927 1 std/Io/File/MemoryMap.zig +8305 15587805 1777922722082271495 5bf9ca3d1c3edf41a06e7bb0ef18166a 1 std/Io/File/MultiReader.zig +13315 15587893 1777922722085271483 61d05272e7ddb2e66aecfe56b0a6b40e 1 std/c/darwin/dispatch.zig +103441 15587906 1777922722086271480 e55ee93fe7500c447d1110e3f5a59831 1 std/compress/flate/Compress.zig +43916 15587907 1777922722086271480 3c452297218497c6a0d6dfd1e6411bbf 1 std/compress/flate/Decompress.zig +0 15587911 1777922722086271480 82547a8dd7f3efb3f077622e34876868 1 std/compress/lzma/test.zig +10184 15587915 1777922722086271480 21b193ffeea11c4791e036a76504d714 1 std/compress/xz/Decompress.zig +0 15587916 1777922722086271480 82547a8dd7f3efb3f077622e34876868 1 std/compress/xz/test.zig +79574 15587919 1777922722086271480 af8f151b39faf2c007e2c3b1ccfff8a5 1 std/compress/zstd/Decompress.zig +0 15588020 1777922722089271469 82547a8dd7f3efb3f077622e34876868 1 std/crypto/test.zig +23047 15587940 1777922722087271476 b54729e648f909a81268f06167f20669 1 std/crypto/aes/aesni.zig +23360 15587941 1777922722087271476 f5c1c07e89705b24f7bbd58f0a70facd 1 std/crypto/aes/armcrypto.zig +34577 15587942 1777922722087271476 184f3d736969e9c1be3921724324424e 1 std/crypto/aes/soft.zig +14574 15587927 1777922722086271480 b552b509d9ec611014aa027c881ac91c 1 std/crypto/25519/field.zig +33750 15587929 1777922722086271480 1609964fc626671466a751ead6b023a1 1 std/crypto/25519/scalar.zig +338 15587992 1777922722088271472 433b788abb384ec7e4c3641754e6dde9 1 std/crypto/pcurves/p256/field.zig +7435 15587995 1777922722088271472 82696e587c8e76ddb04029021b89c87a 1 std/crypto/pcurves/p256/scalar.zig +5807 15588010 1777922722089271469 59d4f7e4b6bb1d5529e6827ea10d8814 1 std/crypto/pcurves/tests/p256.zig +376 15587998 1777922722089271469 69a49ff5f537dcd2044702ac14b6891c 1 std/crypto/pcurves/p384/field.zig +6683 15588001 1777922722089271469 b62513369dfa0f5b4513e8baae554c59 1 std/crypto/pcurves/p384/scalar.zig +6858 15588011 1777922722089271469 621c32a3c0932bff6aef9a841d5fbfe8 1 std/crypto/pcurves/tests/p384.zig +343 15588004 1777922722089271469 738b22249e1d3a4c001765286bc82756 1 std/crypto/pcurves/secp256k1/field.zig +7440 15588005 1777922722089271469 a2c94ac2ee64aa257045479bbeb08026 1 std/crypto/pcurves/secp256k1/scalar.zig +6215 15588012 1777922722089271469 90125b8a7293d6448bb9a47580368f54 1 std/crypto/pcurves/tests/secp256k1.zig +82002 15587982 1777922722088271472 1f857c6712958ff825aebf76cc32ac36 1 std/crypto/kangarootwelve.zig +12252 15587970 1777922722087271476 2cde0e70f988d3c7402f68a6a0314902 1 std/crypto/codecs/asn1.zig +18414 15587971 1777922722087271476 35b79a3fd55544c4889106069900e621 1 std/crypto/codecs/base64_hex_ct.zig +84508 15588023 1777922722089271469 649a5ecda2066ee55b1b961a952f38e4 1 std/crypto/tls/Client.zig +13687 15587934 1777922722086271480 bc1cd32e365024071d2fc253363bf1d2 1 std/crypto/Certificate/Bundle.zig +3589 15587935 1777922722086271480 1774b11899c6e761cf2c54ab9cf5893a 1 std/crypto/Certificate/Chain.zig +68800 15588033 1777922722090271465 09cdb1c0d0788a66a040ddcb5eddf5a7 1 std/debug/Dwarf/expression.zig +30176 15588032 1777922722090271465 9ea6e3df4e3d610339e5ea8f25755dfe 1 std/debug/Dwarf/Unwind.zig +13415 15588029 1777922722089271469 b8a468905b79bd6e498576d88e341c4a 1 std/debug/Dwarf/SelfUnwinder.zig +9426 15588071 1777922722091271461 19fe74e26814be7f5083c3d8b5a0983e 1 std/fmt/parse_float/parse.zig +2950 15588068 1777922722091271461 e2f6cedde735fdaf086b7e0efdb66505 1 std/fmt/parse_float/convert_hex.zig +5401 15588067 1777922722091271461 cbeba905313f9b6c917fb231993989fe 1 std/fmt/parse_float/convert_fast.zig +48543 15588066 1777922722091271461 82c419f8469193cf67852d0ac4c65f55 1 std/fmt/parse_float/convert_eisel_lemire.zig +4586 15588069 1777922722091271461 2562e4c50c6403023d508a0c7e1f15f0 1 std/fmt/parse_float/convert_slow.zig +3506 15588085 1777922722091271461 9428b7df45d5b928d9c004b955588fe0 1 std/hash/crc/impl.zig +0 15588086 1777922722091271461 82547a8dd7f3efb3f077622e34876868 1 std/hash/crc/test.zig +2075 15588090 1777922722091271461 5910881f138d791cfa09dd89cc12fc40 1 std/hash/verify.zig +0 15588117 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/dynamic_test.zig +0 15588119 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/hashmap_test.zig +0 15588120 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/scanner_test.zig +0 15588122 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/static_test.zig +995 15588167 1777922722093271454 59077bc2784a5df334de08609b4c2a55 1 std/math/expo2.zig +452 15588142 1777922722093271454 ce633e6b665f3caba98995a3f146d7c7 1 std/math/complex/abs.zig +678 15588144 1777922722093271454 9dd2ece0bd4c6366c4a3cb5bf7b3db17 1 std/math/complex/acosh.zig +608 15588143 1777922722093271454 e3a7d70f219edead2e32e66a9476a469 1 std/math/complex/acos.zig +458 15588145 1777922722093271454 2fea305ef49ff29fdd688d2f7342051d 1 std/math/complex/arg.zig +641 15588147 1777922722093271454 59bed4da0e5763cbf2a3e08ec4bc9c6c 1 std/math/complex/asinh.zig +750 15588146 1777922722093271454 26f02f5afc54b9ec7673ddd6d0fcc3a9 1 std/math/complex/asin.zig +645 15588149 1777922722093271454 adf7751d27453fed0d4977a2dc50e85e 1 std/math/complex/atanh.zig +2527 15588148 1777922722093271454 2a909954adb7520e1eb158124c280ca2 1 std/math/complex/atan.zig +484 15588150 1777922722093271454 a9e61e0f7280deab3d077856af6ca8d9 1 std/math/complex/conj.zig +5818 15588152 1777922722093271454 3b53a3d1a1285447f00cc90f422cb7b1 1 std/math/complex/cosh.zig +577 15588151 1777922722093271454 26877517b7d9d620e841272fd8ea3661 1 std/math/complex/cos.zig +4899 15588153 1777922722093271454 4f31c5e9d921097840da690cc0324595 1 std/math/complex/exp.zig +620 15588155 1777922722093271454 4e4bb03cdbb57072938d447952587286 1 std/math/complex/log.zig +608 15588156 1777922722093271454 1258f2af84237de74fd033b6776798f2 1 std/math/complex/pow.zig +628 15588157 1777922722093271454 b5f2e65410101f915fb75fa5712c2fd4 1 std/math/complex/proj.zig +5363 15588159 1777922722093271454 89568cfbf7f8196aafffbd55ea670070 1 std/math/complex/sinh.zig +620 15588158 1777922722093271454 4aade0cdfc8ac82b062412f5566aec6c 1 std/math/complex/sin.zig +4249 15588160 1777922722093271454 0aeb21db75d92940ddcb1491d2f0445e 1 std/math/complex/sqrt.zig +3847 15588162 1777922722093271454 98009ed972f9f5fcb177d10a345456e1 1 std/math/complex/tanh.zig +626 15588161 1777922722093271454 ac4f4ba1ea51c6a8f2101a7bdf3b0d7c 1 std/math/complex/tan.zig +185960 15588137 1777922722093271454 73c91870bf9888390a4fbae783316b31 1 std/math/big/int.zig +3762 15588238 1777922722095271446 2fd0c246f4a8e9ba6ccef5ff7cf0ccfe 1 std/os/linux/vdso.zig +0 15588235 1777922722095271446 82547a8dd7f3efb3f077622e34876868 1 std/os/linux/test.zig +4028 15588209 1777922722094271450 fad889af74c19e89aec8d2d148367ad2 1 std/os/linux/aarch64.zig +5034 15588210 1777922722094271450 71b88c341539b947f3255d37700f0a9e 1 std/os/linux/arm.zig +3380 15588217 1777922722094271450 59d565de222e3a5cfe2a456c9705e122 1 std/os/linux/hexagon.zig +4816 15588220 1777922722094271450 2dc76d90755eb8f1deb0a9e80f359b40 1 std/os/linux/loongarch32.zig +4885 15588221 1777922722094271450 7a3cc3cbebbe2f0b12661a952b75c15d 1 std/os/linux/loongarch64.zig +4232 15588222 1777922722094271450 3395b9bf91d855e572ab17b5c9bcac50 1 std/os/linux/m68k.zig +7917 15588223 1777922722094271450 adf29231543fd97568b09af3e22046da 1 std/os/linux/mips.zig +6527 15588225 1777922722094271450 e063618f62bb68a7e8dae24506b02518 1 std/os/linux/mipsn32.zig +6537 15588224 1777922722094271450 8d0f1af1cac3e5e03b718a1d3425708f 1 std/os/linux/mips64.zig +4947 15588226 1777922722094271450 0d4afd00420b15c35dbaf8d5317340ae 1 std/os/linux/or1k.zig +8650 15588227 1777922722094271450 e09c38d7114a12168881b764ae9e8eba 1 std/os/linux/powerpc.zig +8261 15588228 1777922722094271450 8561a5c808ba8c8069c7df5a10720639 1 std/os/linux/powerpc64.zig +3640 15588229 1777922722094271450 d333fa4c740f3e6afbc45d98d513d684 1 std/os/linux/riscv32.zig +3641 15588230 1777922722094271450 a181350c52396d767c11fff4bc1bfea3 1 std/os/linux/riscv64.zig +4555 15588231 1777922722094271450 ad8917b9284d43622453013ec7d5a083 1 std/os/linux/s390x.zig +6966 15588233 1777922722095271446 9e9cad0859d808d852642ce7b2af7e78 1 std/os/linux/sparc64.zig +7003 15588240 1777922722095271446 e3e3fd9240e6d1ae21e8ecb216b4741a 1 std/os/linux/x86.zig +4300 15588239 1777922722095271446 3fba18c392f7404bdf7c81b1152e27c6 1 std/os/linux/x32.zig +4299 15588241 1777922722095271446 49eb8d69558e313084ba3ac63c3f6709 1 std/os/linux/x86_64.zig +4043 15588236 1777922722095271446 ce94b53cfedc272651855c9aca6eb340 1 std/os/linux/thumb.zig +19371 15588237 1777922722095271446 2596493b8d3ba40e9ca8668f737e002f 1 std/os/linux/tls.zig +47550 15588216 1777922722094271450 32c5da8e114e94ea2adec4c27b6ce0db 1 std/os/linux/bpf.zig +1297 15588219 1777922722094271450 daac8c407161fbb4bb996238aee46635 1 std/os/linux/ioctl.zig +8427 15588232 1777922722095271446 b845f84a2ea6f5532d8ffc78297dafed 1 std/os/linux/seccomp.zig +191416 15588234 1777922722095271446 2171c87abdee6ea939834e72eaa1a5eb 1 std/os/linux/syscalls.zig +19937 15588218 1777922722094271450 8ba8f2488f743f5b2557ce471784ff51 1 std/os/linux/io_uring_sqe.zig +70498 15588208 1777922722094271450 1bca4c9dd309bf457afc8410477d2bfa 1 std/os/linux/IoUring.zig +2126 15588244 1777922722095271446 d6f497f7c3ede56b9dd8eb2cae54c566 1 std/os/plan9/x86_64.zig +2317 15588274 1777922722096271443 be87bd6baef485caa6e53ac7a241c786 1 std/os/uefi/protocol.zig +37311 15588247 1777922722095271446 a67c5d40f56e40984ce32fba49cfa0bc 1 std/os/uefi/device_path.zig +2078 15588248 1777922722095271446 13b23e26af6b210b16c77d73b956e867 1 std/os/uefi/hii.zig +10107 15588275 1777922722096271443 e4c1fe82be2b68376749dbb625002706 1 std/os/uefi/status.zig +10732 15588282 1777922722096271443 68cf12b996f3dbf4516572e7fe0d5f28 1 std/os/uefi/tables.zig +3906 15588249 1777922722095271446 5c4587a7b4f3370e256119bdab607b4a 1 std/os/uefi/pool_allocator.zig +928 15588287 1777922722096271443 bdb9a1476aaf7f283248a744d45098b3 1 std/os/windows/kernel32.zig +24957 15588290 1777922722096271443 d002d05bd824d2a94ac1184a1de432b6 1 std/os/windows/ntdll.zig +6230 15588295 1777922722096271443 ae6102533d158f7aa36956692efdf400 1 std/os/windows/ws2_32.zig +7915 15588286 1777922722096271443 2295f6c84e927b878882595bca445084 1 std/os/windows/crypt32.zig +20117 15588289 1777922722096271443 696b67a75a9a665eb00672233edffbb2 1 std/os/windows/nls.zig +237477 15588291 1777922722096271443 67644436e9162e79563b60f574b36f99 1 std/os/windows/ntstatus.zig +159624 15588294 1777922722096271443 a39f9d487cebae65c6f7885b43d14926 1 std/os/windows/win32error.zig +3697 15588288 1777922722096271443 f5f54b1cf522ff663148d3c96268d459 1 std/os/windows/lang.zig +8449 15588292 1777922722096271443 3c42a760ba486f9b9455bd95d20d2e0b 1 std/os/windows/sublang.zig +134890 15588353 1777922722098271435 df90a233ff7b97b3d629b2cf2e6cb86a 1 std/zig/Parse.zig +133748 15588343 1777922722098271435 a88e2a4e8edd5e42ce36d5497be9cfe3 1 std/zig/Ast/Render.zig +9472 15588375 1777922722099271431 87195797eae5a3842acb5b520146fd13 1 std/zig/system/NativePaths.zig +12220 15588382 1777922722099271431 1f1c4d6952079202735b6347b5864845 1 std/zig/system/windows.zig +2320 15588379 1777922722099271431 e3e5ee526c7cbaefdeb93c1c71a9f4cf 1 std/zig/system/darwin.zig +17272 15588380 1777922722099271431 d567aa2d0fd3fea7e6ba769d0f8ec592 1 std/zig/system/linux.zig +2265 15588381 1777922722099271431 e842ad5fa8bb44c7b2f8d9b6a335fcf3 1 std/zig/system/loongarch.zig +26515 15588383 1777922722099271431 775e2bf6e3c40cf09c216c30e4630474 1 std/zig/system/x86.zig +19938 15588364 1777922722099271431 f668cf11e4bececc793b349896705637 1 std/zig/llvm/BitcodeReader.zig +17757 15588366 1777922722099271431 d9ff99a16b4c64c8b4178f94af361113 1 std/zig/llvm/bitcode_writer.zig +597464 15588365 1777922722099271431 3d2fda42992a57fa8717bda6172f399b 1 std/zig/llvm/Builder.zig +0 15567785 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/clzsi2_test.zig +0 15567784 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/clzdi2_test.zig +0 15567786 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/clzti2_test.zig +0 15567800 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ctzsi2_test.zig +0 15567799 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ctzdi2_test.zig +0 15567801 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ctzti2_test.zig +0 15567837 1777922721687272961 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ffssi2_test.zig +0 15567836 1777922721687272961 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ffsdi2_test.zig +0 15567838 1777922721687272961 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ffsti2_test.zig +0 15567973 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/paritysi2_test.zig +0 15567972 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/paritydi2_test.zig +0 15567974 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/parityti2_test.zig +0 15567977 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/popcountsi2_test.zig +0 15567976 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/popcountdi2_test.zig +0 15567978 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/popcountti2_test.zig +0 15567777 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bitreversesi2_test.zig +0 15567776 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bitreversedi2_test.zig +0 15567778 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bitreverseti2_test.zig +0 15567781 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bswapsi2_test.zig +0 15567780 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bswapdi2_test.zig +0 15567782 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bswapti2_test.zig +0 15567790 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/cmpsi2_test.zig +0 15567789 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/cmpdi2_test.zig +0 15567792 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/cmpti2_test.zig +0 15568016 1777922721690272950 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ucmpsi2_test.zig +0 15568015 1777922721690272950 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ucmpdi2_test.zig +0 15568017 1777922721690272950 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ucmpti2_test.zig +0 15567987 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/shift_test.zig +0 15568019 1777922721690272950 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/udivmoddi4_test.zig +0 15567943 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/mulXi3_test.zig +0 15567941 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/modti3_test.zig +0 15567816 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/divti3_test.zig +0 15568022 1777922721690272950 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/udivmodti4_test.zig +0 15567759 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/absvsi2_test.zig +0 15567757 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/absvdi2_test.zig +0 15567761 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/absvti2_test.zig +0 15567968 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negvsi2_test.zig +0 15567967 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negvdi2_test.zig +0 15567969 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negvti2_test.zig +0 15567954 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/mulosi4_test.zig +0 15567953 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/mulodi4_test.zig +0 15567955 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/muloti4_test.zig +0 15567826 1777922721687272961 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/extendf_test.zig +0 15568006 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/truncf_test.zig +0 15567933 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/int_from_float_test.zig +0 15567877 1777922721687272961 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/float_from_int_test.zig +0 15567796 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/comparesf2_test.zig +0 15567794 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/comparedf2_test.zig +0 15567764 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/addf3_test.zig +0 15567949 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/mulf3_test.zig +0 15567812 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/divsf3_test.zig +0 15567806 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/divdf3_test.zig +0 15567819 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/divxf3_test.zig +0 15567815 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/divtf3_test.zig +0 15567980 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/powiXf2_test.zig +20510 15568001 1777922721689272954 f6b225d4b9feff2de1e103d485dc8e40 1 compiler_rt/trig.zig +6045 15567981 1777922721689272954 18b634df64d66eb7c240db46b32eea60 1 compiler_rt/rem_pio2.zig +2247 15567983 1777922721689272954 2337e183931c970621500018ffe636df 1 compiler_rt/rem_pio2f.zig +5829 15567984 1777922721689272954 402ac72990072faf4f752a5636968782 1 compiler_rt/rem_pio2l.zig +1118 15567938 1777922721688272957 bec039b31d08232f98fc682d19a1ac73 1 compiler_rt/long_double.zig +0 15567923 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/fmodq_test.zig +0 15567924 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/fmodx_test.zig +10730 15587908 1777922722086271480 53adac0f8e0f7d9078504320a3c43e07 1 std/compress/flate/token.zig +12650 15587990 1777922722088271472 56befc361ef070a7bd0a2d3c1dc46994 1 std/crypto/pcurves/common.zig +67958 15587993 1777922722088271472 0f2daafefad01026d6796eec68d65d2e 1 std/crypto/pcurves/p256/p256_64.zig +76136 15587994 1777922722088271472 8ec5f177ef28f7a2a0ec8d103665db00 1 std/crypto/pcurves/p256/p256_scalar_64.zig +134511 15587999 1777922722089271469 2e0dda7c40794e981dd2d2471c4776a5 1 std/crypto/pcurves/p384/p384_64.zig +137291 15588000 1777922722089271469 81eb087d46e6c49907ae0c02d3230828 1 std/crypto/pcurves/p384/p384_scalar_64.zig +73280 15588006 1777922722089271469 c871f98dad15c7a8c29be9ccefa4b181 1 std/crypto/pcurves/secp256k1/secp256k1_64.zig +75859 15588007 1777922722089271469 e29275bdb0eb931fc383e7f2f5ded944 1 std/crypto/pcurves/secp256k1/secp256k1_scalar_64.zig +1807 15587968 1777922722087271476 f47429307ac0920ff18758ce86074549 1 std/crypto/codecs/asn1/der.zig +7105 15587960 1777922722087271476 66ccc511a453a86184290b4cacf80766 1 std/crypto/codecs/asn1/Oid.zig +0 15587969 1777922722087271476 82547a8dd7f3efb3f077622e34876868 1 std/crypto/codecs/asn1/test.zig +4011 15587933 1777922722086271480 a49557210ec6e38ec5826a46866649f7 1 std/crypto/Certificate/Bundle/macos.zig +17121 15588031 1777922722089271469 02ea7c4c86a3f7b66d945d1a88d0860d 1 std/debug/Dwarf/Unwind/VirtualMachine.zig +3081 15588065 1777922722091271461 2aeda0b8b6036bb4d980778abb5a928a 1 std/fmt/parse_float/common.zig +3073 15588064 1777922722091271461 3950e4fa1fdd11d50db0b4abfc254022 1 std/fmt/parse_float/FloatStream.zig +6036 15588063 1777922722091271461 68169ffe43d55f0eb5e26b984ef98670 1 std/fmt/parse_float/FloatInfo.zig +29140 15588070 1777922722091271461 04115d79320f402803a56bd43cc34cf9 1 std/fmt/parse_float/decimal.zig +2726 15588154 1777922722093271454 7f318d60fafbfa10754d5644fd131ffe 1 std/math/complex/ldexp.zig +0 15588138 1777922722093271454 82547a8dd7f3efb3f077622e34876868 1 std/math/big/int_test.zig +4082 15588212 1777922722094271450 11a08913a0ec64b8325b0d29601479a7 1 std/os/linux/bpf/btf.zig +1573 15588215 1777922722094271450 08d401fe72d3ad7d47a05a0dfa21751a 1 std/os/linux/bpf/kern.zig +0 15588207 1777922722094271450 82547a8dd7f3efb3f077622e34876868 1 std/os/linux/IoUring/test.zig +2001 15588265 1777922722096271443 539322409dfd2d684638b127038a6e33 1 std/os/uefi/protocol/service_binding.zig +1715 15588261 1777922722095271446 f6892127566a3c88d1d324cfca22e049 1 std/os/uefi/protocol/loaded_image.zig +4814 15588253 1777922722095271446 ae0050bfba8bda94901399e42fe62869 1 std/os/uefi/protocol/device_path.zig +3896 15588263 1777922722095271446 0eaedbe475401fd4e42c2f72619c3b04 1 std/os/uefi/protocol/rng.zig +544 15588266 1777922722096271443 a0f63cfe62d021c13659600cea4aaa1a 1 std/os/uefi/protocol/shell_parameters.zig +1496 15588267 1777922722096271443 92bd55cb521ba72da3dacbe3d5c5b804 1 std/os/uefi/protocol/simple_file_system.zig +13127 15588255 1777922722095271446 3e58288866670edca5973d3e29efe731 1 std/os/uefi/protocol/file.zig +5143 15588252 1777922722095271446 90c9d2e0c006c58adc3164e19f00657f 1 std/os/uefi/protocol/block_io.zig +1799 15588270 1777922722096271443 f024846a184666b0affa25a2cafbc10b 1 std/os/uefi/protocol/simple_text_input.zig +4974 15588271 1777922722096271443 8f8f74b6ab8260a314f3302e3b60a8b2 1 std/os/uefi/protocol/simple_text_input_ex.zig +9829 15588272 1777922722096271443 e29ba19063da848e891733725e4ef18c 1 std/os/uefi/protocol/simple_text_output.zig +2000 15588269 1777922722096271443 b5984b96aff1463f582bc80721e4a38c 1 std/os/uefi/protocol/simple_pointer.zig +2370 15588251 1777922722095271446 8910b48d0e2ed04512369394e9c24ef9 1 std/os/uefi/protocol/absolute_pointer.zig +4848 15588264 1777922722096271443 5a314d85dc7710d8e0d76e10d6c3922e 1 std/os/uefi/protocol/serial_io.zig +4268 15588256 1777922722095271446 be47eb42c9a36fecb0a4c61de4bdfb28 1 std/os/uefi/protocol/graphics_output.zig +2451 15588254 1777922722095271446 2485a4796e73c7c8a14535333ea36518 1 std/os/uefi/protocol/edid.zig +15926 15588268 1777922722096271443 f79068be4c5ecb4e18235f0494a8f3cf 1 std/os/uefi/protocol/simple_network.zig +9851 15588262 1777922722095271446 6ac87afb334f152ae1f60c7d37e0f794 1 std/os/uefi/protocol/managed_network.zig +13173 15588259 1777922722095271446 6918e512dad7b2ceae3fa8aea799bc07 1 std/os/uefi/protocol/ip6.zig +5348 15588260 1777922722095271446 f0e7e3eb4726b5acc733b4b709a6fb1b 1 std/os/uefi/protocol/ip6_config.zig +8539 15588273 1777922722096271443 75aeba724def9af2f5500e3b6a298bf6 1 std/os/uefi/protocol/udp6.zig +4193 15588257 1777922722095271446 ce7ddcd4ea155a56ac2f54b3d36b865f 1 std/os/uefi/protocol/hii_database.zig +1684 15588258 1777922722095271446 8a5d84a896afd4cbe181b6fe58095e17 1 std/os/uefi/protocol/hii_popup.zig +48199 15588277 1777922722096271443 e446bbeceb8ffaa0a0de93cfca1d074b 1 std/os/uefi/tables/boot_services.zig +18947 15588279 1777922722096271443 cb1eb30776a43459956ea4c0675dee88 1 std/os/uefi/tables/runtime_services.zig +2796 15588278 1777922722096271443 f0a08fa361dffa5eadb351a471801946 1 std/os/uefi/tables/configuration_table.zig +2295 15588280 1777922722096271443 25bf31dd5f33af51b4b9da897fa1e3d5 1 std/os/uefi/tables/system_table.zig +214 15588281 1777922722096271443 cdb95d6c52cd4654ef26be0bd9f114d4 1 std/os/uefi/tables/table_header.zig +0 15588370 1777922722099271431 82547a8dd7f3efb3f077622e34876868 1 std/zig/parser_test.zig +15193 15588376 1777922722099271431 7bce4e957862b1695847095b0e235801 1 std/zig/system/arm.zig +16515 15588378 1777922722099271431 c3ca99f8a604df7a396ed20c35bcebed 1 std/zig/system/darwin/macos.zig +80205 15588367 1777922722099271431 bfc1e840700a8f0e8a1a52a598010f74 1 std/zig/llvm/ir.zig +20581 15567982 1777922721689272954 e8eaf68a4ffa3364b8f352326a575189 1 compiler_rt/rem_pio2_large.zig +5806 15587963 1777922722087271476 92f1dd53520d8191f93c177825b7845c 1 std/crypto/codecs/asn1/der/Decoder.zig +5861 15587964 1777922722087271476 650695830257d32d9ea72d767d918703 1 std/crypto/codecs/asn1/der/Encoder.zig +419 15588213 1777922722094271450 ed7dfc04a5d0c4f0853edb5414ce981e 1 std/os/linux/bpf/btf_ext.zig +24525 15588214 1777922722094271450 52c7fac6ad48da05270f91f073a4af79 1 std/os/linux/bpf/helpers.zig +2972 15587962 1777922722087271476 8c37c40098d399e3b36a078ce1d4e3a1 1 std/crypto/codecs/asn1/der/ArrayListReverse.zig +2463 15618730 1777931357389491449 36e47b302d1095201b7edbe5c81e33fd 0 /home/bd/Projects/zig/zig-frugg/build.zig +16640 15590160 1777923881894514018 2a6f8a8e33d883bff487d5a5576130a6 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/build.zig +32164 15590848 1777923926852427317 bd00565f079d110b89dcb66d59b9e62f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/build.zig +9072 15592322 1777923927848425358 2634886604324c6354a198f2c20bff8d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/zemscripten-0.2.0-dev-sRlDqApRAACspTbAZnuNKWIzfWzSYgYkb2nWAXZ-tqqt/build.zig +9132 15590533 1777923923457433984 e6220c692b082a0fe44c35e9a23b85a1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/zemscripten-0.2.0-dev-sRlDqEtQAAB_1tPdqJsxQIqXxvvklcFu6VN5p6ANy8hw/build.zig diff --git a/.zig-cache/h/2c1bdf8f228ce685e9d9118849292ecc.txt b/.zig-cache/h/2c1bdf8f228ce685e9d9118849292ecc.txt new file mode 100644 index 0000000..017723d --- /dev/null +++ b/.zig-cache/h/2c1bdf8f228ce685e9d9118849292ecc.txt @@ -0,0 +1,14 @@ +0 +94278 15592270 1777923927290426456 148e15819214db74e0525ec276acecdd 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rshapes.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +351 15608422 1738927222000000000 da08a2d3368091efc0a7185be5672029 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdarg.h +12030 15608436 1738927222000000000 26ed05f1c0047de7dce6035be193f801 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/alltypes.h +167 15607052 1738927222000000000 e9da61c73c730980972a824176188baf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +11491 15608596 1738927222000000000 efae42386740518b1f626a76459cd25d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/math.h +1123 15608335 1738927222000000000 05a6a8793bf10dec3a28bc91a5d11897 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/features.h +1060 15607076 1738927222000000000 799a852adda1ab9a480998124e03ba5d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/float.h +479 15608425 1738927222000000000 347897448ff1fea5bfa9ff900161e535 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/float.h +4903 15608525 1738927222000000000 ed1c72b1bae7a8f66cf26387f5a3450d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdlib.h +219 15608608 1738927222000000000 a3c11fe0f49806a9c8748497c3a5d08c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/alloca.h diff --git a/.zig-cache/h/47611733225344435cbc4c24377a5562.txt b/.zig-cache/h/47611733225344435cbc4c24377a5562.txt new file mode 100644 index 0000000..688f49c --- /dev/null +++ b/.zig-cache/h/47611733225344435cbc4c24377a5562.txt @@ -0,0 +1,34 @@ +0 +338872 15592269 1777923927290426456 76fc55680b7dd750a09c7c8d4885d438 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rmodels.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +351 15608422 1738927222000000000 da08a2d3368091efc0a7185be5672029 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdarg.h +12030 15608436 1738927222000000000 26ed05f1c0047de7dce6035be193f801 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/alltypes.h +167 15607052 1738927222000000000 e9da61c73c730980972a824176188baf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +90849 15592263 1777923927287426462 db41cf17388962b34436c4fde7782f23 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raymath.h +11491 15608596 1738927222000000000 efae42386740518b1f626a76459cd25d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/math.h +1123 15608335 1738927222000000000 05a6a8793bf10dec3a28bc91a5d11897 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/features.h +6097 15608386 1738927222000000000 bfab932e271831504f4ddaa58ab246c9 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdio.h +67218 15608547 1738927221000000000 1fa71b76d45cf8fef0abb1dae850f9f2 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/wasi/api.h +575 15608576 1738927222000000000 39c69d5b8584a46c3a3c1a1ed7ea7644 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stddef.h +2578 15608527 1738927222000000000 0a5bb2760329226e49320fbf5ceb1abe 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdint.h +815 15608447 1738927222000000000 cd851a9784f94f6596041d1e6a402eb1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/stdint.h +4903 15608525 1738927222000000000 ed1c72b1bae7a8f66cf26387f5a3450d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdlib.h +219 15608608 1738927222000000000 a3c11fe0f49806a9c8748497c3a5d08c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/alloca.h +3041 15608333 1738927222000000000 674d66a327c388875d7daa272ead7369 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/string.h +964 15607137 1738927222000000000 b380eb8513f60d9c20a2673704aa7687 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/strings.h +45680 15592241 1777923927283426469 eb116170525d41104424990ac7adcf2f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/tinyobj_loader_c.h +428 15608607 1738927222000000000 31f38b261e42c4f6912cc4954954c56a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/assert.h +369 15607077 1738927222000000000 e91bc6541baff2463c8f1a0a446f542c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/errno.h +5443 15608426 1738927222000000000 3e89460e3ee0d588e32f488181b6737e 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/errno.h +205754 15592105 1777923927253426528 5d2f236b6f6ef5d9a1b295fd3d1846d5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/cgltf.h +4412 15608610 1738927222000000000 f4ca41fb1112c994ce5deadd7009f1fa 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/limits.h +24 15608455 1738927222000000000 773e1f0853282ba140053113f445be6d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/limits.h +1060 15607076 1738927222000000000 799a852adda1ab9a480998124e03ba5d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/float.h +479 15608425 1738927222000000000 347897448ff1fea5bfa9ff900161e535 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/float.h +19659 15592242 1777923927284426468 6f6765d6e719e243ad70cc22023392da 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/vox_loader.h +306683 15592223 1777923927268426499 15241acfe0a45badbe1236db00c6ea81 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/m3d.h +72865 15592225 1777923927278426479 9dc0644bac4164f220adfabe1352af5b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/par_shapes.h +14244 15607068 1738927222000000000 9594526477f7ad63c9dbcd11af025579 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/unistd.h +68 15608452 1738927222000000000 f38b9122c92bc19006648b5f6d7a1cf5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/posix.h diff --git a/.zig-cache/h/4e6e625069b7826f08220815498f74a1.txt b/.zig-cache/h/4e6e625069b7826f08220815498f74a1.txt new file mode 100644 index 0000000..cd49b34 --- /dev/null +++ b/.zig-cache/h/4e6e625069b7826f08220815498f74a1.txt @@ -0,0 +1,75 @@ +0 +94278 15592270 1777923927290426456 148e15819214db74e0525ec276acecdd 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rshapes.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +53032 11322525 1770636718000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +4286 11322288 1770636718000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11322493 1770636718000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11322492 1770636718000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11322476 1770636718000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11322407 1770636718000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11322597 1770636718000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11322607 1770636718000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11322294 1770636718000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11322510 1770636718000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11322509 1770636718000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5402 11322295 1770636718000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11322289 1770636718000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +4929 11322268 1770636718000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11322267 1770636718000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +1215 11322269 1770636718000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11322271 1770636718000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11322270 1770636718000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11322297 1770636718000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11322296 1770636718000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11322299 1770636718000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11322298 1770636718000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11322287 1770636718000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +6268 15568152 1777922721698272920 f23d0597dbe24fbef0b9db0a6a912bdb 1 include/float.h +42963 11322601 1770636718000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +1697 11322469 1770636718000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11322470 1770636718000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +983 11322423 1770636718000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11322414 1770636718000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +5713 11322677 1770636718000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +8806 11322409 1770636718000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11322459 1770636718000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11322405 1770636718000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +143 11322418 1770636718000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11322419 1770636718000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11322456 1770636718000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11322457 1770636718000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11322368 1770636718000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11322485 1770636718000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +1905 11322253 1770636718000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11322254 1770636718000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +2450 11322244 1770636718000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11322460 1770636718000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11322651 1770636718000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11322334 1770636718000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11322430 1770636718000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11322416 1770636718000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11322454 1770636718000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11322453 1770636718000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11322328 1770636718000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11322403 1770636718000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11322327 1770636718000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11322243 1770636718000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11322382 1770636718000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11322383 1770636718000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11322230 1770636718000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11322425 1770636718000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11322377 1770636718000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h diff --git a/.zig-cache/h/5432f7dc41af2031656acc2791b061fb.txt b/.zig-cache/h/5432f7dc41af2031656acc2791b061fb.txt new file mode 100644 index 0000000..35cbf05 --- /dev/null +++ b/.zig-cache/h/5432f7dc41af2031656acc2791b061fb.txt @@ -0,0 +1,89 @@ +0 +117970 15592271 1777923927291426454 31672e71fc2d475bd7ec65a7f43b43cb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rtext.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +34258 11024114 1776766428000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +381 11023928 1776766428000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11023930 1776766428000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11023927 1776766428000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11023926 1776766428000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11023925 1776766428000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11023948 1776766428000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11023935 1776766428000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11023890 1776766428000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +21266 11024117 1776766428000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11024118 1776766428000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +10969 11023996 1776766428000000000 dd17390845739df8331656ac5a17ef8e 0 /usr/include/ctype.h +20199 15592238 1777923927282426471 f594338f23ce56591d8032c04431a84a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_rect_pack.h +6841 11023755 1776766428000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +199176 15592239 1777923927282426471 db1ca3cdcf9606efbbb14aa8bbde39c4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_truetype.h diff --git a/.zig-cache/h/5733b84aa974d24ca147c95447a8da92.txt b/.zig-cache/h/5733b84aa974d24ca147c95447a8da92.txt new file mode 100644 index 0000000..90a89f5 --- /dev/null +++ b/.zig-cache/h/5733b84aa974d24ca147c95447a8da92.txt @@ -0,0 +1,23 @@ +0 +117970 15592271 1777923927291426454 31672e71fc2d475bd7ec65a7f43b43cb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rtext.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +351 15608422 1738927222000000000 da08a2d3368091efc0a7185be5672029 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdarg.h +12030 15608436 1738927222000000000 26ed05f1c0047de7dce6035be193f801 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/alltypes.h +167 15607052 1738927222000000000 e9da61c73c730980972a824176188baf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +4903 15608525 1738927222000000000 ed1c72b1bae7a8f66cf26387f5a3450d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdlib.h +1123 15608335 1738927222000000000 05a6a8793bf10dec3a28bc91a5d11897 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/features.h +219 15608608 1738927222000000000 a3c11fe0f49806a9c8748497c3a5d08c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/alloca.h +6097 15608386 1738927222000000000 bfab932e271831504f4ddaa58ab246c9 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdio.h +67218 15608547 1738927221000000000 1fa71b76d45cf8fef0abb1dae850f9f2 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/wasi/api.h +575 15608576 1738927222000000000 39c69d5b8584a46c3a3c1a1ed7ea7644 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stddef.h +2578 15608527 1738927222000000000 0a5bb2760329226e49320fbf5ceb1abe 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdint.h +815 15608447 1738927222000000000 cd851a9784f94f6596041d1e6a402eb1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/stdint.h +3041 15608333 1738927222000000000 674d66a327c388875d7daa272ead7369 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/string.h +964 15607137 1738927222000000000 b380eb8513f60d9c20a2673704aa7687 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/strings.h +1787 15608457 1738927222000000000 1f72f697f2a98f6405ff841e95c980f5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/ctype.h +20199 15592238 1777923927282426471 f594338f23ce56591d8032c04431a84a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_rect_pack.h +428 15608607 1738927222000000000 31f38b261e42c4f6912cc4954954c56a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/assert.h +11491 15608596 1738927222000000000 efae42386740518b1f626a76459cd25d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/math.h +199176 15592239 1777923927282426471 db1ca3cdcf9606efbbb14aa8bbde39c4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_truetype.h diff --git a/.zig-cache/h/5c5abf75950b32b2a41b44a8100ab6a8.txt b/.zig-cache/h/5c5abf75950b32b2a41b44a8100ab6a8.txt new file mode 100644 index 0000000..f307f03 --- /dev/null +++ b/.zig-cache/h/5c5abf75950b32b2a41b44a8100ab6a8.txt @@ -0,0 +1,439 @@ +0 +460816 2104748 1749858906000000000 19b59f2a2768926dd4cb35a090cb8868 0 /lib64/libGL.so +1313184 8947735 1770539241000000000 e72e4619f955c3a38211536766b516f4 0 /lib64/libX11.so +47088 8741261 1769439156000000000 da6f4be2e87e2aa16772a75fa6a36f63 0 /lib64/libXrandr.so +14328 8741287 1769438631000000000 621184dc819e1014d93ea9a7f28bdccb 0 /lib64/libXinerama.so +75832 118800 1725514872000000000 8080cfc6a1c65c31d450aeb5fedf0788 0 /lib64/libXi.so +47048 118794 1730878554000000000 81c5a9837f418f236c79e736ea7f1e53 0 /lib64/libXcursor.so +179546 15592265 1777923927288426459 e6c02b151e39c59246cdfe8aeaaa21f4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rcore.c +94278 15592270 1777923927290426456 148e15819214db74e0525ec276acecdd 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rshapes.c +226085 15592272 1777923927291426454 57703b4cb9d20c85f2494106b300ce4c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rtextures.c +117970 15592271 1777923927291426454 31672e71fc2d475bd7ec65a7f43b43cb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rtext.c +338872 15592269 1777923927290426456 76fc55680b7dd750a09c7c8d4885d438 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rmodels.c +113824 15592256 1777923927286426463 eaa3ac47a6f370a3247b2e595e877cae 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raudio.c +6000 15592267 1777923927288426459 c08daa562131e2220de1a06bca726720 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rglfw.c +50 15596151 1777925798684431311 fd3888aa7ca9778df50390896cce6318 2 o/da8bf749420ef1065612c05b8ed536b3/raygui.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +6268 15568152 1777922721698272920 f23d0597dbe24fbef0b9db0a6a912bdb 1 include/float.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +34258 11024114 1776766428000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +381 11023928 1776766428000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11023930 1776766428000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11023927 1776766428000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11023926 1776766428000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11023925 1776766428000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11023948 1776766428000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11023935 1776766428000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11023890 1776766428000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +21266 11024117 1776766428000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11024118 1776766428000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +10969 11023996 1776766428000000000 dd17390845739df8331656ac5a17ef8e 0 /usr/include/ctype.h +20199 15592238 1777923927282426471 f594338f23ce56591d8032c04431a84a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_rect_pack.h +6841 11023755 1776766428000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +199176 15592239 1777923927282426471 db1ca3cdcf9606efbbb14aa8bbde39c4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_truetype.h +15326 11024213 1776766428000000000 dd0cebc61fc90f380c881a1cbd85230a 0 /usr/include/time.h +3331 11023919 1776766428000000000 d088285f55f90486f8680c7de68e427d 0 /usr/include/bits/time.h +6203 11023923 1776766428000000000 ccfa5c0039c1ddbdb09c6db5d1922cc3 0 /usr/include/bits/timex.h +760 11023970 1776766428000000000 3cf515d0336ee94d22cc413b45febc49 0 /usr/include/bits/types/struct_tm.h +288 11023951 1776766428000000000 2de06c14c40bd39deaf2f372dace4ac7 0 /usr/include/bits/types/struct_itimerspec.h +557459 15592112 1777923927256426522 2ee4da35738ca3fd429e246ffcc4e963 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glad.h +27519 15568253 1777922721701272909 1bf965d23c79a082ac103b8d4944724e 1 include/stdint.h +8268 11024113 1776766428000000000 07868a6486476f79d1af8befa09ff966 0 /usr/include/stdint.h +1906 11023987 1776766428000000000 eb31012558f3028fc2c3c0def47ccc8a 0 /usr/include/bits/wchar.h +1049 11023885 1776766428000000000 df8b58b124e95d233ec646186fc72d07 0 /usr/include/bits/stdint-uintn.h +1305 11023884 1776766428000000000 e13a68eb8203cd6be160c31f99d931f7 0 /usr/include/bits/stdint-least.h +90849 15592263 1777923927287426462 db41cf17388962b34436c4fde7782f23 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raymath.h +22533 15592266 1777923927288426459 cbeefe4aa2ae48eebcd037e4f86c02e6 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rgestures.h +22184 15592264 1777923927287426462 cd673acb0eee1d11118f9c543c1b96ed 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rcamera.h +21703 15592233 1777923927279426477 a147737b6c68b2b89f993a9fe8b5e03b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/sinfl.h +28109 15592232 1777923927279426477 9a39a8073b251d465d23f4f98d4d0e0b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/sdefl.h +3794 15568174 1777922721699272917 42f44f0344ca976c19820ae587ff2c10 1 include/limits.h +5839 11024036 1776766428000000000 93606ee9e7d5800ac5b8e3efedd3f157 0 /usr/include/limits.h +5198 11023832 1776766428000000000 a6dd17f359e45199ea5666f65b1113a6 0 /usr/include/bits/posix1_lim.h +3175 11023807 1776766428000000000 b08b1c7bc1b5a70132a5b8b175b8c0db 0 /usr/include/bits/local_lim.h +937 8943972 1770625897000000000 65da8eafce628e0f5da011204e471ee0 0 /usr/include/linux/limits.h +1214 11023840 1776766428000000000 2fe7b4205802733911a5efa9b71bb5e6 0 /usr/include/bits/pthread_stack_min-dynamic.h +2867 11023833 1776766428000000000 7d8aa86701e9a380845c5cd8a669e984 0 /usr/include/bits/posix2_lim.h +3858 11023992 1776766428000000000 6056c22530b9b6e43d3215eee277a553 0 /usr/include/bits/xopen_lim.h +1385 11023977 1776766428000000000 59219f4f906088fd1473df647db44849 0 /usr/include/bits/uio_lim.h +11631 15592231 1777923927279426477 e20f072c356800ba394b5b82e64a3a40 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/rprand.h +45053 11024218 1776766428000000000 61decd3126c9fca1538df8298cac1894 0 /usr/include/unistd.h +5910 11023834 1776766428000000000 3ab8ab6e5779785e032604f1768b415c 0 /usr/include/bits/posix_opt.h +3791 11023770 1776766428000000000 e918da89dc6f1bc95caac7b9e99e3ccc 0 /usr/include/bits/environments.h +23828 11023761 1776766428000000000 9cf65881ab165e5e8e291a2f7fcd0a71 0 /usr/include/bits/confname.h +1810 11023789 1776766428000000000 996cb3fd9509868b01621c74e4a86ade 0 /usr/include/bits/getopt_posix.h +3667 11023787 1776766428000000000 ac9188a8d7cc4aac4ca3ac108e99f032 0 /usr/include/bits/getopt_core.h +2035 11023980 1776766428000000000 0cb61ab97cf5643355f3236fdfb9904c 0 /usr/include/bits/unistd_ext.h +377 8943771 1770625897000000000 7ed06359dec8788b24849d80d4e70c9a 0 /usr/include/linux/close_range.h +13793 11024176 1776766428000000000 9f12c6bf198df3a88c2d747996baf030 0 /usr/include/sys/stat.h +2231 11023878 1776766428000000000 eeced79f6a58db284452746e269ed387 0 /usr/include/bits/stat.h +6210 11023899 1776766428000000000 2fe01a59de528f1892df1bc5eef7c7cc 0 /usr/include/bits/struct_stat.h +1400 11023882 1776766428000000000 2002a64c42584c7d184facbe3d81a350 0 /usr/include/bits/statx.h +7838 8944322 1770625897000000000 c0813c1096a17ee5a243bf75dcb7977a 0 /usr/include/linux/stat.h +1829 8944384 1770625897000000000 64ed48c0a52d7d50d7685f6332d61a80 0 /usr/include/linux/types.h +31 8943632 1770625897000000000 748039e47be584104c75dc853bfee6d8 0 /usr/include/asm/types.h +233 8943572 1770625897000000000 ff35ee9081c54a4556677db7b6ac43bd 0 /usr/include/asm-generic/types.h +864 8943546 1770625897000000000 de8f38f0cdc81bf3a5b301889f3dc586 0 /usr/include/asm-generic/int-ll64.h +321 8943578 1770625897000000000 426fd8fd87f0a7222c2d8dc0b1c11a1e 0 /usr/include/asm/bitsperlong.h +1092 8943539 1770625897000000000 ea09d2bd626e1051f84d4ecee37ba039 0 /usr/include/asm-generic/bitsperlong.h +1098 8944239 1770625897000000000 d50b3f49c69b44a5ecd1f232af677d5e 0 /usr/include/linux/posix_types.h +2135 8944323 1770625897000000000 7f1dcecb733611ba8bc38c8fa69c11bb 0 /usr/include/linux/stddef.h +224 8943606 1770625897000000000 d200bb7a30c7371a4580f935befe5542 0 /usr/include/asm/posix_types.h +609 8943608 1770625897000000000 45284a1e84848c31de23d3bd515534ee 0 /usr/include/asm/posix_types_64.h +2420 8943556 1770625897000000000 27c6e0a2b3849c0a9a5f71c86e17deb5 0 /usr/include/asm-generic/posix_types.h +2409 11023881 1776766428000000000 1ca18c39930458d2b106898c1f1ed517 0 /usr/include/bits/statx-generic.h +1202 11023966 1776766428000000000 adf1f98ff50dc6da3f9c81c1f7718940 0 /usr/include/bits/types/struct_statx_timestamp.h +2248 11023965 1776766428000000000 13e0688c779dbc994826255da64ed106 0 /usr/include/bits/types/struct_statx.h +12617 11023997 1776766428000000000 f18eaf57a7b514f3b577f9f5a6bc2d33 0 /usr/include/dirent.h +1771 11023763 1776766428000000000 23e0e14a4e8b16a68e0bc2941bc51c70 0 /usr/include/bits/dirent.h +1275 11023764 1776766428000000000 05d55b8f8aff261c558e2bf919c00c3e 0 /usr/include/bits/dirent_ext.h +93702 15592247 1777923927284426468 9bce58225fa3dedb03ed4cab5c2b195a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/platforms/rcore_desktop_glfw.c +241826 15592156 1777923927261426513 86501dc510331da26275322e654ec46a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3.h +417 15568047 1777922721690272950 d2edf43390585163b0f70c6bd1d7e3b7 1 include/__stddef_header_macro.h +717 15568052 1777922721690272950 81288588f2bdd7ac4f213fa113429ef2 1 include/__stddef_ptrdiff_t.h +708 15568051 1777922721690272950 04b70454bf7cdd0c492cfaf134f95be7 1 include/__stddef_offsetof.h +9164 11024185 1776766428000000000 d2e1b3053beaf053af8a55c6a804fde1 0 /usr/include/sys/time.h +21201 15592157 1777923927261426513 368cd78bfbe5e29e658aa2a5326f9063 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3native.h +99801 8947721 1770539241000000000 f2e7c6c90e11927568ff931d109f936c 0 /usr/include/X11/Xlib.h +20137 7769018 1766144024000000000 382791d667a3393547f807899249bfc0 0 /usr/include/X11/X.h +7946 7769025 1766144024000000000 8a5039c8a7aa3a4eab5f7181393ac108 0 /usr/include/X11/Xfuncproto.h +3115 7769030 1766144024000000000 d53b0559a65c0bcdb77ed0459f1b9976 0 /usr/include/X11/Xosdefs.h +17060 8741258 1769439156000000000 1884746db8290f2b31b7f8451b1cf4b3 0 /usr/include/X11/extensions/Xrandr.h +6909 7769087 1766144024000000000 401965d00acc575149fba334f8bc506d 0 /usr/include/X11/extensions/randr.h +33826 96756 1734163523000000000 cd6d26a1a49037b6952f6ad6add5241b 0 /usr/include/X11/extensions/Xrender.h +21355 8947727 1770539241000000000 52ce1ad0b2c8b33c883e4de9cf2e58fc 0 /usr/include/X11/Xutil.h +2769 7769135 1766144024000000000 0d41ae60a19d8f9ba25f1763119261cc 0 /usr/include/X11/keysym.h +186629 7769136 1766144024000000000 bd52d531f256dfa6f7971ce3c84e5d8b 0 /usr/include/X11/keysymdef.h +6933 7769092 1766144024000000000 f3454f10c8ec914bc2cacc67ae344c58 0 /usr/include/X11/extensions/render.h +2401 7769024 1766144024000000000 8c25483e69b3966a7bf02ad71233d30b 0 /usr/include/X11/Xdefs.h +2518 7769023 1766144024000000000 a6ecf58bbcdb259e383e67043e2a7022 0 /usr/include/X11/Xatom.h +45680 15592241 1777923927283426469 eb116170525d41104424990ac7adcf2f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/tinyobj_loader_c.h +1679 11024003 1776766428000000000 abb7aa3ce3560985cdcc5222002abe0a 0 /usr/include/errno.h +1426 11023773 1776766428000000000 f5901b3b5db0a666bc76fe7ac755756b 0 /usr/include/bits/errno.h +23 8943817 1770625897000000000 0e9514526df5411989c0921d62c34bb0 0 /usr/include/linux/errno.h +31 8943586 1770625897000000000 303204c8e8dd5d0b26a8bbfede43c812 0 /usr/include/asm/errno.h +5648 8943542 1770625897000000000 8becdc7faaf464f4f03c90038b9730e0 0 /usr/include/asm-generic/errno.h +1612 8943541 1770625897000000000 9e53730016da2684ae9a8bb2284166de 0 /usr/include/asm-generic/errno-base.h +894 11023936 1776766428000000000 21d9a2571870c420b53485fe487743c5 0 /usr/include/bits/types/error_t.h +205754 15592105 1777923927253426528 5d2f236b6f6ef5d9a1b295fd3d1846d5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/cgltf.h +19659 15592242 1777923927284426468 6f6765d6e719e243ad70cc22023392da 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/vox_loader.h +306683 15592223 1777923927268426499 15241acfe0a45badbe1236db00c6ea81 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/m3d.h +72865 15592225 1777923927278426479 9dc0644bac4164f220adfabe1352af5b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/par_shapes.h +293735 15590661 1777923923667433573 7cfda270441ca39c49b2e81410b1effb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/src/raygui.h +14504 15592172 1777923927262426511 b27f6b3bb53bc837cf7ea3290ce6416e 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/init.c +35817 15592174 1777923927262426511 f72e6da24b2e8dc2c561d4faf974a05c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/internal.h +6421 15592189 1777923927264426507 9430a43cbffb7932dc5ccfe1bf2d0807 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/platform.h +11827 15592185 1777923927264426507 4beac7be71da25898297d83d4e922499 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/null_platform.h +44741 15592217 1777923927266426503 6868a25f2f702569928920058ddd21bf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_platform.h +13045 11024108 1776766428000000000 efc9e225e109bb08a8dec4661ace2e4c 0 /usr/include/signal.h +3313 11023866 1776766428000000000 c7b07d26fe58fc7ceff1ae4edad8acd6 0 /usr/include/bits/signum-generic.h +2580 11023865 1776766428000000000 500defef7a2bd9a9e56449a3aea3b0f9 0 /usr/include/bits/signum-arch.h +272 11023942 1776766428000000000 52033494d2efb18f3ae4d42d90be994c 0 /usr/include/bits/types/sig_atomic_t.h +3892 11023944 1776766428000000000 9f30a8a17236994ddab5a49513bee1c1 0 /usr/include/bits/types/siginfo_t.h +1148 11023932 1776766428000000000 cef99022964de0d2a9bb4a66335a242a 0 /usr/include/bits/types/__sigval_t.h +729 11023860 1776766428000000000 732ba145bdaaec5752d3851d994fb038 0 /usr/include/bits/siginfo-arch.h +7537 11023862 1776766428000000000 4397eb5131c9e02a702340cc690db708 0 /usr/include/bits/siginfo-consts.h +204 11023861 1776766428000000000 070bf764547621a5cbd9eca15e56bf40 0 /usr/include/bits/siginfo-consts-arch.h +599 11023946 1776766428000000000 9a9be4e0a7b8d98d52679616ab1b7362 0 /usr/include/bits/types/sigval_t.h +1204 11023943 1776766428000000000 ab141640b4254a15993e20837b92ffa9 0 /usr/include/bits/types/sigevent_t.h +1471 11023859 1776766428000000000 2763ca41204119b32bf53713071bb096 0 /usr/include/bits/sigevent-consts.h +2935 11023857 1776766428000000000 abb4550dd27d1f45d7bd71b5a552f386 0 /usr/include/bits/sigaction.h +4266 11023858 1776766428000000000 8e4aadcbffc06002a69da0003c1793a1 0 /usr/include/bits/sigcontext.h +1062 11023947 1776766428000000000 3418e41d444a3efa09c1989618745709 0 /usr/include/bits/types/stack_t.h +5842 11024193 1776766428000000000 3850964a3dfeecfdf8d6341ce10a867b 0 /usr/include/sys/ucontext.h +1168 11023867 1776766428000000000 8d25e4dc4342ca228643759acadb8af6 0 /usr/include/bits/sigstack.h +1283 11023868 1776766428000000000 3177a841d4601f625a64ad164ae45250 0 /usr/include/bits/sigstksz.h +1188 11023876 1776766428000000000 0a23e9e025646d8d7930c5f34b481456 0 /usr/include/bits/ss_flags.h +1073 11023964 1776766428000000000 6ec7e47258c49e849f75f41527e676a0 0 /usr/include/bits/types/struct_sigstack.h +1692 11023869 1776766428000000000 bc31047fff5a76a10c2880762a977d27 0 /usr/include/bits/sigthread.h +1285 11023863 1776766428000000000 368ef36453d66bf3b3d3595424daf7ac 0 /usr/include/bits/signal_ext.h +10628 8947726 1770539241000000000 9b0233263c20c2e8be88d5e81fbf2202 0 /usr/include/X11/Xresource.h +13200 96705 1730878554000000000 3e56a893977bb933a42f01ba8765a1e8 0 /usr/include/X11/Xcursor/Xcursor.h +30994 8947718 1770539241000000000 658cd959aab5d6441ea7ca46bbfcb740 0 /usr/include/X11/XKBlib.h +19697 7769051 1766144024000000000 1231e8955febccf3c025770c66a93818 0 /usr/include/X11/extensions/XKBstr.h +28212 7769048 1766144024000000000 6a2dd9db6376855e6a13ac1dc2254091 0 /usr/include/X11/extensions/XKB.h +1964 8741283 1769438631000000000 8307bc8fd193fbd4b22c24a07b9e56ad 0 /usr/include/X11/extensions/Xinerama.h +21969 96734 1725514872000000000 f898f73ab9f0b0455f75ad7e86f933d4 0 /usr/include/X11/extensions/XInput2.h +11151 7769045 1766144024000000000 f4e9b097c0ff2c41507c68b4960a37cb 0 /usr/include/X11/extensions/XI2.h +1928 8741105 1769438528000000000 4e4a900ecc48c6c5eaaadb164d67df47 0 /usr/include/X11/extensions/Xge.h +7750 4242540 1756837749000000000 0d98a55dff8c00f367e9aece0d0a1143 0 /usr/include/X11/extensions/Xfixes.h +5924 7769123 1766144024000000000 b5e9bd0eec3d3c1748a593e505171a71 0 /usr/include/X11/extensions/xfixeswire.h +4132 8741110 1769438528000000000 8aaad0750a17168ab35987a0fd39ecf0 0 /usr/include/X11/extensions/shape.h +1878 7769098 1766144024000000000 104206d1aae79c53870ed605be13e54f 0 /usr/include/X11/extensions/shapeconst.h +1288 15592220 1777923927267426501 e581c6e4cdd807e79c0a665fc1bb619f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/xkb_unicode.h +1292 15592192 1777923927264426507 c453ea96e91669ea925c8bfb93fe5bb7 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_poll.h +22 11024084 1776766428000000000 0ea58fcbabea8c4434197b25c0da0032 0 /usr/include/poll.h +3030 11024151 1776766428000000000 fdfc712b78cbcaa0020d4464fb281b64 0 /usr/include/sys/poll.h +2076 11023830 1776766428000000000 d4de1743efaa71a7637fb37b349b20f7 0 /usr/include/bits/poll.h +1424 15592183 1777923927263426509 9ae4151868a02c1a8ea9749672383fb1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/null_joystick.h +2322 15592176 1777923927262426511 a5affdc2a0143346be41f93f566b6938 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/linux_joystick.h +16913 8943925 1770625897000000000 19cc0a8c96115bd0b4fbe906dc1f6915 0 /usr/include/linux/input.h +2032 11024137 1776766428000000000 cbe6601caeaa9849483d92383653843e 0 /usr/include/sys/ioctl.h +1005 11023798 1776766428000000000 38935023d2f5efc233bbd63192a23f93 0 /usr/include/bits/ioctls.h +32 8943591 1770625897000000000 1014a0ae33d0bed260382fbd3c912982 0 /usr/include/asm/ioctls.h +3987 8943548 1770625897000000000 d4ce71e9aa1f00a5b67c8b21b6a30d5b 0 /usr/include/asm-generic/ioctls.h +163 8943932 1770625897000000000 9a139ff78a7a978a13a83c0722fc021d 0 /usr/include/linux/ioctl.h +31 8943590 1770625897000000000 5f11f2dd8e479e58c3cf546e72403770 0 /usr/include/asm/ioctl.h +3518 8943547 1770625897000000000 4b7aa229557b073687359ca327709a32 0 /usr/include/asm-generic/ioctl.h +6846 8944315 1770625897000000000 d2b055f7283492c05492a5924f94aec4 0 /usr/include/linux/sockios.h +33 8943625 1770625897000000000 ddabb13f9fd87bf61e5f15f7a99b4729 0 /usr/include/asm/sockios.h +447 8943565 1770625897000000000 e503e15c8b0357f68274467ba5f06da4 0 /usr/include/asm-generic/sockios.h +2089 11023797 1776766428000000000 93897a02d50af887190f5248a717605e 0 /usr/include/bits/ioctl-types.h +3568 11024191 1776766428000000000 7fd74c28a21229e87ba5588cee27bd8c 0 /usr/include/sys/ttydefaults.h +31350 8943924 1770625897000000000 7eb002eb71a3e9a208ffc627561eda0b 0 /usr/include/linux/input-event-codes.h +25940 11024095 1776766428000000000 d3d9037b10d420aa0b919ad6d97bdab1 0 /usr/include/regex.h +1674 15592194 1777923927264426507 4c75518582750b9acebe3f524a3ea420 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_thread.h +48570 11024091 1776766428000000000 df73001c3d08af59a57b790c20f13f2a 0 /usr/include/pthread.h +5043 11024099 1776766428000000000 e6a51b852746c12c94ed682ec128431b 0 /usr/include/sched.h +5952 11023847 1776766428000000000 0926186d78c26fdbfea09ab846c93da9 0 /usr/include/bits/sched.h +4558 8944287 1770625897000000000 13cfeea4f632939bde4c2db64ec930ff 0 /usr/include/linux/sched/types.h +1073 11023957 1776766428000000000 fd5bfcedcccd0699759e0e9b4b5f31d2 0 /usr/include/bits/types/struct_sched_param.h +4516 11023762 1776766428000000000 eab9f52a0722cf3bd47401680264c9bd 0 /usr/include/bits/cpu-set.h +1287 11023853 1776766428000000000 81b3c862d757d31fa9585485df82c1f6 0 /usr/include/bits/setjmp.h +1467 11023949 1776766428000000000 c65b4aa95fccac40bd98fee3ba150e60 0 /usr/include/bits/types/struct___jmp_buf_tag.h +1489 15592196 1777923927264426507 d9c9c16faccc333851fa1d1a1a9c0e0f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_time.h +6332 15592188 1777923927264426507 e46b39fefa824d3bef7915a22a3cbeab 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/platform.c +25760 15592168 1777923927262426511 91513c3fe4d6179408927b6f25a20e31 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/context.c +15194 15592179 1777923927263426509 cc2653c900eea5854d3118df97d564cc 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/monitor.c +35148 15592210 1777923927265426505 371ef2deaaf656211c21bd031730bc45 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/window.c +41395 15592173 1777923927262426511 fd2bdc39d9a0f3e9cbdf4151a429af0b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/input.c +504825 15592177 1777923927263426509 e792314d005187ea839d8a118bf5a826 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/mappings.h +11947 15592197 1777923927264426507 a6026f9e8a003c782bd514b578ed47fb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/vulkan.c +1816 15592190 1777923927264426507 becad53c5bcd77daf7f13b36a669ff80 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_module.c +8794 11023998 1776766428000000000 1e941a0fcec84e68e593320606a258d5 0 /usr/include/dlfcn.h +2521 11023766 1776766428000000000 ce423e8702be28530185e4b09b199fdf 0 /usr/include/bits/dlfcn.h +1119 11023765 1776766428000000000 212bcf73af743c3898fdc9ef533a0cbf 0 /usr/include/bits/dl_find_object.h +3245 15592193 1777923927264426507 6da2432577062b037d05bf9685421152 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_thread.c +2206 15592195 1777923927264426507 f4c2594a47b4f565719a8a5a9f0a444c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_time.c +3044 15592191 1777923927264426507 34fbca07f16ff7c4f5d37b58374af726 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_poll.c +12404 15592175 1777923927262426511 ebe2a4724621dc831b6c06e12f74d4d5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/linux_joystick.c +3901 11024135 1776766428000000000 51573e40baf39611dae19b6b79da6b5a 0 /usr/include/sys/inotify.h +1080 11023796 1776766428000000000 23db2031318a86cc91c8de94ba8271de 0 /usr/include/bits/inotify.h +11458 11024006 1776766428000000000 6761c01cab1e7a637ff70b712787863d 0 /usr/include/fcntl.h +2246 11023779 1776766428000000000 230f6d44354f98fab2643bb2fe61a31c 0 /usr/include/bits/fcntl.h +15826 11023778 1776766428000000000 a89c09049a7837aa75452e239a5650fd 0 /usr/include/bits/fcntl-linux.h +1066 11023950 1776766428000000000 930adb19f5f9cbc3933b958f4a1e5ffa 0 /usr/include/bits/types/struct_iovec.h +4477 8943829 1770625897000000000 cb9419cc89a7af265a184c1f6f002f00 0 /usr/include/linux/falloc.h +1450 8944213 1770625897000000000 dfc953efad59381f85cedbcaf15d1f22 0 /usr/include/linux/openat2.h +2041 11023826 1776766428000000000 7fb288a7769cdc7b7a64bda1f15cccd2 0 /usr/include/bits/openat2.h +22943 15592219 1777923927267426501 61daf1865cea794f6fe989a933855d52 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/xkb_unicode.c +29639 15592169 1777923927262426511 1a0561496727613edebd464a7417f6c3 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/egl_context.c +11935 15592187 1777923927264426507 4c3e6494b0bcc0aee47c28a18bda9100 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/osmesa_context.c +70569 15592215 1777923927266426503 95309a7537992a74bb2bc4bf449110d0 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_init.c +7675 11024038 1776766428000000000 f38e3af658cf4e4d245a435a9a10f0a0 0 /usr/include/locale.h +1368 11023808 1776766428000000000 a15e215b176aca549a08eeec063be072 0 /usr/include/bits/locale.h +20136 15592216 1777923927266426503 fb57e4d2291d8c29f447b0cda750a942 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_monitor.c +106419 15592218 1777923927267426501 71a3c2a523df63f5cb929d61fe0824c3 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_window.c +3118 8947728 1770539241000000000 49c18fff52345f9fbca72361b14cde5c 0 /usr/include/X11/cursorfont.h +5236 7769027 1766144024000000000 d1fbdb8a1a35d2391ee2c34805ef3f1e 0 /usr/include/X11/Xmd.h +23690 15592171 1777923927262426511 38704d9b41375b7557c5fe54e0e4eb99 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/glx_context.c +283010 15592234 1777923927280426475 da0de4b77a864a92ca0a84752ae64a25 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image.h +201616 15568149 1777922721698272920 c59721a008a14bf4245225c8d6dd981f 1 include/emmintrin.h +120340 15568276 1777922721702272906 8e35d00e3ce60714ef2dd6312b645f5d 1 include/xmmintrin.h +60004 15568188 1777922721700272913 9d96163416d339553543c8056304615f 1 include/mmintrin.h +1929 15568187 1777922721700272913 b6b5caf8039b8eeb1a472434df3e6037 1 include/mm_malloc.h +76007 15592230 1777923927279426477 a736a10590b842a754f3c9d9bba6437a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/rltexgpu.h +18326 15592228 1777923927278426479 0a1701580c647f7b4f8a424d04ac746d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoi.h +71221 15592236 1777923927282426471 ca3d5f23a730342b4f4dd18653e45db1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image_write.h +17918 15592237 1777923927282426471 2bb87817ffe9d6d6d3187db2bffe388c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_perlin.h +457839 15592235 1777923927281426473 d73e04ebd94264210f8f82aac82d1da4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image_resize2.h +101720 15568245 1777922721701272909 65d276eda8a6b7f54badd06b69b605d7 1 include/smmintrin.h +31927 15568257 1777922721701272909 a94b62300284d904ddd77a8612722040 1 include/tmmintrin.h +11390 15568207 1777922721700272913 af3b468e9f028463cda1ea1862bdd32f 1 include/pmmintrin.h +1948 15568208 1777922721700272913 0d0dc43525f7392cd17b908e07c520a2 1 include/popcntintrin.h +3347 15568148 1777922721698272920 fb37aa3848b11ad0dde9222206788fed 1 include/crc32intrin.h +16632 15568165 1777922721699272917 70963188f6adf02d47abf0e69307e3ce 1 include/immintrin.h +1727 15568274 1777922721702272906 02224c13847552071474f4b8a67094f2 1 include/x86gprintrin.h +1395 15568160 1777922721699272917 fb46b2d83a3e08fdd2816a60bb34c1f4 1 include/hresetintrin.h +5079 15568259 1777922721701272909 17e8211de80c4aedcb92d94180a78574 1 include/uintrintrin.h +1572 15568261 1777922721701272909 090a143fbece0766fad22b1d0a3d99de 1 include/usermsrintrin.h +2073 15568223 1777922721700272913 b7662e91645d1456a47a0baff1a8e60b 1 include/prfchiintrin.h +6748 15568227 1777922721700272913 60e92c0f22c6fd0127612d8d4fb33f1a 1 include/raointintrin.h +2383 15568146 1777922721698272920 3d1c9e6b8d2f63d088f4554226dea82d 1 include/cmpccxaddintrin.h +659 15568273 1777922721702272906 88839041dd2d933a1ceb26cde857faea 1 include/wmmintrin.h +5269 15568058 1777922721690272950 73101524ee05bfb36c066bf9bb6e60d7 1 include/__wmmintrin_aes.h +2036 15568059 1777922721690272950 679b048994ef6e3eb20b4627ae70bbf3 1 include/__wmmintrin_pclmul.h +1193 15568143 1777922721698272920 0a42c930a770c0836dbe4a3703bb4512 1 include/clflushoptintrin.h +1229 15568144 1777922721698272920 c053e392024dcadcb1da23c409ffb040 1 include/clwbintrin.h +201849 15568132 1777922721698272920 b4ccac975fdcf069bc879ccf03d0b80f 1 include/avxintrin.h +192637 15568104 1777922721697272924 215b76cd9cf97075404f4c97c36c24f0 1 include/avx2intrin.h +5524 15568151 1777922721698272920 a8307854b76c9de85b83d9befd78477f 1 include/f16cintrin.h +20350 15568138 1777922721698272920 52d5562b0fcd60ad86d13264e78f569d 1 include/bmiintrin.h +7546 15568137 1777922721698272920 e3a2aaeac7ef1aaf72d32c13e79fabf8 1 include/bmi2intrin.h +3659 15568185 1777922721700272913 da624bb823db719405e0df2f497fd83e 1 include/lzcntintrin.h +29337 15568154 1777922721699272917 37368c2b3ac26685c39d619149a048a5 1 include/fmaintrin.h +392651 15568110 1777922721697272924 417c1f0ac26fce36e4bf57569e3ae768 1 include/avx512fintrin.h +330339 15568123 1777922721698272920 49a5250ddc213c5fcbbde5cef04535e8 1 include/avx512vlintrin.h +77845 15568107 1777922721697272924 52fdf0987ae18302e0e01534ef877cc2 1 include/avx512bwintrin.h +2626 15568106 1777922721697272924 4c8c0fd807ad9e5271cdd15d2977f9d0 1 include/avx512bitalgintrin.h +4327 15568108 1777922721697272924 d60cce9efd3cf6e1817c5b6437e4be3d 1 include/avx512cdintrin.h +2357 15568129 1777922721698272920 6f8315696bf9a22f42ec05d59da5d065 1 include/avx512vpopcntdqintrin.h +3957 15568130 1777922721698272920 abb99a6c6070cfc30e96f19e82cc0bbb 1 include/avx512vpopcntdqvlintrin.h +4428 15568127 1777922721698272920 d65f32b0b2809f1f45646161d119f357 1 include/avx512vnniintrin.h +13736 15568125 1777922721698272920 f0bad1557e9b86244734e891fe49a319 1 include/avx512vlvnniintrin.h +10690 15568136 1777922721698272920 3cc87c685806872776354f4a0b5d2155 1 include/avxvnniintrin.h +60287 15568109 1777922721697272924 b9a24e2c100dbc7ee399c43d96773394 1 include/avx512dqintrin.h +4629 15568118 1777922721697272924 312bc5534b5826436e11de728e563806 1 include/avx512vlbitalgintrin.h +124474 15568119 1777922721697272924 9c4b311057a3d5598fd23dc67c776400 1 include/avx512vlbwintrin.h +8141 15568120 1777922721697272924 d74858c8ea47f20ff9c4092d113ea41c 1 include/avx512vlcdintrin.h +47827 15568121 1777922721697272924 3c73b81ef4b33ba6bcb6714431e09354 1 include/avx512vldqintrin.h +2660 15568112 1777922721697272924 6400d05d435160c1d6d346c344a76086 1 include/avx512ifmaintrin.h +4712 15568113 1777922721697272924 fa03ebe74dbaca356d64dbe640460035 1 include/avx512ifmavlintrin.h +5886 15568131 1777922721698272920 0e78550e483532f19c0908b38276ec64 1 include/avxifmaintrin.h +3920 15568115 1777922721697272924 5700f088b6969618471ef25f630669d0 1 include/avx512vbmiintrin.h +7402 15568116 1777922721697272924 16d47f57484ed296b3e6e1368e704595 1 include/avx512vbmivlintrin.h +13493 15568114 1777922721697272924 b105a7215373b26faee90ebcf9611298 1 include/avx512vbmi2intrin.h +26633 15568124 1777922721698272920 3e9303ac0a4faf37b84922e7f0c7fbac 1 include/avx512vlvbmi2intrin.h +160735 15568111 1777922721697272924 74efdcbf12d39f136d48990ed6247ae4 1 include/avx512fp16intrin.h +87561 15568122 1777922721697272924 f6fd101ffd8ecd06bab96e21091b3f55 1 include/avx512vlfp16intrin.h +10832 15568105 1777922721697272924 f328f474b8b2f7ecd99fc38496b8ba0c 1 include/avx512bf16intrin.h +19922 15568117 1777922721697272924 ae2035290c3da7e9ee66b53aa998e2e8 1 include/avx512vlbf16intrin.h +934 15568206 1777922721700272913 9eec7d1953339f7017502cf78723950d 1 include/pkuintrin.h +1086 15568269 1777922721702272906 637855aacd197db9868d139d6fafe450 1 include/vpclmulqdqintrin.h +2671 15568263 1777922721701272909 57f64f1aed9ee8ed6eca03464494e60c 1 include/vaesintrin.h +9822 15568156 1777922721699272917 220fde0fd70770eba04dde846bdbbef7 1 include/gfniintrin.h +17431 15568135 1777922721698272920 a7d4a6dc8f028f8c7ace573ef994a4d1 1 include/avxvnniint8intrin.h +14432 15568133 1777922721698272920 72cc1449016b76cd7ab84c886811a3e2 1 include/avxneconvertintrin.h +6088 15568239 1777922721701272909 0f30b3a47ff82ec3699c8cd0e40cbc92 1 include/sha512intrin.h +7470 15568242 1777922721701272909 bc67c183035f74d21e316c8ab20ae2f0 1 include/sm3intrin.h +8401 15568244 1777922721701272909 6ab760098261dfe1782c73be8e138705 1 include/sm4intrin.h +16222 15568134 1777922721698272920 682df57b668a75daebe49e56a2f1c645 1 include/avxvnniint16intrin.h +1280 15568235 1777922721701272909 6eab1c6b32be874b9c82a3ff1d2772e6 1 include/rtmintrin.h +873 15568282 1777922721702272906 dcac3c4fb2d9e8fc2e32c099cc2f4a7c 1 include/xtestintrin.h +7660 15568240 1777922721701272909 3ce15406906216d7b4f3b25709fd0765 1 include/shaintrin.h +2890 15568155 1777922721699272917 72e559c6284e7b3e59ece194e6e3e2f1 1 include/fxsrintrin.h +1678 15568279 1777922721702272906 adc179a954bd6419ecb3679e88e76d89 1 include/xsaveintrin.h +1026 15568280 1777922721702272906 5e941b1ef68d3e6e9aa207d5d00dba2f 1 include/xsaveoptintrin.h +2574 15568278 1777922721702272906 83e5e79720328dd0054ce7660005acd2 1 include/xsavecintrin.h +1268 15568281 1777922721702272906 51ebe3f93e82afad00bcea35da340569 1 include/xsavesintrin.h +3351 15568141 1777922721698272920 940fdc9a595824a3546eb2d73c351f8f 1 include/cetintrin.h +5565 15568060 1777922721690272950 c17718c6485c7659e7890a4cbab75219 1 include/adcintrin.h +3447 15568061 1777922721690272950 a7ca4b601933a32c4855f0ec1ceb8b73 1 include/adxintrin.h +2919 15568229 1777922721701272909 9ba44bec7d615d70d29c2cf49efd2fd9 1 include/rdseedintrin.h +749 15568272 1777922721702272906 ab03b0b2ec3b24b5c381d040fbd5d3f3 1 include/wbnoinvdintrin.h +1207 15568142 1777922721698272920 faf0346a1135a650caebf7c0fa660e06 1 include/cldemoteintrin.h +1357 15568270 1777922721702272906 c29665f4ae7d08f40fdba4bdf3c59fcb 1 include/waitpkgintrin.h +1612 15568190 1777922721700272913 361388a1deda89bbc5200844d0aec7a4 1 include/movdirintrin.h +2025 15568193 1777922721700272913 0f19f76e900e332d57533e05989a2a0c 1 include/movrsintrin.h +7036 15568192 1777922721700272913 2c6fb76c226fac69586d6e93c0fd3908 1 include/movrs_avx10_2intrin.h +3973 15568191 1777922721700272913 19680bd74186f6c0adedde41e57f21e1 1 include/movrs_avx10_2_512intrin.h +1216 15568205 1777922721700272913 b3205c333672913fc7c8acc26dfb5304 1 include/pconfigintrin.h +1816 15568238 1777922721701272909 4814b5f568d79fe0a3ff9a01056fa17b 1 include/sgxintrin.h +1076 15568226 1777922721700272913 3fae1e12e188144704082b5c0de48a7f 1 include/ptwriteintrin.h +764 15568169 1777922721699272917 c4f35c928a775df7195a03f0d5411aff 1 include/invpcidintrin.h +17973 15568171 1777922721699272917 0b48ddfbbe168ffd50b79789be908d2a 1 include/keylockerintrin.h +20304 15568071 1777922721691272946 3381fed3b944ecfc74f30d27ff094bca 1 include/amxintrin.h +3327 15568068 1777922721691272946 f1e5420b9d7fe9febe794a24e96e4ce9 1 include/amxfp16intrin.h +6933 15568066 1777922721691272946 78b4f2aa1cf1c0239e304a1f474331d0 1 include/amxcomplexintrin.h +8839 15568070 1777922721691272946 5ccf1e3f33ad6379d2a262f4438cd502 1 include/amxfp8intrin.h +10853 15568076 1777922721691272946 7921f0f126779340730c078d6b3c9997 1 include/amxtransposeintrin.h +2290 15568072 1777922721691272946 5f7e30d92bb23f379ce740ff06bde41f 1 include/amxmovrsintrin.h +9402 15568073 1777922721691272946 6fa922cc643f704d9fa08f0cce57fd0b 1 include/amxmovrstransposeintrin.h +12986 15568064 1777922721691272946 107cbdc06513520aa9e4e158e3f6c491 1 include/amxavx512intrin.h +3562 15568074 1777922721691272946 fd05d9e0127721d899581134b681ca3c 1 include/amxtf32intrin.h +3643 15568075 1777922721691272946 55a73f65dcb801b11b24e97984ccedb0 1 include/amxtf32transposeintrin.h +3525 15568065 1777922721691272946 52d2749a270864e796b43cc5ee738a7f 1 include/amxbf16transposeintrin.h +3525 15568069 1777922721691272946 42f3593c062932dfe44c29ecf4283afb 1 include/amxfp16transposeintrin.h +12061 15568067 1777922721691272946 3ac118b8b4568263387fa6cc9c6d757d 1 include/amxcomplextransposeintrin.h +3102 15568128 1777922721698272920 731bbd34cb220f83027d2d1b60e5b916 1 include/avx512vp2intersectintrin.h +4782 15568126 1777922721698272920 380ed65ce4ea2eb042a085a39a69d79e 1 include/avx512vlvp2intersectintrin.h +44658 15568097 1777922721696272928 faca47b99e2b7dd009773fe525926cad 1 include/avx10_2bf16intrin.h +108821 15568098 1777922721696272928 fb976c4700d15c22d82fec385805cc26 1 include/avx10_2convertintrin.h +2410 15568099 1777922721696272928 10419d2bc12d8a9878d0e2866a79b6ed 1 include/avx10_2copyintrin.h +13680 15568100 1777922721696272928 3b54fb6f688ef31b5b288d68add52055 1 include/avx10_2minmaxintrin.h +17003 15568101 1777922721696272928 21161b694449a0ad9ec0ff4fd45c5338 1 include/avx10_2niintrin.h +15253 15568102 1777922721696272928 b54db7027b0759bf2c6e98812c65825d 1 include/avx10_2satcvtdsintrin.h +18140 15568103 1777922721696272928 90423834c7a102028a91b8ed880457bd 1 include/avx10_2satcvtintrin.h +23410 15568091 1777922721696272928 95bee4d483b52e84460e33e248d24b78 1 include/avx10_2_512bf16intrin.h +13192 15568092 1777922721696272928 b29bf6fb9e659842d31f4be78f82b58a 1 include/avx10_2_512convertintrin.h +7526 15568093 1777922721696272928 e922b6ff2d475a67b2edd396292f7078 1 include/avx10_2_512minmaxintrin.h +14039 15568094 1777922721696272928 706c14e292a7064003c3a9554b34d98d 1 include/avx10_2_512niintrin.h +13799 15568095 1777922721696272928 9a37b5547f48ae1333e9109ba36c0502 1 include/avx10_2_512satcvtdsintrin.h +16999 15568096 1777922721696272928 cc3b16d0b0f0630231d148f1376082d1 1 include/avx10_2_512satcvtintrin.h +1195 15568243 1777922721701272909 415f4786cb23f5ee37699dc6b7eff360 1 include/sm4evexintrin.h +2167 15568150 1777922721698272920 6e887392f50e32d2c4bc3eb4ca4e4def 1 include/enqcmdintrin.h +881 15568237 1777922721701272909 de461f45e00eb8aa42c96123bef0f9a0 1 include/serializeintrin.h +2015 15568258 1777922721701272909 d9bd2435957a5e62c538d80aea562772 1 include/tsxldtrkintrin.h +4107565 15592224 1777923927276426483 40a300c8571017a8213fcc665a614206 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/miniaudio.h +40129 11024224 1776766428000000000 846d60b8884553e61b200835c9192db4 0 /usr/include/wchar.h +796 11023973 1776766428000000000 eee748e39eee0c3ba0222f7d0a22f5bb 0 /usr/include/bits/types/wint_t.h +135 11023939 1776766428000000000 88a8626270b2c135f6fae239597f3050 0 /usr/include/bits/types/mbstate_t.h +1400 11024128 1776766428000000000 2f0c7eff02f27ac2b7f317551e29ec48 0 /usr/include/sys/eventfd.h +1129 11023776 1776766428000000000 1529b91466df4e72721b7951edd4ed3e 0 /usr/include/bits/eventfd.h +364560 15592110 1777923927256426522 aa3f7a4e5ed2aea4a1ec6c90429905d4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/dr_wav.h +192790 15592240 1777923927283426469 890c281f1c8cc1ed210397614a0eb43c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_vorbis.c +206600 15592109 1777923927255426525 8a111acae971c169c181fb95f0bbb828 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/dr_mp3.h +23845 15592226 1777923927278426479 f136d45fb944c980c3798c30d5d3d443 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoa.h +10241 15592227 1777923927278426479 737b9fb56af4b423417c98b7fd85a98b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoaplay.c +102215 15592222 1777923927267426501 87feda682bd5df29026e59540130ea22 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/jar_xm.h +51996 15592221 1777923927267426501 7826726113566a1ac41845859112fa61 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/jar_mod.h diff --git a/.zig-cache/h/657f9bcc647e6959c077995cb8a6d189.txt b/.zig-cache/h/657f9bcc647e6959c077995cb8a6d189.txt new file mode 100644 index 0000000..7fd3141 --- /dev/null +++ b/.zig-cache/h/657f9bcc647e6959c077995cb8a6d189.txt @@ -0,0 +1,76 @@ +0 +94278 15592270 1777923927290426456 148e15819214db74e0525ec276acecdd 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rshapes.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +6268 15568152 1777922721698272920 f23d0597dbe24fbef0b9db0a6a912bdb 1 include/float.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1516 11023891 1776766428000000000 046e6949e60c5229cc0f25afa40a0c7d 0 /usr/include/bits/stdlib-bsearch.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h diff --git a/.zig-cache/h/67721669f4d76c022ebc93bd9a0ba463.txt b/.zig-cache/h/67721669f4d76c022ebc93bd9a0ba463.txt new file mode 100644 index 0000000..41ca501 --- /dev/null +++ b/.zig-cache/h/67721669f4d76c022ebc93bd9a0ba463.txt @@ -0,0 +1,125 @@ +0 +338872 15592269 1777923927290426456 76fc55680b7dd750a09c7c8d4885d438 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rmodels.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +90849 15592263 1777923927287426462 db41cf17388962b34436c4fde7782f23 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raymath.h +53032 11322525 1770636718000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +4286 11322288 1770636718000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11322493 1770636718000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11322492 1770636718000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11322476 1770636718000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11322407 1770636718000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11322597 1770636718000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11322607 1770636718000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11322294 1770636718000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11322510 1770636718000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11322509 1770636718000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5402 11322295 1770636718000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11322289 1770636718000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +4929 11322268 1770636718000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11322267 1770636718000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +1215 11322269 1770636718000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11322271 1770636718000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11322270 1770636718000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11322297 1770636718000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11322296 1770636718000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11322299 1770636718000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11322298 1770636718000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11322287 1770636718000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +34258 11322599 1770636718000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +8806 11322409 1770636718000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11322459 1770636718000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11322405 1770636718000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +381 11322413 1770636718000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11322415 1770636718000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11322412 1770636718000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11322411 1770636718000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11322410 1770636718000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11322433 1770636718000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11322420 1770636718000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11322375 1770636718000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +42963 11322601 1770636718000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +1697 11322469 1770636718000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11322470 1770636718000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +983 11322423 1770636718000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11322414 1770636718000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +5713 11322677 1770636718000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +143 11322418 1770636718000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11322419 1770636718000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11322456 1770636718000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11322457 1770636718000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11322368 1770636718000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11322485 1770636718000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +1905 11322253 1770636718000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11322254 1770636718000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +2450 11322244 1770636718000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11322460 1770636718000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11322651 1770636718000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11322334 1770636718000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11322430 1770636718000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11322416 1770636718000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11322454 1770636718000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11322453 1770636718000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11322328 1770636718000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11322403 1770636718000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11322327 1770636718000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11322243 1770636718000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11322382 1770636718000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11322383 1770636718000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11322230 1770636718000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11322425 1770636718000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11322377 1770636718000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +21266 11322602 1770636718000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11322603 1770636718000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +45680 15592241 1777923927283426469 eb116170525d41104424990ac7adcf2f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/tinyobj_loader_c.h +6841 11322240 1770636718000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +1679 11322488 1770636718000000000 abb7aa3ce3560985cdcc5222002abe0a 0 /usr/include/errno.h +1426 11322258 1770636718000000000 f5901b3b5db0a666bc76fe7ac755756b 0 /usr/include/bits/errno.h +23 8943817 1770625897000000000 0e9514526df5411989c0921d62c34bb0 0 /usr/include/linux/errno.h +31 8943586 1770625897000000000 303204c8e8dd5d0b26a8bbfede43c812 0 /usr/include/asm/errno.h +5648 8943542 1770625897000000000 8becdc7faaf464f4f03c90038b9730e0 0 /usr/include/asm-generic/errno.h +1612 8943541 1770625897000000000 9e53730016da2684ae9a8bb2284166de 0 /usr/include/asm-generic/errno-base.h +894 11322421 1770636718000000000 21d9a2571870c420b53485fe487743c5 0 /usr/include/bits/types/error_t.h +205754 15592105 1777923927253426528 5d2f236b6f6ef5d9a1b295fd3d1846d5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/cgltf.h +417 15568047 1777922721690272950 d2edf43390585163b0f70c6bd1d7e3b7 1 include/__stddef_header_macro.h +717 15568052 1777922721690272950 81288588f2bdd7ac4f213fa113429ef2 1 include/__stddef_ptrdiff_t.h +708 15568051 1777922721690272950 04b70454bf7cdd0c492cfaf134f95be7 1 include/__stddef_offsetof.h +27519 15568253 1777922721701272909 1bf965d23c79a082ac103b8d4944724e 1 include/stdint.h +8268 11322598 1770636718000000000 07868a6486476f79d1af8befa09ff966 0 /usr/include/stdint.h +1906 11322472 1770636718000000000 eb31012558f3028fc2c3c0def47ccc8a 0 /usr/include/bits/wchar.h +1049 11322370 1770636718000000000 df8b58b124e95d233ec646186fc72d07 0 /usr/include/bits/stdint-uintn.h +1305 11322369 1770636718000000000 e13a68eb8203cd6be160c31f99d931f7 0 /usr/include/bits/stdint-least.h +3794 15568174 1777922721699272917 42f44f0344ca976c19820ae587ff2c10 1 include/limits.h +5839 11322521 1770636718000000000 93606ee9e7d5800ac5b8e3efedd3f157 0 /usr/include/limits.h +5198 11322317 1770636718000000000 a6dd17f359e45199ea5666f65b1113a6 0 /usr/include/bits/posix1_lim.h +3175 11322292 1770636718000000000 b08b1c7bc1b5a70132a5b8b175b8c0db 0 /usr/include/bits/local_lim.h +937 8943972 1770625897000000000 65da8eafce628e0f5da011204e471ee0 0 /usr/include/linux/limits.h +1214 11322325 1770636718000000000 2fe7b4205802733911a5efa9b71bb5e6 0 /usr/include/bits/pthread_stack_min-dynamic.h +2867 11322318 1770636718000000000 7d8aa86701e9a380845c5cd8a669e984 0 /usr/include/bits/posix2_lim.h +3858 11322477 1770636718000000000 6056c22530b9b6e43d3215eee277a553 0 /usr/include/bits/xopen_lim.h +1385 11322462 1770636718000000000 59219f4f906088fd1473df647db44849 0 /usr/include/bits/uio_lim.h +6268 15568152 1777922721698272920 f23d0597dbe24fbef0b9db0a6a912bdb 1 include/float.h +19659 15592242 1777923927284426468 6f6765d6e719e243ad70cc22023392da 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/vox_loader.h +306683 15592223 1777923927268426499 15241acfe0a45badbe1236db00c6ea81 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/m3d.h +72865 15592225 1777923927278426479 9dc0644bac4164f220adfabe1352af5b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/par_shapes.h +45053 11322703 1770636718000000000 61decd3126c9fca1538df8298cac1894 0 /usr/include/unistd.h +5910 11322319 1770636718000000000 3ab8ab6e5779785e032604f1768b415c 0 /usr/include/bits/posix_opt.h +3791 11322255 1770636718000000000 e918da89dc6f1bc95caac7b9e99e3ccc 0 /usr/include/bits/environments.h +23828 11322246 1770636718000000000 9cf65881ab165e5e8e291a2f7fcd0a71 0 /usr/include/bits/confname.h +1810 11322274 1770636718000000000 996cb3fd9509868b01621c74e4a86ade 0 /usr/include/bits/getopt_posix.h +3667 11322272 1770636718000000000 ac9188a8d7cc4aac4ca3ac108e99f032 0 /usr/include/bits/getopt_core.h +2035 11322465 1770636718000000000 0cb61ab97cf5643355f3236fdfb9904c 0 /usr/include/bits/unistd_ext.h +377 8943771 1770625897000000000 7ed06359dec8788b24849d80d4e70c9a 0 /usr/include/linux/close_range.h diff --git a/.zig-cache/h/6981416edce1cc3cdab2913b8aefb32d.txt b/.zig-cache/h/6981416edce1cc3cdab2913b8aefb32d.txt new file mode 100644 index 0000000..1a35e7b --- /dev/null +++ b/.zig-cache/h/6981416edce1cc3cdab2913b8aefb32d.txt @@ -0,0 +1,75 @@ +0 +94278 15592270 1777923927290426456 148e15819214db74e0525ec276acecdd 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rshapes.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +6268 15568152 1777922721698272920 f23d0597dbe24fbef0b9db0a6a912bdb 1 include/float.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h diff --git a/.zig-cache/h/6fb6431044114ad4f8646d06443f5830.txt b/.zig-cache/h/6fb6431044114ad4f8646d06443f5830.txt new file mode 100644 index 0000000..82565f4 --- /dev/null +++ b/.zig-cache/h/6fb6431044114ad4f8646d06443f5830.txt @@ -0,0 +1,85 @@ +0 +50 15596151 1777925798684431311 fd3888aa7ca9778df50390896cce6318 2 o/da8bf749420ef1065612c05b8ed536b3/raygui.c +293735 15590661 1777923923667433573 7cfda270441ca39c49b2e81410b1effb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/src/raygui.h +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +34258 11024114 1776766428000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +381 11023928 1776766428000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11023930 1776766428000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11023927 1776766428000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11023926 1776766428000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11023925 1776766428000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11023948 1776766428000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11023935 1776766428000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11023890 1776766428000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +21266 11024117 1776766428000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +4753 11024118 1776766428000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +10969 11023996 1776766428000000000 dd17390845739df8331656ac5a17ef8e 0 /usr/include/ctype.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h diff --git a/.zig-cache/h/7044868f32cc2d78109a69a54e41d6d9.txt b/.zig-cache/h/7044868f32cc2d78109a69a54e41d6d9.txt new file mode 100644 index 0000000..35cbf05 --- /dev/null +++ b/.zig-cache/h/7044868f32cc2d78109a69a54e41d6d9.txt @@ -0,0 +1,89 @@ +0 +117970 15592271 1777923927291426454 31672e71fc2d475bd7ec65a7f43b43cb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rtext.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +34258 11024114 1776766428000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +381 11023928 1776766428000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11023930 1776766428000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11023927 1776766428000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11023926 1776766428000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11023925 1776766428000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11023948 1776766428000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11023935 1776766428000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11023890 1776766428000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +21266 11024117 1776766428000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11024118 1776766428000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +10969 11023996 1776766428000000000 dd17390845739df8331656ac5a17ef8e 0 /usr/include/ctype.h +20199 15592238 1777923927282426471 f594338f23ce56591d8032c04431a84a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_rect_pack.h +6841 11023755 1776766428000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +199176 15592239 1777923927282426471 db1ca3cdcf9606efbbb14aa8bbde39c4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_truetype.h diff --git a/.zig-cache/h/71deff11d3688a3899151630f22b9f54.txt b/.zig-cache/h/71deff11d3688a3899151630f22b9f54.txt new file mode 100644 index 0000000..0e50308 --- /dev/null +++ b/.zig-cache/h/71deff11d3688a3899151630f22b9f54.txt @@ -0,0 +1,830 @@ +0 +1343 15590147 1777923882671512549 8fa58a8a17f30dfd4cba278cc9ce445f 0 src/main.zig +184235 15590296 1777923881918513972 85ad82da3fad2cc8beda806b1ed8bdeb 0 zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/raylib.zig +21780 15588394 1777922722100271428 8372996c7671543c238bcba94bfb7378 1 ubsan_rt.zig +34200406 15596202 1777925805111407118 3336c24bb74f33ecf54abf798da0402a 2 o/ed67d2c7d9e8fb100477d452f6e547cd/libraylib.a +460816 2104748 1749858906000000000 19b59f2a2768926dd4cb35a090cb8868 0 /lib64/libGL.so +1313184 11320745 1770539241000000000 e72e4619f955c3a38211536766b516f4 0 /lib64/libX11.so +47088 11321900 1769439156000000000 da6f4be2e87e2aa16772a75fa6a36f63 0 /lib64/libXrandr.so +14328 11321926 1769438631000000000 621184dc819e1014d93ea9a7f28bdccb 0 /lib64/libXinerama.so +75832 11321942 1725514872000000000 8080cfc6a1c65c31d450aeb5fedf0788 0 /lib64/libXi.so +47048 11322029 1730878554000000000 81c5a9837f418f236c79e736ea7f1e53 0 /lib64/libXcursor.so +25527 15568024 1777922721690272950 8a205f0b1c5732c3190e50f042589dec 1 compiler_rt.zig +10806 15588318 1777922722097271439 8c5b1950a5ebd26914a8e350d73d6999 1 std/std.zig +2525 15587766 1777922722081271498 71e0dabdb301ba10f8ca420941767e70 1 std/BitStack.zig +102991 15587797 1777922722082271495 75827315f3c3585390aebfe0aa119cb6 1 std/Build.zig +4266 15587886 1777922722085271483 16fdba428de22eb1305e855dec42f9a9 1 std/buf_map.zig +4526 15587887 1777922722085271483 8e63f8aad9b21f2cac5dcdcafd975d93 1 std/buf_set.zig +26749 15588047 1777922722090271465 94db977a6517f376d616042aec36c899 1 std/deque.zig +8176 15587798 1777922722082271495 af059436f9aa9ce8410e2a090d402920 1 std/DoublyLinkedList.zig +23691 15588057 1777922722090271465 3804b9a26510c6fe8d6e8e36a68dc482 1 std/dynamic_library.zig +135875 15587827 1777922722083271491 db86574f603d848efccc949d881d7ff4 1 std/Io.zig +46161 15588202 1777922722094271450 56e536443df53290961fcccb0248fae4 1 std/multi_array_list.zig +22225 15588304 1777922722097271439 561ce3400c8ac8d5b974517205c4f0ea 1 std/priority_queue.zig +35249 15588303 1777922722097271439 f30a503fcc87a18b18deced637313484 1 std/priority_dequeue.zig +64903 15587828 1777922722083271491 65a38fafd0d3cb5b25ca2488c18dae3e 1 std/Progress.zig +18069 15587843 1777922722083271491 8d1118eeb93cb6e46910fece65a272b3 1 std/Random.zig +10905 15587844 1777922722084271487 d0732789c7d50ebb4a3644f4b79bfad4 1 std/SemanticVersion.zig +5325 15587845 1777922722084271487 9b3e9e32c95aa2d415f162836c908e22 1 std/SinglyLinkedList.zig +117251 15587877 1777922722085271483 64f19f2a345ce26b80375c5f07d3eb60 1 std/Target.zig +66110 15587878 1777922722085271483 434d2e14ecbcf3813a62db89c218de07 1 std/Thread.zig +24524 15588330 1777922722097271439 1694ad0602c4425ddf33879d415f4ab1 1 std/treap.zig +32908 15587879 1777922722085271483 0effee4fbdb48a21d5a7de6981175d09 1 std/Uri.zig +97347 15587881 1777922722085271483 6e2bf450682db7fe2f70f856e6a69953 1 std/array_list.zig +97238 15587880 1777922722085271483 277386674f342dc4f1bcc7aff33ca523 1 std/array_hash_map.zig +20679 15587883 1777922722085271483 e7807462ad093052a700641168907e85 1 std/atomic.zig +24364 15587884 1777922722085271483 307015c80605830d882c9a9c5a417cb6 1 std/base64.zig +69662 15587885 1777922722085271483 7d9220a12d959c3fbdb0ad5d2dd745a1 1 std/bit_set.zig +43574 15587890 1777922722085271483 9b559f4ead3bbab2ddf320c5d9e35ef8 1 std/builtin.zig +371584 15587902 1777922722086271480 5e032a1afe94597d47a218be0ec20277 1 std/c.zig +77408 15587903 1777922722086271480 80080b1bacb0c8d673dc0bb465cc26e3 1 std/coff.zig +372 15587921 1777922722086271480 b867983786f01e8333e32b633eb10410 1 std/compress.zig +17640 15588317 1777922722097271439 bd79322afba3cc08000a99c21bfd26d7 1 std/static_string_map.zig +14657 15588025 1777922722089271469 ec00cc50efd2df8055faaa18a8b150d4 1 std/crypto.zig +76832 15588046 1777922722090271465 d49109fe127342ca0667bf94eb59fd2f 1 std/debug.zig +4894 15588056 1777922722090271465 61fff94fe737bda88edd8ca624c0a93c 1 std/dwarf.zig +90513 15588058 1777922722090271465 ede53ba4bac041f8a65ea772acae0cf0 1 std/elf.zig +56153 15588059 1777922722090271465 7afe4323fff4ddc8b4fb0b43cb9bf3bc 1 std/enums.zig +58268 15588073 1777922722091271461 642dc1256607ec96b839c549851b2c91 1 std/fmt.zig +729 15588077 1777922722091271461 0215ac7c2c72b37feee794b5911b205e 1 std/fs.zig +4178 15588078 1777922722091271461 55d3b5abd2866f8efe872f7339310a5c 1 std/gpu.zig +4080 15588093 1777922722091271461 571b514d96d7378ef13c8e6325e62ebf 1 std/hash.zig +80547 15588094 1777922722091271461 98d70ba2e89d37b4ed01247687fd83c3 1 std/hash_map.zig +38871 15588103 1777922722092271458 6c2f0da7917bebc86c5cd9528748e166 1 std/heap.zig +39320 15588111 1777922722092271458 3cb1bd9830c559b6288becb2db86fa08 1 std/http.zig +5458 15588124 1777922722092271458 83ba0216673ecfc447f968f67e88f774 1 std/json.zig +4897 15588125 1777922722092271458 7ff89bbb36c1fb140621f1e8fc3862c8 1 std/leb128.zig +7039 15588126 1777922722092271458 c6c6467049074839115f224de558946d 1 std/log.zig +72538 15588127 1777922722092271458 f2001ea91ead4103a9eb9cb995ea88ba 1 std/macho.zig +74865 15588195 1777922722094271450 273f62e9b9f832d5dd38c1402c0a48ed 1 std/math.zig +198145 15588198 1777922722094271450 22953e783cdc7561c4a15182f751d98e 1 std/mem.zig +35008 15588201 1777922722094271450 28f1d6dd4b7d63bc3a3570e9199e8376 1 std/meta.zig +433 15588297 1777922722096271443 74b41a911daaf29c0b0ef736d0df8af9 1 std/os.zig +16798 15588298 1777922722096271443 e6a5612c85472d16e2049377b392e536 1 std/pdb.zig +13777 15588299 1777922722096271443 aee2d674f93679708d83f4bc563d9c31 1 std/pie.zig +60638 15588302 1777922722097271439 91112299d7c1608c1b7c406ef8ca8083 1 std/posix.zig +42615 15588310 1777922722097271439 79697d237229c19709238f38b4dea1ee 1 std/process.zig +39704 15588315 1777922722097271439 204eff1c5332b5ab938ef3e30aac0ff0 1 std/sort.zig +23044 15588311 1777922722097271439 4cb21aacce1e6e69623ab74ec0986ae3 1 std/simd.zig +18221 15587882 1777922722085271483 ba5aad7d300f6596af851529cb14ecec 1 std/ascii.zig +44772 15588322 1777922722097271439 82a4d2308a683c39c74253045d469374 1 std/tar.zig +49967 15588326 1777922722097271439 5985bb10a3df3ffd445cba60cbe8ab90 1 std/testing.zig +1015 15588329 1777922722097271439 0dd8c20d912d8db9104f4b808b86bf8a 1 std/time.zig +10835 15588331 1777922722097271439 9bd3cc2d0b87156ecc92c4873b9f5f96 1 std/tz.zig +84830 15588334 1777922722097271439 a0675cff7ad8bd3379a81efc02f8fb84 1 std/unicode.zig +12292 15588339 1777922722097271439 8757ba546e520503fcc6a58d9b0d0083 1 std/valgrind.zig +17661 15588340 1777922722098271435 a8988138c7ee50f868cd1db24ab3d1d6 1 std/wasm.zig +44987 15588387 1777922722100271428 f86c914b8f81b14502f0d8561b1439b6 1 std/zig.zig +26670 15588388 1777922722100271428 93724928f5f24ae5c14b26c9c2d3ed3f 1 std/zip.zig +1242 15588393 1777922722100271428 c5e5cebc2cfc9353dc65aa5193442b60 1 std/zon.zig +31720 15588316 1777922722097271439 ffd3a427c45dfa3cbc9761a1361d1d3c 1 std/start.zig +60609 15587772 1777922722081271498 75c8c12c985cd8192806ca67e152ab02 1 std/Build/Cache.zig +38981 15587791 1777922722082271495 be5b6a4bf599cf8fb54d6cb84cf21e5a 1 std/Build/Step.zig +26577 15587774 1777922722081271498 98f120af5a4b7824a26104c00a1d4bd1 1 std/Build/Module.zig +43910 15587794 1777922722082271495 a59d963e44dc7302d869d03e948a68a4 1 std/Build/Watch.zig +21695 15587773 1777922722081271498 ad7f7cf87f2d7cecfde3308a9a959c3c 1 std/Build/Fuzz.zig +34965 15587795 1777922722082271495 7b5315aea2d8aae761b704545ca6fd8a 1 std/Build/WebServer.zig +18326 15587796 1777922722082271495 86b3353e10f6891989b87fc619625f26 1 std/Build/abi.zig +778302 15587818 1777922722083271491 4d59b0d04131c010b5f58eb38120fbd9 1 std/Io/Threaded.zig +8949 15587821 1777922722083271491 40de485275e5d9bb6449f34e577313a2 1 std/Io/fiber.zig +184480 15587801 1777922722082271495 051fe407bbf5fa278eb5ba8923864173 1 std/Io/Dispatch.zig +53826 15587809 1777922722082271495 9e4d97b716cad9a064e52a86d622fc34 1 std/Io/Kqueue.zig +224474 15587819 1777922722083271491 8b60359fa3a92d4d6d3abe55a7e324e6 1 std/Io/Uring.zig +87408 15587812 1777922722082271495 9e17e83fad8cb492e5ae4ed460d46786 1 std/Io/Reader.zig +109608 15587820 1777922722083271491 98cc344f10dd258d0b9e9a433b55bb47 1 std/Io/Writer.zig +54298 15587825 1777922722083271491 6c83f2205f839d4830728dcacdc785d4 1 std/Io/net.zig +80457 15587800 1777922722082271495 92155343884f0d4850994d8697afe172 1 std/Io/Dir.zig +26690 15587808 1777922722082271495 7b97a0f8b4be80a0f463b68d50250a5c 1 std/Io/File.zig +5555 15587815 1777922722082271495 f6a7792ba60b33de2cacb4566e345d20 1 std/Io/Terminal.zig +9375 15587813 1777922722082271495 d2e926a1f61d5405b6d47098198f7b8e 1 std/Io/RwLock.zig +1802 15587814 1777922722082271495 6813309428640ae1f7c5714dbb51a16b 1 std/Io/Semaphore.zig +0 15587826 1777922722083271491 82547a8dd7f3efb3f077622e34876868 1 std/Io/test.zig +1811 15587830 1777922722083271491 4f975bd4c885c2b17936c7c15e2a1fa0 1 std/Random/Ascon.zig +2688 15587831 1777922722083271491 64c6fd1bd09becbfb3dca08dd7335a8b 1 std/Random/ChaCha.zig +6100 15587832 1777922722083271491 14fb5367ee7128106466c91abe89d828 1 std/Random/Isaac64.zig +2727 15587833 1777922722083271491 98b129620d81fc551cc2747eb5e93a2d 1 std/Random/Pcg.zig +3242 15587837 1777922722083271491 13e05c7b4ba6bd757c30dbc6e1520198 1 std/Random/Xoroshiro128.zig +3177 15587838 1777922722083271491 ece4176296c0d5a4735a0e13195d3e89 1 std/Random/Xoshiro256.zig +3158 15587835 1777922722083271491 e0b128479f8a117718ec288761f83ac0 1 std/Random/Sfc64.zig +3699 15587834 1777922722083271491 f562dad96707be48e6745a1f57cbf27c 1 std/Random/RomuTrio.zig +530 15587836 1777922722083271491 6862d091fadcbbb652464ab10689bd23 1 std/Random/SplitMix64.zig +4526 15587842 1777922722083271491 8ac3cfca93be2f623ce661fc9fb27686 1 std/Random/ziggurat.zig +600 15587840 1777922722083271491 11504a4d6115814ba14dfe02b3020485 1 std/Random/lcg.zig +0 15587841 1777922722083271491 82547a8dd7f3efb3f077622e34876868 1 std/Random/test.zig +30498 15587847 1777922722084271487 cf7aa2742e3fd138caf72147ec971b51 1 std/Target/Query.zig +115997 15587848 1777922722084271487 bc87bf7bcf6400d24d41b7415b169cc9 1 std/Target/aarch64.zig +2897 15587849 1777922722084271487 a02e557aa365ac787ac2c02b52315ddc 1 std/Target/alpha.zig +108519 15587850 1777922722084271487 a8d3ef24d10efbbb1847d5a2d06fb744 1 std/Target/amdgcn.zig +1274 15587851 1777922722084271487 c251325fefba8d6614a0692c5ceb2eea 1 std/Target/arc.zig +79096 15587852 1777922722084271487 6fb9e355597a9d862f083069aaf2fcd6 1 std/Target/arm.zig +84636 15587853 1777922722084271487 78f08f956d02f181a2fd446cf9402613 1 std/Target/avr.zig +2425 15587854 1777922722084271487 3376bf5f146580e9b3ce5e329a604817 1 std/Target/bpf.zig +77604 15587855 1777922722084271487 be007dfe415760a79fc1d9d7dc89a548 1 std/Target/csky.zig +18058 15587857 1777922722084271487 8ccf22d3bcff20d7636d8251948f4618 1 std/Target/hexagon.zig +4895 15587858 1777922722084271487 b870aa73f7bd666ffa47be26fa7bb580 1 std/Target/hppa.zig +665 15587856 1777922722084271487 1dec26e22b22006cd47d45b427f8a00c 1 std/Target/generic.zig +1881 15587859 1777922722084271487 26256603d875aee0f67f6e2aee670b46 1 std/Target/kvx.zig +1207 15587860 1777922722084271487 2119135642c6ce06557e5005da5d27d3 1 std/Target/lanai.zig +7184 15587861 1777922722084271487 891c7f973054eec39b43f2293eda2bd8 1 std/Target/loongarch.zig +7140 15587862 1777922722084271487 85a640161b5e75f1b0e44aafa7b2ac12 1 std/Target/m68k.zig +17604 15587863 1777922722084271487 404eba23c6a57f7914b92003c464442a 1 std/Target/mips.zig +2227 15587864 1777922722084271487 f424aba074f946c774143fd6a0cc9b02 1 std/Target/msp430.zig +20314 15587865 1777922722084271487 d68d9c5654a2c1114ce6dbc8038ef2f7 1 std/Target/nvptx.zig +35033 15587866 1777922722084271487 af9f967f62c784018632fc7184d14e0c 1 std/Target/powerpc.zig +1396 15587867 1777922722084271487 11966b944c6a6f5eb378759087686f44 1 std/Target/propeller.zig +108921 15587868 1777922722084271487 ff74cb05f762242da93430e2a04837df 1 std/Target/riscv.zig +32139 15587869 1777922722084271487 b9dcac5eace647b63bda3d9c524dc034 1 std/Target/s390x.zig +22391 15587870 1777922722084271487 5f74d7b977102ace4820a6def358a7ae 1 std/Target/sparc.zig +5037 15587871 1777922722084271487 7a802abba56de166296a02820267f278 1 std/Target/spirv.zig +1276 15587872 1777922722084271487 320e5694ddc1e4347015e29952472e47 1 std/Target/ve.zig +6517 15587873 1777922722084271487 1babc8b342fb599193f79f08f76e9463 1 std/Target/wasm.zig +138177 15587874 1777922722084271487 f5c6a3aff25f10c1b8c51ce82ffbb5b4 1 std/Target/x86.zig +1234 15587875 1777922722084271487 9977314bd28dc12c6017784ed96cc578 1 std/Target/xcore.zig +8826 15587876 1777922722085271483 8d42978afbcc85d87e2e98c0a9676a9b 1 std/Target/xtensa.zig +84368 15587889 1777922722085271483 a8bf92242607060c62d642acae8086b7 1 std/builtin/assembly.zig +56465 15587894 1777922722085271483 75c3bc60568091a9ea5edc5bc57ed38a 1 std/c/darwin.zig +17769 15587896 1777922722085271483 e2b778ddd3253970afd02693aed8fd0f 1 std/c/freebsd.zig +13639 15587898 1777922722085271483 de6d72b9cc43ab0645c64780d8e547e5 1 std/c/illumos.zig +12071 15587899 1777922722085271483 b48c05a0bd047e3f2341dbbd8767c1e7 1 std/c/netbsd.zig +8189 15587895 1777922722085271483 31ff648d6f4d2a8a32e4f989005450dc 1 std/c/dragonfly.zig +11736 15587897 1777922722085271483 faf314e053e5b99c66ad05c0570b73e0 1 std/c/haiku.zig +17047 15587900 1777922722085271483 76c2f77ef2816a7f0b4efa24425f0619 1 std/c/openbsd.zig +4446 15587901 1777922722085271483 69f4fd8d8726dca0e21d271d871ac1ad 1 std/c/serenity.zig +5846 15587909 1777922722086271480 37e8d751c7e895b6336511502160706a 1 std/compress/flate.zig +24222 15587912 1777922722086271480 5af5ea9ae660ca1a5c5e59ca3412c7cf 1 std/compress/lzma.zig +8172 15587913 1777922722086271480 3e50158bc60e46aae6beac631af863e1 1 std/compress/lzma2.zig +95 15587917 1777922722086271480 f5a4e96de879e27f05973ae987231c97 1 std/compress/xz.zig +7266 15587920 1777922722086271480 0d0abcd9f7d011ccda93bfe73d0b7e1a 1 std/compress/zstd.zig +10377 15588021 1777922722089271469 6a102711f65e65c4fd8596a251e151de 1 std/crypto/timing_safe.zig +47279 15587938 1777922722087271476 9b37d3e0fffea1f1b265eb76dd5ec80d 1 std/crypto/aegis.zig +6851 15587945 1777922722087271476 ea7fad6fda828c72abcc0148e4659e9c 1 std/crypto/aes_gcm.zig +13389 15587946 1777922722087271476 0b0853e7521a731af48464868cd7c167 1 std/crypto/aes_gcm_siv.zig +20660 15587948 1777922722087271476 f87b68e4f3f0abfaaed777c531726b81 1 std/crypto/aes_siv.zig +15331 15587947 1777922722087271476 250e8a7b0eaeef0184fd38096c7a562a 1 std/crypto/aes_ocb.zig +34240 15587944 1777922722087271476 a23f55c0fa49aee3338a137383c7eac3 1 std/crypto/aes_ccm.zig +47973 15587950 1777922722087271476 45b8c60c342c33749442b0e7b4f595db 1 std/crypto/ascon.zig +51938 15587956 1777922722087271476 40b26141042cd451c52e3d5d62117ae3 1 std/crypto/chacha20.zig +6309 15587981 1777922722088271472 1318dc8b9450bda7d30b2f2bd66ef98f 1 std/crypto/isap.zig +27318 15588015 1777922722089271469 d339759780a2203fc7165aff07d6d9b9 1 std/crypto/salsa20.zig +3626 15587979 1777922722088271472 7d28bd5a64f521b7f7322612e4d5f562 1 std/crypto/hmac.zig +18291 15588019 1777922722089271469 6be864f028108d8cae57460c05505974 1 std/crypto/siphash.zig +6226 15587957 1777922722087271476 4270e1555211de4aca948cd086fc7129 1 std/crypto/cmac.zig +6228 15587955 1777922722087271476 b0c7f4ebda117a1b4a12cec460fc143c 1 std/crypto/cbc_mac.zig +8704 15587943 1777922722087271476 1cd28407835970107e3ffc55d0b925b8 1 std/crypto/aes.zig +15303 15587983 1777922722088271472 ac2b7ab43674f07a4208ffa738f420c5 1 std/crypto/keccak_p.zig +11653 15587987 1777922722088271472 43be60c6dba9df3811d0ea93fb4d96b7 1 std/crypto/modes.zig +8666 15587930 1777922722086271480 3db725807664be68a1f523268f119154 1 std/crypto/25519/x25519.zig +207825 15587980 1777922722088271472 6f8e5747aa0ccf4d1164cae5d7a3017f 1 std/crypto/hybrid_kem.zig +71867 15587986 1777922722088271472 baec87190da463f19137f91c956a1a69 1 std/crypto/ml_kem.zig +9490 15587924 1777922722086271480 b5f8bd262f97fec80ec5c6bbce1d4d75 1 std/crypto/25519/curve25519.zig +25856 15587926 1777922722086271480 9c6b6973fd05e5de7576dfbcbcf8f074 1 std/crypto/25519/edwards25519.zig +16188 15587996 1777922722088271472 eaa7e1c4f3bee68fab2081ca41c5167c 1 std/crypto/pcurves/p256.zig +16384 15588002 1777922722089271469 a08bdcefbc4eeca22d09e82d6e71b464 1 std/crypto/pcurves/p384.zig +7971 15587928 1777922722086271480 d0d33655dcbd80c50d53283108a54034 1 std/crypto/25519/ristretto255.zig +20534 15588008 1777922722089271469 19bb9b198f95ad22e061196119587445 1 std/crypto/pcurves/secp256k1.zig +28981 15587953 1777922722087271476 e43277ffc7f554e017fc549af17d0c11 1 std/crypto/blake2.zig +66773 15587954 1777922722087271476 461aaa010dffed2badd194e564003503 1 std/crypto/blake3.zig +9751 15587984 1777922722088271472 d4911af79a2684c60a4325e9142b1609 1 std/crypto/md5.zig +9321 15587937 1777922722086271480 15ebe6e9b9de51b93b00e1b463f00cb4 1 std/crypto/Sha1.zig +36488 15588017 1777922722089271469 6a526b804e6d522b31243c9c19581539 1 std/crypto/sha2.zig +34393 15588018 1777922722089271469 9156c9859584353dba59a3a04e3b43d0 1 std/crypto/sha3.zig +2756 15587977 1777922722088271472 3f1b15f01d5b6045525b1b5b73081e67 1 std/crypto/hash_composition.zig +3703 15587978 1777922722088271472 09d36564cbdc5d24ea6fa90e4b7dd6e5 1 std/crypto/hkdf.zig +20462 15587976 1777922722088271472 80717cf57bf4cce973e3fcd7792a1640 1 std/crypto/ghash_polyval.zig +7227 15588014 1777922722089271469 d7e68094b5cd519221d91c8f9a9875ed 1 std/crypto/poly1305.zig +29207 15587949 1777922722087271476 94f263cff18e63719fb56351d8958281 1 std/crypto/argon2.zig +40185 15587951 1777922722087271476 d15c97fc7af13704d70dea22de36356f 1 std/crypto/bcrypt.zig +28777 15588016 1777922722089271469 c461f6daa050c5f52fae84aec9156e30 1 std/crypto/scrypt.zig +8451 15587988 1777922722088271472 e0bc6ddf2119b9cfe2a19626ded9635a 1 std/crypto/pbkdf2.zig +13808 15588013 1777922722089271469 82c3f3e7125258f0d01a5199588e0757 1 std/crypto/phc_encoding.zig +36622 15587925 1777922722086271480 8c9984aeca0e229cf80a241e1a124f4c 1 std/crypto/25519/ed25519.zig +389641 15587973 1777922722088271472 0726186a985abbc92e4fa0ff70efa341 1 std/crypto/ecdsa.zig +121853 15587985 1777922722088271472 d7cfd905ace13529f5dbe22b2e44f447 1 std/crypto/ml_dsa.zig +42649 15587975 1777922722088271472 ab7882c88b456a51e3e1f5dea262d267 1 std/crypto/ff.zig +165 15587972 1777922722087271476 0ab9a19cc7544d7896d8555b38c3292a 1 std/crypto/codecs.zig +1825 15587974 1777922722088271472 d28156f6f25a3ec50eb16496ef0b30e4 1 std/crypto/errors.zig +25567 15588024 1777922722089271469 965e374c252f652ecbbbdd4c010aaa9d 1 std/crypto/tls.zig +51526 15587936 1777922722086271480 c9040311a8bb41064e13320ceb1bfd03 1 std/crypto/Certificate.zig +59764 15588034 1777922722090271465 97dd4985f3e67db8805a42b323dd2b5c 1 std/debug/Dwarf.zig +43962 15588038 1777922722090271465 b62ab4a4546b7ca38c9cdf5255805463 1 std/debug/Pdb.zig +21243 15588035 1777922722090271465 e0fe1c3b436c95da3936ab5a37e5e850 1 std/debug/ElfFile.zig +23226 15588037 1777922722090271465 494ab44d53cb322ba4a55c08cf6e7d15 1 std/debug/MachOFile.zig +4448 15588036 1777922722090271465 d79e9edc86be729aaae44fcaa9edbcb3 1 std/debug/Info.zig +8592 15588027 1777922722089271469 28d43178547c2f7d23f09c36470880c0 1 std/debug/Coverage.zig +97088 15588043 1777922722090271465 07a4df481fdae7e1e9173ea1af4ddfd2 1 std/debug/cpu_context.zig +30535 15588042 1777922722090271465 ac5e8a4486eb26d75d3f3e5da357a5ed 1 std/debug/SelfInfo/Windows.zig +17837 15588040 1777922722090271465 94ab10377365b77b448fae97a5090c6d 1 std/debug/SelfInfo/Elf.zig +29884 15588041 1777922722090271465 3af99105c7ca096c7c04dfe0442e1c12 1 std/debug/SelfInfo/MachO.zig +3234 15588045 1777922722090271465 94b504fa568201fccb60245a0380012e 1 std/debug/simple_panic.zig +2349 15588044 1777922722090271465 58f6d8954e49f4e277db7b9bad6e1f3c 1 std/debug/no_panic.zig +3939 15588055 1777922722090271465 5ee5df976eaaf300e36cd234fc3f2f43 1 std/dwarf/TAG.zig +7632 15588049 1777922722090271465 101aeaf3e9df594bf04093c15135dc96 1 std/dwarf/AT.zig +5693 15588054 1777922722090271465 01d731f8d28ba8382ff3c5885d5e0c75 1 std/dwarf/OP.zig +1963 15588053 1777922722090271465 055280c08a34f56d3d4ea7d69cf3fca3 1 std/dwarf/LANG.zig +1399 15588052 1777922722090271465 40a7d4ac60d12c6e9ca294acaed35474 1 std/dwarf/FORM.zig +1479 15588050 1777922722090271465 8bd901aaa561652b86f99819d0da7a57 1 std/dwarf/ATE.zig +857 15588051 1777922722090271465 eabc7cc5311330003544e4fa9b48be68 1 std/dwarf/EH.zig +94864 15588061 1777922722090271465 9f838a528dd1ffb0f4e1bfb3661aecff 1 std/fmt/float.zig +13189 15588072 1777922722091271461 8fcd1365fb1fe2c743d223fc34880b6a 1 std/fmt/parse_float.zig +115637 15588075 1777922722091271461 c8d60085bfbda39db97904d347ae1872 1 std/fs/path.zig +0 15588076 1777922722091271461 82547a8dd7f3efb3f077622e34876868 1 std/fs/test.zig +2797 15588080 1777922722091271461 e2d2903d78455f002bdf1543be5bd9b3 1 std/hash/Adler32.zig +14410 15588081 1777922722091271461 cd5b1a84c317ca8ba9ccce283a58c367 1 std/hash/auto_hash.zig +19972 15588087 1777922722091271461 c36dede4b91e35db37ea45c66dbe6fe9 1 std/hash/crc.zig +1890 15588088 1777922722091271461 8022a7844b1545ef9cc7889a3a71944a 1 std/hash/fnv.zig +9977 15588089 1777922722091271461 26add2cb2571b835338f163c8ca63459 1 std/hash/murmur.zig +12412 15588083 1777922722091271461 cd681dc3507b42839b769eae04b1dc3b 1 std/hash/cityhash.zig +8367 15588091 1777922722091271461 4744eb583f951c0ddcee1cf3bdde33fb 1 std/hash/wyhash.zig +41613 15588092 1777922722091271461 b682042146ed3b411db8eb14cb99500a 1 std/hash/xxhash.zig +41284 15588096 1777922722091271461 9e2c0ca6eeba53dae8ed198c0434b781 1 std/heap/ArenaAllocator.zig +7510 15588100 1777922722091271461 0afc8bd3d67b9a71a6047ee2e9af262b 1 std/heap/SmpAllocator.zig +10192 15588098 1777922722091271461 ee89eecf52bcaf358a5ca7a2e9d97d7e 1 std/heap/FixedBufferAllocator.zig +10150 15588099 1777922722091271461 9e0ab6e7efcbb2f1a65540c4f7a560ef 1 std/heap/PageAllocator.zig +11445 15588097 1777922722091271461 61f511afcd1508b7ca05f5496473488c 1 std/heap/BrkAllocator.zig +62382 15588101 1777922722092271458 be427a53e4015492bc8a4a190a806e5f 1 std/heap/debug_allocator.zig +13267 15588102 1777922722092271458 08b7d341701a499e0e0d42b973d7ab69 1 std/heap/memory_pool.zig +71392 15588106 1777922722092271458 9b5ff49fb65f881c7ed12494a3859cb8 1 std/http/Client.zig +31356 15588109 1777922722092271458 90eef6015c85cd72220c3d81a69a9530 1 std/http/Server.zig +13015 15588107 1777922722092271458 4c7e2ad894ad12f141066550c9bb326a 1 std/http/HeadParser.zig +3791 15588105 1777922722092271458 61420280e3c9986a74a687031fdcf831 1 std/http/ChunkParser.zig +3099 15588108 1777922722092271458 208dea04bf6038830461bfb99eafbce8 1 std/http/HeaderIterator.zig +0 15588110 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/http/test.zig +7992 15588116 1777922722092271458 af3841850a2c29b3668d337e57dbec60 1 std/json/dynamic.zig +3272 15588118 1777922722092271458 39fdbe23f321a0cb11a35e428810a09e 1 std/json/hashmap.zig +72865 15588114 1777922722092271458 0bd906a63c98af2b142fc2a11e0e8ddf 1 std/json/Scanner.zig +33916 15588121 1777922722092271458 4edf437de0e97088b6290948fbceb1fb 1 std/json/static.zig +37299 15588115 1777922722092271458 328e21f9d500de455940ccb3a735aaef 1 std/json/Stringify.zig +0 15588123 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/test.zig +0 15588113 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/JSONTestSuite_test.zig +11506 15588168 1777922722093271454 4f01608c6085251ec5a5f0a6e3ebb50e 1 std/math/float.zig +1859 15588176 1777922722093271454 1e9c6dc339df3808681640d38706fb6e 1 std/math/isnan.zig +7877 15588169 1777922722093271454 21099ae36d31e459824cfc3757a834f2 1 std/math/frexp.zig +4599 15588186 1777922722093271454 d22656b17f575c4645f36971dbdd57b4 1 std/math/modf.zig +1136 15588164 1777922722093271454 9f0946a16071ec7d7cb9f45c227c22f1 1 std/math/copysign.zig +1083 15588174 1777922722093271454 eb357e7577b828d5fc2ce3b4118459f2 1 std/math/isfinite.zig +1775 15588175 1777922722093271454 44fb86a5536455ca3877bb415347c6ac 1 std/math/isinf.zig +1456 15588178 1777922722093271454 a37461dca6f9345d8f8a2729c13b9ff6 1 std/math/iszero.zig +1837 15588177 1777922722093271454 cb4e66e7b3adbf190150294715c788b0 1 std/math/isnormal.zig +19209 15588187 1777922722093271454 000ec81e9c79a332fb482883ab800777 1 std/math/nextafter.zig +1484 15588191 1777922722093271454 4be5196a5746ef5c06a1968c833acd1f 1 std/math/signbit.zig +503 15588190 1777922722093271454 66d1263715127908b281862dba5dc24b 1 std/math/scalbn.zig +6839 15588180 1777922722093271454 65cf74d2abee4d99cea2993060dc9cc0 1 std/math/ldexp.zig +11782 15588188 1777922722093271454 63d5a77b3d074170d5e328d7ab9f7955 1 std/math/pow.zig +7647 15588189 1777922722093271454 0973f1b6b3c7b008fe03e68add8caaab 1 std/math/powi.zig +2797 15588193 1777922722094271450 53aa585d8092381038f9eda1c3c128d1 1 std/math/sqrt.zig +4812 15588140 1777922722093271454 6f62d1f1ae7bff93c034f6f664aeaa12 1 std/math/cbrt.zig +30081 15588129 1777922722092271458 9120d5d144777f39094c64677ed37eda 1 std/math/acos.zig +30241 15588131 1777922722092271458 0dfaed068a87bab2f2a813c1b301adf2 1 std/math/asin.zig +37723 15588133 1777922722092271458 b16a00df0bbbd49d285d16d68d9de116 1 std/math/atan.zig +10553 15588134 1777922722092271458 0cafcb907ba579b6b64631165a647329 1 std/math/atan2.zig +5365 15588172 1777922722093271454 c70a10cbadd81265d9efbd501e601623 1 std/math/hypot.zig +11499 15588166 1777922722093271454 1ddb2b66fbdf7acb2a4ad484203ae340 1 std/math/expm1.zig +5519 15588173 1777922722093271454 eacf48263508740f77738f675caef7a6 1 std/math/ilogb.zig +2531 15588181 1777922722093271454 b3b40fd4682f372913e09bc18ca3fcd6 1 std/math/log.zig +1834 15588184 1777922722093271454 4ebf02b0e7decd5b836db4794717a753 1 std/math/log2.zig +6132 15588182 1777922722093271454 db4699d35a47e4e75c376fa3abd67c0d 1 std/math/log10.zig +4179 15588185 1777922722093271454 210b5a1a5cd0f20e944783da890dfc99 1 std/math/log_int.zig +8872 15588183 1777922722093271454 754de08c8dc06a6115beb96e5a991ad7 1 std/math/log1p.zig +4299 15588132 1777922722092271458 9d6c681faf8421823919e5bf347bf740 1 std/math/asinh.zig +2756 15588130 1777922722092271458 349667a0bb1e62bdc0383bce5747190c 1 std/math/acosh.zig +3399 15588135 1777922722092271458 7b22337c4a4df112f2c4be431b076007 1 std/math/atanh.zig +4294 15588192 1777922722094271450 42ef534228feb279b81e6fa2a5d79333 1 std/math/sinh.zig +4157 15588165 1777922722093271454 1dcc281bf0ca8a9782e5ae845f7b1fa5 1 std/math/cosh.zig +4581 15588194 1777922722094271450 2b64632014a58c73e7052420b356fcaa 1 std/math/tanh.zig +2024 15588171 1777922722093271454 28fd0ee50d92f0c08fd6aab95d6f15ee 1 std/math/gcd.zig +1194 15588179 1777922722093271454 40b3836f0a2277cb76754547dd483869 1 std/math/lcm.zig +11487 15588170 1777922722093271454 c0bf0098a075fd684bcbeff41e5abbc4 1 std/math/gamma.zig +6563 15588163 1777922722093271454 dccdf309b3630a59978e204ea0cbde99 1 std/math/complex.zig +746 15588139 1777922722093271454 cd57ee7b96c9ee1b66a3e7fc3ef16da9 1 std/math/big.zig +19435 15588197 1777922722094271450 c2c009def560d0da77a8b4ff43524293 1 std/mem/Allocator.zig +5936 15588200 1777922722094271450 731e370ecb6a476616ba5957ba5212a4 1 std/meta/trailer_flags.zig +291416 15588242 1777922722095271446 4869165fe9dddf6396b27a9ff488775f 1 std/os/linux.zig +10513 15588245 1777922722095271446 9c49defe45d5132eb0b774e015de8164 1 std/os/plan9.zig +7464 15588283 1777922722096271443 2d75cf68a9a9ca7fe435633981a95d0e 1 std/os/uefi.zig +16085 15588284 1777922722096271443 cbf7731f9fc13816669478d0d86619b2 1 std/os/wasi.zig +32297 15588204 1777922722094271450 65f360158bf4985210015307097e266f 1 std/os/emscripten.zig +206520 15588296 1777922722096271443 63ff2a80fff80a84d5bcaa93ee0f7e53 1 std/os/windows.zig +0 15588301 1777922722096271443 82547a8dd7f3efb3f077622e34876868 1 std/posix/test.zig +4357 15588307 1777922722097271439 95000eed0a91ee9ca99c19f988221556 1 std/process/Child.zig +38308 15588306 1777922722097271439 fed95aed49061092984c2712847bb002 1 std/process/Args.zig +37415 15588308 1777922722097271439 72a8079e3ff625cd0c9d671e09d86fb3 1 std/process/Environ.zig +2508 15588309 1777922722097271439 8376136df00bc63ca0f3095f0ca3689a 1 std/process/Preopens.zig +51714 15588313 1777922722097271439 eb8790d984ce4a6ddd6376d877c85ff1 1 std/sort/block.zig +12404 15588314 1777922722097271439 4aec5577b3c4edbe484599906af3ae5d 1 std/sort/pdq.zig +17695 15588320 1777922722097271439 24ba1410c711ba60c366c789e33f2468 1 std/tar/Writer.zig +0 15588321 1777922722097271439 82547a8dd7f3efb3f077622e34876868 1 std/tar/test.zig +5695 15588324 1777922722097271439 79b2e7cbd2cb182aed04f9377683c628 1 std/testing/FailingAllocator.zig +31908 15588325 1777922722097271439 85bfe90f22d1658f84533528a61699bc 1 std/testing/Smith.zig +6755 15588328 1777922722097271439 b00dfc370ddde87be5237de9f894d759 1 std/time/epoch.zig +7574 15588338 1777922722097271439 d017fea857f95f2c01199efab8dbf965 1 std/valgrind/memcheck.zig +2493 15588337 1777922722097271439 30a771b8491dd283a50c6166babded38 1 std/valgrind/callgrind.zig +1249 15588336 1777922722097271439 6781a2e56089a14f4f2a391169bf7c05 1 std/valgrind/cachegrind.zig +63162 15588386 1777922722100271428 6eeffe690c11f6257c0b5e0566d66f50 1 std/zig/tokenizer.zig +33392 15588350 1777922722098271435 c7c95e9c83f1903d675ab0c975ee4f28 1 std/zig/ErrorBundle.zig +10230 15588354 1777922722098271435 634f3489256d07cec274929dac2605ae 1 std/zig/Server.zig +2260 15588349 1777922722098271435 aa042aba45b700151fd968f123a7266e 1 std/zig/Client.zig +10291 15588355 1777922722098271435 03571043d71a739e9b067f7b96b71631 1 std/zig/TokenSmith.zig +14296 15588373 1777922722099271431 0d186a7370f174935a9c2c3f11942b8c 1 std/zig/string_literal.zig +6720 15588369 1777922722099271431 07baee4aa2d7c097b1307a2cdec422cf 1 std/zig/number_literal.zig +1666 15588372 1777922722099271431 87e0eb501395d68ddce525f8555f960c 1 std/zig/primitives.zig +145138 15588344 1777922722098271435 ab1af8ea616576f755ba7908af0b8ea5 1 std/zig/Ast.zig +567556 15588345 1777922722098271435 a56e781f97d05f34b8f9147799af3174 1 std/zig/AstGen.zig +78968 15588347 1777922722098271435 73a8282784a552df103c813f759de518 1 std/zig/AstSmith.zig +222229 15588357 1777922722099271431 035e30944ed3dc8c9d792b5336c38c8b 1 std/zig/Zir.zig +9178 15588358 1777922722099271431 cb7401f7c5bb5446a01aa5af5eaa2ad3 1 std/zig/Zoir.zig +35999 15588359 1777922722099271431 a86113a78e1f8cf462a758090971d8f9 1 std/zig/ZonGen.zig +51977 15588384 1777922722100271428 b1fdfaeed0b47fe1908cac4bca93213a 1 std/zig/system.zig +22538 15588348 1777922722098271435 85030d1db27b93c3540ce828f6bb4f75 1 std/zig/BuiltinFn.zig +43382 15588346 1777922722098271435 5b945ae5ef98aa0bed48cd16d2c6d004 1 std/zig/AstRlAnnotate.zig +35921 15588352 1777922722098271435 2bb60a489e7e7a4b6c06359c8cb96d52 1 std/zig/LibCInstallation.zig +51355 15588356 1777922722098271435 58aa36ce7c67359021b741bba200bd1d 1 std/zig/WindowsSdk.zig +10091 15588351 1777922722098271435 40d483d775f9a56db993ce02e3448ab7 1 std/zig/LibCDirs.zig +26758 15588385 1777922722100271428 1365cf108e82594e5f641faf1259b59d 1 std/zig/target.zig +247 15588368 1777922722099271431 4fee6920e55c663811dd32d69b7f2937 1 std/zig/llvm.zig +8078 15588361 1777922722099271431 6a5228c368c6a0dea7c7ebc8c6642f10 1 std/zig/c_translation/builtins.zig +16223 15588362 1777922722099271431 9aa7e031559265e0320a9b106d1865db 1 std/zig/c_translation/helpers.zig +120086 15588391 1777922722100271428 fcd145a5d3703b0c905144501d34d648 1 std/zon/parse.zig +46916 15588392 1777922722100271428 7bf4408cdd1c84975a793e5daefb12a8 1 std/zon/stringify.zig +32374 15588390 1777922722100271428 d6fd80a48ef08dc277abac7b527c7110 1 std/zon/Serializer.zig +2159 15588293 1777922722096271443 e912d0164349d3c86eb8b1226a86388f 1 std/os/windows/tls.zig +6710 15567798 1777922721686272965 2f406272323372f06ea32e7ba2671145 1 compiler_rt/count0bits.zig +1072 15567971 1777922721689272954 eb5665f235da79b18b24ad86fe636e3c 1 compiler_rt/parity.zig +1612 15567975 1777922721689272954 d5a192d1e6221072b39fd9489871805a 1 compiler_rt/popcount.zig +2555 15567775 1777922721686272965 94abc6c88d8b95079f2ffa08c953c84c 1 compiler_rt/bitreverse.zig +3053 15567779 1777922721686272965 f7bd2670352233064ec7083d6debbd43 1 compiler_rt/bswap.zig +1542 15567787 1777922721686272965 e86cf64174068e25059755c8b9d3312b 1 compiler_rt/cmp.zig +3992 15567986 1777922721689272954 3814ae54caaedf00b147deed4c0112f2 1 compiler_rt/shift.zig +26650 15567931 1777922721688272957 22806e43d0dac46aa72f227a85ab24f6 1 compiler_rt/int.zig +2729 15567942 1777922721688272957 32bdb9f5e7090032336e0cc3dcf004f1 1 compiler_rt/mulXi3.zig +10004 15568018 1777922721690272950 c75da294f9737c7c23ef89b4ac4a4680 1 compiler_rt/udivmod.zig +671 15567755 1777922721686272965 a6cfe83f9d8eb6e22dee6dc0ccee3367 1 compiler_rt/absv.zig +250 15567758 1777922721686272965 a8533a5e47ce15013e24b841121b73eb 1 compiler_rt/absvsi2.zig +217 15567756 1777922721686272965 3ce3bf7ea907beec5e63de5695aa6067 1 compiler_rt/absvdi2.zig +220 15567760 1777922721686272965 4448933a51a6997d5207f53443eec830 1 compiler_rt/absvti2.zig +1096 15567966 1777922721689272954 3a4bf91b607ee1118dab9735b082df49 1 compiler_rt/negv.zig +920 15567769 1777922721686272965 c5f857dc4717914fa062b400f9622607 1 compiler_rt/addvsi3.zig +959 15567768 1777922721686272965 257639b9472ac430476135afc780b665 1 compiler_rt/addvdi3.zig +850 15567998 1777922721689272954 ac36fb2149d5966ec7d505b909b86806 1 compiler_rt/subvsi3.zig +889 15567997 1777922721689272954 29e5e19036e4c660c957d19977fc2ee4 1 compiler_rt/subvdi3.zig +809 15567960 1777922721689272954 11f5f27cedd3438d13495331ac628626 1 compiler_rt/mulvsi3.zig +2849 15567952 1777922721689272954 86dfcaff625a305b4f8efe5d0533dace 1 compiler_rt/mulo.zig +6009 15567825 1777922721687272961 013ab2758ced7bbc2fc6988565eeb6c7 1 compiler_rt/extendf.zig +749 15567828 1777922721687272961 98eeaa4a548abf8762d1e9af9bc22ca1 1 compiler_rt/extendhfsf2.zig +335 15567827 1777922721687272961 da58ac4390996051556bfd8719d92a85 1 compiler_rt/extendhfdf2.zig +320 15567829 1777922721687272961 8871bda397e6825c39f23f0251ca0d22 1 compiler_rt/extendhftf2.zig +317 15567830 1777922721687272961 aaa7ccf0843a956beb418588dba37f19 1 compiler_rt/extendhfxf2.zig +514 15567831 1777922721687272961 bc571756252a1a5584d093538484a6ad 1 compiler_rt/extendsfdf2.zig +582 15567832 1777922721687272961 4974f1c781c0e5d63fb539beb1bac943 1 compiler_rt/extendsftf2.zig +266 15567833 1777922721687272961 2561f4cdb6d5cba42fa2a5cddaefb2b8 1 compiler_rt/extendsfxf2.zig +600 15567823 1777922721687272961 c095241dde6a34dfe058cf702b751be4 1 compiler_rt/extenddftf2.zig +303 15567824 1777922721687272961 bfc17774e2b2a3829741caae7c642755 1 compiler_rt/extenddfxf2.zig +1511 15567834 1777922721687272961 2a7c11b488cd1af64b87e3ef6e916eb6 1 compiler_rt/extendxftf2.zig +8121 15568005 1777922721689272954 20afe15564559323e44421df48412060 1 compiler_rt/truncf.zig +692 15568007 1777922721689272954 9d5f8f839d8728a9e54f9db08b6fc9f6 1 compiler_rt/truncsfhf2.zig +509 15568003 1777922721689272954 36a7e39f41512b69d8dd4b03148a07e2 1 compiler_rt/truncdfhf2.zig +470 15568004 1777922721689272954 2d0a9da2fc5f44f832277023e3ae7aab 1 compiler_rt/truncdfsf2.zig +318 15568013 1777922721689272954 139d3b014e0554bc57be883dbcb13040 1 compiler_rt/truncxfhf2.zig +239 15568014 1777922721690272950 ae2c69fc5bd6a62401142b0cce712d31 1 compiler_rt/truncxfsf2.zig +239 15568012 1777922721689272954 64b17fde24984d08777a286b452ed71b 1 compiler_rt/truncxfdf2.zig +321 15568009 1777922721689272954 1afa1aed29807fa59e1dd55d76568c92 1 compiler_rt/trunctfhf2.zig +550 15568010 1777922721689272954 c6072c8226886282a81de6ac65a6832f 1 compiler_rt/trunctfsf2.zig +532 15568008 1777922721689272954 c1eaf14f67fcf5d0dcd04b9ea346246e 1 compiler_rt/trunctfdf2.zig +2791 15568011 1777922721689272954 ba812a42d7ab9bcc80710007cb084cf2 1 compiler_rt/trunctfxf2.zig +5022 15567932 1777922721688272957 19bab1ecf558b764bd8e8468a4437453 1 compiler_rt/int_from_float.zig +505 15567843 1777922721687272961 1fa8b56a94273bc472a6be89f8e49cb6 1 compiler_rt/fixhfei.zig +486 15567847 1777922721687272961 3e7787e9660e6e3524cf38eb839127d6 1 compiler_rt/fixsfsi.zig +642 15567845 1777922721687272961 cf2cacfdce0a2700ef1151756d454c85 1 compiler_rt/fixsfdi.zig +583 15567848 1777922721687272961 3d05f9c93a1d9edb2dd8fdfc54a2a5cf 1 compiler_rt/fixsfti.zig +505 15567846 1777922721687272961 24db7b91a9d948a2ad7caf09eac5bac6 1 compiler_rt/fixsfei.zig +504 15567841 1777922721687272961 5f0698948ec15aeb0c7317a8aa00443a 1 compiler_rt/fixdfsi.zig +624 15567839 1777922721687272961 31f529f960e287899bfea39220efe423 1 compiler_rt/fixdfdi.zig +565 15567842 1777922721687272961 1b746ea2e5364fe3d06f59ae59750aec 1 compiler_rt/fixdfti.zig +505 15567840 1777922721687272961 544f2f0344a72b62fc744fe9964fd699 1 compiler_rt/fixdfei.zig +555 15567851 1777922721687272961 21912f18e11f59d98fcda7b2163587dd 1 compiler_rt/fixtfsi.zig +555 15567849 1777922721687272961 f6c717ba5d2610cfee93c3fcc781efd9 1 compiler_rt/fixtfdi.zig +650 15567852 1777922721687272961 879363d43dc2ccd2ccda8c6846a8d86e 1 compiler_rt/fixtfti.zig +506 15567850 1777922721687272961 e0f51045e782f2826083492df6292ff6 1 compiler_rt/fixtfei.zig +280 15567875 1777922721687272961 17542bcca7e4498a30b7ff317688ba9e 1 compiler_rt/fixxfsi.zig +247 15567873 1777922721687272961 8cb1d23d6f6efacc6b4f44a929bbffbb 1 compiler_rt/fixxfdi.zig +505 15567874 1777922721687272961 1fece5086db5fb44264e371192df926b 1 compiler_rt/fixxfei.zig +289 15567859 1777922721687272961 9052b90819d6e134589cf15421be20d3 1 compiler_rt/fixunshfsi.zig +256 15567857 1777922721687272961 6091d7b00dd29ba5314dda663c59d247 1 compiler_rt/fixunshfdi.zig +583 15567860 1777922721687272961 4e766b5ed70ad0738c4cc53db4a55d43 1 compiler_rt/fixunshfti.zig +485 15567858 1777922721687272961 b25d09befb8f331a968d63a91d13f1b3 1 compiler_rt/fixunshfei.zig +498 15567863 1777922721687272961 13a3e3cdc102220cda3e65d6d16b1803 1 compiler_rt/fixunssfsi.zig +639 15567861 1777922721687272961 36a07146caf82dbad47163a3ca473afb 1 compiler_rt/fixunssfdi.zig +619 15567864 1777922721687272961 56789acf458135e6c3a782a8572d6010 1 compiler_rt/fixunssfti.zig +485 15567862 1777922721687272961 3e11a2202c44d57de654ce2d29be9b17 1 compiler_rt/fixunssfei.zig +498 15567855 1777922721687272961 5fcc6dc71f3120b36f2fe57f95a4df13 1 compiler_rt/fixunsdfsi.zig +639 15567853 1777922721687272961 a830fab7334d07637a73ebb72e61c48c 1 compiler_rt/fixunsdfdi.zig +583 15567856 1777922721687272961 c4e648867a929a625fcbe892c855a0cc 1 compiler_rt/fixunsdfti.zig +485 15567854 1777922721687272961 8d7b3d247e80d9f47e5debacbc6e2b88 1 compiler_rt/fixunsdfei.zig +555 15567867 1777922721687272961 14924a3e8dcce47ec68fb9c45f7a6a08 1 compiler_rt/fixunstfsi.zig +555 15567865 1777922721687272961 99d881339bbbe56c6c73f4ac5d192c6f 1 compiler_rt/fixunstfdi.zig +692 15567868 1777922721687272961 abf77a1c7dd0243fd13146b2b275fc9f 1 compiler_rt/fixunstfti.zig +486 15567866 1777922721687272961 96f3507e58f63f9988db501bd3c3881d 1 compiler_rt/fixunstfei.zig +289 15567871 1777922721687272961 7b8251710687d6ab61e988db20cbecaf 1 compiler_rt/fixunsxfsi.zig +256 15567869 1777922721687272961 352c31350bc98c309e28c1705ae709b7 1 compiler_rt/fixunsxfdi.zig +601 15567872 1777922721687272961 805918cac365386594689e0b14d5c23c 1 compiler_rt/fixunsxfti.zig +483 15567870 1777922721687272961 3e85f5658cb15905fc6235fc4609ea39 1 compiler_rt/fixunsxfei.zig +4033 15567876 1777922721687272961 08f568a06331f48d4981b570aa9bf4e7 1 compiler_rt/float_from_int.zig +286 15567889 1777922721688272957 106565430b27b00575389beb7b556c32 1 compiler_rt/floatsihf.zig +489 15567890 1777922721688272957 99ac4b64eae6451228fdf3e76d49ca5a 1 compiler_rt/floatsisf.zig +489 15567888 1777922721688272957 5e6458641b2311288dd5c00c68c662ef 1 compiler_rt/floatsidf.zig +549 15567891 1777922721688272957 5a42b568187c33cfce0199909fcd71c8 1 compiler_rt/floatsitf.zig +304 15567892 1777922721688272957 7136a4ad8f4fb251b019c70d60e112f2 1 compiler_rt/floatsixf.zig +253 15567879 1777922721687272961 b6c524b7b79a0b2ba575668317d16be8 1 compiler_rt/floatdihf.zig +611 15567880 1777922721687272961 3876b9e1125045a0bba7ec7e30502a8b 1 compiler_rt/floatdisf.zig +629 15567878 1777922721687272961 ac4256b4976a496e9da9f3b5cc62e6b8 1 compiler_rt/floatdidf.zig +567 15567881 1777922721687272961 e60a88490ec274e0bcd8a335dffc2f77 1 compiler_rt/floatditf.zig +253 15567882 1777922721687272961 5c41253cc75c758f3d8414c06820b2e8 1 compiler_rt/floatdixf.zig +582 15567894 1777922721688272957 aa003fed3c28fcf0661465916cb226d1 1 compiler_rt/floattihf.zig +564 15567895 1777922721688272957 edebc519fd8c78ffadcfa533755b47e5 1 compiler_rt/floattisf.zig +564 15567893 1777922721688272957 4108329e5b3cd7683c90776309e92291 1 compiler_rt/floattidf.zig +655 15567896 1777922721688272957 5ad2e9750665a0bc0f20e70de861dd2a 1 compiler_rt/floattitf.zig +582 15567897 1777922721688272957 d70e70beff307c5a02db9159d0c10876 1 compiler_rt/floattixf.zig +510 15567884 1777922721687272961 1646d6f1c02bb7b56165f216939a9766 1 compiler_rt/floateihf.zig +510 15567885 1777922721687272961 527c6da025482fa3e66b7143a7d9ea01 1 compiler_rt/floateisf.zig +479 15567883 1777922721687272961 7089012ddd1b9df0b322dd94006d29cb 1 compiler_rt/floateidf.zig +512 15567886 1777922721687272961 7f5adb0ede96341b927fd2b19ae21832 1 compiler_rt/floateitf.zig +479 15567887 1777922721688272957 a23d0cf72c9624bd4deb5bf9ab59680d 1 compiler_rt/floateixf.zig +263 15567909 1777922721688272957 d0eabbfe905bd1955dfbf4ff74789d9b 1 compiler_rt/floatunsihf.zig +516 15567910 1777922721688272957 4889e042d98fd6fe78fdd5512ad1222a 1 compiler_rt/floatunsisf.zig +498 15567908 1777922721688272957 469980dadce3b1303d8e5447b80253e0 1 compiler_rt/floatunsidf.zig +580 15567911 1777922721688272957 ad932fe90a33e55661927317df353bbc 1 compiler_rt/floatunsitf.zig +292 15567912 1777922721688272957 b74eb06b45723852ed8907ef9a3c1e2e 1 compiler_rt/floatunsixf.zig +292 15567899 1777922721688272957 d33b3dad7c05a80047aa89ef177f5de5 1 compiler_rt/floatundihf.zig +640 15567900 1777922721688272957 bfe6adee0ae9ff36f0f3a727942b60ff 1 compiler_rt/floatundisf.zig +622 15567898 1777922721688272957 5b21700386001f90ca76f4a69bbcc531 1 compiler_rt/floatundidf.zig +562 15567901 1777922721688272957 7ecbce03f6e2f7d34f669c43e05b5a5a 1 compiler_rt/floatunditf.zig +292 15567902 1777922721688272957 da5d76f43d53f823d14115e813e1e679 1 compiler_rt/floatundixf.zig +576 15567914 1777922721688272957 2953c33c5afb985a57994b5286303007 1 compiler_rt/floatuntihf.zig +594 15567915 1777922721688272957 05f6dcc434cc4afcdeab7e22fc1dc4ae 1 compiler_rt/floatuntisf.zig +576 15567913 1777922721688272957 b11ac0fc0d92ee51164a46a58d962730 1 compiler_rt/floatuntidf.zig +671 15567916 1777922721688272957 c473c1e7ddec98bb533d1273ad3b4a66 1 compiler_rt/floatuntitf.zig +594 15567917 1777922721688272957 9aa52768facdbbc8d846ea2d3494ecc1 1 compiler_rt/floatuntixf.zig +518 15567904 1777922721688272957 b569e15c4960f096d22a8498695037b3 1 compiler_rt/floatuneihf.zig +518 15567905 1777922721688272957 3da1804fc261f82d9a85f4cb42fcc7cf 1 compiler_rt/floatuneisf.zig +518 15567903 1777922721688272957 72d8c1345792bda65e245e216c54bfb4 1 compiler_rt/floatuneidf.zig +489 15567906 1777922721688272957 250b2f2ee910f6889439f6902e824242 1 compiler_rt/floatuneitf.zig +518 15567907 1777922721688272957 8775dcf872567dbca4aaa9be89c98d5c 1 compiler_rt/floatuneixf.zig +9442 15567795 1777922721686272965 a4d8663a92788da43cb9d84cfbb3e58c 1 compiler_rt/comparef.zig +2605 15567788 1777922721686272965 91858a90e46f0fae6148a5be22f15aba 1 compiler_rt/cmpdf2.zig +3596 15567791 1777922721686272965 ed4eee3b4269a73e58e195ab991424b6 1 compiler_rt/cmptf2.zig +1891 15567793 1777922721686272965 1bcb2490de66ad4411a56bb1b1beadda 1 compiler_rt/cmpxf2.zig +522 15568023 1777922721690272950 3cec9a8449e552edb9ea21bdcfcd5d16 1 compiler_rt/unorddf2.zig +792 15567926 1777922721688272957 bd0ef74753abec5e9bf5ff1ece192ce1 1 compiler_rt/gehf2.zig +1289 15567927 1777922721688272957 752957c0e08ab46d38903882d4e373e6 1 compiler_rt/gesf2.zig +1307 15567925 1777922721688272957 77abb220c445ca209cdc0bd63d0c35f4 1 compiler_rt/gedf2.zig +363 15567929 1777922721688272957 71abd2cb5cc15adfad10f2d1b086455c 1 compiler_rt/gexf2.zig +1102 15567928 1777922721688272957 857b9121c2764ef9fa6c80b222bae740 1 compiler_rt/getf2.zig +6364 15567763 1777922721686272965 a28efd2a8cc22dd72d94e92efdcaf5e8 1 compiler_rt/addf3.zig +258 15567765 1777922721686272965 cdb97ed9e9e4f737d1f50210538b5fa5 1 compiler_rt/addhf3.zig +482 15567766 1777922721686272965 7c66383d101eb8f59fe91827b0fa7052 1 compiler_rt/addsf3.zig +482 15567762 1777922721686272965 e98de91516f58550155b9f3cdc601a6a 1 compiler_rt/adddf3.zig +526 15567767 1777922721686272965 6a3199d5327ebdb5ac2a57b2891ce8e9 1 compiler_rt/addtf3.zig +262 15567770 1777922721686272965 37bb3df1d21ca3fb5c73a77e28251f0a 1 compiler_rt/addxf3.zig +345 15567994 1777922721689272954 d9dd819eb7b3e86e7499f19496aea205 1 compiler_rt/subhf3.zig +605 15567995 1777922721689272954 3730fe6e180d1398a620f7eeb43a77fb 1 compiler_rt/subsf3.zig +623 15567993 1777922721689272954 7be5439bbd27e235a8fb91189b8400e5 1 compiler_rt/subdf3.zig +685 15567996 1777922721689272954 9bd91d1677c201db0fbe5aff338cf3a5 1 compiler_rt/subtf3.zig +305 15567999 1777922721689272954 fe73f8ec762008d8326f6948b3c58f3c 1 compiler_rt/subxf3.zig +8424 15567948 1777922721688272957 8e0c05bcfe476732180e7179a76711cf 1 compiler_rt/mulf3.zig +262 15567951 1777922721688272957 6a4d90f1850cdff4b9101cf5f3653506 1 compiler_rt/mulhf3.zig +468 15567957 1777922721689272954 9e1e52d638844b75ab5c4d9b1605394d 1 compiler_rt/mulsf3.zig +486 15567947 1777922721688272957 f18b5c02041a116c8908d4c293c839fa 1 compiler_rt/muldf3.zig +538 15567959 1777922721689272954 f0405d80ca7cb47530b94f4f2ac72c77 1 compiler_rt/multf3.zig +262 15567962 1777922721689272954 099cf6140d3741138e202d701d1d874a 1 compiler_rt/mulxf3.zig +285 15567808 1777922721686272965 ae5c2e64d205ad937c80f9c50800e579 1 compiler_rt/divhf3.zig +8402 15567811 1777922721686272965 e007dd91050d3f9670856a31b291d71d 1 compiler_rt/divsf3.zig +9199 15567805 1777922721686272965 64b385486134b7bf452a4b4e3d8aa5ee 1 compiler_rt/divdf3.zig +8620 15567818 1777922721686272965 841562b842e29f7fc82e5e830cac819a 1 compiler_rt/divxf3.zig +10560 15567814 1777922721686272965 ebc16bc889cdb5e114e6bd9b797169b6 1 compiler_rt/divtf3.zig +1602 15567979 1777922721689272954 ed08c76b13adf76b35de9a6acfb5f900 1 compiler_rt/powiXf2.zig +2275 15567944 1777922721688272957 31c049fe940585ddd225b0c4f49de0ab 1 compiler_rt/mulc3.zig +364 15567950 1777922721688272957 512781f166a8c3875da561f4f8230be9 1 compiler_rt/mulhc3.zig +331 15567956 1777922721689272954 102e16161771af7814e38255adbe4dca 1 compiler_rt/mulsc3.zig +331 15567946 1777922721688272957 bb3e4f1e45e087a2cbf5e1b8c7294ab5 1 compiler_rt/muldc3.zig +364 15567961 1777922721689272954 0575402536fa7953282dd3719153c560 1 compiler_rt/mulxc3.zig +469 15567958 1777922721689272954 2599c8fc1dd703990f1d52fcc8405afc 1 compiler_rt/multc3.zig +2280 15567802 1777922721686272965 9e6aaeda713b6cd43eca1180606dc9f8 1 compiler_rt/divc3.zig +406 15567807 1777922721686272965 412c7456a893811918eb7e32f5ca2b4f 1 compiler_rt/divhc3.zig +373 15567810 1777922721686272965 7e02e8c2afcd2c36b275e526b50e7de7 1 compiler_rt/divsc3.zig +373 15567804 1777922721686272965 5be22ecc99b60a1e269ebcd07b63ba48 1 compiler_rt/divdc3.zig +373 15567817 1777922721686272965 eb964b5ea20bc7ea6b214d5165684b59 1 compiler_rt/divxc3.zig +511 15567813 1777922721686272965 f00ce0a1115432ed877e70a7210e020d 1 compiler_rt/divtc3.zig +8401 15567797 1777922721686272965 48ce97085562f8f0d3e93ba3a00c6330 1 compiler_rt/cos.zig +11191 15567821 1777922721686272965 233a0c2675fcf9fb0562d061d3f4ef8d 1 compiler_rt/exp.zig +20463 15567822 1777922721686272965 990315018671e600e5f43983656b35c7 1 compiler_rt/exp2.zig +1415 15567835 1777922721687272961 cd3fa4a3253c94922cf7fd4dbe8cf6d6 1 compiler_rt/fabs.zig +8451 15567918 1777922721688272957 0b87695dedb440735139b41072ac04b4 1 compiler_rt/floor_ceil.zig +11101 15567919 1777922721688272957 28c4313cc538b2f5812a52ec4bec4b02 1 compiler_rt/fma.zig +2369 15567920 1777922721688272957 a7f052b4bdafcce80219707ccbcd4a79 1 compiler_rt/fmax.zig +2371 15567921 1777922721688272957 2881caf3353e21fdc068c2894b526e33 1 compiler_rt/fmin.zig +11725 15567922 1777922721688272957 79f5a6f3e0524014ac73e0cb70026778 1 compiler_rt/fmod.zig +27755 15567935 1777922721688272957 8fa60be4c24fa34c552469dc3b4d63cf 1 compiler_rt/log.zig +9191 15567936 1777922721688272957 94721fe1abfbc3e173c681c73594e4b5 1 compiler_rt/log10.zig +8667 15567937 1777922721688272957 49e6cdf9ea75329f51154c609db64cc2 1 compiler_rt/log2.zig +4824 15567985 1777922721689272954 18ecc9f71f2af16e8866e41610d6e1db 1 compiler_rt/round.zig +9430 15567988 1777922721689272954 b933cc2801f9f84ff21b33c81ed4d0a9 1 compiler_rt/sin.zig +14726 15567989 1777922721689272954 d2d11e62b12ffea565f68495b486d0fe 1 compiler_rt/sincos.zig +29204 15567990 1777922721689272954 963eea878eff95387128b7a278530024 1 compiler_rt/sqrt.zig +7816 15568000 1777922721689272954 895ecc118177fee658ce2ed29440e3e3 1 compiler_rt/tan.zig +3960 15568002 1777922721689272954 7e9794fe13282aed8ade46a8cc46fdde 1 compiler_rt/trunc.zig +1976 15567809 1777922721686272965 f40491911afd36dcbdcaf83bde552029 1 compiler_rt/divmodei4.zig +5274 15568020 1777922721690272950 b483f1668e5681f1d01a8d3379d3085c 1 compiler_rt/udivmodei4.zig +8695 15567934 1777922721688272957 7f6b80ee9fd1a888a1cefaf0f0c07003 1 compiler_rt/limb64.zig +2970 15567970 1777922721689272954 73fbe2fafb6bf806bc0f94e0dbcdbb82 1 compiler_rt/os_version_check.zig +12778 15567820 1777922721686272965 32b1cbab0c70a5f07d8449b52a41b212 1 compiler_rt/emutls.zig +9633 15567771 1777922721686272965 5be5ccc2045b773a50cc658d73e3f1fe 1 compiler_rt/arm.zig +2296 15567773 1777922721686272965 adeeb17e089446574c0ac7052482f9da 1 compiler_rt/aulldiv.zig +2443 15567774 1777922721686272965 e279358f66c28bb577bb85cbb84e1b13 1 compiler_rt/aullrem.zig +7898 15567783 1777922721686272965 06f37e75f1f65c2d1968533e3126f595 1 compiler_rt/clear_cache.zig +44080 15567930 1777922721688272957 abec634a6ef8a9483ea381073dda9495 1 compiler_rt/hexagon.zig +22504 15567772 1777922721686272965 ee140ab73a711e099a335fcde147ec95 1 compiler_rt/atomics.zig +8888 15567992 1777922721689272954 e025e27cc09dff6f87418466a43f6126 1 compiler_rt/stack_probe.zig +71732 15567754 1777922721686272965 369d1b315f5a60e440e7b5229d0c2164 1 compiler_rt/aarch64_outline_atomics.zig +6327 15567939 1777922721688272957 8bd7a5b699effd9b48177fb4f42ba749 1 compiler_rt/memcpy.zig +7302 15567940 1777922721688272957 469b60af6c756eaa579028727fd7f021 1 compiler_rt/memmove.zig +3975 15567991 1777922721689272954 c0d2e7ed8026c400d7a40345bd91bf4f 1 compiler_rt/ssp.zig +0 15567964 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negsi2_test.zig +0 15567963 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negdi2_test.zig +0 15567965 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negti2_test.zig +8149 15587771 1777922722081271498 848266c110821122ce6bc572fc7966c9 1 std/Build/Cache/Path.zig +2178 15587770 1777922722081271498 4641e40dd1fb14622c51a7b8ad1a5d37 1 std/Build/Cache/Directory.zig +37904 15587769 1777922722081271498 5df488280e227dc1fae402212d0d1fa0 1 std/Build/Cache/DepTokenizer.zig +2963 15587776 1777922722081271498 3b0a8799da32dd829cea1e048ca0bdd9 1 std/Build/Step/CheckFile.zig +116020 15587777 1777922722081271498 18bac9280e713b80bc53d2471a14f467 1 std/Build/Step/CheckObject.zig +42586 15587779 1777922722081271498 4f4fb7a01d1524c11e465df25bb20bfc 1 std/Build/Step/ConfigHeader.zig +831 15587780 1777922722081271498 0f223ee68995072c4beb7fd3ae600b02 1 std/Build/Step/Fail.zig +2697 15587781 1777922722081271498 3d6cf866859ca04eb013a6b4ae5eda8e 1 std/Build/Step/Fmt.zig +8841 15587782 1777922722081271498 5f12e1d9cd3e301c7d59c6d0462af4e6 1 std/Build/Step/InstallArtifact.zig +4433 15587783 1777922722081271498 c590243c9189e7c05edb58d307b01d4d 1 std/Build/Step/InstallDir.zig +1460 15587784 1777922722081271498 0040eb5b0836e8fa2056b8e33d66b4dd 1 std/Build/Step/InstallFile.zig +8120 15587785 1777922722081271498 295b05d43b5ace3d4b31c0050b107e6c 1 std/Build/Step/ObjCopy.zig +84912 15587778 1777922722081271498 58e730efa305588922a904e148d65c54 1 std/Build/Step/Compile.zig +23120 15587786 1777922722081271498 7ad270e654494ff667c1d415c427537f 1 std/Build/Step/Options.zig +109628 15587787 1777922722081271498 7bf82c87cfe60873b28b35fac908770d 1 std/Build/Step/Run.zig +11889 15587788 1777922722081271498 cfa8e53899ae65e54778a42e84a17a18 1 std/Build/Step/TranslateC.zig +15498 15587790 1777922722081271498 a41fe33f2341ddc013b1fca1385ecd90 1 std/Build/Step/WriteFile.zig +4250 15587789 1777922722081271498 dfabe6ac1052637a178eef042b9afdd3 1 std/Build/Step/UpdateSourceFiles.zig +22253 15587793 1777922722082271495 d9a2b05ebe843fa5e404ed496a247b65 1 std/Build/Watch/FsEvents.zig +0 15587817 1777922722082271495 82547a8dd7f3efb3f077622e34876868 1 std/Io/Threaded/test.zig +3139 15587811 1777922722082271495 fe5fe7e681f4ef3265a652f929df6985 1 std/Io/Reader/Limited.zig +18134 15587823 1777922722083271491 5a0826d8af9243d47ac0ec7740737941 1 std/Io/net/HostName.zig +0 15587824 1777922722083271491 82547a8dd7f3efb3f077622e34876868 1 std/Io/net/test.zig +12759 15587806 1777922722082271495 3c13d2a3cedf8a9f99d87cd0a98d153b 1 std/Io/File/Reader.zig +8053 15587807 1777922722082271495 2ce32c66e785fcb0a179751edc397f1f 1 std/Io/File/Writer.zig +2699 15587803 1777922722082271495 7fd41fc040ad02c0f3e6feba994632f2 1 std/Io/File/Atomic.zig +4691 15587804 1777922722082271495 0b7562cfbeb59f6f8d81b42628098927 1 std/Io/File/MemoryMap.zig +8305 15587805 1777922722082271495 5bf9ca3d1c3edf41a06e7bb0ef18166a 1 std/Io/File/MultiReader.zig +13315 15587893 1777922722085271483 61d05272e7ddb2e66aecfe56b0a6b40e 1 std/c/darwin/dispatch.zig +103441 15587906 1777922722086271480 e55ee93fe7500c447d1110e3f5a59831 1 std/compress/flate/Compress.zig +43916 15587907 1777922722086271480 3c452297218497c6a0d6dfd1e6411bbf 1 std/compress/flate/Decompress.zig +0 15587911 1777922722086271480 82547a8dd7f3efb3f077622e34876868 1 std/compress/lzma/test.zig +10184 15587915 1777922722086271480 21b193ffeea11c4791e036a76504d714 1 std/compress/xz/Decompress.zig +0 15587916 1777922722086271480 82547a8dd7f3efb3f077622e34876868 1 std/compress/xz/test.zig +79574 15587919 1777922722086271480 af8f151b39faf2c007e2c3b1ccfff8a5 1 std/compress/zstd/Decompress.zig +0 15588020 1777922722089271469 82547a8dd7f3efb3f077622e34876868 1 std/crypto/test.zig +23047 15587940 1777922722087271476 b54729e648f909a81268f06167f20669 1 std/crypto/aes/aesni.zig +23360 15587941 1777922722087271476 f5c1c07e89705b24f7bbd58f0a70facd 1 std/crypto/aes/armcrypto.zig +34577 15587942 1777922722087271476 184f3d736969e9c1be3921724324424e 1 std/crypto/aes/soft.zig +14574 15587927 1777922722086271480 b552b509d9ec611014aa027c881ac91c 1 std/crypto/25519/field.zig +33750 15587929 1777922722086271480 1609964fc626671466a751ead6b023a1 1 std/crypto/25519/scalar.zig +338 15587992 1777922722088271472 433b788abb384ec7e4c3641754e6dde9 1 std/crypto/pcurves/p256/field.zig +7435 15587995 1777922722088271472 82696e587c8e76ddb04029021b89c87a 1 std/crypto/pcurves/p256/scalar.zig +5807 15588010 1777922722089271469 59d4f7e4b6bb1d5529e6827ea10d8814 1 std/crypto/pcurves/tests/p256.zig +376 15587998 1777922722089271469 69a49ff5f537dcd2044702ac14b6891c 1 std/crypto/pcurves/p384/field.zig +6683 15588001 1777922722089271469 b62513369dfa0f5b4513e8baae554c59 1 std/crypto/pcurves/p384/scalar.zig +6858 15588011 1777922722089271469 621c32a3c0932bff6aef9a841d5fbfe8 1 std/crypto/pcurves/tests/p384.zig +343 15588004 1777922722089271469 738b22249e1d3a4c001765286bc82756 1 std/crypto/pcurves/secp256k1/field.zig +7440 15588005 1777922722089271469 a2c94ac2ee64aa257045479bbeb08026 1 std/crypto/pcurves/secp256k1/scalar.zig +6215 15588012 1777922722089271469 90125b8a7293d6448bb9a47580368f54 1 std/crypto/pcurves/tests/secp256k1.zig +82002 15587982 1777922722088271472 1f857c6712958ff825aebf76cc32ac36 1 std/crypto/kangarootwelve.zig +12252 15587970 1777922722087271476 2cde0e70f988d3c7402f68a6a0314902 1 std/crypto/codecs/asn1.zig +18414 15587971 1777922722087271476 35b79a3fd55544c4889106069900e621 1 std/crypto/codecs/base64_hex_ct.zig +84508 15588023 1777922722089271469 649a5ecda2066ee55b1b961a952f38e4 1 std/crypto/tls/Client.zig +13687 15587934 1777922722086271480 bc1cd32e365024071d2fc253363bf1d2 1 std/crypto/Certificate/Bundle.zig +3589 15587935 1777922722086271480 1774b11899c6e761cf2c54ab9cf5893a 1 std/crypto/Certificate/Chain.zig +68800 15588033 1777922722090271465 09cdb1c0d0788a66a040ddcb5eddf5a7 1 std/debug/Dwarf/expression.zig +30176 15588032 1777922722090271465 9ea6e3df4e3d610339e5ea8f25755dfe 1 std/debug/Dwarf/Unwind.zig +13415 15588029 1777922722089271469 b8a468905b79bd6e498576d88e341c4a 1 std/debug/Dwarf/SelfUnwinder.zig +9426 15588071 1777922722091271461 19fe74e26814be7f5083c3d8b5a0983e 1 std/fmt/parse_float/parse.zig +2950 15588068 1777922722091271461 e2f6cedde735fdaf086b7e0efdb66505 1 std/fmt/parse_float/convert_hex.zig +5401 15588067 1777922722091271461 cbeba905313f9b6c917fb231993989fe 1 std/fmt/parse_float/convert_fast.zig +48543 15588066 1777922722091271461 82c419f8469193cf67852d0ac4c65f55 1 std/fmt/parse_float/convert_eisel_lemire.zig +4586 15588069 1777922722091271461 2562e4c50c6403023d508a0c7e1f15f0 1 std/fmt/parse_float/convert_slow.zig +3506 15588085 1777922722091271461 9428b7df45d5b928d9c004b955588fe0 1 std/hash/crc/impl.zig +0 15588086 1777922722091271461 82547a8dd7f3efb3f077622e34876868 1 std/hash/crc/test.zig +2075 15588090 1777922722091271461 5910881f138d791cfa09dd89cc12fc40 1 std/hash/verify.zig +0 15588117 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/dynamic_test.zig +0 15588119 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/hashmap_test.zig +0 15588120 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/scanner_test.zig +0 15588122 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/static_test.zig +995 15588167 1777922722093271454 59077bc2784a5df334de08609b4c2a55 1 std/math/expo2.zig +452 15588142 1777922722093271454 ce633e6b665f3caba98995a3f146d7c7 1 std/math/complex/abs.zig +678 15588144 1777922722093271454 9dd2ece0bd4c6366c4a3cb5bf7b3db17 1 std/math/complex/acosh.zig +608 15588143 1777922722093271454 e3a7d70f219edead2e32e66a9476a469 1 std/math/complex/acos.zig +458 15588145 1777922722093271454 2fea305ef49ff29fdd688d2f7342051d 1 std/math/complex/arg.zig +641 15588147 1777922722093271454 59bed4da0e5763cbf2a3e08ec4bc9c6c 1 std/math/complex/asinh.zig +750 15588146 1777922722093271454 26f02f5afc54b9ec7673ddd6d0fcc3a9 1 std/math/complex/asin.zig +645 15588149 1777922722093271454 adf7751d27453fed0d4977a2dc50e85e 1 std/math/complex/atanh.zig +2527 15588148 1777922722093271454 2a909954adb7520e1eb158124c280ca2 1 std/math/complex/atan.zig +484 15588150 1777922722093271454 a9e61e0f7280deab3d077856af6ca8d9 1 std/math/complex/conj.zig +5818 15588152 1777922722093271454 3b53a3d1a1285447f00cc90f422cb7b1 1 std/math/complex/cosh.zig +577 15588151 1777922722093271454 26877517b7d9d620e841272fd8ea3661 1 std/math/complex/cos.zig +4899 15588153 1777922722093271454 4f31c5e9d921097840da690cc0324595 1 std/math/complex/exp.zig +620 15588155 1777922722093271454 4e4bb03cdbb57072938d447952587286 1 std/math/complex/log.zig +608 15588156 1777922722093271454 1258f2af84237de74fd033b6776798f2 1 std/math/complex/pow.zig +628 15588157 1777922722093271454 b5f2e65410101f915fb75fa5712c2fd4 1 std/math/complex/proj.zig +5363 15588159 1777922722093271454 89568cfbf7f8196aafffbd55ea670070 1 std/math/complex/sinh.zig +620 15588158 1777922722093271454 4aade0cdfc8ac82b062412f5566aec6c 1 std/math/complex/sin.zig +4249 15588160 1777922722093271454 0aeb21db75d92940ddcb1491d2f0445e 1 std/math/complex/sqrt.zig +3847 15588162 1777922722093271454 98009ed972f9f5fcb177d10a345456e1 1 std/math/complex/tanh.zig +626 15588161 1777922722093271454 ac4f4ba1ea51c6a8f2101a7bdf3b0d7c 1 std/math/complex/tan.zig +185960 15588137 1777922722093271454 73c91870bf9888390a4fbae783316b31 1 std/math/big/int.zig +3762 15588238 1777922722095271446 2fd0c246f4a8e9ba6ccef5ff7cf0ccfe 1 std/os/linux/vdso.zig +0 15588235 1777922722095271446 82547a8dd7f3efb3f077622e34876868 1 std/os/linux/test.zig +4028 15588209 1777922722094271450 fad889af74c19e89aec8d2d148367ad2 1 std/os/linux/aarch64.zig +5034 15588210 1777922722094271450 71b88c341539b947f3255d37700f0a9e 1 std/os/linux/arm.zig +3380 15588217 1777922722094271450 59d565de222e3a5cfe2a456c9705e122 1 std/os/linux/hexagon.zig +4816 15588220 1777922722094271450 2dc76d90755eb8f1deb0a9e80f359b40 1 std/os/linux/loongarch32.zig +4885 15588221 1777922722094271450 7a3cc3cbebbe2f0b12661a952b75c15d 1 std/os/linux/loongarch64.zig +4232 15588222 1777922722094271450 3395b9bf91d855e572ab17b5c9bcac50 1 std/os/linux/m68k.zig +7917 15588223 1777922722094271450 adf29231543fd97568b09af3e22046da 1 std/os/linux/mips.zig +6527 15588225 1777922722094271450 e063618f62bb68a7e8dae24506b02518 1 std/os/linux/mipsn32.zig +6537 15588224 1777922722094271450 8d0f1af1cac3e5e03b718a1d3425708f 1 std/os/linux/mips64.zig +4947 15588226 1777922722094271450 0d4afd00420b15c35dbaf8d5317340ae 1 std/os/linux/or1k.zig +8650 15588227 1777922722094271450 e09c38d7114a12168881b764ae9e8eba 1 std/os/linux/powerpc.zig +8261 15588228 1777922722094271450 8561a5c808ba8c8069c7df5a10720639 1 std/os/linux/powerpc64.zig +3640 15588229 1777922722094271450 d333fa4c740f3e6afbc45d98d513d684 1 std/os/linux/riscv32.zig +3641 15588230 1777922722094271450 a181350c52396d767c11fff4bc1bfea3 1 std/os/linux/riscv64.zig +4555 15588231 1777922722094271450 ad8917b9284d43622453013ec7d5a083 1 std/os/linux/s390x.zig +6966 15588233 1777922722095271446 9e9cad0859d808d852642ce7b2af7e78 1 std/os/linux/sparc64.zig +7003 15588240 1777922722095271446 e3e3fd9240e6d1ae21e8ecb216b4741a 1 std/os/linux/x86.zig +4300 15588239 1777922722095271446 3fba18c392f7404bdf7c81b1152e27c6 1 std/os/linux/x32.zig +4299 15588241 1777922722095271446 49eb8d69558e313084ba3ac63c3f6709 1 std/os/linux/x86_64.zig +4043 15588236 1777922722095271446 ce94b53cfedc272651855c9aca6eb340 1 std/os/linux/thumb.zig +19371 15588237 1777922722095271446 2596493b8d3ba40e9ca8668f737e002f 1 std/os/linux/tls.zig +47550 15588216 1777922722094271450 32c5da8e114e94ea2adec4c27b6ce0db 1 std/os/linux/bpf.zig +1297 15588219 1777922722094271450 daac8c407161fbb4bb996238aee46635 1 std/os/linux/ioctl.zig +8427 15588232 1777922722095271446 b845f84a2ea6f5532d8ffc78297dafed 1 std/os/linux/seccomp.zig +191416 15588234 1777922722095271446 2171c87abdee6ea939834e72eaa1a5eb 1 std/os/linux/syscalls.zig +19937 15588218 1777922722094271450 8ba8f2488f743f5b2557ce471784ff51 1 std/os/linux/io_uring_sqe.zig +70498 15588208 1777922722094271450 1bca4c9dd309bf457afc8410477d2bfa 1 std/os/linux/IoUring.zig +2126 15588244 1777922722095271446 d6f497f7c3ede56b9dd8eb2cae54c566 1 std/os/plan9/x86_64.zig +2317 15588274 1777922722096271443 be87bd6baef485caa6e53ac7a241c786 1 std/os/uefi/protocol.zig +37311 15588247 1777922722095271446 a67c5d40f56e40984ce32fba49cfa0bc 1 std/os/uefi/device_path.zig +2078 15588248 1777922722095271446 13b23e26af6b210b16c77d73b956e867 1 std/os/uefi/hii.zig +10107 15588275 1777922722096271443 e4c1fe82be2b68376749dbb625002706 1 std/os/uefi/status.zig +10732 15588282 1777922722096271443 68cf12b996f3dbf4516572e7fe0d5f28 1 std/os/uefi/tables.zig +3906 15588249 1777922722095271446 5c4587a7b4f3370e256119bdab607b4a 1 std/os/uefi/pool_allocator.zig +928 15588287 1777922722096271443 bdb9a1476aaf7f283248a744d45098b3 1 std/os/windows/kernel32.zig +24957 15588290 1777922722096271443 d002d05bd824d2a94ac1184a1de432b6 1 std/os/windows/ntdll.zig +6230 15588295 1777922722096271443 ae6102533d158f7aa36956692efdf400 1 std/os/windows/ws2_32.zig +7915 15588286 1777922722096271443 2295f6c84e927b878882595bca445084 1 std/os/windows/crypt32.zig +20117 15588289 1777922722096271443 696b67a75a9a665eb00672233edffbb2 1 std/os/windows/nls.zig +237477 15588291 1777922722096271443 67644436e9162e79563b60f574b36f99 1 std/os/windows/ntstatus.zig +159624 15588294 1777922722096271443 a39f9d487cebae65c6f7885b43d14926 1 std/os/windows/win32error.zig +3697 15588288 1777922722096271443 f5f54b1cf522ff663148d3c96268d459 1 std/os/windows/lang.zig +8449 15588292 1777922722096271443 3c42a760ba486f9b9455bd95d20d2e0b 1 std/os/windows/sublang.zig +134890 15588353 1777922722098271435 df90a233ff7b97b3d629b2cf2e6cb86a 1 std/zig/Parse.zig +133748 15588343 1777922722098271435 a88e2a4e8edd5e42ce36d5497be9cfe3 1 std/zig/Ast/Render.zig +9472 15588375 1777922722099271431 87195797eae5a3842acb5b520146fd13 1 std/zig/system/NativePaths.zig +12220 15588382 1777922722099271431 1f1c4d6952079202735b6347b5864845 1 std/zig/system/windows.zig +2320 15588379 1777922722099271431 e3e5ee526c7cbaefdeb93c1c71a9f4cf 1 std/zig/system/darwin.zig +17272 15588380 1777922722099271431 d567aa2d0fd3fea7e6ba769d0f8ec592 1 std/zig/system/linux.zig +2265 15588381 1777922722099271431 e842ad5fa8bb44c7b2f8d9b6a335fcf3 1 std/zig/system/loongarch.zig +26515 15588383 1777922722099271431 775e2bf6e3c40cf09c216c30e4630474 1 std/zig/system/x86.zig +19938 15588364 1777922722099271431 f668cf11e4bececc793b349896705637 1 std/zig/llvm/BitcodeReader.zig +17757 15588366 1777922722099271431 d9ff99a16b4c64c8b4178f94af361113 1 std/zig/llvm/bitcode_writer.zig +597464 15588365 1777922722099271431 3d2fda42992a57fa8717bda6172f399b 1 std/zig/llvm/Builder.zig +0 15567785 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/clzsi2_test.zig +0 15567784 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/clzdi2_test.zig +0 15567786 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/clzti2_test.zig +0 15567800 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ctzsi2_test.zig +0 15567799 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ctzdi2_test.zig +0 15567801 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ctzti2_test.zig +0 15567837 1777922721687272961 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ffssi2_test.zig +0 15567836 1777922721687272961 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ffsdi2_test.zig +0 15567838 1777922721687272961 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ffsti2_test.zig +0 15567973 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/paritysi2_test.zig +0 15567972 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/paritydi2_test.zig +0 15567974 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/parityti2_test.zig +0 15567977 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/popcountsi2_test.zig +0 15567976 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/popcountdi2_test.zig +0 15567978 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/popcountti2_test.zig +0 15567777 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bitreversesi2_test.zig +0 15567776 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bitreversedi2_test.zig +0 15567778 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bitreverseti2_test.zig +0 15567781 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bswapsi2_test.zig +0 15567780 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bswapdi2_test.zig +0 15567782 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bswapti2_test.zig +0 15567790 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/cmpsi2_test.zig +0 15567789 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/cmpdi2_test.zig +0 15567792 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/cmpti2_test.zig +0 15568016 1777922721690272950 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ucmpsi2_test.zig +0 15568015 1777922721690272950 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ucmpdi2_test.zig +0 15568017 1777922721690272950 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ucmpti2_test.zig +0 15567987 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/shift_test.zig +0 15568019 1777922721690272950 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/udivmoddi4_test.zig +0 15567943 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/mulXi3_test.zig +0 15567941 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/modti3_test.zig +0 15567816 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/divti3_test.zig +0 15568022 1777922721690272950 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/udivmodti4_test.zig +0 15567759 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/absvsi2_test.zig +0 15567757 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/absvdi2_test.zig +0 15567761 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/absvti2_test.zig +0 15567968 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negvsi2_test.zig +0 15567967 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negvdi2_test.zig +0 15567969 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negvti2_test.zig +0 15567954 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/mulosi4_test.zig +0 15567953 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/mulodi4_test.zig +0 15567955 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/muloti4_test.zig +0 15567826 1777922721687272961 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/extendf_test.zig +0 15568006 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/truncf_test.zig +0 15567933 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/int_from_float_test.zig +0 15567877 1777922721687272961 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/float_from_int_test.zig +0 15567796 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/comparesf2_test.zig +0 15567794 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/comparedf2_test.zig +0 15567764 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/addf3_test.zig +0 15567949 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/mulf3_test.zig +0 15567812 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/divsf3_test.zig +0 15567806 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/divdf3_test.zig +0 15567819 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/divxf3_test.zig +0 15567815 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/divtf3_test.zig +0 15567980 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/powiXf2_test.zig +20510 15568001 1777922721689272954 f6b225d4b9feff2de1e103d485dc8e40 1 compiler_rt/trig.zig +6045 15567981 1777922721689272954 18b634df64d66eb7c240db46b32eea60 1 compiler_rt/rem_pio2.zig +2247 15567983 1777922721689272954 2337e183931c970621500018ffe636df 1 compiler_rt/rem_pio2f.zig +5829 15567984 1777922721689272954 402ac72990072faf4f752a5636968782 1 compiler_rt/rem_pio2l.zig +1118 15567938 1777922721688272957 bec039b31d08232f98fc682d19a1ac73 1 compiler_rt/long_double.zig +0 15567923 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/fmodq_test.zig +0 15567924 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/fmodx_test.zig +10730 15587908 1777922722086271480 53adac0f8e0f7d9078504320a3c43e07 1 std/compress/flate/token.zig +12650 15587990 1777922722088271472 56befc361ef070a7bd0a2d3c1dc46994 1 std/crypto/pcurves/common.zig +67958 15587993 1777922722088271472 0f2daafefad01026d6796eec68d65d2e 1 std/crypto/pcurves/p256/p256_64.zig +76136 15587994 1777922722088271472 8ec5f177ef28f7a2a0ec8d103665db00 1 std/crypto/pcurves/p256/p256_scalar_64.zig +134511 15587999 1777922722089271469 2e0dda7c40794e981dd2d2471c4776a5 1 std/crypto/pcurves/p384/p384_64.zig +137291 15588000 1777922722089271469 81eb087d46e6c49907ae0c02d3230828 1 std/crypto/pcurves/p384/p384_scalar_64.zig +73280 15588006 1777922722089271469 c871f98dad15c7a8c29be9ccefa4b181 1 std/crypto/pcurves/secp256k1/secp256k1_64.zig +75859 15588007 1777922722089271469 e29275bdb0eb931fc383e7f2f5ded944 1 std/crypto/pcurves/secp256k1/secp256k1_scalar_64.zig +1807 15587968 1777922722087271476 f47429307ac0920ff18758ce86074549 1 std/crypto/codecs/asn1/der.zig +7105 15587960 1777922722087271476 66ccc511a453a86184290b4cacf80766 1 std/crypto/codecs/asn1/Oid.zig +0 15587969 1777922722087271476 82547a8dd7f3efb3f077622e34876868 1 std/crypto/codecs/asn1/test.zig +4011 15587933 1777922722086271480 a49557210ec6e38ec5826a46866649f7 1 std/crypto/Certificate/Bundle/macos.zig +17121 15588031 1777922722089271469 02ea7c4c86a3f7b66d945d1a88d0860d 1 std/debug/Dwarf/Unwind/VirtualMachine.zig +3081 15588065 1777922722091271461 2aeda0b8b6036bb4d980778abb5a928a 1 std/fmt/parse_float/common.zig +3073 15588064 1777922722091271461 3950e4fa1fdd11d50db0b4abfc254022 1 std/fmt/parse_float/FloatStream.zig +6036 15588063 1777922722091271461 68169ffe43d55f0eb5e26b984ef98670 1 std/fmt/parse_float/FloatInfo.zig +29140 15588070 1777922722091271461 04115d79320f402803a56bd43cc34cf9 1 std/fmt/parse_float/decimal.zig +2726 15588154 1777922722093271454 7f318d60fafbfa10754d5644fd131ffe 1 std/math/complex/ldexp.zig +0 15588138 1777922722093271454 82547a8dd7f3efb3f077622e34876868 1 std/math/big/int_test.zig +4082 15588212 1777922722094271450 11a08913a0ec64b8325b0d29601479a7 1 std/os/linux/bpf/btf.zig +1573 15588215 1777922722094271450 08d401fe72d3ad7d47a05a0dfa21751a 1 std/os/linux/bpf/kern.zig +0 15588207 1777922722094271450 82547a8dd7f3efb3f077622e34876868 1 std/os/linux/IoUring/test.zig +2001 15588265 1777922722096271443 539322409dfd2d684638b127038a6e33 1 std/os/uefi/protocol/service_binding.zig +1715 15588261 1777922722095271446 f6892127566a3c88d1d324cfca22e049 1 std/os/uefi/protocol/loaded_image.zig +4814 15588253 1777922722095271446 ae0050bfba8bda94901399e42fe62869 1 std/os/uefi/protocol/device_path.zig +3896 15588263 1777922722095271446 0eaedbe475401fd4e42c2f72619c3b04 1 std/os/uefi/protocol/rng.zig +544 15588266 1777922722096271443 a0f63cfe62d021c13659600cea4aaa1a 1 std/os/uefi/protocol/shell_parameters.zig +1496 15588267 1777922722096271443 92bd55cb521ba72da3dacbe3d5c5b804 1 std/os/uefi/protocol/simple_file_system.zig +13127 15588255 1777922722095271446 3e58288866670edca5973d3e29efe731 1 std/os/uefi/protocol/file.zig +5143 15588252 1777922722095271446 90c9d2e0c006c58adc3164e19f00657f 1 std/os/uefi/protocol/block_io.zig +1799 15588270 1777922722096271443 f024846a184666b0affa25a2cafbc10b 1 std/os/uefi/protocol/simple_text_input.zig +4974 15588271 1777922722096271443 8f8f74b6ab8260a314f3302e3b60a8b2 1 std/os/uefi/protocol/simple_text_input_ex.zig +9829 15588272 1777922722096271443 e29ba19063da848e891733725e4ef18c 1 std/os/uefi/protocol/simple_text_output.zig +2000 15588269 1777922722096271443 b5984b96aff1463f582bc80721e4a38c 1 std/os/uefi/protocol/simple_pointer.zig +2370 15588251 1777922722095271446 8910b48d0e2ed04512369394e9c24ef9 1 std/os/uefi/protocol/absolute_pointer.zig +4848 15588264 1777922722096271443 5a314d85dc7710d8e0d76e10d6c3922e 1 std/os/uefi/protocol/serial_io.zig +4268 15588256 1777922722095271446 be47eb42c9a36fecb0a4c61de4bdfb28 1 std/os/uefi/protocol/graphics_output.zig +2451 15588254 1777922722095271446 2485a4796e73c7c8a14535333ea36518 1 std/os/uefi/protocol/edid.zig +15926 15588268 1777922722096271443 f79068be4c5ecb4e18235f0494a8f3cf 1 std/os/uefi/protocol/simple_network.zig +9851 15588262 1777922722095271446 6ac87afb334f152ae1f60c7d37e0f794 1 std/os/uefi/protocol/managed_network.zig +13173 15588259 1777922722095271446 6918e512dad7b2ceae3fa8aea799bc07 1 std/os/uefi/protocol/ip6.zig +5348 15588260 1777922722095271446 f0e7e3eb4726b5acc733b4b709a6fb1b 1 std/os/uefi/protocol/ip6_config.zig +8539 15588273 1777922722096271443 75aeba724def9af2f5500e3b6a298bf6 1 std/os/uefi/protocol/udp6.zig +4193 15588257 1777922722095271446 ce7ddcd4ea155a56ac2f54b3d36b865f 1 std/os/uefi/protocol/hii_database.zig +1684 15588258 1777922722095271446 8a5d84a896afd4cbe181b6fe58095e17 1 std/os/uefi/protocol/hii_popup.zig +48199 15588277 1777922722096271443 e446bbeceb8ffaa0a0de93cfca1d074b 1 std/os/uefi/tables/boot_services.zig +18947 15588279 1777922722096271443 cb1eb30776a43459956ea4c0675dee88 1 std/os/uefi/tables/runtime_services.zig +2796 15588278 1777922722096271443 f0a08fa361dffa5eadb351a471801946 1 std/os/uefi/tables/configuration_table.zig +2295 15588280 1777922722096271443 25bf31dd5f33af51b4b9da897fa1e3d5 1 std/os/uefi/tables/system_table.zig +214 15588281 1777922722096271443 cdb95d6c52cd4654ef26be0bd9f114d4 1 std/os/uefi/tables/table_header.zig +0 15588370 1777922722099271431 82547a8dd7f3efb3f077622e34876868 1 std/zig/parser_test.zig +15193 15588376 1777922722099271431 7bce4e957862b1695847095b0e235801 1 std/zig/system/arm.zig +16515 15588378 1777922722099271431 c3ca99f8a604df7a396ed20c35bcebed 1 std/zig/system/darwin/macos.zig +80205 15588367 1777922722099271431 bfc1e840700a8f0e8a1a52a598010f74 1 std/zig/llvm/ir.zig +20581 15567982 1777922721689272954 e8eaf68a4ffa3364b8f352326a575189 1 compiler_rt/rem_pio2_large.zig +5806 15587963 1777922722087271476 92f1dd53520d8191f93c177825b7845c 1 std/crypto/codecs/asn1/der/Decoder.zig +5861 15587964 1777922722087271476 650695830257d32d9ea72d767d918703 1 std/crypto/codecs/asn1/der/Encoder.zig +419 15588213 1777922722094271450 ed7dfc04a5d0c4f0853edb5414ce981e 1 std/os/linux/bpf/btf_ext.zig +24525 15588214 1777922722094271450 52c7fac6ad48da05270f91f073a4af79 1 std/os/linux/bpf/helpers.zig +2972 15587962 1777922722087271476 8c37c40098d399e3b36a078ce1d4e3a1 1 std/crypto/codecs/asn1/der/ArrayListReverse.zig +1343 15590147 1777923882671512549 8fa58a8a17f30dfd4cba278cc9ce445f 0 /home/bd/Projects/zig/zig-frugg/src/main.zig +184235 15590296 1777923881918513972 85ad82da3fad2cc8beda806b1ed8bdeb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/raylib.zig +49710 15590294 1777923881917513974 6d3f0781400dc8bd9d56f75863d4309e 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/raylib-ext.zig +35674 15590302 1777923881920513968 f0a6339cb07109132b564312afeff653 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/rlgl.zig +15973 15590299 1777923881919513970 477b270b06d00dcc87cd16fe35c3c924 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/raymath.zig +11416 15590300 1777923881919513970 8a43dcfb1320b98bb7f8ace3cc4f1743 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/rlgl-ext.zig +11139 15590297 1777923881918513972 0d1aa5facb81177d91b77bd9f7d4b6ae 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/raymath-ext.zig diff --git a/.zig-cache/h/7aba4755db2a75cb1fda8987da90b7cd.txt b/.zig-cache/h/7aba4755db2a75cb1fda8987da90b7cd.txt new file mode 100644 index 0000000..9894401 --- /dev/null +++ b/.zig-cache/h/7aba4755db2a75cb1fda8987da90b7cd.txt @@ -0,0 +1,230 @@ +0 +226085 15592272 1777923927291426454 57703b4cb9d20c85f2494106b300ce4c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rtextures.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +21266 11024117 1776766428000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11024118 1776766428000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +34258 11024114 1776766428000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +381 11023928 1776766428000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11023930 1776766428000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11023927 1776766428000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11023926 1776766428000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11023925 1776766428000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11023948 1776766428000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11023935 1776766428000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11023890 1776766428000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +283010 15592234 1777923927280426475 da0de4b77a864a92ca0a84752ae64a25 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image.h +417 15568047 1777922721690272950 d2edf43390585163b0f70c6bd1d7e3b7 1 include/__stddef_header_macro.h +717 15568052 1777922721690272950 81288588f2bdd7ac4f213fa113429ef2 1 include/__stddef_ptrdiff_t.h +708 15568051 1777922721690272950 04b70454bf7cdd0c492cfaf134f95be7 1 include/__stddef_offsetof.h +3794 15568174 1777922721699272917 42f44f0344ca976c19820ae587ff2c10 1 include/limits.h +5839 11024036 1776766428000000000 93606ee9e7d5800ac5b8e3efedd3f157 0 /usr/include/limits.h +5198 11023832 1776766428000000000 a6dd17f359e45199ea5666f65b1113a6 0 /usr/include/bits/posix1_lim.h +3175 11023807 1776766428000000000 b08b1c7bc1b5a70132a5b8b175b8c0db 0 /usr/include/bits/local_lim.h +937 8943972 1770625897000000000 65da8eafce628e0f5da011204e471ee0 0 /usr/include/linux/limits.h +1214 11023840 1776766428000000000 2fe7b4205802733911a5efa9b71bb5e6 0 /usr/include/bits/pthread_stack_min-dynamic.h +2867 11023833 1776766428000000000 7d8aa86701e9a380845c5cd8a669e984 0 /usr/include/bits/posix2_lim.h +3858 11023992 1776766428000000000 6056c22530b9b6e43d3215eee277a553 0 /usr/include/bits/xopen_lim.h +1385 11023977 1776766428000000000 59219f4f906088fd1473df647db44849 0 /usr/include/bits/uio_lim.h +6841 11023755 1776766428000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +27519 15568253 1777922721701272909 1bf965d23c79a082ac103b8d4944724e 1 include/stdint.h +8268 11024113 1776766428000000000 07868a6486476f79d1af8befa09ff966 0 /usr/include/stdint.h +1906 11023987 1776766428000000000 eb31012558f3028fc2c3c0def47ccc8a 0 /usr/include/bits/wchar.h +1049 11023885 1776766428000000000 df8b58b124e95d233ec646186fc72d07 0 /usr/include/bits/stdint-uintn.h +1305 11023884 1776766428000000000 e13a68eb8203cd6be160c31f99d931f7 0 /usr/include/bits/stdint-least.h +201616 15568149 1777922721698272920 c59721a008a14bf4245225c8d6dd981f 1 include/emmintrin.h +120340 15568276 1777922721702272906 8e35d00e3ce60714ef2dd6312b645f5d 1 include/xmmintrin.h +60004 15568188 1777922721700272913 9d96163416d339553543c8056304615f 1 include/mmintrin.h +1929 15568187 1777922721700272913 b6b5caf8039b8eeb1a472434df3e6037 1 include/mm_malloc.h +76007 15592230 1777923927279426477 a736a10590b842a754f3c9d9bba6437a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/rltexgpu.h +18326 15592228 1777923927278426479 0a1701580c647f7b4f8a424d04ac746d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoi.h +71221 15592236 1777923927282426471 ca3d5f23a730342b4f4dd18653e45db1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image_write.h +17918 15592237 1777923927282426471 2bb87817ffe9d6d6d3187db2bffe388c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_perlin.h +457839 15592235 1777923927281426473 d73e04ebd94264210f8f82aac82d1da4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image_resize2.h +101720 15568245 1777922721701272909 65d276eda8a6b7f54badd06b69b605d7 1 include/smmintrin.h +31927 15568257 1777922721701272909 a94b62300284d904ddd77a8612722040 1 include/tmmintrin.h +11390 15568207 1777922721700272913 af3b468e9f028463cda1ea1862bdd32f 1 include/pmmintrin.h +1948 15568208 1777922721700272913 0d0dc43525f7392cd17b908e07c520a2 1 include/popcntintrin.h +3347 15568148 1777922721698272920 fb37aa3848b11ad0dde9222206788fed 1 include/crc32intrin.h +16632 15568165 1777922721699272917 70963188f6adf02d47abf0e69307e3ce 1 include/immintrin.h +1727 15568274 1777922721702272906 02224c13847552071474f4b8a67094f2 1 include/x86gprintrin.h +1395 15568160 1777922721699272917 fb46b2d83a3e08fdd2816a60bb34c1f4 1 include/hresetintrin.h +5079 15568259 1777922721701272909 17e8211de80c4aedcb92d94180a78574 1 include/uintrintrin.h +1572 15568261 1777922721701272909 090a143fbece0766fad22b1d0a3d99de 1 include/usermsrintrin.h +2073 15568223 1777922721700272913 b7662e91645d1456a47a0baff1a8e60b 1 include/prfchiintrin.h +6748 15568227 1777922721700272913 60e92c0f22c6fd0127612d8d4fb33f1a 1 include/raointintrin.h +2383 15568146 1777922721698272920 3d1c9e6b8d2f63d088f4554226dea82d 1 include/cmpccxaddintrin.h +659 15568273 1777922721702272906 88839041dd2d933a1ceb26cde857faea 1 include/wmmintrin.h +5269 15568058 1777922721690272950 73101524ee05bfb36c066bf9bb6e60d7 1 include/__wmmintrin_aes.h +2036 15568059 1777922721690272950 679b048994ef6e3eb20b4627ae70bbf3 1 include/__wmmintrin_pclmul.h +1193 15568143 1777922721698272920 0a42c930a770c0836dbe4a3703bb4512 1 include/clflushoptintrin.h +1229 15568144 1777922721698272920 c053e392024dcadcb1da23c409ffb040 1 include/clwbintrin.h +201849 15568132 1777922721698272920 b4ccac975fdcf069bc879ccf03d0b80f 1 include/avxintrin.h +192637 15568104 1777922721697272924 215b76cd9cf97075404f4c97c36c24f0 1 include/avx2intrin.h +5524 15568151 1777922721698272920 a8307854b76c9de85b83d9befd78477f 1 include/f16cintrin.h +20350 15568138 1777922721698272920 52d5562b0fcd60ad86d13264e78f569d 1 include/bmiintrin.h +7546 15568137 1777922721698272920 e3a2aaeac7ef1aaf72d32c13e79fabf8 1 include/bmi2intrin.h +3659 15568185 1777922721700272913 da624bb823db719405e0df2f497fd83e 1 include/lzcntintrin.h +29337 15568154 1777922721699272917 37368c2b3ac26685c39d619149a048a5 1 include/fmaintrin.h +392651 15568110 1777922721697272924 417c1f0ac26fce36e4bf57569e3ae768 1 include/avx512fintrin.h +330339 15568123 1777922721698272920 49a5250ddc213c5fcbbde5cef04535e8 1 include/avx512vlintrin.h +77845 15568107 1777922721697272924 52fdf0987ae18302e0e01534ef877cc2 1 include/avx512bwintrin.h +2626 15568106 1777922721697272924 4c8c0fd807ad9e5271cdd15d2977f9d0 1 include/avx512bitalgintrin.h +4327 15568108 1777922721697272924 d60cce9efd3cf6e1817c5b6437e4be3d 1 include/avx512cdintrin.h +2357 15568129 1777922721698272920 6f8315696bf9a22f42ec05d59da5d065 1 include/avx512vpopcntdqintrin.h +3957 15568130 1777922721698272920 abb99a6c6070cfc30e96f19e82cc0bbb 1 include/avx512vpopcntdqvlintrin.h +4428 15568127 1777922721698272920 d65f32b0b2809f1f45646161d119f357 1 include/avx512vnniintrin.h +13736 15568125 1777922721698272920 f0bad1557e9b86244734e891fe49a319 1 include/avx512vlvnniintrin.h +10690 15568136 1777922721698272920 3cc87c685806872776354f4a0b5d2155 1 include/avxvnniintrin.h +60287 15568109 1777922721697272924 b9a24e2c100dbc7ee399c43d96773394 1 include/avx512dqintrin.h +4629 15568118 1777922721697272924 312bc5534b5826436e11de728e563806 1 include/avx512vlbitalgintrin.h +124474 15568119 1777922721697272924 9c4b311057a3d5598fd23dc67c776400 1 include/avx512vlbwintrin.h +8141 15568120 1777922721697272924 d74858c8ea47f20ff9c4092d113ea41c 1 include/avx512vlcdintrin.h +47827 15568121 1777922721697272924 3c73b81ef4b33ba6bcb6714431e09354 1 include/avx512vldqintrin.h +2660 15568112 1777922721697272924 6400d05d435160c1d6d346c344a76086 1 include/avx512ifmaintrin.h +4712 15568113 1777922721697272924 fa03ebe74dbaca356d64dbe640460035 1 include/avx512ifmavlintrin.h +5886 15568131 1777922721698272920 0e78550e483532f19c0908b38276ec64 1 include/avxifmaintrin.h +3920 15568115 1777922721697272924 5700f088b6969618471ef25f630669d0 1 include/avx512vbmiintrin.h +7402 15568116 1777922721697272924 16d47f57484ed296b3e6e1368e704595 1 include/avx512vbmivlintrin.h +13493 15568114 1777922721697272924 b105a7215373b26faee90ebcf9611298 1 include/avx512vbmi2intrin.h +26633 15568124 1777922721698272920 3e9303ac0a4faf37b84922e7f0c7fbac 1 include/avx512vlvbmi2intrin.h +160735 15568111 1777922721697272924 74efdcbf12d39f136d48990ed6247ae4 1 include/avx512fp16intrin.h +87561 15568122 1777922721697272924 f6fd101ffd8ecd06bab96e21091b3f55 1 include/avx512vlfp16intrin.h +10832 15568105 1777922721697272924 f328f474b8b2f7ecd99fc38496b8ba0c 1 include/avx512bf16intrin.h +19922 15568117 1777922721697272924 ae2035290c3da7e9ee66b53aa998e2e8 1 include/avx512vlbf16intrin.h +934 15568206 1777922721700272913 9eec7d1953339f7017502cf78723950d 1 include/pkuintrin.h +1086 15568269 1777922721702272906 637855aacd197db9868d139d6fafe450 1 include/vpclmulqdqintrin.h +2671 15568263 1777922721701272909 57f64f1aed9ee8ed6eca03464494e60c 1 include/vaesintrin.h +9822 15568156 1777922721699272917 220fde0fd70770eba04dde846bdbbef7 1 include/gfniintrin.h +17431 15568135 1777922721698272920 a7d4a6dc8f028f8c7ace573ef994a4d1 1 include/avxvnniint8intrin.h +14432 15568133 1777922721698272920 72cc1449016b76cd7ab84c886811a3e2 1 include/avxneconvertintrin.h +6088 15568239 1777922721701272909 0f30b3a47ff82ec3699c8cd0e40cbc92 1 include/sha512intrin.h +7470 15568242 1777922721701272909 bc67c183035f74d21e316c8ab20ae2f0 1 include/sm3intrin.h +8401 15568244 1777922721701272909 6ab760098261dfe1782c73be8e138705 1 include/sm4intrin.h +16222 15568134 1777922721698272920 682df57b668a75daebe49e56a2f1c645 1 include/avxvnniint16intrin.h +1280 15568235 1777922721701272909 6eab1c6b32be874b9c82a3ff1d2772e6 1 include/rtmintrin.h +873 15568282 1777922721702272906 dcac3c4fb2d9e8fc2e32c099cc2f4a7c 1 include/xtestintrin.h +7660 15568240 1777922721701272909 3ce15406906216d7b4f3b25709fd0765 1 include/shaintrin.h +2890 15568155 1777922721699272917 72e559c6284e7b3e59ece194e6e3e2f1 1 include/fxsrintrin.h +1678 15568279 1777922721702272906 adc179a954bd6419ecb3679e88e76d89 1 include/xsaveintrin.h +1026 15568280 1777922721702272906 5e941b1ef68d3e6e9aa207d5d00dba2f 1 include/xsaveoptintrin.h +2574 15568278 1777922721702272906 83e5e79720328dd0054ce7660005acd2 1 include/xsavecintrin.h +1268 15568281 1777922721702272906 51ebe3f93e82afad00bcea35da340569 1 include/xsavesintrin.h +3351 15568141 1777922721698272920 940fdc9a595824a3546eb2d73c351f8f 1 include/cetintrin.h +5565 15568060 1777922721690272950 c17718c6485c7659e7890a4cbab75219 1 include/adcintrin.h +3447 15568061 1777922721690272950 a7ca4b601933a32c4855f0ec1ceb8b73 1 include/adxintrin.h +2919 15568229 1777922721701272909 9ba44bec7d615d70d29c2cf49efd2fd9 1 include/rdseedintrin.h +749 15568272 1777922721702272906 ab03b0b2ec3b24b5c381d040fbd5d3f3 1 include/wbnoinvdintrin.h +1207 15568142 1777922721698272920 faf0346a1135a650caebf7c0fa660e06 1 include/cldemoteintrin.h +1357 15568270 1777922721702272906 c29665f4ae7d08f40fdba4bdf3c59fcb 1 include/waitpkgintrin.h +1612 15568190 1777922721700272913 361388a1deda89bbc5200844d0aec7a4 1 include/movdirintrin.h +2025 15568193 1777922721700272913 0f19f76e900e332d57533e05989a2a0c 1 include/movrsintrin.h +7036 15568192 1777922721700272913 2c6fb76c226fac69586d6e93c0fd3908 1 include/movrs_avx10_2intrin.h +3973 15568191 1777922721700272913 19680bd74186f6c0adedde41e57f21e1 1 include/movrs_avx10_2_512intrin.h +1216 15568205 1777922721700272913 b3205c333672913fc7c8acc26dfb5304 1 include/pconfigintrin.h +1816 15568238 1777922721701272909 4814b5f568d79fe0a3ff9a01056fa17b 1 include/sgxintrin.h +1076 15568226 1777922721700272913 3fae1e12e188144704082b5c0de48a7f 1 include/ptwriteintrin.h +764 15568169 1777922721699272917 c4f35c928a775df7195a03f0d5411aff 1 include/invpcidintrin.h +17973 15568171 1777922721699272917 0b48ddfbbe168ffd50b79789be908d2a 1 include/keylockerintrin.h +20304 15568071 1777922721691272946 3381fed3b944ecfc74f30d27ff094bca 1 include/amxintrin.h +3327 15568068 1777922721691272946 f1e5420b9d7fe9febe794a24e96e4ce9 1 include/amxfp16intrin.h +6933 15568066 1777922721691272946 78b4f2aa1cf1c0239e304a1f474331d0 1 include/amxcomplexintrin.h +8839 15568070 1777922721691272946 5ccf1e3f33ad6379d2a262f4438cd502 1 include/amxfp8intrin.h +10853 15568076 1777922721691272946 7921f0f126779340730c078d6b3c9997 1 include/amxtransposeintrin.h +2290 15568072 1777922721691272946 5f7e30d92bb23f379ce740ff06bde41f 1 include/amxmovrsintrin.h +9402 15568073 1777922721691272946 6fa922cc643f704d9fa08f0cce57fd0b 1 include/amxmovrstransposeintrin.h +12986 15568064 1777922721691272946 107cbdc06513520aa9e4e158e3f6c491 1 include/amxavx512intrin.h +3562 15568074 1777922721691272946 fd05d9e0127721d899581134b681ca3c 1 include/amxtf32intrin.h +3643 15568075 1777922721691272946 55a73f65dcb801b11b24e97984ccedb0 1 include/amxtf32transposeintrin.h +3525 15568065 1777922721691272946 52d2749a270864e796b43cc5ee738a7f 1 include/amxbf16transposeintrin.h +3525 15568069 1777922721691272946 42f3593c062932dfe44c29ecf4283afb 1 include/amxfp16transposeintrin.h +12061 15568067 1777922721691272946 3ac118b8b4568263387fa6cc9c6d757d 1 include/amxcomplextransposeintrin.h +3102 15568128 1777922721698272920 731bbd34cb220f83027d2d1b60e5b916 1 include/avx512vp2intersectintrin.h +4782 15568126 1777922721698272920 380ed65ce4ea2eb042a085a39a69d79e 1 include/avx512vlvp2intersectintrin.h +44658 15568097 1777922721696272928 faca47b99e2b7dd009773fe525926cad 1 include/avx10_2bf16intrin.h +108821 15568098 1777922721696272928 fb976c4700d15c22d82fec385805cc26 1 include/avx10_2convertintrin.h +2410 15568099 1777922721696272928 10419d2bc12d8a9878d0e2866a79b6ed 1 include/avx10_2copyintrin.h +13680 15568100 1777922721696272928 3b54fb6f688ef31b5b288d68add52055 1 include/avx10_2minmaxintrin.h +17003 15568101 1777922721696272928 21161b694449a0ad9ec0ff4fd45c5338 1 include/avx10_2niintrin.h +15253 15568102 1777922721696272928 b54db7027b0759bf2c6e98812c65825d 1 include/avx10_2satcvtdsintrin.h +18140 15568103 1777922721696272928 90423834c7a102028a91b8ed880457bd 1 include/avx10_2satcvtintrin.h +23410 15568091 1777922721696272928 95bee4d483b52e84460e33e248d24b78 1 include/avx10_2_512bf16intrin.h +13192 15568092 1777922721696272928 b29bf6fb9e659842d31f4be78f82b58a 1 include/avx10_2_512convertintrin.h +7526 15568093 1777922721696272928 e922b6ff2d475a67b2edd396292f7078 1 include/avx10_2_512minmaxintrin.h +14039 15568094 1777922721696272928 706c14e292a7064003c3a9554b34d98d 1 include/avx10_2_512niintrin.h +13799 15568095 1777922721696272928 9a37b5547f48ae1333e9109ba36c0502 1 include/avx10_2_512satcvtdsintrin.h +16999 15568096 1777922721696272928 cc3b16d0b0f0630231d148f1376082d1 1 include/avx10_2_512satcvtintrin.h +1195 15568243 1777922721701272909 415f4786cb23f5ee37699dc6b7eff360 1 include/sm4evexintrin.h +2167 15568150 1777922721698272920 6e887392f50e32d2c4bc3eb4ca4e4def 1 include/enqcmdintrin.h +881 15568237 1777922721701272909 de461f45e00eb8aa42c96123bef0f9a0 1 include/serializeintrin.h +2015 15568258 1777922721701272909 d9bd2435957a5e62c538d80aea562772 1 include/tsxldtrkintrin.h diff --git a/.zig-cache/h/7ca6ba60b6ef76b0eb1d0dcf1f10328c.txt b/.zig-cache/h/7ca6ba60b6ef76b0eb1d0dcf1f10328c.txt new file mode 100644 index 0000000..947b5f7 --- /dev/null +++ b/.zig-cache/h/7ca6ba60b6ef76b0eb1d0dcf1f10328c.txt @@ -0,0 +1,127 @@ +0 +338872 15592269 1777923927290426456 76fc55680b7dd750a09c7c8d4885d438 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rmodels.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +90849 15592263 1777923927287426462 db41cf17388962b34436c4fde7782f23 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raymath.h +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +34258 11024114 1776766428000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +381 11023928 1776766428000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11023930 1776766428000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11023927 1776766428000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11023926 1776766428000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11023925 1776766428000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11023948 1776766428000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11023935 1776766428000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11023890 1776766428000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +5599 11023887 1776766428000000000 e430a87e8deadc82d69f0f011fb6ea3e 0 /usr/include/bits/stdio.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1516 11023891 1776766428000000000 046e6949e60c5229cc0f25afa40a0c7d 0 /usr/include/bits/stdlib-bsearch.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +21266 11024117 1776766428000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11024118 1776766428000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +45680 15592241 1777923927283426469 eb116170525d41104424990ac7adcf2f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/tinyobj_loader_c.h +6841 11023755 1776766428000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +1679 11024003 1776766428000000000 abb7aa3ce3560985cdcc5222002abe0a 0 /usr/include/errno.h +1426 11023773 1776766428000000000 f5901b3b5db0a666bc76fe7ac755756b 0 /usr/include/bits/errno.h +23 8943817 1770625897000000000 0e9514526df5411989c0921d62c34bb0 0 /usr/include/linux/errno.h +31 8943586 1770625897000000000 303204c8e8dd5d0b26a8bbfede43c812 0 /usr/include/asm/errno.h +5648 8943542 1770625897000000000 8becdc7faaf464f4f03c90038b9730e0 0 /usr/include/asm-generic/errno.h +1612 8943541 1770625897000000000 9e53730016da2684ae9a8bb2284166de 0 /usr/include/asm-generic/errno-base.h +894 11023936 1776766428000000000 21d9a2571870c420b53485fe487743c5 0 /usr/include/bits/types/error_t.h +205754 15592105 1777923927253426528 5d2f236b6f6ef5d9a1b295fd3d1846d5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/cgltf.h +417 15568047 1777922721690272950 d2edf43390585163b0f70c6bd1d7e3b7 1 include/__stddef_header_macro.h +717 15568052 1777922721690272950 81288588f2bdd7ac4f213fa113429ef2 1 include/__stddef_ptrdiff_t.h +708 15568051 1777922721690272950 04b70454bf7cdd0c492cfaf134f95be7 1 include/__stddef_offsetof.h +27519 15568253 1777922721701272909 1bf965d23c79a082ac103b8d4944724e 1 include/stdint.h +8268 11024113 1776766428000000000 07868a6486476f79d1af8befa09ff966 0 /usr/include/stdint.h +1906 11023987 1776766428000000000 eb31012558f3028fc2c3c0def47ccc8a 0 /usr/include/bits/wchar.h +1049 11023885 1776766428000000000 df8b58b124e95d233ec646186fc72d07 0 /usr/include/bits/stdint-uintn.h +1305 11023884 1776766428000000000 e13a68eb8203cd6be160c31f99d931f7 0 /usr/include/bits/stdint-least.h +3794 15568174 1777922721699272917 42f44f0344ca976c19820ae587ff2c10 1 include/limits.h +5839 11024036 1776766428000000000 93606ee9e7d5800ac5b8e3efedd3f157 0 /usr/include/limits.h +5198 11023832 1776766428000000000 a6dd17f359e45199ea5666f65b1113a6 0 /usr/include/bits/posix1_lim.h +3175 11023807 1776766428000000000 b08b1c7bc1b5a70132a5b8b175b8c0db 0 /usr/include/bits/local_lim.h +937 8943972 1770625897000000000 65da8eafce628e0f5da011204e471ee0 0 /usr/include/linux/limits.h +1214 11023840 1776766428000000000 2fe7b4205802733911a5efa9b71bb5e6 0 /usr/include/bits/pthread_stack_min-dynamic.h +2867 11023833 1776766428000000000 7d8aa86701e9a380845c5cd8a669e984 0 /usr/include/bits/posix2_lim.h +3858 11023992 1776766428000000000 6056c22530b9b6e43d3215eee277a553 0 /usr/include/bits/xopen_lim.h +1385 11023977 1776766428000000000 59219f4f906088fd1473df647db44849 0 /usr/include/bits/uio_lim.h +6268 15568152 1777922721698272920 f23d0597dbe24fbef0b9db0a6a912bdb 1 include/float.h +19659 15592242 1777923927284426468 6f6765d6e719e243ad70cc22023392da 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/vox_loader.h +306683 15592223 1777923927268426499 15241acfe0a45badbe1236db00c6ea81 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/m3d.h +72865 15592225 1777923927278426479 9dc0644bac4164f220adfabe1352af5b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/par_shapes.h +45053 11024218 1776766428000000000 61decd3126c9fca1538df8298cac1894 0 /usr/include/unistd.h +5910 11023834 1776766428000000000 3ab8ab6e5779785e032604f1768b415c 0 /usr/include/bits/posix_opt.h +3791 11023770 1776766428000000000 e918da89dc6f1bc95caac7b9e99e3ccc 0 /usr/include/bits/environments.h +23828 11023761 1776766428000000000 9cf65881ab165e5e8e291a2f7fcd0a71 0 /usr/include/bits/confname.h +1810 11023789 1776766428000000000 996cb3fd9509868b01621c74e4a86ade 0 /usr/include/bits/getopt_posix.h +3667 11023787 1776766428000000000 ac9188a8d7cc4aac4ca3ac108e99f032 0 /usr/include/bits/getopt_core.h +2035 11023980 1776766428000000000 0cb61ab97cf5643355f3236fdfb9904c 0 /usr/include/bits/unistd_ext.h +377 8943771 1770625897000000000 7ed06359dec8788b24849d80d4e70c9a 0 /usr/include/linux/close_range.h diff --git a/.zig-cache/h/7f3c9cd4ab9a5a459365d9a1a821df26.txt b/.zig-cache/h/7f3c9cd4ab9a5a459365d9a1a821df26.txt new file mode 100644 index 0000000..908e510 --- /dev/null +++ b/.zig-cache/h/7f3c9cd4ab9a5a459365d9a1a821df26.txt @@ -0,0 +1,164 @@ +0 +179546 15592265 1777923927288426459 e6c02b151e39c59246cdfe8aeaaa21f4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rcore.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1516 11023891 1776766428000000000 046e6949e60c5229cc0f25afa40a0c7d 0 /usr/include/bits/stdlib-bsearch.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +34258 11024114 1776766428000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +381 11023928 1776766428000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11023930 1776766428000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11023927 1776766428000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11023926 1776766428000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11023925 1776766428000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11023948 1776766428000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11023935 1776766428000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11023890 1776766428000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +5599 11023887 1776766428000000000 e430a87e8deadc82d69f0f011fb6ea3e 0 /usr/include/bits/stdio.h +21266 11024117 1776766428000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11024118 1776766428000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +15326 11024213 1776766428000000000 dd0cebc61fc90f380c881a1cbd85230a 0 /usr/include/time.h +3331 11023919 1776766428000000000 d088285f55f90486f8680c7de68e427d 0 /usr/include/bits/time.h +6203 11023923 1776766428000000000 ccfa5c0039c1ddbdb09c6db5d1922cc3 0 /usr/include/bits/timex.h +760 11023970 1776766428000000000 3cf515d0336ee94d22cc413b45febc49 0 /usr/include/bits/types/struct_tm.h +288 11023951 1776766428000000000 2de06c14c40bd39deaf2f372dace4ac7 0 /usr/include/bits/types/struct_itimerspec.h +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +557459 15592112 1777923927256426522 2ee4da35738ca3fd429e246ffcc4e963 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glad.h +27519 15568253 1777922721701272909 1bf965d23c79a082ac103b8d4944724e 1 include/stdint.h +8268 11024113 1776766428000000000 07868a6486476f79d1af8befa09ff966 0 /usr/include/stdint.h +1906 11023987 1776766428000000000 eb31012558f3028fc2c3c0def47ccc8a 0 /usr/include/bits/wchar.h +1049 11023885 1776766428000000000 df8b58b124e95d233ec646186fc72d07 0 /usr/include/bits/stdint-uintn.h +1305 11023884 1776766428000000000 e13a68eb8203cd6be160c31f99d931f7 0 /usr/include/bits/stdint-least.h +90849 15592263 1777923927287426462 db41cf17388962b34436c4fde7782f23 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raymath.h +22533 15592266 1777923927288426459 cbeefe4aa2ae48eebcd037e4f86c02e6 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rgestures.h +22184 15592264 1777923927287426462 cd673acb0eee1d11118f9c543c1b96ed 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rcamera.h +21703 15592233 1777923927279426477 a147737b6c68b2b89f993a9fe8b5e03b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/sinfl.h +6841 11023755 1776766428000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +28109 15592232 1777923927279426477 9a39a8073b251d465d23f4f98d4d0e0b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/sdefl.h +3794 15568174 1777922721699272917 42f44f0344ca976c19820ae587ff2c10 1 include/limits.h +5839 11024036 1776766428000000000 93606ee9e7d5800ac5b8e3efedd3f157 0 /usr/include/limits.h +5198 11023832 1776766428000000000 a6dd17f359e45199ea5666f65b1113a6 0 /usr/include/bits/posix1_lim.h +3175 11023807 1776766428000000000 b08b1c7bc1b5a70132a5b8b175b8c0db 0 /usr/include/bits/local_lim.h +937 8943972 1770625897000000000 65da8eafce628e0f5da011204e471ee0 0 /usr/include/linux/limits.h +1214 11023840 1776766428000000000 2fe7b4205802733911a5efa9b71bb5e6 0 /usr/include/bits/pthread_stack_min-dynamic.h +2867 11023833 1776766428000000000 7d8aa86701e9a380845c5cd8a669e984 0 /usr/include/bits/posix2_lim.h +3858 11023992 1776766428000000000 6056c22530b9b6e43d3215eee277a553 0 /usr/include/bits/xopen_lim.h +1385 11023977 1776766428000000000 59219f4f906088fd1473df647db44849 0 /usr/include/bits/uio_lim.h +11631 15592231 1777923927279426477 e20f072c356800ba394b5b82e64a3a40 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/rprand.h +45053 11024218 1776766428000000000 61decd3126c9fca1538df8298cac1894 0 /usr/include/unistd.h +5910 11023834 1776766428000000000 3ab8ab6e5779785e032604f1768b415c 0 /usr/include/bits/posix_opt.h +3791 11023770 1776766428000000000 e918da89dc6f1bc95caac7b9e99e3ccc 0 /usr/include/bits/environments.h +23828 11023761 1776766428000000000 9cf65881ab165e5e8e291a2f7fcd0a71 0 /usr/include/bits/confname.h +1810 11023789 1776766428000000000 996cb3fd9509868b01621c74e4a86ade 0 /usr/include/bits/getopt_posix.h +3667 11023787 1776766428000000000 ac9188a8d7cc4aac4ca3ac108e99f032 0 /usr/include/bits/getopt_core.h +2035 11023980 1776766428000000000 0cb61ab97cf5643355f3236fdfb9904c 0 /usr/include/bits/unistd_ext.h +377 8943771 1770625897000000000 7ed06359dec8788b24849d80d4e70c9a 0 /usr/include/linux/close_range.h +13793 11024176 1776766428000000000 9f12c6bf198df3a88c2d747996baf030 0 /usr/include/sys/stat.h +2231 11023878 1776766428000000000 eeced79f6a58db284452746e269ed387 0 /usr/include/bits/stat.h +6210 11023899 1776766428000000000 2fe01a59de528f1892df1bc5eef7c7cc 0 /usr/include/bits/struct_stat.h +1400 11023882 1776766428000000000 2002a64c42584c7d184facbe3d81a350 0 /usr/include/bits/statx.h +7838 8944322 1770625897000000000 c0813c1096a17ee5a243bf75dcb7977a 0 /usr/include/linux/stat.h +1829 8944384 1770625897000000000 64ed48c0a52d7d50d7685f6332d61a80 0 /usr/include/linux/types.h +31 8943632 1770625897000000000 748039e47be584104c75dc853bfee6d8 0 /usr/include/asm/types.h +233 8943572 1770625897000000000 ff35ee9081c54a4556677db7b6ac43bd 0 /usr/include/asm-generic/types.h +864 8943546 1770625897000000000 de8f38f0cdc81bf3a5b301889f3dc586 0 /usr/include/asm-generic/int-ll64.h +321 8943578 1770625897000000000 426fd8fd87f0a7222c2d8dc0b1c11a1e 0 /usr/include/asm/bitsperlong.h +1092 8943539 1770625897000000000 ea09d2bd626e1051f84d4ecee37ba039 0 /usr/include/asm-generic/bitsperlong.h +1098 8944239 1770625897000000000 d50b3f49c69b44a5ecd1f232af677d5e 0 /usr/include/linux/posix_types.h +2135 8944323 1770625897000000000 7f1dcecb733611ba8bc38c8fa69c11bb 0 /usr/include/linux/stddef.h +224 8943606 1770625897000000000 d200bb7a30c7371a4580f935befe5542 0 /usr/include/asm/posix_types.h +609 8943608 1770625897000000000 45284a1e84848c31de23d3bd515534ee 0 /usr/include/asm/posix_types_64.h +2420 8943556 1770625897000000000 27c6e0a2b3849c0a9a5f71c86e17deb5 0 /usr/include/asm-generic/posix_types.h +2409 11023881 1776766428000000000 1ca18c39930458d2b106898c1f1ed517 0 /usr/include/bits/statx-generic.h +1202 11023966 1776766428000000000 adf1f98ff50dc6da3f9c81c1f7718940 0 /usr/include/bits/types/struct_statx_timestamp.h +2248 11023965 1776766428000000000 13e0688c779dbc994826255da64ed106 0 /usr/include/bits/types/struct_statx.h +12617 11023997 1776766428000000000 f18eaf57a7b514f3b577f9f5a6bc2d33 0 /usr/include/dirent.h +1771 11023763 1776766428000000000 23e0e14a4e8b16a68e0bc2941bc51c70 0 /usr/include/bits/dirent.h +1275 11023764 1776766428000000000 05d55b8f8aff261c558e2bf919c00c3e 0 /usr/include/bits/dirent_ext.h +93702 15592247 1777923927284426468 9bce58225fa3dedb03ed4cab5c2b195a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/platforms/rcore_desktop_glfw.c +241826 15592156 1777923927261426513 86501dc510331da26275322e654ec46a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3.h +417 15568047 1777922721690272950 d2edf43390585163b0f70c6bd1d7e3b7 1 include/__stddef_header_macro.h +717 15568052 1777922721690272950 81288588f2bdd7ac4f213fa113429ef2 1 include/__stddef_ptrdiff_t.h +708 15568051 1777922721690272950 04b70454bf7cdd0c492cfaf134f95be7 1 include/__stddef_offsetof.h +9164 11024185 1776766428000000000 d2e1b3053beaf053af8a55c6a804fde1 0 /usr/include/sys/time.h +21201 15592157 1777923927261426513 368cd78bfbe5e29e658aa2a5326f9063 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3native.h +99801 11320731 1770539241000000000 f2e7c6c90e11927568ff931d109f936c 0 /usr/include/X11/Xlib.h +20137 7769018 1766144024000000000 382791d667a3393547f807899249bfc0 0 /usr/include/X11/X.h +7946 7769025 1766144024000000000 8a5039c8a7aa3a4eab5f7181393ac108 0 /usr/include/X11/Xfuncproto.h +3115 7769030 1766144024000000000 d53b0559a65c0bcdb77ed0459f1b9976 0 /usr/include/X11/Xosdefs.h +17060 11321897 1769439156000000000 1884746db8290f2b31b7f8451b1cf4b3 0 /usr/include/X11/extensions/Xrandr.h +6909 7769087 1766144024000000000 401965d00acc575149fba334f8bc506d 0 /usr/include/X11/extensions/randr.h +33826 96756 1734163523000000000 cd6d26a1a49037b6952f6ad6add5241b 0 /usr/include/X11/extensions/Xrender.h +21355 11320737 1770539241000000000 52ce1ad0b2c8b33c883e4de9cf2e58fc 0 /usr/include/X11/Xutil.h +2769 7769135 1766144024000000000 0d41ae60a19d8f9ba25f1763119261cc 0 /usr/include/X11/keysym.h +186629 7769136 1766144024000000000 bd52d531f256dfa6f7971ce3c84e5d8b 0 /usr/include/X11/keysymdef.h +6933 7769092 1766144024000000000 f3454f10c8ec914bc2cacc67ae344c58 0 /usr/include/X11/extensions/render.h +2401 7769024 1766144024000000000 8c25483e69b3966a7bf02ad71233d30b 0 /usr/include/X11/Xdefs.h +2518 7769023 1766144024000000000 a6ecf58bbcdb259e383e67043e2a7022 0 /usr/include/X11/Xatom.h diff --git a/.zig-cache/h/82da896ba7b21f119fb515d6895acf9d.txt b/.zig-cache/h/82da896ba7b21f119fb515d6895acf9d.txt new file mode 100644 index 0000000..dfe6a56 --- /dev/null +++ b/.zig-cache/h/82da896ba7b21f119fb515d6895acf9d.txt @@ -0,0 +1,265 @@ +0 +6000 15592267 1777923927288426459 c08daa562131e2220de1a06bca726720 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rglfw.c +14504 15592172 1777923927262426511 b27f6b3bb53bc837cf7ea3290ce6416e 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/init.c +35817 15592174 1777923927262426511 f72e6da24b2e8dc2c561d4faf974a05c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/internal.h +241826 15592156 1777923927261426513 86501dc510331da26275322e654ec46a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +417 15568047 1777922721690272950 d2edf43390585163b0f70c6bd1d7e3b7 1 include/__stddef_header_macro.h +717 15568052 1777922721690272950 81288588f2bdd7ac4f213fa113429ef2 1 include/__stddef_ptrdiff_t.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +708 15568051 1777922721690272950 04b70454bf7cdd0c492cfaf134f95be7 1 include/__stddef_offsetof.h +27519 15568253 1777922721701272909 1bf965d23c79a082ac103b8d4944724e 1 include/stdint.h +8268 11024113 1776766428000000000 07868a6486476f79d1af8befa09ff966 0 /usr/include/stdint.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +1906 11023987 1776766428000000000 eb31012558f3028fc2c3c0def47ccc8a 0 /usr/include/bits/wchar.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +1049 11023885 1776766428000000000 df8b58b124e95d233ec646186fc72d07 0 /usr/include/bits/stdint-uintn.h +1305 11023884 1776766428000000000 e13a68eb8203cd6be160c31f99d931f7 0 /usr/include/bits/stdint-least.h +6421 15592189 1777923927264426507 9430a43cbffb7932dc5ccfe1bf2d0807 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/platform.h +11827 15592185 1777923927264426507 4beac7be71da25898297d83d4e922499 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/null_platform.h +44741 15592217 1777923927266426503 6868a25f2f702569928920058ddd21bf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_platform.h +45053 11024218 1776766428000000000 61decd3126c9fca1538df8298cac1894 0 /usr/include/unistd.h +5910 11023834 1776766428000000000 3ab8ab6e5779785e032604f1768b415c 0 /usr/include/bits/posix_opt.h +3791 11023770 1776766428000000000 e918da89dc6f1bc95caac7b9e99e3ccc 0 /usr/include/bits/environments.h +23828 11023761 1776766428000000000 9cf65881ab165e5e8e291a2f7fcd0a71 0 /usr/include/bits/confname.h +1810 11023789 1776766428000000000 996cb3fd9509868b01621c74e4a86ade 0 /usr/include/bits/getopt_posix.h +3667 11023787 1776766428000000000 ac9188a8d7cc4aac4ca3ac108e99f032 0 /usr/include/bits/getopt_core.h +2035 11023980 1776766428000000000 0cb61ab97cf5643355f3236fdfb9904c 0 /usr/include/bits/unistd_ext.h +377 8943771 1770625897000000000 7ed06359dec8788b24849d80d4e70c9a 0 /usr/include/linux/close_range.h +13045 11024108 1776766428000000000 efc9e225e109bb08a8dec4661ace2e4c 0 /usr/include/signal.h +3313 11023866 1776766428000000000 c7b07d26fe58fc7ceff1ae4edad8acd6 0 /usr/include/bits/signum-generic.h +2580 11023865 1776766428000000000 500defef7a2bd9a9e56449a3aea3b0f9 0 /usr/include/bits/signum-arch.h +272 11023942 1776766428000000000 52033494d2efb18f3ae4d42d90be994c 0 /usr/include/bits/types/sig_atomic_t.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +3892 11023944 1776766428000000000 9f30a8a17236994ddab5a49513bee1c1 0 /usr/include/bits/types/siginfo_t.h +1148 11023932 1776766428000000000 cef99022964de0d2a9bb4a66335a242a 0 /usr/include/bits/types/__sigval_t.h +729 11023860 1776766428000000000 732ba145bdaaec5752d3851d994fb038 0 /usr/include/bits/siginfo-arch.h +7537 11023862 1776766428000000000 4397eb5131c9e02a702340cc690db708 0 /usr/include/bits/siginfo-consts.h +204 11023861 1776766428000000000 070bf764547621a5cbd9eca15e56bf40 0 /usr/include/bits/siginfo-consts-arch.h +599 11023946 1776766428000000000 9a9be4e0a7b8d98d52679616ab1b7362 0 /usr/include/bits/types/sigval_t.h +1204 11023943 1776766428000000000 ab141640b4254a15993e20837b92ffa9 0 /usr/include/bits/types/sigevent_t.h +1471 11023859 1776766428000000000 2763ca41204119b32bf53713071bb096 0 /usr/include/bits/sigevent-consts.h +2935 11023857 1776766428000000000 abb4550dd27d1f45d7bd71b5a552f386 0 /usr/include/bits/sigaction.h +4266 11023858 1776766428000000000 8e4aadcbffc06002a69da0003c1793a1 0 /usr/include/bits/sigcontext.h +1062 11023947 1776766428000000000 3418e41d444a3efa09c1989618745709 0 /usr/include/bits/types/stack_t.h +5842 11024193 1776766428000000000 3850964a3dfeecfdf8d6341ce10a867b 0 /usr/include/sys/ucontext.h +1168 11023867 1776766428000000000 8d25e4dc4342ca228643759acadb8af6 0 /usr/include/bits/sigstack.h +1283 11023868 1776766428000000000 3177a841d4601f625a64ad164ae45250 0 /usr/include/bits/sigstksz.h +1188 11023876 1776766428000000000 0a23e9e025646d8d7930c5f34b481456 0 /usr/include/bits/ss_flags.h +1073 11023964 1776766428000000000 6ec7e47258c49e849f75f41527e676a0 0 /usr/include/bits/types/struct_sigstack.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1692 11023869 1776766428000000000 bc31047fff5a76a10c2880762a977d27 0 /usr/include/bits/sigthread.h +1285 11023863 1776766428000000000 368ef36453d66bf3b3d3595424daf7ac 0 /usr/include/bits/signal_ext.h +99801 8947721 1770539241000000000 f2e7c6c90e11927568ff931d109f936c 0 /usr/include/X11/Xlib.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +20137 7769018 1766144024000000000 382791d667a3393547f807899249bfc0 0 /usr/include/X11/X.h +7946 7769025 1766144024000000000 8a5039c8a7aa3a4eab5f7181393ac108 0 /usr/include/X11/Xfuncproto.h +3115 7769030 1766144024000000000 d53b0559a65c0bcdb77ed0459f1b9976 0 /usr/include/X11/Xosdefs.h +2769 7769135 1766144024000000000 0d41ae60a19d8f9ba25f1763119261cc 0 /usr/include/X11/keysym.h +186629 7769136 1766144024000000000 bd52d531f256dfa6f7971ce3c84e5d8b 0 /usr/include/X11/keysymdef.h +2518 7769023 1766144024000000000 a6ecf58bbcdb259e383e67043e2a7022 0 /usr/include/X11/Xatom.h +10628 8947726 1770539241000000000 9b0233263c20c2e8be88d5e81fbf2202 0 /usr/include/X11/Xresource.h +13200 96705 1730878554000000000 3e56a893977bb933a42f01ba8765a1e8 0 /usr/include/X11/Xcursor/Xcursor.h +34258 11024114 1776766428000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +381 11023928 1776766428000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11023930 1776766428000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11023927 1776766428000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11023926 1776766428000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11023925 1776766428000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11023948 1776766428000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11023935 1776766428000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11023890 1776766428000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +17060 8741258 1769439156000000000 1884746db8290f2b31b7f8451b1cf4b3 0 /usr/include/X11/extensions/Xrandr.h +6909 7769087 1766144024000000000 401965d00acc575149fba334f8bc506d 0 /usr/include/X11/extensions/randr.h +33826 96756 1734163523000000000 cd6d26a1a49037b6952f6ad6add5241b 0 /usr/include/X11/extensions/Xrender.h +21355 8947727 1770539241000000000 52ce1ad0b2c8b33c883e4de9cf2e58fc 0 /usr/include/X11/Xutil.h +6933 7769092 1766144024000000000 f3454f10c8ec914bc2cacc67ae344c58 0 /usr/include/X11/extensions/render.h +2401 7769024 1766144024000000000 8c25483e69b3966a7bf02ad71233d30b 0 /usr/include/X11/Xdefs.h +30994 8947718 1770539241000000000 658cd959aab5d6441ea7ca46bbfcb740 0 /usr/include/X11/XKBlib.h +19697 7769051 1766144024000000000 1231e8955febccf3c025770c66a93818 0 /usr/include/X11/extensions/XKBstr.h +28212 7769048 1766144024000000000 6a2dd9db6376855e6a13ac1dc2254091 0 /usr/include/X11/extensions/XKB.h +1964 8741283 1769438631000000000 8307bc8fd193fbd4b22c24a07b9e56ad 0 /usr/include/X11/extensions/Xinerama.h +21969 96734 1725514872000000000 f898f73ab9f0b0455f75ad7e86f933d4 0 /usr/include/X11/extensions/XInput2.h +11151 7769045 1766144024000000000 f4e9b097c0ff2c41507c68b4960a37cb 0 /usr/include/X11/extensions/XI2.h +1928 8741105 1769438528000000000 4e4a900ecc48c6c5eaaadb164d67df47 0 /usr/include/X11/extensions/Xge.h +7750 4242540 1756837749000000000 0d98a55dff8c00f367e9aece0d0a1143 0 /usr/include/X11/extensions/Xfixes.h +5924 7769123 1766144024000000000 b5e9bd0eec3d3c1748a593e505171a71 0 /usr/include/X11/extensions/xfixeswire.h +4132 8741110 1769438528000000000 8aaad0750a17168ab35987a0fd39ecf0 0 /usr/include/X11/extensions/shape.h +1878 7769098 1766144024000000000 104206d1aae79c53870ed605be13e54f 0 /usr/include/X11/extensions/shapeconst.h +1288 15592220 1777923927267426501 e581c6e4cdd807e79c0a665fc1bb619f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/xkb_unicode.h +1292 15592192 1777923927264426507 c453ea96e91669ea925c8bfb93fe5bb7 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_poll.h +22 11024084 1776766428000000000 0ea58fcbabea8c4434197b25c0da0032 0 /usr/include/poll.h +3030 11024151 1776766428000000000 fdfc712b78cbcaa0020d4464fb281b64 0 /usr/include/sys/poll.h +2076 11023830 1776766428000000000 d4de1743efaa71a7637fb37b349b20f7 0 /usr/include/bits/poll.h +1424 15592183 1777923927263426509 9ae4151868a02c1a8ea9749672383fb1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/null_joystick.h +2322 15592176 1777923927262426511 a5affdc2a0143346be41f93f566b6938 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/linux_joystick.h +16913 8943925 1770625897000000000 19cc0a8c96115bd0b4fbe906dc1f6915 0 /usr/include/linux/input.h +9164 11024185 1776766428000000000 d2e1b3053beaf053af8a55c6a804fde1 0 /usr/include/sys/time.h +2032 11024137 1776766428000000000 cbe6601caeaa9849483d92383653843e 0 /usr/include/sys/ioctl.h +1005 11023798 1776766428000000000 38935023d2f5efc233bbd63192a23f93 0 /usr/include/bits/ioctls.h +32 8943591 1770625897000000000 1014a0ae33d0bed260382fbd3c912982 0 /usr/include/asm/ioctls.h +3987 8943548 1770625897000000000 d4ce71e9aa1f00a5b67c8b21b6a30d5b 0 /usr/include/asm-generic/ioctls.h +163 8943932 1770625897000000000 9a139ff78a7a978a13a83c0722fc021d 0 /usr/include/linux/ioctl.h +31 8943590 1770625897000000000 5f11f2dd8e479e58c3cf546e72403770 0 /usr/include/asm/ioctl.h +3518 8943547 1770625897000000000 4b7aa229557b073687359ca327709a32 0 /usr/include/asm-generic/ioctl.h +6846 8944315 1770625897000000000 d2b055f7283492c05492a5924f94aec4 0 /usr/include/linux/sockios.h +321 8943578 1770625897000000000 426fd8fd87f0a7222c2d8dc0b1c11a1e 0 /usr/include/asm/bitsperlong.h +1092 8943539 1770625897000000000 ea09d2bd626e1051f84d4ecee37ba039 0 /usr/include/asm-generic/bitsperlong.h +33 8943625 1770625897000000000 ddabb13f9fd87bf61e5f15f7a99b4729 0 /usr/include/asm/sockios.h +447 8943565 1770625897000000000 e503e15c8b0357f68274467ba5f06da4 0 /usr/include/asm-generic/sockios.h +2089 11023797 1776766428000000000 93897a02d50af887190f5248a717605e 0 /usr/include/bits/ioctl-types.h +3568 11024191 1776766428000000000 7fd74c28a21229e87ba5588cee27bd8c 0 /usr/include/sys/ttydefaults.h +1829 8944384 1770625897000000000 64ed48c0a52d7d50d7685f6332d61a80 0 /usr/include/linux/types.h +31 8943632 1770625897000000000 748039e47be584104c75dc853bfee6d8 0 /usr/include/asm/types.h +233 8943572 1770625897000000000 ff35ee9081c54a4556677db7b6ac43bd 0 /usr/include/asm-generic/types.h +864 8943546 1770625897000000000 de8f38f0cdc81bf3a5b301889f3dc586 0 /usr/include/asm-generic/int-ll64.h +1098 8944239 1770625897000000000 d50b3f49c69b44a5ecd1f232af677d5e 0 /usr/include/linux/posix_types.h +2135 8944323 1770625897000000000 7f1dcecb733611ba8bc38c8fa69c11bb 0 /usr/include/linux/stddef.h +224 8943606 1770625897000000000 d200bb7a30c7371a4580f935befe5542 0 /usr/include/asm/posix_types.h +609 8943608 1770625897000000000 45284a1e84848c31de23d3bd515534ee 0 /usr/include/asm/posix_types_64.h +2420 8943556 1770625897000000000 27c6e0a2b3849c0a9a5f71c86e17deb5 0 /usr/include/asm-generic/posix_types.h +31350 8943924 1770625897000000000 7eb002eb71a3e9a208ffc627561eda0b 0 /usr/include/linux/input-event-codes.h +937 8943972 1770625897000000000 65da8eafce628e0f5da011204e471ee0 0 /usr/include/linux/limits.h +25940 11024095 1776766428000000000 d3d9037b10d420aa0b919ad6d97bdab1 0 /usr/include/regex.h +1674 15592194 1777923927264426507 4c75518582750b9acebe3f524a3ea420 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_thread.h +48570 11024091 1776766428000000000 df73001c3d08af59a57b790c20f13f2a 0 /usr/include/pthread.h +5043 11024099 1776766428000000000 e6a51b852746c12c94ed682ec128431b 0 /usr/include/sched.h +5952 11023847 1776766428000000000 0926186d78c26fdbfea09ab846c93da9 0 /usr/include/bits/sched.h +4558 8944287 1770625897000000000 13cfeea4f632939bde4c2db64ec930ff 0 /usr/include/linux/sched/types.h +1073 11023957 1776766428000000000 fd5bfcedcccd0699759e0e9b4b5f31d2 0 /usr/include/bits/types/struct_sched_param.h +4516 11023762 1776766428000000000 eab9f52a0722cf3bd47401680264c9bd 0 /usr/include/bits/cpu-set.h +15326 11024213 1776766428000000000 dd0cebc61fc90f380c881a1cbd85230a 0 /usr/include/time.h +3331 11023919 1776766428000000000 d088285f55f90486f8680c7de68e427d 0 /usr/include/bits/time.h +6203 11023923 1776766428000000000 ccfa5c0039c1ddbdb09c6db5d1922cc3 0 /usr/include/bits/timex.h +760 11023970 1776766428000000000 3cf515d0336ee94d22cc413b45febc49 0 /usr/include/bits/types/struct_tm.h +288 11023951 1776766428000000000 2de06c14c40bd39deaf2f372dace4ac7 0 /usr/include/bits/types/struct_itimerspec.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +1287 11023853 1776766428000000000 81b3c862d757d31fa9585485df82c1f6 0 /usr/include/bits/setjmp.h +1467 11023949 1776766428000000000 c65b4aa95fccac40bd98fee3ba150e60 0 /usr/include/bits/types/struct___jmp_buf_tag.h +1214 11023840 1776766428000000000 2fe7b4205802733911a5efa9b71bb5e6 0 /usr/include/bits/pthread_stack_min-dynamic.h +1489 15592196 1777923927264426507 d9c9c16faccc333851fa1d1a1a9c0e0f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_time.h +21201 15592157 1777923927261426513 368cd78bfbe5e29e658aa2a5326f9063 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3native.h +21266 11024117 1776766428000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11024118 1776766428000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +6841 11023755 1776766428000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +6332 15592188 1777923927264426507 e46b39fefa824d3bef7915a22a3cbeab 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/platform.c +25760 15592168 1777923927262426511 91513c3fe4d6179408927b6f25a20e31 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/context.c +3794 15568174 1777922721699272917 42f44f0344ca976c19820ae587ff2c10 1 include/limits.h +5839 11024036 1776766428000000000 93606ee9e7d5800ac5b8e3efedd3f157 0 /usr/include/limits.h +5198 11023832 1776766428000000000 a6dd17f359e45199ea5666f65b1113a6 0 /usr/include/bits/posix1_lim.h +3175 11023807 1776766428000000000 b08b1c7bc1b5a70132a5b8b175b8c0db 0 /usr/include/bits/local_lim.h +2867 11023833 1776766428000000000 7d8aa86701e9a380845c5cd8a669e984 0 /usr/include/bits/posix2_lim.h +3858 11023992 1776766428000000000 6056c22530b9b6e43d3215eee277a553 0 /usr/include/bits/xopen_lim.h +1385 11023977 1776766428000000000 59219f4f906088fd1473df647db44849 0 /usr/include/bits/uio_lim.h +15194 15592179 1777923927263426509 cc2653c900eea5854d3118df97d564cc 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/monitor.c +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +6268 15568152 1777922721698272920 f23d0597dbe24fbef0b9db0a6a912bdb 1 include/float.h +35148 15592210 1777923927265426505 371ef2deaaf656211c21bd031730bc45 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/window.c +41395 15592173 1777923927262426511 fd2bdc39d9a0f3e9cbdf4151a429af0b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/input.c +504825 15592177 1777923927263426509 e792314d005187ea839d8a118bf5a826 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/mappings.h +11947 15592197 1777923927264426507 a6026f9e8a003c782bd514b578ed47fb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/vulkan.c +1816 15592190 1777923927264426507 becad53c5bcd77daf7f13b36a669ff80 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_module.c +8794 11023998 1776766428000000000 1e941a0fcec84e68e593320606a258d5 0 /usr/include/dlfcn.h +2521 11023766 1776766428000000000 ce423e8702be28530185e4b09b199fdf 0 /usr/include/bits/dlfcn.h +1119 11023765 1776766428000000000 212bcf73af743c3898fdc9ef533a0cbf 0 /usr/include/bits/dl_find_object.h +3245 15592193 1777923927264426507 6da2432577062b037d05bf9685421152 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_thread.c +2206 15592195 1777923927264426507 f4c2594a47b4f565719a8a5a9f0a444c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_time.c +3044 15592191 1777923927264426507 34fbca07f16ff7c4f5d37b58374af726 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_poll.c +1679 11024003 1776766428000000000 abb7aa3ce3560985cdcc5222002abe0a 0 /usr/include/errno.h +1426 11023773 1776766428000000000 f5901b3b5db0a666bc76fe7ac755756b 0 /usr/include/bits/errno.h +23 8943817 1770625897000000000 0e9514526df5411989c0921d62c34bb0 0 /usr/include/linux/errno.h +31 8943586 1770625897000000000 303204c8e8dd5d0b26a8bbfede43c812 0 /usr/include/asm/errno.h +5648 8943542 1770625897000000000 8becdc7faaf464f4f03c90038b9730e0 0 /usr/include/asm-generic/errno.h +1612 8943541 1770625897000000000 9e53730016da2684ae9a8bb2284166de 0 /usr/include/asm-generic/errno-base.h +894 11023936 1776766428000000000 21d9a2571870c420b53485fe487743c5 0 /usr/include/bits/types/error_t.h +12404 15592175 1777923927262426511 ebe2a4724621dc831b6c06e12f74d4d5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/linux_joystick.c +13793 11024176 1776766428000000000 9f12c6bf198df3a88c2d747996baf030 0 /usr/include/sys/stat.h +2231 11023878 1776766428000000000 eeced79f6a58db284452746e269ed387 0 /usr/include/bits/stat.h +6210 11023899 1776766428000000000 2fe01a59de528f1892df1bc5eef7c7cc 0 /usr/include/bits/struct_stat.h +1400 11023882 1776766428000000000 2002a64c42584c7d184facbe3d81a350 0 /usr/include/bits/statx.h +7838 8944322 1770625897000000000 c0813c1096a17ee5a243bf75dcb7977a 0 /usr/include/linux/stat.h +2409 11023881 1776766428000000000 1ca18c39930458d2b106898c1f1ed517 0 /usr/include/bits/statx-generic.h +1202 11023966 1776766428000000000 adf1f98ff50dc6da3f9c81c1f7718940 0 /usr/include/bits/types/struct_statx_timestamp.h +2248 11023965 1776766428000000000 13e0688c779dbc994826255da64ed106 0 /usr/include/bits/types/struct_statx.h +3901 11024135 1776766428000000000 51573e40baf39611dae19b6b79da6b5a 0 /usr/include/sys/inotify.h +1080 11023796 1776766428000000000 23db2031318a86cc91c8de94ba8271de 0 /usr/include/bits/inotify.h +11458 11024006 1776766428000000000 6761c01cab1e7a637ff70b712787863d 0 /usr/include/fcntl.h +2246 11023779 1776766428000000000 230f6d44354f98fab2643bb2fe61a31c 0 /usr/include/bits/fcntl.h +15826 11023778 1776766428000000000 a89c09049a7837aa75452e239a5650fd 0 /usr/include/bits/fcntl-linux.h +1066 11023950 1776766428000000000 930adb19f5f9cbc3933b958f4a1e5ffa 0 /usr/include/bits/types/struct_iovec.h +4477 8943829 1770625897000000000 cb9419cc89a7af265a184c1f6f002f00 0 /usr/include/linux/falloc.h +1450 8944213 1770625897000000000 dfc953efad59381f85cedbcaf15d1f22 0 /usr/include/linux/openat2.h +2041 11023826 1776766428000000000 7fb288a7769cdc7b7a64bda1f15cccd2 0 /usr/include/bits/openat2.h +12617 11023997 1776766428000000000 f18eaf57a7b514f3b577f9f5a6bc2d33 0 /usr/include/dirent.h +1771 11023763 1776766428000000000 23e0e14a4e8b16a68e0bc2941bc51c70 0 /usr/include/bits/dirent.h +1275 11023764 1776766428000000000 05d55b8f8aff261c558e2bf919c00c3e 0 /usr/include/bits/dirent_ext.h +22943 15592219 1777923927267426501 61daf1865cea794f6fe989a933855d52 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/xkb_unicode.c +29639 15592169 1777923927262426511 1a0561496727613edebd464a7417f6c3 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/egl_context.c +11935 15592187 1777923927264426507 4c3e6494b0bcc0aee47c28a18bda9100 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/osmesa_context.c +70569 15592215 1777923927266426503 95309a7537992a74bb2bc4bf449110d0 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_init.c +7675 11024038 1776766428000000000 f38e3af658cf4e4d245a435a9a10f0a0 0 /usr/include/locale.h +1368 11023808 1776766428000000000 a15e215b176aca549a08eeec063be072 0 /usr/include/bits/locale.h +20136 15592216 1777923927266426503 fb57e4d2291d8c29f447b0cda750a942 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_monitor.c +106419 15592218 1777923927267426501 71a3c2a523df63f5cb929d61fe0824c3 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_window.c +3118 8947728 1770539241000000000 49c18fff52345f9fbca72361b14cde5c 0 /usr/include/X11/cursorfont.h +5236 7769027 1766144024000000000 d1fbdb8a1a35d2391ee2c34805ef3f1e 0 /usr/include/X11/Xmd.h +23690 15592171 1777923927262426511 38704d9b41375b7557c5fe54e0e4eb99 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/glx_context.c diff --git a/.zig-cache/h/83e5d49e3b5b8cafa7f3294c79986316.txt b/.zig-cache/h/83e5d49e3b5b8cafa7f3294c79986316.txt new file mode 100644 index 0000000..dfe6a56 --- /dev/null +++ b/.zig-cache/h/83e5d49e3b5b8cafa7f3294c79986316.txt @@ -0,0 +1,265 @@ +0 +6000 15592267 1777923927288426459 c08daa562131e2220de1a06bca726720 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rglfw.c +14504 15592172 1777923927262426511 b27f6b3bb53bc837cf7ea3290ce6416e 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/init.c +35817 15592174 1777923927262426511 f72e6da24b2e8dc2c561d4faf974a05c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/internal.h +241826 15592156 1777923927261426513 86501dc510331da26275322e654ec46a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +417 15568047 1777922721690272950 d2edf43390585163b0f70c6bd1d7e3b7 1 include/__stddef_header_macro.h +717 15568052 1777922721690272950 81288588f2bdd7ac4f213fa113429ef2 1 include/__stddef_ptrdiff_t.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +708 15568051 1777922721690272950 04b70454bf7cdd0c492cfaf134f95be7 1 include/__stddef_offsetof.h +27519 15568253 1777922721701272909 1bf965d23c79a082ac103b8d4944724e 1 include/stdint.h +8268 11024113 1776766428000000000 07868a6486476f79d1af8befa09ff966 0 /usr/include/stdint.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +1906 11023987 1776766428000000000 eb31012558f3028fc2c3c0def47ccc8a 0 /usr/include/bits/wchar.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +1049 11023885 1776766428000000000 df8b58b124e95d233ec646186fc72d07 0 /usr/include/bits/stdint-uintn.h +1305 11023884 1776766428000000000 e13a68eb8203cd6be160c31f99d931f7 0 /usr/include/bits/stdint-least.h +6421 15592189 1777923927264426507 9430a43cbffb7932dc5ccfe1bf2d0807 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/platform.h +11827 15592185 1777923927264426507 4beac7be71da25898297d83d4e922499 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/null_platform.h +44741 15592217 1777923927266426503 6868a25f2f702569928920058ddd21bf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_platform.h +45053 11024218 1776766428000000000 61decd3126c9fca1538df8298cac1894 0 /usr/include/unistd.h +5910 11023834 1776766428000000000 3ab8ab6e5779785e032604f1768b415c 0 /usr/include/bits/posix_opt.h +3791 11023770 1776766428000000000 e918da89dc6f1bc95caac7b9e99e3ccc 0 /usr/include/bits/environments.h +23828 11023761 1776766428000000000 9cf65881ab165e5e8e291a2f7fcd0a71 0 /usr/include/bits/confname.h +1810 11023789 1776766428000000000 996cb3fd9509868b01621c74e4a86ade 0 /usr/include/bits/getopt_posix.h +3667 11023787 1776766428000000000 ac9188a8d7cc4aac4ca3ac108e99f032 0 /usr/include/bits/getopt_core.h +2035 11023980 1776766428000000000 0cb61ab97cf5643355f3236fdfb9904c 0 /usr/include/bits/unistd_ext.h +377 8943771 1770625897000000000 7ed06359dec8788b24849d80d4e70c9a 0 /usr/include/linux/close_range.h +13045 11024108 1776766428000000000 efc9e225e109bb08a8dec4661ace2e4c 0 /usr/include/signal.h +3313 11023866 1776766428000000000 c7b07d26fe58fc7ceff1ae4edad8acd6 0 /usr/include/bits/signum-generic.h +2580 11023865 1776766428000000000 500defef7a2bd9a9e56449a3aea3b0f9 0 /usr/include/bits/signum-arch.h +272 11023942 1776766428000000000 52033494d2efb18f3ae4d42d90be994c 0 /usr/include/bits/types/sig_atomic_t.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +3892 11023944 1776766428000000000 9f30a8a17236994ddab5a49513bee1c1 0 /usr/include/bits/types/siginfo_t.h +1148 11023932 1776766428000000000 cef99022964de0d2a9bb4a66335a242a 0 /usr/include/bits/types/__sigval_t.h +729 11023860 1776766428000000000 732ba145bdaaec5752d3851d994fb038 0 /usr/include/bits/siginfo-arch.h +7537 11023862 1776766428000000000 4397eb5131c9e02a702340cc690db708 0 /usr/include/bits/siginfo-consts.h +204 11023861 1776766428000000000 070bf764547621a5cbd9eca15e56bf40 0 /usr/include/bits/siginfo-consts-arch.h +599 11023946 1776766428000000000 9a9be4e0a7b8d98d52679616ab1b7362 0 /usr/include/bits/types/sigval_t.h +1204 11023943 1776766428000000000 ab141640b4254a15993e20837b92ffa9 0 /usr/include/bits/types/sigevent_t.h +1471 11023859 1776766428000000000 2763ca41204119b32bf53713071bb096 0 /usr/include/bits/sigevent-consts.h +2935 11023857 1776766428000000000 abb4550dd27d1f45d7bd71b5a552f386 0 /usr/include/bits/sigaction.h +4266 11023858 1776766428000000000 8e4aadcbffc06002a69da0003c1793a1 0 /usr/include/bits/sigcontext.h +1062 11023947 1776766428000000000 3418e41d444a3efa09c1989618745709 0 /usr/include/bits/types/stack_t.h +5842 11024193 1776766428000000000 3850964a3dfeecfdf8d6341ce10a867b 0 /usr/include/sys/ucontext.h +1168 11023867 1776766428000000000 8d25e4dc4342ca228643759acadb8af6 0 /usr/include/bits/sigstack.h +1283 11023868 1776766428000000000 3177a841d4601f625a64ad164ae45250 0 /usr/include/bits/sigstksz.h +1188 11023876 1776766428000000000 0a23e9e025646d8d7930c5f34b481456 0 /usr/include/bits/ss_flags.h +1073 11023964 1776766428000000000 6ec7e47258c49e849f75f41527e676a0 0 /usr/include/bits/types/struct_sigstack.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1692 11023869 1776766428000000000 bc31047fff5a76a10c2880762a977d27 0 /usr/include/bits/sigthread.h +1285 11023863 1776766428000000000 368ef36453d66bf3b3d3595424daf7ac 0 /usr/include/bits/signal_ext.h +99801 8947721 1770539241000000000 f2e7c6c90e11927568ff931d109f936c 0 /usr/include/X11/Xlib.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +20137 7769018 1766144024000000000 382791d667a3393547f807899249bfc0 0 /usr/include/X11/X.h +7946 7769025 1766144024000000000 8a5039c8a7aa3a4eab5f7181393ac108 0 /usr/include/X11/Xfuncproto.h +3115 7769030 1766144024000000000 d53b0559a65c0bcdb77ed0459f1b9976 0 /usr/include/X11/Xosdefs.h +2769 7769135 1766144024000000000 0d41ae60a19d8f9ba25f1763119261cc 0 /usr/include/X11/keysym.h +186629 7769136 1766144024000000000 bd52d531f256dfa6f7971ce3c84e5d8b 0 /usr/include/X11/keysymdef.h +2518 7769023 1766144024000000000 a6ecf58bbcdb259e383e67043e2a7022 0 /usr/include/X11/Xatom.h +10628 8947726 1770539241000000000 9b0233263c20c2e8be88d5e81fbf2202 0 /usr/include/X11/Xresource.h +13200 96705 1730878554000000000 3e56a893977bb933a42f01ba8765a1e8 0 /usr/include/X11/Xcursor/Xcursor.h +34258 11024114 1776766428000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +381 11023928 1776766428000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11023930 1776766428000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11023927 1776766428000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11023926 1776766428000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11023925 1776766428000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11023948 1776766428000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11023935 1776766428000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11023890 1776766428000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +17060 8741258 1769439156000000000 1884746db8290f2b31b7f8451b1cf4b3 0 /usr/include/X11/extensions/Xrandr.h +6909 7769087 1766144024000000000 401965d00acc575149fba334f8bc506d 0 /usr/include/X11/extensions/randr.h +33826 96756 1734163523000000000 cd6d26a1a49037b6952f6ad6add5241b 0 /usr/include/X11/extensions/Xrender.h +21355 8947727 1770539241000000000 52ce1ad0b2c8b33c883e4de9cf2e58fc 0 /usr/include/X11/Xutil.h +6933 7769092 1766144024000000000 f3454f10c8ec914bc2cacc67ae344c58 0 /usr/include/X11/extensions/render.h +2401 7769024 1766144024000000000 8c25483e69b3966a7bf02ad71233d30b 0 /usr/include/X11/Xdefs.h +30994 8947718 1770539241000000000 658cd959aab5d6441ea7ca46bbfcb740 0 /usr/include/X11/XKBlib.h +19697 7769051 1766144024000000000 1231e8955febccf3c025770c66a93818 0 /usr/include/X11/extensions/XKBstr.h +28212 7769048 1766144024000000000 6a2dd9db6376855e6a13ac1dc2254091 0 /usr/include/X11/extensions/XKB.h +1964 8741283 1769438631000000000 8307bc8fd193fbd4b22c24a07b9e56ad 0 /usr/include/X11/extensions/Xinerama.h +21969 96734 1725514872000000000 f898f73ab9f0b0455f75ad7e86f933d4 0 /usr/include/X11/extensions/XInput2.h +11151 7769045 1766144024000000000 f4e9b097c0ff2c41507c68b4960a37cb 0 /usr/include/X11/extensions/XI2.h +1928 8741105 1769438528000000000 4e4a900ecc48c6c5eaaadb164d67df47 0 /usr/include/X11/extensions/Xge.h +7750 4242540 1756837749000000000 0d98a55dff8c00f367e9aece0d0a1143 0 /usr/include/X11/extensions/Xfixes.h +5924 7769123 1766144024000000000 b5e9bd0eec3d3c1748a593e505171a71 0 /usr/include/X11/extensions/xfixeswire.h +4132 8741110 1769438528000000000 8aaad0750a17168ab35987a0fd39ecf0 0 /usr/include/X11/extensions/shape.h +1878 7769098 1766144024000000000 104206d1aae79c53870ed605be13e54f 0 /usr/include/X11/extensions/shapeconst.h +1288 15592220 1777923927267426501 e581c6e4cdd807e79c0a665fc1bb619f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/xkb_unicode.h +1292 15592192 1777923927264426507 c453ea96e91669ea925c8bfb93fe5bb7 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_poll.h +22 11024084 1776766428000000000 0ea58fcbabea8c4434197b25c0da0032 0 /usr/include/poll.h +3030 11024151 1776766428000000000 fdfc712b78cbcaa0020d4464fb281b64 0 /usr/include/sys/poll.h +2076 11023830 1776766428000000000 d4de1743efaa71a7637fb37b349b20f7 0 /usr/include/bits/poll.h +1424 15592183 1777923927263426509 9ae4151868a02c1a8ea9749672383fb1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/null_joystick.h +2322 15592176 1777923927262426511 a5affdc2a0143346be41f93f566b6938 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/linux_joystick.h +16913 8943925 1770625897000000000 19cc0a8c96115bd0b4fbe906dc1f6915 0 /usr/include/linux/input.h +9164 11024185 1776766428000000000 d2e1b3053beaf053af8a55c6a804fde1 0 /usr/include/sys/time.h +2032 11024137 1776766428000000000 cbe6601caeaa9849483d92383653843e 0 /usr/include/sys/ioctl.h +1005 11023798 1776766428000000000 38935023d2f5efc233bbd63192a23f93 0 /usr/include/bits/ioctls.h +32 8943591 1770625897000000000 1014a0ae33d0bed260382fbd3c912982 0 /usr/include/asm/ioctls.h +3987 8943548 1770625897000000000 d4ce71e9aa1f00a5b67c8b21b6a30d5b 0 /usr/include/asm-generic/ioctls.h +163 8943932 1770625897000000000 9a139ff78a7a978a13a83c0722fc021d 0 /usr/include/linux/ioctl.h +31 8943590 1770625897000000000 5f11f2dd8e479e58c3cf546e72403770 0 /usr/include/asm/ioctl.h +3518 8943547 1770625897000000000 4b7aa229557b073687359ca327709a32 0 /usr/include/asm-generic/ioctl.h +6846 8944315 1770625897000000000 d2b055f7283492c05492a5924f94aec4 0 /usr/include/linux/sockios.h +321 8943578 1770625897000000000 426fd8fd87f0a7222c2d8dc0b1c11a1e 0 /usr/include/asm/bitsperlong.h +1092 8943539 1770625897000000000 ea09d2bd626e1051f84d4ecee37ba039 0 /usr/include/asm-generic/bitsperlong.h +33 8943625 1770625897000000000 ddabb13f9fd87bf61e5f15f7a99b4729 0 /usr/include/asm/sockios.h +447 8943565 1770625897000000000 e503e15c8b0357f68274467ba5f06da4 0 /usr/include/asm-generic/sockios.h +2089 11023797 1776766428000000000 93897a02d50af887190f5248a717605e 0 /usr/include/bits/ioctl-types.h +3568 11024191 1776766428000000000 7fd74c28a21229e87ba5588cee27bd8c 0 /usr/include/sys/ttydefaults.h +1829 8944384 1770625897000000000 64ed48c0a52d7d50d7685f6332d61a80 0 /usr/include/linux/types.h +31 8943632 1770625897000000000 748039e47be584104c75dc853bfee6d8 0 /usr/include/asm/types.h +233 8943572 1770625897000000000 ff35ee9081c54a4556677db7b6ac43bd 0 /usr/include/asm-generic/types.h +864 8943546 1770625897000000000 de8f38f0cdc81bf3a5b301889f3dc586 0 /usr/include/asm-generic/int-ll64.h +1098 8944239 1770625897000000000 d50b3f49c69b44a5ecd1f232af677d5e 0 /usr/include/linux/posix_types.h +2135 8944323 1770625897000000000 7f1dcecb733611ba8bc38c8fa69c11bb 0 /usr/include/linux/stddef.h +224 8943606 1770625897000000000 d200bb7a30c7371a4580f935befe5542 0 /usr/include/asm/posix_types.h +609 8943608 1770625897000000000 45284a1e84848c31de23d3bd515534ee 0 /usr/include/asm/posix_types_64.h +2420 8943556 1770625897000000000 27c6e0a2b3849c0a9a5f71c86e17deb5 0 /usr/include/asm-generic/posix_types.h +31350 8943924 1770625897000000000 7eb002eb71a3e9a208ffc627561eda0b 0 /usr/include/linux/input-event-codes.h +937 8943972 1770625897000000000 65da8eafce628e0f5da011204e471ee0 0 /usr/include/linux/limits.h +25940 11024095 1776766428000000000 d3d9037b10d420aa0b919ad6d97bdab1 0 /usr/include/regex.h +1674 15592194 1777923927264426507 4c75518582750b9acebe3f524a3ea420 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_thread.h +48570 11024091 1776766428000000000 df73001c3d08af59a57b790c20f13f2a 0 /usr/include/pthread.h +5043 11024099 1776766428000000000 e6a51b852746c12c94ed682ec128431b 0 /usr/include/sched.h +5952 11023847 1776766428000000000 0926186d78c26fdbfea09ab846c93da9 0 /usr/include/bits/sched.h +4558 8944287 1770625897000000000 13cfeea4f632939bde4c2db64ec930ff 0 /usr/include/linux/sched/types.h +1073 11023957 1776766428000000000 fd5bfcedcccd0699759e0e9b4b5f31d2 0 /usr/include/bits/types/struct_sched_param.h +4516 11023762 1776766428000000000 eab9f52a0722cf3bd47401680264c9bd 0 /usr/include/bits/cpu-set.h +15326 11024213 1776766428000000000 dd0cebc61fc90f380c881a1cbd85230a 0 /usr/include/time.h +3331 11023919 1776766428000000000 d088285f55f90486f8680c7de68e427d 0 /usr/include/bits/time.h +6203 11023923 1776766428000000000 ccfa5c0039c1ddbdb09c6db5d1922cc3 0 /usr/include/bits/timex.h +760 11023970 1776766428000000000 3cf515d0336ee94d22cc413b45febc49 0 /usr/include/bits/types/struct_tm.h +288 11023951 1776766428000000000 2de06c14c40bd39deaf2f372dace4ac7 0 /usr/include/bits/types/struct_itimerspec.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +1287 11023853 1776766428000000000 81b3c862d757d31fa9585485df82c1f6 0 /usr/include/bits/setjmp.h +1467 11023949 1776766428000000000 c65b4aa95fccac40bd98fee3ba150e60 0 /usr/include/bits/types/struct___jmp_buf_tag.h +1214 11023840 1776766428000000000 2fe7b4205802733911a5efa9b71bb5e6 0 /usr/include/bits/pthread_stack_min-dynamic.h +1489 15592196 1777923927264426507 d9c9c16faccc333851fa1d1a1a9c0e0f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_time.h +21201 15592157 1777923927261426513 368cd78bfbe5e29e658aa2a5326f9063 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3native.h +21266 11024117 1776766428000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11024118 1776766428000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +6841 11023755 1776766428000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +6332 15592188 1777923927264426507 e46b39fefa824d3bef7915a22a3cbeab 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/platform.c +25760 15592168 1777923927262426511 91513c3fe4d6179408927b6f25a20e31 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/context.c +3794 15568174 1777922721699272917 42f44f0344ca976c19820ae587ff2c10 1 include/limits.h +5839 11024036 1776766428000000000 93606ee9e7d5800ac5b8e3efedd3f157 0 /usr/include/limits.h +5198 11023832 1776766428000000000 a6dd17f359e45199ea5666f65b1113a6 0 /usr/include/bits/posix1_lim.h +3175 11023807 1776766428000000000 b08b1c7bc1b5a70132a5b8b175b8c0db 0 /usr/include/bits/local_lim.h +2867 11023833 1776766428000000000 7d8aa86701e9a380845c5cd8a669e984 0 /usr/include/bits/posix2_lim.h +3858 11023992 1776766428000000000 6056c22530b9b6e43d3215eee277a553 0 /usr/include/bits/xopen_lim.h +1385 11023977 1776766428000000000 59219f4f906088fd1473df647db44849 0 /usr/include/bits/uio_lim.h +15194 15592179 1777923927263426509 cc2653c900eea5854d3118df97d564cc 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/monitor.c +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +6268 15568152 1777922721698272920 f23d0597dbe24fbef0b9db0a6a912bdb 1 include/float.h +35148 15592210 1777923927265426505 371ef2deaaf656211c21bd031730bc45 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/window.c +41395 15592173 1777923927262426511 fd2bdc39d9a0f3e9cbdf4151a429af0b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/input.c +504825 15592177 1777923927263426509 e792314d005187ea839d8a118bf5a826 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/mappings.h +11947 15592197 1777923927264426507 a6026f9e8a003c782bd514b578ed47fb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/vulkan.c +1816 15592190 1777923927264426507 becad53c5bcd77daf7f13b36a669ff80 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_module.c +8794 11023998 1776766428000000000 1e941a0fcec84e68e593320606a258d5 0 /usr/include/dlfcn.h +2521 11023766 1776766428000000000 ce423e8702be28530185e4b09b199fdf 0 /usr/include/bits/dlfcn.h +1119 11023765 1776766428000000000 212bcf73af743c3898fdc9ef533a0cbf 0 /usr/include/bits/dl_find_object.h +3245 15592193 1777923927264426507 6da2432577062b037d05bf9685421152 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_thread.c +2206 15592195 1777923927264426507 f4c2594a47b4f565719a8a5a9f0a444c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_time.c +3044 15592191 1777923927264426507 34fbca07f16ff7c4f5d37b58374af726 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_poll.c +1679 11024003 1776766428000000000 abb7aa3ce3560985cdcc5222002abe0a 0 /usr/include/errno.h +1426 11023773 1776766428000000000 f5901b3b5db0a666bc76fe7ac755756b 0 /usr/include/bits/errno.h +23 8943817 1770625897000000000 0e9514526df5411989c0921d62c34bb0 0 /usr/include/linux/errno.h +31 8943586 1770625897000000000 303204c8e8dd5d0b26a8bbfede43c812 0 /usr/include/asm/errno.h +5648 8943542 1770625897000000000 8becdc7faaf464f4f03c90038b9730e0 0 /usr/include/asm-generic/errno.h +1612 8943541 1770625897000000000 9e53730016da2684ae9a8bb2284166de 0 /usr/include/asm-generic/errno-base.h +894 11023936 1776766428000000000 21d9a2571870c420b53485fe487743c5 0 /usr/include/bits/types/error_t.h +12404 15592175 1777923927262426511 ebe2a4724621dc831b6c06e12f74d4d5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/linux_joystick.c +13793 11024176 1776766428000000000 9f12c6bf198df3a88c2d747996baf030 0 /usr/include/sys/stat.h +2231 11023878 1776766428000000000 eeced79f6a58db284452746e269ed387 0 /usr/include/bits/stat.h +6210 11023899 1776766428000000000 2fe01a59de528f1892df1bc5eef7c7cc 0 /usr/include/bits/struct_stat.h +1400 11023882 1776766428000000000 2002a64c42584c7d184facbe3d81a350 0 /usr/include/bits/statx.h +7838 8944322 1770625897000000000 c0813c1096a17ee5a243bf75dcb7977a 0 /usr/include/linux/stat.h +2409 11023881 1776766428000000000 1ca18c39930458d2b106898c1f1ed517 0 /usr/include/bits/statx-generic.h +1202 11023966 1776766428000000000 adf1f98ff50dc6da3f9c81c1f7718940 0 /usr/include/bits/types/struct_statx_timestamp.h +2248 11023965 1776766428000000000 13e0688c779dbc994826255da64ed106 0 /usr/include/bits/types/struct_statx.h +3901 11024135 1776766428000000000 51573e40baf39611dae19b6b79da6b5a 0 /usr/include/sys/inotify.h +1080 11023796 1776766428000000000 23db2031318a86cc91c8de94ba8271de 0 /usr/include/bits/inotify.h +11458 11024006 1776766428000000000 6761c01cab1e7a637ff70b712787863d 0 /usr/include/fcntl.h +2246 11023779 1776766428000000000 230f6d44354f98fab2643bb2fe61a31c 0 /usr/include/bits/fcntl.h +15826 11023778 1776766428000000000 a89c09049a7837aa75452e239a5650fd 0 /usr/include/bits/fcntl-linux.h +1066 11023950 1776766428000000000 930adb19f5f9cbc3933b958f4a1e5ffa 0 /usr/include/bits/types/struct_iovec.h +4477 8943829 1770625897000000000 cb9419cc89a7af265a184c1f6f002f00 0 /usr/include/linux/falloc.h +1450 8944213 1770625897000000000 dfc953efad59381f85cedbcaf15d1f22 0 /usr/include/linux/openat2.h +2041 11023826 1776766428000000000 7fb288a7769cdc7b7a64bda1f15cccd2 0 /usr/include/bits/openat2.h +12617 11023997 1776766428000000000 f18eaf57a7b514f3b577f9f5a6bc2d33 0 /usr/include/dirent.h +1771 11023763 1776766428000000000 23e0e14a4e8b16a68e0bc2941bc51c70 0 /usr/include/bits/dirent.h +1275 11023764 1776766428000000000 05d55b8f8aff261c558e2bf919c00c3e 0 /usr/include/bits/dirent_ext.h +22943 15592219 1777923927267426501 61daf1865cea794f6fe989a933855d52 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/xkb_unicode.c +29639 15592169 1777923927262426511 1a0561496727613edebd464a7417f6c3 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/egl_context.c +11935 15592187 1777923927264426507 4c3e6494b0bcc0aee47c28a18bda9100 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/osmesa_context.c +70569 15592215 1777923927266426503 95309a7537992a74bb2bc4bf449110d0 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_init.c +7675 11024038 1776766428000000000 f38e3af658cf4e4d245a435a9a10f0a0 0 /usr/include/locale.h +1368 11023808 1776766428000000000 a15e215b176aca549a08eeec063be072 0 /usr/include/bits/locale.h +20136 15592216 1777923927266426503 fb57e4d2291d8c29f447b0cda750a942 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_monitor.c +106419 15592218 1777923927267426501 71a3c2a523df63f5cb929d61fe0824c3 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_window.c +3118 8947728 1770539241000000000 49c18fff52345f9fbca72361b14cde5c 0 /usr/include/X11/cursorfont.h +5236 7769027 1766144024000000000 d1fbdb8a1a35d2391ee2c34805ef3f1e 0 /usr/include/X11/Xmd.h +23690 15592171 1777923927262426511 38704d9b41375b7557c5fe54e0e4eb99 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/glx_context.c diff --git a/.zig-cache/h/85c11631a45841cac8d9fec2e1339da5.txt b/.zig-cache/h/85c11631a45841cac8d9fec2e1339da5.txt new file mode 100644 index 0000000..514cc59 --- /dev/null +++ b/.zig-cache/h/85c11631a45841cac8d9fec2e1339da5.txt @@ -0,0 +1,830 @@ +0 +732 15694112 1778004710556420501 6cbddfe1e551e395c4e94df4bdfbeab4 0 src/main.zig +184235 15590296 1777923881918513972 85ad82da3fad2cc8beda806b1ed8bdeb 0 zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/raylib.zig +21780 15588394 1777922722100271428 8372996c7671543c238bcba94bfb7378 1 ubsan_rt.zig +10078942 15694039 1778004558057139168 3cea00fa0fbaf93548f1a94e6df1f53e 2 o/c4f083f6189abd47d10046bc9537f9e4/libraylib.a +460816 2104748 1749858906000000000 19b59f2a2768926dd4cb35a090cb8868 0 /lib64/libGL.so +1313184 11320745 1770539241000000000 e72e4619f955c3a38211536766b516f4 0 /lib64/libX11.so +47088 11321900 1769439156000000000 da6f4be2e87e2aa16772a75fa6a36f63 0 /lib64/libXrandr.so +14328 11321926 1769438631000000000 621184dc819e1014d93ea9a7f28bdccb 0 /lib64/libXinerama.so +75832 11321942 1725514872000000000 8080cfc6a1c65c31d450aeb5fedf0788 0 /lib64/libXi.so +47048 11322029 1730878554000000000 81c5a9837f418f236c79e736ea7f1e53 0 /lib64/libXcursor.so +25527 15568024 1777922721690272950 8a205f0b1c5732c3190e50f042589dec 1 compiler_rt.zig +10806 15588318 1777922722097271439 8c5b1950a5ebd26914a8e350d73d6999 1 std/std.zig +2525 15587766 1777922722081271498 71e0dabdb301ba10f8ca420941767e70 1 std/BitStack.zig +102991 15587797 1777922722082271495 75827315f3c3585390aebfe0aa119cb6 1 std/Build.zig +4266 15587886 1777922722085271483 16fdba428de22eb1305e855dec42f9a9 1 std/buf_map.zig +4526 15587887 1777922722085271483 8e63f8aad9b21f2cac5dcdcafd975d93 1 std/buf_set.zig +26749 15588047 1777922722090271465 94db977a6517f376d616042aec36c899 1 std/deque.zig +8176 15587798 1777922722082271495 af059436f9aa9ce8410e2a090d402920 1 std/DoublyLinkedList.zig +23691 15588057 1777922722090271465 3804b9a26510c6fe8d6e8e36a68dc482 1 std/dynamic_library.zig +135875 15587827 1777922722083271491 db86574f603d848efccc949d881d7ff4 1 std/Io.zig +46161 15588202 1777922722094271450 56e536443df53290961fcccb0248fae4 1 std/multi_array_list.zig +22225 15588304 1777922722097271439 561ce3400c8ac8d5b974517205c4f0ea 1 std/priority_queue.zig +35249 15588303 1777922722097271439 f30a503fcc87a18b18deced637313484 1 std/priority_dequeue.zig +64903 15587828 1777922722083271491 65a38fafd0d3cb5b25ca2488c18dae3e 1 std/Progress.zig +18069 15587843 1777922722083271491 8d1118eeb93cb6e46910fece65a272b3 1 std/Random.zig +10905 15587844 1777922722084271487 d0732789c7d50ebb4a3644f4b79bfad4 1 std/SemanticVersion.zig +5325 15587845 1777922722084271487 9b3e9e32c95aa2d415f162836c908e22 1 std/SinglyLinkedList.zig +117251 15587877 1777922722085271483 64f19f2a345ce26b80375c5f07d3eb60 1 std/Target.zig +66110 15587878 1777922722085271483 434d2e14ecbcf3813a62db89c218de07 1 std/Thread.zig +24524 15588330 1777922722097271439 1694ad0602c4425ddf33879d415f4ab1 1 std/treap.zig +32908 15587879 1777922722085271483 0effee4fbdb48a21d5a7de6981175d09 1 std/Uri.zig +97347 15587881 1777922722085271483 6e2bf450682db7fe2f70f856e6a69953 1 std/array_list.zig +97238 15587880 1777922722085271483 277386674f342dc4f1bcc7aff33ca523 1 std/array_hash_map.zig +20679 15587883 1777922722085271483 e7807462ad093052a700641168907e85 1 std/atomic.zig +24364 15587884 1777922722085271483 307015c80605830d882c9a9c5a417cb6 1 std/base64.zig +69662 15587885 1777922722085271483 7d9220a12d959c3fbdb0ad5d2dd745a1 1 std/bit_set.zig +43574 15587890 1777922722085271483 9b559f4ead3bbab2ddf320c5d9e35ef8 1 std/builtin.zig +371584 15587902 1777922722086271480 5e032a1afe94597d47a218be0ec20277 1 std/c.zig +77408 15587903 1777922722086271480 80080b1bacb0c8d673dc0bb465cc26e3 1 std/coff.zig +372 15587921 1777922722086271480 b867983786f01e8333e32b633eb10410 1 std/compress.zig +17640 15588317 1777922722097271439 bd79322afba3cc08000a99c21bfd26d7 1 std/static_string_map.zig +14657 15588025 1777922722089271469 ec00cc50efd2df8055faaa18a8b150d4 1 std/crypto.zig +76832 15588046 1777922722090271465 d49109fe127342ca0667bf94eb59fd2f 1 std/debug.zig +4894 15588056 1777922722090271465 61fff94fe737bda88edd8ca624c0a93c 1 std/dwarf.zig +90513 15588058 1777922722090271465 ede53ba4bac041f8a65ea772acae0cf0 1 std/elf.zig +56153 15588059 1777922722090271465 7afe4323fff4ddc8b4fb0b43cb9bf3bc 1 std/enums.zig +58268 15588073 1777922722091271461 642dc1256607ec96b839c549851b2c91 1 std/fmt.zig +729 15588077 1777922722091271461 0215ac7c2c72b37feee794b5911b205e 1 std/fs.zig +4178 15588078 1777922722091271461 55d3b5abd2866f8efe872f7339310a5c 1 std/gpu.zig +4080 15588093 1777922722091271461 571b514d96d7378ef13c8e6325e62ebf 1 std/hash.zig +80547 15588094 1777922722091271461 98d70ba2e89d37b4ed01247687fd83c3 1 std/hash_map.zig +38871 15588103 1777922722092271458 6c2f0da7917bebc86c5cd9528748e166 1 std/heap.zig +39320 15588111 1777922722092271458 3cb1bd9830c559b6288becb2db86fa08 1 std/http.zig +5458 15588124 1777922722092271458 83ba0216673ecfc447f968f67e88f774 1 std/json.zig +4897 15588125 1777922722092271458 7ff89bbb36c1fb140621f1e8fc3862c8 1 std/leb128.zig +7039 15588126 1777922722092271458 c6c6467049074839115f224de558946d 1 std/log.zig +72538 15588127 1777922722092271458 f2001ea91ead4103a9eb9cb995ea88ba 1 std/macho.zig +74865 15588195 1777922722094271450 273f62e9b9f832d5dd38c1402c0a48ed 1 std/math.zig +198145 15588198 1777922722094271450 22953e783cdc7561c4a15182f751d98e 1 std/mem.zig +35008 15588201 1777922722094271450 28f1d6dd4b7d63bc3a3570e9199e8376 1 std/meta.zig +433 15588297 1777922722096271443 74b41a911daaf29c0b0ef736d0df8af9 1 std/os.zig +16798 15588298 1777922722096271443 e6a5612c85472d16e2049377b392e536 1 std/pdb.zig +13777 15588299 1777922722096271443 aee2d674f93679708d83f4bc563d9c31 1 std/pie.zig +60638 15588302 1777922722097271439 91112299d7c1608c1b7c406ef8ca8083 1 std/posix.zig +42615 15588310 1777922722097271439 79697d237229c19709238f38b4dea1ee 1 std/process.zig +39704 15588315 1777922722097271439 204eff1c5332b5ab938ef3e30aac0ff0 1 std/sort.zig +23044 15588311 1777922722097271439 4cb21aacce1e6e69623ab74ec0986ae3 1 std/simd.zig +18221 15587882 1777922722085271483 ba5aad7d300f6596af851529cb14ecec 1 std/ascii.zig +44772 15588322 1777922722097271439 82a4d2308a683c39c74253045d469374 1 std/tar.zig +49967 15588326 1777922722097271439 5985bb10a3df3ffd445cba60cbe8ab90 1 std/testing.zig +1015 15588329 1777922722097271439 0dd8c20d912d8db9104f4b808b86bf8a 1 std/time.zig +10835 15588331 1777922722097271439 9bd3cc2d0b87156ecc92c4873b9f5f96 1 std/tz.zig +84830 15588334 1777922722097271439 a0675cff7ad8bd3379a81efc02f8fb84 1 std/unicode.zig +12292 15588339 1777922722097271439 8757ba546e520503fcc6a58d9b0d0083 1 std/valgrind.zig +17661 15588340 1777922722098271435 a8988138c7ee50f868cd1db24ab3d1d6 1 std/wasm.zig +44987 15588387 1777922722100271428 f86c914b8f81b14502f0d8561b1439b6 1 std/zig.zig +26670 15588388 1777922722100271428 93724928f5f24ae5c14b26c9c2d3ed3f 1 std/zip.zig +1242 15588393 1777922722100271428 c5e5cebc2cfc9353dc65aa5193442b60 1 std/zon.zig +31720 15588316 1777922722097271439 ffd3a427c45dfa3cbc9761a1361d1d3c 1 std/start.zig +60609 15587772 1777922722081271498 75c8c12c985cd8192806ca67e152ab02 1 std/Build/Cache.zig +38981 15587791 1777922722082271495 be5b6a4bf599cf8fb54d6cb84cf21e5a 1 std/Build/Step.zig +26577 15587774 1777922722081271498 98f120af5a4b7824a26104c00a1d4bd1 1 std/Build/Module.zig +43910 15587794 1777922722082271495 a59d963e44dc7302d869d03e948a68a4 1 std/Build/Watch.zig +21695 15587773 1777922722081271498 ad7f7cf87f2d7cecfde3308a9a959c3c 1 std/Build/Fuzz.zig +34965 15587795 1777922722082271495 7b5315aea2d8aae761b704545ca6fd8a 1 std/Build/WebServer.zig +18326 15587796 1777922722082271495 86b3353e10f6891989b87fc619625f26 1 std/Build/abi.zig +778302 15587818 1777922722083271491 4d59b0d04131c010b5f58eb38120fbd9 1 std/Io/Threaded.zig +8949 15587821 1777922722083271491 40de485275e5d9bb6449f34e577313a2 1 std/Io/fiber.zig +184480 15587801 1777922722082271495 051fe407bbf5fa278eb5ba8923864173 1 std/Io/Dispatch.zig +53826 15587809 1777922722082271495 9e4d97b716cad9a064e52a86d622fc34 1 std/Io/Kqueue.zig +224474 15587819 1777922722083271491 8b60359fa3a92d4d6d3abe55a7e324e6 1 std/Io/Uring.zig +87408 15587812 1777922722082271495 9e17e83fad8cb492e5ae4ed460d46786 1 std/Io/Reader.zig +109608 15587820 1777922722083271491 98cc344f10dd258d0b9e9a433b55bb47 1 std/Io/Writer.zig +54298 15587825 1777922722083271491 6c83f2205f839d4830728dcacdc785d4 1 std/Io/net.zig +80457 15587800 1777922722082271495 92155343884f0d4850994d8697afe172 1 std/Io/Dir.zig +26690 15587808 1777922722082271495 7b97a0f8b4be80a0f463b68d50250a5c 1 std/Io/File.zig +5555 15587815 1777922722082271495 f6a7792ba60b33de2cacb4566e345d20 1 std/Io/Terminal.zig +9375 15587813 1777922722082271495 d2e926a1f61d5405b6d47098198f7b8e 1 std/Io/RwLock.zig +1802 15587814 1777922722082271495 6813309428640ae1f7c5714dbb51a16b 1 std/Io/Semaphore.zig +0 15587826 1777922722083271491 82547a8dd7f3efb3f077622e34876868 1 std/Io/test.zig +1811 15587830 1777922722083271491 4f975bd4c885c2b17936c7c15e2a1fa0 1 std/Random/Ascon.zig +2688 15587831 1777922722083271491 64c6fd1bd09becbfb3dca08dd7335a8b 1 std/Random/ChaCha.zig +6100 15587832 1777922722083271491 14fb5367ee7128106466c91abe89d828 1 std/Random/Isaac64.zig +2727 15587833 1777922722083271491 98b129620d81fc551cc2747eb5e93a2d 1 std/Random/Pcg.zig +3242 15587837 1777922722083271491 13e05c7b4ba6bd757c30dbc6e1520198 1 std/Random/Xoroshiro128.zig +3177 15587838 1777922722083271491 ece4176296c0d5a4735a0e13195d3e89 1 std/Random/Xoshiro256.zig +3158 15587835 1777922722083271491 e0b128479f8a117718ec288761f83ac0 1 std/Random/Sfc64.zig +3699 15587834 1777922722083271491 f562dad96707be48e6745a1f57cbf27c 1 std/Random/RomuTrio.zig +530 15587836 1777922722083271491 6862d091fadcbbb652464ab10689bd23 1 std/Random/SplitMix64.zig +4526 15587842 1777922722083271491 8ac3cfca93be2f623ce661fc9fb27686 1 std/Random/ziggurat.zig +600 15587840 1777922722083271491 11504a4d6115814ba14dfe02b3020485 1 std/Random/lcg.zig +0 15587841 1777922722083271491 82547a8dd7f3efb3f077622e34876868 1 std/Random/test.zig +30498 15587847 1777922722084271487 cf7aa2742e3fd138caf72147ec971b51 1 std/Target/Query.zig +115997 15587848 1777922722084271487 bc87bf7bcf6400d24d41b7415b169cc9 1 std/Target/aarch64.zig +2897 15587849 1777922722084271487 a02e557aa365ac787ac2c02b52315ddc 1 std/Target/alpha.zig +108519 15587850 1777922722084271487 a8d3ef24d10efbbb1847d5a2d06fb744 1 std/Target/amdgcn.zig +1274 15587851 1777922722084271487 c251325fefba8d6614a0692c5ceb2eea 1 std/Target/arc.zig +79096 15587852 1777922722084271487 6fb9e355597a9d862f083069aaf2fcd6 1 std/Target/arm.zig +84636 15587853 1777922722084271487 78f08f956d02f181a2fd446cf9402613 1 std/Target/avr.zig +2425 15587854 1777922722084271487 3376bf5f146580e9b3ce5e329a604817 1 std/Target/bpf.zig +77604 15587855 1777922722084271487 be007dfe415760a79fc1d9d7dc89a548 1 std/Target/csky.zig +18058 15587857 1777922722084271487 8ccf22d3bcff20d7636d8251948f4618 1 std/Target/hexagon.zig +4895 15587858 1777922722084271487 b870aa73f7bd666ffa47be26fa7bb580 1 std/Target/hppa.zig +665 15587856 1777922722084271487 1dec26e22b22006cd47d45b427f8a00c 1 std/Target/generic.zig +1881 15587859 1777922722084271487 26256603d875aee0f67f6e2aee670b46 1 std/Target/kvx.zig +1207 15587860 1777922722084271487 2119135642c6ce06557e5005da5d27d3 1 std/Target/lanai.zig +7184 15587861 1777922722084271487 891c7f973054eec39b43f2293eda2bd8 1 std/Target/loongarch.zig +7140 15587862 1777922722084271487 85a640161b5e75f1b0e44aafa7b2ac12 1 std/Target/m68k.zig +17604 15587863 1777922722084271487 404eba23c6a57f7914b92003c464442a 1 std/Target/mips.zig +2227 15587864 1777922722084271487 f424aba074f946c774143fd6a0cc9b02 1 std/Target/msp430.zig +20314 15587865 1777922722084271487 d68d9c5654a2c1114ce6dbc8038ef2f7 1 std/Target/nvptx.zig +35033 15587866 1777922722084271487 af9f967f62c784018632fc7184d14e0c 1 std/Target/powerpc.zig +1396 15587867 1777922722084271487 11966b944c6a6f5eb378759087686f44 1 std/Target/propeller.zig +108921 15587868 1777922722084271487 ff74cb05f762242da93430e2a04837df 1 std/Target/riscv.zig +32139 15587869 1777922722084271487 b9dcac5eace647b63bda3d9c524dc034 1 std/Target/s390x.zig +22391 15587870 1777922722084271487 5f74d7b977102ace4820a6def358a7ae 1 std/Target/sparc.zig +5037 15587871 1777922722084271487 7a802abba56de166296a02820267f278 1 std/Target/spirv.zig +1276 15587872 1777922722084271487 320e5694ddc1e4347015e29952472e47 1 std/Target/ve.zig +6517 15587873 1777922722084271487 1babc8b342fb599193f79f08f76e9463 1 std/Target/wasm.zig +138177 15587874 1777922722084271487 f5c6a3aff25f10c1b8c51ce82ffbb5b4 1 std/Target/x86.zig +1234 15587875 1777922722084271487 9977314bd28dc12c6017784ed96cc578 1 std/Target/xcore.zig +8826 15587876 1777922722085271483 8d42978afbcc85d87e2e98c0a9676a9b 1 std/Target/xtensa.zig +84368 15587889 1777922722085271483 a8bf92242607060c62d642acae8086b7 1 std/builtin/assembly.zig +56465 15587894 1777922722085271483 75c3bc60568091a9ea5edc5bc57ed38a 1 std/c/darwin.zig +17769 15587896 1777922722085271483 e2b778ddd3253970afd02693aed8fd0f 1 std/c/freebsd.zig +13639 15587898 1777922722085271483 de6d72b9cc43ab0645c64780d8e547e5 1 std/c/illumos.zig +12071 15587899 1777922722085271483 b48c05a0bd047e3f2341dbbd8767c1e7 1 std/c/netbsd.zig +8189 15587895 1777922722085271483 31ff648d6f4d2a8a32e4f989005450dc 1 std/c/dragonfly.zig +11736 15587897 1777922722085271483 faf314e053e5b99c66ad05c0570b73e0 1 std/c/haiku.zig +17047 15587900 1777922722085271483 76c2f77ef2816a7f0b4efa24425f0619 1 std/c/openbsd.zig +4446 15587901 1777922722085271483 69f4fd8d8726dca0e21d271d871ac1ad 1 std/c/serenity.zig +5846 15587909 1777922722086271480 37e8d751c7e895b6336511502160706a 1 std/compress/flate.zig +24222 15587912 1777922722086271480 5af5ea9ae660ca1a5c5e59ca3412c7cf 1 std/compress/lzma.zig +8172 15587913 1777922722086271480 3e50158bc60e46aae6beac631af863e1 1 std/compress/lzma2.zig +95 15587917 1777922722086271480 f5a4e96de879e27f05973ae987231c97 1 std/compress/xz.zig +7266 15587920 1777922722086271480 0d0abcd9f7d011ccda93bfe73d0b7e1a 1 std/compress/zstd.zig +10377 15588021 1777922722089271469 6a102711f65e65c4fd8596a251e151de 1 std/crypto/timing_safe.zig +47279 15587938 1777922722087271476 9b37d3e0fffea1f1b265eb76dd5ec80d 1 std/crypto/aegis.zig +6851 15587945 1777922722087271476 ea7fad6fda828c72abcc0148e4659e9c 1 std/crypto/aes_gcm.zig +13389 15587946 1777922722087271476 0b0853e7521a731af48464868cd7c167 1 std/crypto/aes_gcm_siv.zig +20660 15587948 1777922722087271476 f87b68e4f3f0abfaaed777c531726b81 1 std/crypto/aes_siv.zig +15331 15587947 1777922722087271476 250e8a7b0eaeef0184fd38096c7a562a 1 std/crypto/aes_ocb.zig +34240 15587944 1777922722087271476 a23f55c0fa49aee3338a137383c7eac3 1 std/crypto/aes_ccm.zig +47973 15587950 1777922722087271476 45b8c60c342c33749442b0e7b4f595db 1 std/crypto/ascon.zig +51938 15587956 1777922722087271476 40b26141042cd451c52e3d5d62117ae3 1 std/crypto/chacha20.zig +6309 15587981 1777922722088271472 1318dc8b9450bda7d30b2f2bd66ef98f 1 std/crypto/isap.zig +27318 15588015 1777922722089271469 d339759780a2203fc7165aff07d6d9b9 1 std/crypto/salsa20.zig +3626 15587979 1777922722088271472 7d28bd5a64f521b7f7322612e4d5f562 1 std/crypto/hmac.zig +18291 15588019 1777922722089271469 6be864f028108d8cae57460c05505974 1 std/crypto/siphash.zig +6226 15587957 1777922722087271476 4270e1555211de4aca948cd086fc7129 1 std/crypto/cmac.zig +6228 15587955 1777922722087271476 b0c7f4ebda117a1b4a12cec460fc143c 1 std/crypto/cbc_mac.zig +8704 15587943 1777922722087271476 1cd28407835970107e3ffc55d0b925b8 1 std/crypto/aes.zig +15303 15587983 1777922722088271472 ac2b7ab43674f07a4208ffa738f420c5 1 std/crypto/keccak_p.zig +11653 15587987 1777922722088271472 43be60c6dba9df3811d0ea93fb4d96b7 1 std/crypto/modes.zig +8666 15587930 1777922722086271480 3db725807664be68a1f523268f119154 1 std/crypto/25519/x25519.zig +207825 15587980 1777922722088271472 6f8e5747aa0ccf4d1164cae5d7a3017f 1 std/crypto/hybrid_kem.zig +71867 15587986 1777922722088271472 baec87190da463f19137f91c956a1a69 1 std/crypto/ml_kem.zig +9490 15587924 1777922722086271480 b5f8bd262f97fec80ec5c6bbce1d4d75 1 std/crypto/25519/curve25519.zig +25856 15587926 1777922722086271480 9c6b6973fd05e5de7576dfbcbcf8f074 1 std/crypto/25519/edwards25519.zig +16188 15587996 1777922722088271472 eaa7e1c4f3bee68fab2081ca41c5167c 1 std/crypto/pcurves/p256.zig +16384 15588002 1777922722089271469 a08bdcefbc4eeca22d09e82d6e71b464 1 std/crypto/pcurves/p384.zig +7971 15587928 1777922722086271480 d0d33655dcbd80c50d53283108a54034 1 std/crypto/25519/ristretto255.zig +20534 15588008 1777922722089271469 19bb9b198f95ad22e061196119587445 1 std/crypto/pcurves/secp256k1.zig +28981 15587953 1777922722087271476 e43277ffc7f554e017fc549af17d0c11 1 std/crypto/blake2.zig +66773 15587954 1777922722087271476 461aaa010dffed2badd194e564003503 1 std/crypto/blake3.zig +9751 15587984 1777922722088271472 d4911af79a2684c60a4325e9142b1609 1 std/crypto/md5.zig +9321 15587937 1777922722086271480 15ebe6e9b9de51b93b00e1b463f00cb4 1 std/crypto/Sha1.zig +36488 15588017 1777922722089271469 6a526b804e6d522b31243c9c19581539 1 std/crypto/sha2.zig +34393 15588018 1777922722089271469 9156c9859584353dba59a3a04e3b43d0 1 std/crypto/sha3.zig +2756 15587977 1777922722088271472 3f1b15f01d5b6045525b1b5b73081e67 1 std/crypto/hash_composition.zig +3703 15587978 1777922722088271472 09d36564cbdc5d24ea6fa90e4b7dd6e5 1 std/crypto/hkdf.zig +20462 15587976 1777922722088271472 80717cf57bf4cce973e3fcd7792a1640 1 std/crypto/ghash_polyval.zig +7227 15588014 1777922722089271469 d7e68094b5cd519221d91c8f9a9875ed 1 std/crypto/poly1305.zig +29207 15587949 1777922722087271476 94f263cff18e63719fb56351d8958281 1 std/crypto/argon2.zig +40185 15587951 1777922722087271476 d15c97fc7af13704d70dea22de36356f 1 std/crypto/bcrypt.zig +28777 15588016 1777922722089271469 c461f6daa050c5f52fae84aec9156e30 1 std/crypto/scrypt.zig +8451 15587988 1777922722088271472 e0bc6ddf2119b9cfe2a19626ded9635a 1 std/crypto/pbkdf2.zig +13808 15588013 1777922722089271469 82c3f3e7125258f0d01a5199588e0757 1 std/crypto/phc_encoding.zig +36622 15587925 1777922722086271480 8c9984aeca0e229cf80a241e1a124f4c 1 std/crypto/25519/ed25519.zig +389641 15587973 1777922722088271472 0726186a985abbc92e4fa0ff70efa341 1 std/crypto/ecdsa.zig +121853 15587985 1777922722088271472 d7cfd905ace13529f5dbe22b2e44f447 1 std/crypto/ml_dsa.zig +42649 15587975 1777922722088271472 ab7882c88b456a51e3e1f5dea262d267 1 std/crypto/ff.zig +165 15587972 1777922722087271476 0ab9a19cc7544d7896d8555b38c3292a 1 std/crypto/codecs.zig +1825 15587974 1777922722088271472 d28156f6f25a3ec50eb16496ef0b30e4 1 std/crypto/errors.zig +25567 15588024 1777922722089271469 965e374c252f652ecbbbdd4c010aaa9d 1 std/crypto/tls.zig +51526 15587936 1777922722086271480 c9040311a8bb41064e13320ceb1bfd03 1 std/crypto/Certificate.zig +59764 15588034 1777922722090271465 97dd4985f3e67db8805a42b323dd2b5c 1 std/debug/Dwarf.zig +43962 15588038 1777922722090271465 b62ab4a4546b7ca38c9cdf5255805463 1 std/debug/Pdb.zig +21243 15588035 1777922722090271465 e0fe1c3b436c95da3936ab5a37e5e850 1 std/debug/ElfFile.zig +23226 15588037 1777922722090271465 494ab44d53cb322ba4a55c08cf6e7d15 1 std/debug/MachOFile.zig +4448 15588036 1777922722090271465 d79e9edc86be729aaae44fcaa9edbcb3 1 std/debug/Info.zig +8592 15588027 1777922722089271469 28d43178547c2f7d23f09c36470880c0 1 std/debug/Coverage.zig +97088 15588043 1777922722090271465 07a4df481fdae7e1e9173ea1af4ddfd2 1 std/debug/cpu_context.zig +30535 15588042 1777922722090271465 ac5e8a4486eb26d75d3f3e5da357a5ed 1 std/debug/SelfInfo/Windows.zig +17837 15588040 1777922722090271465 94ab10377365b77b448fae97a5090c6d 1 std/debug/SelfInfo/Elf.zig +29884 15588041 1777922722090271465 3af99105c7ca096c7c04dfe0442e1c12 1 std/debug/SelfInfo/MachO.zig +3234 15588045 1777922722090271465 94b504fa568201fccb60245a0380012e 1 std/debug/simple_panic.zig +2349 15588044 1777922722090271465 58f6d8954e49f4e277db7b9bad6e1f3c 1 std/debug/no_panic.zig +3939 15588055 1777922722090271465 5ee5df976eaaf300e36cd234fc3f2f43 1 std/dwarf/TAG.zig +7632 15588049 1777922722090271465 101aeaf3e9df594bf04093c15135dc96 1 std/dwarf/AT.zig +5693 15588054 1777922722090271465 01d731f8d28ba8382ff3c5885d5e0c75 1 std/dwarf/OP.zig +1963 15588053 1777922722090271465 055280c08a34f56d3d4ea7d69cf3fca3 1 std/dwarf/LANG.zig +1399 15588052 1777922722090271465 40a7d4ac60d12c6e9ca294acaed35474 1 std/dwarf/FORM.zig +1479 15588050 1777922722090271465 8bd901aaa561652b86f99819d0da7a57 1 std/dwarf/ATE.zig +857 15588051 1777922722090271465 eabc7cc5311330003544e4fa9b48be68 1 std/dwarf/EH.zig +94864 15588061 1777922722090271465 9f838a528dd1ffb0f4e1bfb3661aecff 1 std/fmt/float.zig +13189 15588072 1777922722091271461 8fcd1365fb1fe2c743d223fc34880b6a 1 std/fmt/parse_float.zig +115637 15588075 1777922722091271461 c8d60085bfbda39db97904d347ae1872 1 std/fs/path.zig +0 15588076 1777922722091271461 82547a8dd7f3efb3f077622e34876868 1 std/fs/test.zig +2797 15588080 1777922722091271461 e2d2903d78455f002bdf1543be5bd9b3 1 std/hash/Adler32.zig +14410 15588081 1777922722091271461 cd5b1a84c317ca8ba9ccce283a58c367 1 std/hash/auto_hash.zig +19972 15588087 1777922722091271461 c36dede4b91e35db37ea45c66dbe6fe9 1 std/hash/crc.zig +1890 15588088 1777922722091271461 8022a7844b1545ef9cc7889a3a71944a 1 std/hash/fnv.zig +9977 15588089 1777922722091271461 26add2cb2571b835338f163c8ca63459 1 std/hash/murmur.zig +12412 15588083 1777922722091271461 cd681dc3507b42839b769eae04b1dc3b 1 std/hash/cityhash.zig +8367 15588091 1777922722091271461 4744eb583f951c0ddcee1cf3bdde33fb 1 std/hash/wyhash.zig +41613 15588092 1777922722091271461 b682042146ed3b411db8eb14cb99500a 1 std/hash/xxhash.zig +41284 15588096 1777922722091271461 9e2c0ca6eeba53dae8ed198c0434b781 1 std/heap/ArenaAllocator.zig +7510 15588100 1777922722091271461 0afc8bd3d67b9a71a6047ee2e9af262b 1 std/heap/SmpAllocator.zig +10192 15588098 1777922722091271461 ee89eecf52bcaf358a5ca7a2e9d97d7e 1 std/heap/FixedBufferAllocator.zig +10150 15588099 1777922722091271461 9e0ab6e7efcbb2f1a65540c4f7a560ef 1 std/heap/PageAllocator.zig +11445 15588097 1777922722091271461 61f511afcd1508b7ca05f5496473488c 1 std/heap/BrkAllocator.zig +62382 15588101 1777922722092271458 be427a53e4015492bc8a4a190a806e5f 1 std/heap/debug_allocator.zig +13267 15588102 1777922722092271458 08b7d341701a499e0e0d42b973d7ab69 1 std/heap/memory_pool.zig +71392 15588106 1777922722092271458 9b5ff49fb65f881c7ed12494a3859cb8 1 std/http/Client.zig +31356 15588109 1777922722092271458 90eef6015c85cd72220c3d81a69a9530 1 std/http/Server.zig +13015 15588107 1777922722092271458 4c7e2ad894ad12f141066550c9bb326a 1 std/http/HeadParser.zig +3791 15588105 1777922722092271458 61420280e3c9986a74a687031fdcf831 1 std/http/ChunkParser.zig +3099 15588108 1777922722092271458 208dea04bf6038830461bfb99eafbce8 1 std/http/HeaderIterator.zig +0 15588110 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/http/test.zig +7992 15588116 1777922722092271458 af3841850a2c29b3668d337e57dbec60 1 std/json/dynamic.zig +3272 15588118 1777922722092271458 39fdbe23f321a0cb11a35e428810a09e 1 std/json/hashmap.zig +72865 15588114 1777922722092271458 0bd906a63c98af2b142fc2a11e0e8ddf 1 std/json/Scanner.zig +33916 15588121 1777922722092271458 4edf437de0e97088b6290948fbceb1fb 1 std/json/static.zig +37299 15588115 1777922722092271458 328e21f9d500de455940ccb3a735aaef 1 std/json/Stringify.zig +0 15588123 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/test.zig +0 15588113 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/JSONTestSuite_test.zig +11506 15588168 1777922722093271454 4f01608c6085251ec5a5f0a6e3ebb50e 1 std/math/float.zig +1859 15588176 1777922722093271454 1e9c6dc339df3808681640d38706fb6e 1 std/math/isnan.zig +7877 15588169 1777922722093271454 21099ae36d31e459824cfc3757a834f2 1 std/math/frexp.zig +4599 15588186 1777922722093271454 d22656b17f575c4645f36971dbdd57b4 1 std/math/modf.zig +1136 15588164 1777922722093271454 9f0946a16071ec7d7cb9f45c227c22f1 1 std/math/copysign.zig +1083 15588174 1777922722093271454 eb357e7577b828d5fc2ce3b4118459f2 1 std/math/isfinite.zig +1775 15588175 1777922722093271454 44fb86a5536455ca3877bb415347c6ac 1 std/math/isinf.zig +1456 15588178 1777922722093271454 a37461dca6f9345d8f8a2729c13b9ff6 1 std/math/iszero.zig +1837 15588177 1777922722093271454 cb4e66e7b3adbf190150294715c788b0 1 std/math/isnormal.zig +19209 15588187 1777922722093271454 000ec81e9c79a332fb482883ab800777 1 std/math/nextafter.zig +1484 15588191 1777922722093271454 4be5196a5746ef5c06a1968c833acd1f 1 std/math/signbit.zig +503 15588190 1777922722093271454 66d1263715127908b281862dba5dc24b 1 std/math/scalbn.zig +6839 15588180 1777922722093271454 65cf74d2abee4d99cea2993060dc9cc0 1 std/math/ldexp.zig +11782 15588188 1777922722093271454 63d5a77b3d074170d5e328d7ab9f7955 1 std/math/pow.zig +7647 15588189 1777922722093271454 0973f1b6b3c7b008fe03e68add8caaab 1 std/math/powi.zig +2797 15588193 1777922722094271450 53aa585d8092381038f9eda1c3c128d1 1 std/math/sqrt.zig +4812 15588140 1777922722093271454 6f62d1f1ae7bff93c034f6f664aeaa12 1 std/math/cbrt.zig +30081 15588129 1777922722092271458 9120d5d144777f39094c64677ed37eda 1 std/math/acos.zig +30241 15588131 1777922722092271458 0dfaed068a87bab2f2a813c1b301adf2 1 std/math/asin.zig +37723 15588133 1777922722092271458 b16a00df0bbbd49d285d16d68d9de116 1 std/math/atan.zig +10553 15588134 1777922722092271458 0cafcb907ba579b6b64631165a647329 1 std/math/atan2.zig +5365 15588172 1777922722093271454 c70a10cbadd81265d9efbd501e601623 1 std/math/hypot.zig +11499 15588166 1777922722093271454 1ddb2b66fbdf7acb2a4ad484203ae340 1 std/math/expm1.zig +5519 15588173 1777922722093271454 eacf48263508740f77738f675caef7a6 1 std/math/ilogb.zig +2531 15588181 1777922722093271454 b3b40fd4682f372913e09bc18ca3fcd6 1 std/math/log.zig +1834 15588184 1777922722093271454 4ebf02b0e7decd5b836db4794717a753 1 std/math/log2.zig +6132 15588182 1777922722093271454 db4699d35a47e4e75c376fa3abd67c0d 1 std/math/log10.zig +4179 15588185 1777922722093271454 210b5a1a5cd0f20e944783da890dfc99 1 std/math/log_int.zig +8872 15588183 1777922722093271454 754de08c8dc06a6115beb96e5a991ad7 1 std/math/log1p.zig +4299 15588132 1777922722092271458 9d6c681faf8421823919e5bf347bf740 1 std/math/asinh.zig +2756 15588130 1777922722092271458 349667a0bb1e62bdc0383bce5747190c 1 std/math/acosh.zig +3399 15588135 1777922722092271458 7b22337c4a4df112f2c4be431b076007 1 std/math/atanh.zig +4294 15588192 1777922722094271450 42ef534228feb279b81e6fa2a5d79333 1 std/math/sinh.zig +4157 15588165 1777922722093271454 1dcc281bf0ca8a9782e5ae845f7b1fa5 1 std/math/cosh.zig +4581 15588194 1777922722094271450 2b64632014a58c73e7052420b356fcaa 1 std/math/tanh.zig +2024 15588171 1777922722093271454 28fd0ee50d92f0c08fd6aab95d6f15ee 1 std/math/gcd.zig +1194 15588179 1777922722093271454 40b3836f0a2277cb76754547dd483869 1 std/math/lcm.zig +11487 15588170 1777922722093271454 c0bf0098a075fd684bcbeff41e5abbc4 1 std/math/gamma.zig +6563 15588163 1777922722093271454 dccdf309b3630a59978e204ea0cbde99 1 std/math/complex.zig +746 15588139 1777922722093271454 cd57ee7b96c9ee1b66a3e7fc3ef16da9 1 std/math/big.zig +19435 15588197 1777922722094271450 c2c009def560d0da77a8b4ff43524293 1 std/mem/Allocator.zig +5936 15588200 1777922722094271450 731e370ecb6a476616ba5957ba5212a4 1 std/meta/trailer_flags.zig +291416 15588242 1777922722095271446 4869165fe9dddf6396b27a9ff488775f 1 std/os/linux.zig +10513 15588245 1777922722095271446 9c49defe45d5132eb0b774e015de8164 1 std/os/plan9.zig +7464 15588283 1777922722096271443 2d75cf68a9a9ca7fe435633981a95d0e 1 std/os/uefi.zig +16085 15588284 1777922722096271443 cbf7731f9fc13816669478d0d86619b2 1 std/os/wasi.zig +32297 15588204 1777922722094271450 65f360158bf4985210015307097e266f 1 std/os/emscripten.zig +206520 15588296 1777922722096271443 63ff2a80fff80a84d5bcaa93ee0f7e53 1 std/os/windows.zig +0 15588301 1777922722096271443 82547a8dd7f3efb3f077622e34876868 1 std/posix/test.zig +4357 15588307 1777922722097271439 95000eed0a91ee9ca99c19f988221556 1 std/process/Child.zig +38308 15588306 1777922722097271439 fed95aed49061092984c2712847bb002 1 std/process/Args.zig +37415 15588308 1777922722097271439 72a8079e3ff625cd0c9d671e09d86fb3 1 std/process/Environ.zig +2508 15588309 1777922722097271439 8376136df00bc63ca0f3095f0ca3689a 1 std/process/Preopens.zig +51714 15588313 1777922722097271439 eb8790d984ce4a6ddd6376d877c85ff1 1 std/sort/block.zig +12404 15588314 1777922722097271439 4aec5577b3c4edbe484599906af3ae5d 1 std/sort/pdq.zig +17695 15588320 1777922722097271439 24ba1410c711ba60c366c789e33f2468 1 std/tar/Writer.zig +0 15588321 1777922722097271439 82547a8dd7f3efb3f077622e34876868 1 std/tar/test.zig +5695 15588324 1777922722097271439 79b2e7cbd2cb182aed04f9377683c628 1 std/testing/FailingAllocator.zig +31908 15588325 1777922722097271439 85bfe90f22d1658f84533528a61699bc 1 std/testing/Smith.zig +6755 15588328 1777922722097271439 b00dfc370ddde87be5237de9f894d759 1 std/time/epoch.zig +7574 15588338 1777922722097271439 d017fea857f95f2c01199efab8dbf965 1 std/valgrind/memcheck.zig +2493 15588337 1777922722097271439 30a771b8491dd283a50c6166babded38 1 std/valgrind/callgrind.zig +1249 15588336 1777922722097271439 6781a2e56089a14f4f2a391169bf7c05 1 std/valgrind/cachegrind.zig +63162 15588386 1777922722100271428 6eeffe690c11f6257c0b5e0566d66f50 1 std/zig/tokenizer.zig +33392 15588350 1777922722098271435 c7c95e9c83f1903d675ab0c975ee4f28 1 std/zig/ErrorBundle.zig +10230 15588354 1777922722098271435 634f3489256d07cec274929dac2605ae 1 std/zig/Server.zig +2260 15588349 1777922722098271435 aa042aba45b700151fd968f123a7266e 1 std/zig/Client.zig +10291 15588355 1777922722098271435 03571043d71a739e9b067f7b96b71631 1 std/zig/TokenSmith.zig +14296 15588373 1777922722099271431 0d186a7370f174935a9c2c3f11942b8c 1 std/zig/string_literal.zig +6720 15588369 1777922722099271431 07baee4aa2d7c097b1307a2cdec422cf 1 std/zig/number_literal.zig +1666 15588372 1777922722099271431 87e0eb501395d68ddce525f8555f960c 1 std/zig/primitives.zig +145138 15588344 1777922722098271435 ab1af8ea616576f755ba7908af0b8ea5 1 std/zig/Ast.zig +567556 15588345 1777922722098271435 a56e781f97d05f34b8f9147799af3174 1 std/zig/AstGen.zig +78968 15588347 1777922722098271435 73a8282784a552df103c813f759de518 1 std/zig/AstSmith.zig +222229 15588357 1777922722099271431 035e30944ed3dc8c9d792b5336c38c8b 1 std/zig/Zir.zig +9178 15588358 1777922722099271431 cb7401f7c5bb5446a01aa5af5eaa2ad3 1 std/zig/Zoir.zig +35999 15588359 1777922722099271431 a86113a78e1f8cf462a758090971d8f9 1 std/zig/ZonGen.zig +51977 15588384 1777922722100271428 b1fdfaeed0b47fe1908cac4bca93213a 1 std/zig/system.zig +22538 15588348 1777922722098271435 85030d1db27b93c3540ce828f6bb4f75 1 std/zig/BuiltinFn.zig +43382 15588346 1777922722098271435 5b945ae5ef98aa0bed48cd16d2c6d004 1 std/zig/AstRlAnnotate.zig +35921 15588352 1777922722098271435 2bb60a489e7e7a4b6c06359c8cb96d52 1 std/zig/LibCInstallation.zig +51355 15588356 1777922722098271435 58aa36ce7c67359021b741bba200bd1d 1 std/zig/WindowsSdk.zig +10091 15588351 1777922722098271435 40d483d775f9a56db993ce02e3448ab7 1 std/zig/LibCDirs.zig +26758 15588385 1777922722100271428 1365cf108e82594e5f641faf1259b59d 1 std/zig/target.zig +247 15588368 1777922722099271431 4fee6920e55c663811dd32d69b7f2937 1 std/zig/llvm.zig +8078 15588361 1777922722099271431 6a5228c368c6a0dea7c7ebc8c6642f10 1 std/zig/c_translation/builtins.zig +16223 15588362 1777922722099271431 9aa7e031559265e0320a9b106d1865db 1 std/zig/c_translation/helpers.zig +120086 15588391 1777922722100271428 fcd145a5d3703b0c905144501d34d648 1 std/zon/parse.zig +46916 15588392 1777922722100271428 7bf4408cdd1c84975a793e5daefb12a8 1 std/zon/stringify.zig +32374 15588390 1777922722100271428 d6fd80a48ef08dc277abac7b527c7110 1 std/zon/Serializer.zig +2159 15588293 1777922722096271443 e912d0164349d3c86eb8b1226a86388f 1 std/os/windows/tls.zig +6710 15567798 1777922721686272965 2f406272323372f06ea32e7ba2671145 1 compiler_rt/count0bits.zig +1072 15567971 1777922721689272954 eb5665f235da79b18b24ad86fe636e3c 1 compiler_rt/parity.zig +1612 15567975 1777922721689272954 d5a192d1e6221072b39fd9489871805a 1 compiler_rt/popcount.zig +2555 15567775 1777922721686272965 94abc6c88d8b95079f2ffa08c953c84c 1 compiler_rt/bitreverse.zig +3053 15567779 1777922721686272965 f7bd2670352233064ec7083d6debbd43 1 compiler_rt/bswap.zig +1542 15567787 1777922721686272965 e86cf64174068e25059755c8b9d3312b 1 compiler_rt/cmp.zig +3992 15567986 1777922721689272954 3814ae54caaedf00b147deed4c0112f2 1 compiler_rt/shift.zig +26650 15567931 1777922721688272957 22806e43d0dac46aa72f227a85ab24f6 1 compiler_rt/int.zig +2729 15567942 1777922721688272957 32bdb9f5e7090032336e0cc3dcf004f1 1 compiler_rt/mulXi3.zig +10004 15568018 1777922721690272950 c75da294f9737c7c23ef89b4ac4a4680 1 compiler_rt/udivmod.zig +671 15567755 1777922721686272965 a6cfe83f9d8eb6e22dee6dc0ccee3367 1 compiler_rt/absv.zig +250 15567758 1777922721686272965 a8533a5e47ce15013e24b841121b73eb 1 compiler_rt/absvsi2.zig +217 15567756 1777922721686272965 3ce3bf7ea907beec5e63de5695aa6067 1 compiler_rt/absvdi2.zig +220 15567760 1777922721686272965 4448933a51a6997d5207f53443eec830 1 compiler_rt/absvti2.zig +1096 15567966 1777922721689272954 3a4bf91b607ee1118dab9735b082df49 1 compiler_rt/negv.zig +920 15567769 1777922721686272965 c5f857dc4717914fa062b400f9622607 1 compiler_rt/addvsi3.zig +959 15567768 1777922721686272965 257639b9472ac430476135afc780b665 1 compiler_rt/addvdi3.zig +850 15567998 1777922721689272954 ac36fb2149d5966ec7d505b909b86806 1 compiler_rt/subvsi3.zig +889 15567997 1777922721689272954 29e5e19036e4c660c957d19977fc2ee4 1 compiler_rt/subvdi3.zig +809 15567960 1777922721689272954 11f5f27cedd3438d13495331ac628626 1 compiler_rt/mulvsi3.zig +2849 15567952 1777922721689272954 86dfcaff625a305b4f8efe5d0533dace 1 compiler_rt/mulo.zig +6009 15567825 1777922721687272961 013ab2758ced7bbc2fc6988565eeb6c7 1 compiler_rt/extendf.zig +749 15567828 1777922721687272961 98eeaa4a548abf8762d1e9af9bc22ca1 1 compiler_rt/extendhfsf2.zig +335 15567827 1777922721687272961 da58ac4390996051556bfd8719d92a85 1 compiler_rt/extendhfdf2.zig +320 15567829 1777922721687272961 8871bda397e6825c39f23f0251ca0d22 1 compiler_rt/extendhftf2.zig +317 15567830 1777922721687272961 aaa7ccf0843a956beb418588dba37f19 1 compiler_rt/extendhfxf2.zig +514 15567831 1777922721687272961 bc571756252a1a5584d093538484a6ad 1 compiler_rt/extendsfdf2.zig +582 15567832 1777922721687272961 4974f1c781c0e5d63fb539beb1bac943 1 compiler_rt/extendsftf2.zig +266 15567833 1777922721687272961 2561f4cdb6d5cba42fa2a5cddaefb2b8 1 compiler_rt/extendsfxf2.zig +600 15567823 1777922721687272961 c095241dde6a34dfe058cf702b751be4 1 compiler_rt/extenddftf2.zig +303 15567824 1777922721687272961 bfc17774e2b2a3829741caae7c642755 1 compiler_rt/extenddfxf2.zig +1511 15567834 1777922721687272961 2a7c11b488cd1af64b87e3ef6e916eb6 1 compiler_rt/extendxftf2.zig +8121 15568005 1777922721689272954 20afe15564559323e44421df48412060 1 compiler_rt/truncf.zig +692 15568007 1777922721689272954 9d5f8f839d8728a9e54f9db08b6fc9f6 1 compiler_rt/truncsfhf2.zig +509 15568003 1777922721689272954 36a7e39f41512b69d8dd4b03148a07e2 1 compiler_rt/truncdfhf2.zig +470 15568004 1777922721689272954 2d0a9da2fc5f44f832277023e3ae7aab 1 compiler_rt/truncdfsf2.zig +318 15568013 1777922721689272954 139d3b014e0554bc57be883dbcb13040 1 compiler_rt/truncxfhf2.zig +239 15568014 1777922721690272950 ae2c69fc5bd6a62401142b0cce712d31 1 compiler_rt/truncxfsf2.zig +239 15568012 1777922721689272954 64b17fde24984d08777a286b452ed71b 1 compiler_rt/truncxfdf2.zig +321 15568009 1777922721689272954 1afa1aed29807fa59e1dd55d76568c92 1 compiler_rt/trunctfhf2.zig +550 15568010 1777922721689272954 c6072c8226886282a81de6ac65a6832f 1 compiler_rt/trunctfsf2.zig +532 15568008 1777922721689272954 c1eaf14f67fcf5d0dcd04b9ea346246e 1 compiler_rt/trunctfdf2.zig +2791 15568011 1777922721689272954 ba812a42d7ab9bcc80710007cb084cf2 1 compiler_rt/trunctfxf2.zig +5022 15567932 1777922721688272957 19bab1ecf558b764bd8e8468a4437453 1 compiler_rt/int_from_float.zig +505 15567843 1777922721687272961 1fa8b56a94273bc472a6be89f8e49cb6 1 compiler_rt/fixhfei.zig +486 15567847 1777922721687272961 3e7787e9660e6e3524cf38eb839127d6 1 compiler_rt/fixsfsi.zig +642 15567845 1777922721687272961 cf2cacfdce0a2700ef1151756d454c85 1 compiler_rt/fixsfdi.zig +583 15567848 1777922721687272961 3d05f9c93a1d9edb2dd8fdfc54a2a5cf 1 compiler_rt/fixsfti.zig +505 15567846 1777922721687272961 24db7b91a9d948a2ad7caf09eac5bac6 1 compiler_rt/fixsfei.zig +504 15567841 1777922721687272961 5f0698948ec15aeb0c7317a8aa00443a 1 compiler_rt/fixdfsi.zig +624 15567839 1777922721687272961 31f529f960e287899bfea39220efe423 1 compiler_rt/fixdfdi.zig +565 15567842 1777922721687272961 1b746ea2e5364fe3d06f59ae59750aec 1 compiler_rt/fixdfti.zig +505 15567840 1777922721687272961 544f2f0344a72b62fc744fe9964fd699 1 compiler_rt/fixdfei.zig +555 15567851 1777922721687272961 21912f18e11f59d98fcda7b2163587dd 1 compiler_rt/fixtfsi.zig +555 15567849 1777922721687272961 f6c717ba5d2610cfee93c3fcc781efd9 1 compiler_rt/fixtfdi.zig +650 15567852 1777922721687272961 879363d43dc2ccd2ccda8c6846a8d86e 1 compiler_rt/fixtfti.zig +506 15567850 1777922721687272961 e0f51045e782f2826083492df6292ff6 1 compiler_rt/fixtfei.zig +280 15567875 1777922721687272961 17542bcca7e4498a30b7ff317688ba9e 1 compiler_rt/fixxfsi.zig +247 15567873 1777922721687272961 8cb1d23d6f6efacc6b4f44a929bbffbb 1 compiler_rt/fixxfdi.zig +505 15567874 1777922721687272961 1fece5086db5fb44264e371192df926b 1 compiler_rt/fixxfei.zig +289 15567859 1777922721687272961 9052b90819d6e134589cf15421be20d3 1 compiler_rt/fixunshfsi.zig +256 15567857 1777922721687272961 6091d7b00dd29ba5314dda663c59d247 1 compiler_rt/fixunshfdi.zig +583 15567860 1777922721687272961 4e766b5ed70ad0738c4cc53db4a55d43 1 compiler_rt/fixunshfti.zig +485 15567858 1777922721687272961 b25d09befb8f331a968d63a91d13f1b3 1 compiler_rt/fixunshfei.zig +498 15567863 1777922721687272961 13a3e3cdc102220cda3e65d6d16b1803 1 compiler_rt/fixunssfsi.zig +639 15567861 1777922721687272961 36a07146caf82dbad47163a3ca473afb 1 compiler_rt/fixunssfdi.zig +619 15567864 1777922721687272961 56789acf458135e6c3a782a8572d6010 1 compiler_rt/fixunssfti.zig +485 15567862 1777922721687272961 3e11a2202c44d57de654ce2d29be9b17 1 compiler_rt/fixunssfei.zig +498 15567855 1777922721687272961 5fcc6dc71f3120b36f2fe57f95a4df13 1 compiler_rt/fixunsdfsi.zig +639 15567853 1777922721687272961 a830fab7334d07637a73ebb72e61c48c 1 compiler_rt/fixunsdfdi.zig +583 15567856 1777922721687272961 c4e648867a929a625fcbe892c855a0cc 1 compiler_rt/fixunsdfti.zig +485 15567854 1777922721687272961 8d7b3d247e80d9f47e5debacbc6e2b88 1 compiler_rt/fixunsdfei.zig +555 15567867 1777922721687272961 14924a3e8dcce47ec68fb9c45f7a6a08 1 compiler_rt/fixunstfsi.zig +555 15567865 1777922721687272961 99d881339bbbe56c6c73f4ac5d192c6f 1 compiler_rt/fixunstfdi.zig +692 15567868 1777922721687272961 abf77a1c7dd0243fd13146b2b275fc9f 1 compiler_rt/fixunstfti.zig +486 15567866 1777922721687272961 96f3507e58f63f9988db501bd3c3881d 1 compiler_rt/fixunstfei.zig +289 15567871 1777922721687272961 7b8251710687d6ab61e988db20cbecaf 1 compiler_rt/fixunsxfsi.zig +256 15567869 1777922721687272961 352c31350bc98c309e28c1705ae709b7 1 compiler_rt/fixunsxfdi.zig +601 15567872 1777922721687272961 805918cac365386594689e0b14d5c23c 1 compiler_rt/fixunsxfti.zig +483 15567870 1777922721687272961 3e85f5658cb15905fc6235fc4609ea39 1 compiler_rt/fixunsxfei.zig +4033 15567876 1777922721687272961 08f568a06331f48d4981b570aa9bf4e7 1 compiler_rt/float_from_int.zig +286 15567889 1777922721688272957 106565430b27b00575389beb7b556c32 1 compiler_rt/floatsihf.zig +489 15567890 1777922721688272957 99ac4b64eae6451228fdf3e76d49ca5a 1 compiler_rt/floatsisf.zig +489 15567888 1777922721688272957 5e6458641b2311288dd5c00c68c662ef 1 compiler_rt/floatsidf.zig +549 15567891 1777922721688272957 5a42b568187c33cfce0199909fcd71c8 1 compiler_rt/floatsitf.zig +304 15567892 1777922721688272957 7136a4ad8f4fb251b019c70d60e112f2 1 compiler_rt/floatsixf.zig +253 15567879 1777922721687272961 b6c524b7b79a0b2ba575668317d16be8 1 compiler_rt/floatdihf.zig +611 15567880 1777922721687272961 3876b9e1125045a0bba7ec7e30502a8b 1 compiler_rt/floatdisf.zig +629 15567878 1777922721687272961 ac4256b4976a496e9da9f3b5cc62e6b8 1 compiler_rt/floatdidf.zig +567 15567881 1777922721687272961 e60a88490ec274e0bcd8a335dffc2f77 1 compiler_rt/floatditf.zig +253 15567882 1777922721687272961 5c41253cc75c758f3d8414c06820b2e8 1 compiler_rt/floatdixf.zig +582 15567894 1777922721688272957 aa003fed3c28fcf0661465916cb226d1 1 compiler_rt/floattihf.zig +564 15567895 1777922721688272957 edebc519fd8c78ffadcfa533755b47e5 1 compiler_rt/floattisf.zig +564 15567893 1777922721688272957 4108329e5b3cd7683c90776309e92291 1 compiler_rt/floattidf.zig +655 15567896 1777922721688272957 5ad2e9750665a0bc0f20e70de861dd2a 1 compiler_rt/floattitf.zig +582 15567897 1777922721688272957 d70e70beff307c5a02db9159d0c10876 1 compiler_rt/floattixf.zig +510 15567884 1777922721687272961 1646d6f1c02bb7b56165f216939a9766 1 compiler_rt/floateihf.zig +510 15567885 1777922721687272961 527c6da025482fa3e66b7143a7d9ea01 1 compiler_rt/floateisf.zig +479 15567883 1777922721687272961 7089012ddd1b9df0b322dd94006d29cb 1 compiler_rt/floateidf.zig +512 15567886 1777922721687272961 7f5adb0ede96341b927fd2b19ae21832 1 compiler_rt/floateitf.zig +479 15567887 1777922721688272957 a23d0cf72c9624bd4deb5bf9ab59680d 1 compiler_rt/floateixf.zig +263 15567909 1777922721688272957 d0eabbfe905bd1955dfbf4ff74789d9b 1 compiler_rt/floatunsihf.zig +516 15567910 1777922721688272957 4889e042d98fd6fe78fdd5512ad1222a 1 compiler_rt/floatunsisf.zig +498 15567908 1777922721688272957 469980dadce3b1303d8e5447b80253e0 1 compiler_rt/floatunsidf.zig +580 15567911 1777922721688272957 ad932fe90a33e55661927317df353bbc 1 compiler_rt/floatunsitf.zig +292 15567912 1777922721688272957 b74eb06b45723852ed8907ef9a3c1e2e 1 compiler_rt/floatunsixf.zig +292 15567899 1777922721688272957 d33b3dad7c05a80047aa89ef177f5de5 1 compiler_rt/floatundihf.zig +640 15567900 1777922721688272957 bfe6adee0ae9ff36f0f3a727942b60ff 1 compiler_rt/floatundisf.zig +622 15567898 1777922721688272957 5b21700386001f90ca76f4a69bbcc531 1 compiler_rt/floatundidf.zig +562 15567901 1777922721688272957 7ecbce03f6e2f7d34f669c43e05b5a5a 1 compiler_rt/floatunditf.zig +292 15567902 1777922721688272957 da5d76f43d53f823d14115e813e1e679 1 compiler_rt/floatundixf.zig +576 15567914 1777922721688272957 2953c33c5afb985a57994b5286303007 1 compiler_rt/floatuntihf.zig +594 15567915 1777922721688272957 05f6dcc434cc4afcdeab7e22fc1dc4ae 1 compiler_rt/floatuntisf.zig +576 15567913 1777922721688272957 b11ac0fc0d92ee51164a46a58d962730 1 compiler_rt/floatuntidf.zig +671 15567916 1777922721688272957 c473c1e7ddec98bb533d1273ad3b4a66 1 compiler_rt/floatuntitf.zig +594 15567917 1777922721688272957 9aa52768facdbbc8d846ea2d3494ecc1 1 compiler_rt/floatuntixf.zig +518 15567904 1777922721688272957 b569e15c4960f096d22a8498695037b3 1 compiler_rt/floatuneihf.zig +518 15567905 1777922721688272957 3da1804fc261f82d9a85f4cb42fcc7cf 1 compiler_rt/floatuneisf.zig +518 15567903 1777922721688272957 72d8c1345792bda65e245e216c54bfb4 1 compiler_rt/floatuneidf.zig +489 15567906 1777922721688272957 250b2f2ee910f6889439f6902e824242 1 compiler_rt/floatuneitf.zig +518 15567907 1777922721688272957 8775dcf872567dbca4aaa9be89c98d5c 1 compiler_rt/floatuneixf.zig +9442 15567795 1777922721686272965 a4d8663a92788da43cb9d84cfbb3e58c 1 compiler_rt/comparef.zig +2605 15567788 1777922721686272965 91858a90e46f0fae6148a5be22f15aba 1 compiler_rt/cmpdf2.zig +3596 15567791 1777922721686272965 ed4eee3b4269a73e58e195ab991424b6 1 compiler_rt/cmptf2.zig +1891 15567793 1777922721686272965 1bcb2490de66ad4411a56bb1b1beadda 1 compiler_rt/cmpxf2.zig +522 15568023 1777922721690272950 3cec9a8449e552edb9ea21bdcfcd5d16 1 compiler_rt/unorddf2.zig +792 15567926 1777922721688272957 bd0ef74753abec5e9bf5ff1ece192ce1 1 compiler_rt/gehf2.zig +1289 15567927 1777922721688272957 752957c0e08ab46d38903882d4e373e6 1 compiler_rt/gesf2.zig +1307 15567925 1777922721688272957 77abb220c445ca209cdc0bd63d0c35f4 1 compiler_rt/gedf2.zig +363 15567929 1777922721688272957 71abd2cb5cc15adfad10f2d1b086455c 1 compiler_rt/gexf2.zig +1102 15567928 1777922721688272957 857b9121c2764ef9fa6c80b222bae740 1 compiler_rt/getf2.zig +6364 15567763 1777922721686272965 a28efd2a8cc22dd72d94e92efdcaf5e8 1 compiler_rt/addf3.zig +258 15567765 1777922721686272965 cdb97ed9e9e4f737d1f50210538b5fa5 1 compiler_rt/addhf3.zig +482 15567766 1777922721686272965 7c66383d101eb8f59fe91827b0fa7052 1 compiler_rt/addsf3.zig +482 15567762 1777922721686272965 e98de91516f58550155b9f3cdc601a6a 1 compiler_rt/adddf3.zig +526 15567767 1777922721686272965 6a3199d5327ebdb5ac2a57b2891ce8e9 1 compiler_rt/addtf3.zig +262 15567770 1777922721686272965 37bb3df1d21ca3fb5c73a77e28251f0a 1 compiler_rt/addxf3.zig +345 15567994 1777922721689272954 d9dd819eb7b3e86e7499f19496aea205 1 compiler_rt/subhf3.zig +605 15567995 1777922721689272954 3730fe6e180d1398a620f7eeb43a77fb 1 compiler_rt/subsf3.zig +623 15567993 1777922721689272954 7be5439bbd27e235a8fb91189b8400e5 1 compiler_rt/subdf3.zig +685 15567996 1777922721689272954 9bd91d1677c201db0fbe5aff338cf3a5 1 compiler_rt/subtf3.zig +305 15567999 1777922721689272954 fe73f8ec762008d8326f6948b3c58f3c 1 compiler_rt/subxf3.zig +8424 15567948 1777922721688272957 8e0c05bcfe476732180e7179a76711cf 1 compiler_rt/mulf3.zig +262 15567951 1777922721688272957 6a4d90f1850cdff4b9101cf5f3653506 1 compiler_rt/mulhf3.zig +468 15567957 1777922721689272954 9e1e52d638844b75ab5c4d9b1605394d 1 compiler_rt/mulsf3.zig +486 15567947 1777922721688272957 f18b5c02041a116c8908d4c293c839fa 1 compiler_rt/muldf3.zig +538 15567959 1777922721689272954 f0405d80ca7cb47530b94f4f2ac72c77 1 compiler_rt/multf3.zig +262 15567962 1777922721689272954 099cf6140d3741138e202d701d1d874a 1 compiler_rt/mulxf3.zig +285 15567808 1777922721686272965 ae5c2e64d205ad937c80f9c50800e579 1 compiler_rt/divhf3.zig +8402 15567811 1777922721686272965 e007dd91050d3f9670856a31b291d71d 1 compiler_rt/divsf3.zig +9199 15567805 1777922721686272965 64b385486134b7bf452a4b4e3d8aa5ee 1 compiler_rt/divdf3.zig +8620 15567818 1777922721686272965 841562b842e29f7fc82e5e830cac819a 1 compiler_rt/divxf3.zig +10560 15567814 1777922721686272965 ebc16bc889cdb5e114e6bd9b797169b6 1 compiler_rt/divtf3.zig +1602 15567979 1777922721689272954 ed08c76b13adf76b35de9a6acfb5f900 1 compiler_rt/powiXf2.zig +2275 15567944 1777922721688272957 31c049fe940585ddd225b0c4f49de0ab 1 compiler_rt/mulc3.zig +364 15567950 1777922721688272957 512781f166a8c3875da561f4f8230be9 1 compiler_rt/mulhc3.zig +331 15567956 1777922721689272954 102e16161771af7814e38255adbe4dca 1 compiler_rt/mulsc3.zig +331 15567946 1777922721688272957 bb3e4f1e45e087a2cbf5e1b8c7294ab5 1 compiler_rt/muldc3.zig +364 15567961 1777922721689272954 0575402536fa7953282dd3719153c560 1 compiler_rt/mulxc3.zig +469 15567958 1777922721689272954 2599c8fc1dd703990f1d52fcc8405afc 1 compiler_rt/multc3.zig +2280 15567802 1777922721686272965 9e6aaeda713b6cd43eca1180606dc9f8 1 compiler_rt/divc3.zig +406 15567807 1777922721686272965 412c7456a893811918eb7e32f5ca2b4f 1 compiler_rt/divhc3.zig +373 15567810 1777922721686272965 7e02e8c2afcd2c36b275e526b50e7de7 1 compiler_rt/divsc3.zig +373 15567804 1777922721686272965 5be22ecc99b60a1e269ebcd07b63ba48 1 compiler_rt/divdc3.zig +373 15567817 1777922721686272965 eb964b5ea20bc7ea6b214d5165684b59 1 compiler_rt/divxc3.zig +511 15567813 1777922721686272965 f00ce0a1115432ed877e70a7210e020d 1 compiler_rt/divtc3.zig +8401 15567797 1777922721686272965 48ce97085562f8f0d3e93ba3a00c6330 1 compiler_rt/cos.zig +11191 15567821 1777922721686272965 233a0c2675fcf9fb0562d061d3f4ef8d 1 compiler_rt/exp.zig +20463 15567822 1777922721686272965 990315018671e600e5f43983656b35c7 1 compiler_rt/exp2.zig +1415 15567835 1777922721687272961 cd3fa4a3253c94922cf7fd4dbe8cf6d6 1 compiler_rt/fabs.zig +8451 15567918 1777922721688272957 0b87695dedb440735139b41072ac04b4 1 compiler_rt/floor_ceil.zig +11101 15567919 1777922721688272957 28c4313cc538b2f5812a52ec4bec4b02 1 compiler_rt/fma.zig +2369 15567920 1777922721688272957 a7f052b4bdafcce80219707ccbcd4a79 1 compiler_rt/fmax.zig +2371 15567921 1777922721688272957 2881caf3353e21fdc068c2894b526e33 1 compiler_rt/fmin.zig +11725 15567922 1777922721688272957 79f5a6f3e0524014ac73e0cb70026778 1 compiler_rt/fmod.zig +27755 15567935 1777922721688272957 8fa60be4c24fa34c552469dc3b4d63cf 1 compiler_rt/log.zig +9191 15567936 1777922721688272957 94721fe1abfbc3e173c681c73594e4b5 1 compiler_rt/log10.zig +8667 15567937 1777922721688272957 49e6cdf9ea75329f51154c609db64cc2 1 compiler_rt/log2.zig +4824 15567985 1777922721689272954 18ecc9f71f2af16e8866e41610d6e1db 1 compiler_rt/round.zig +9430 15567988 1777922721689272954 b933cc2801f9f84ff21b33c81ed4d0a9 1 compiler_rt/sin.zig +14726 15567989 1777922721689272954 d2d11e62b12ffea565f68495b486d0fe 1 compiler_rt/sincos.zig +29204 15567990 1777922721689272954 963eea878eff95387128b7a278530024 1 compiler_rt/sqrt.zig +7816 15568000 1777922721689272954 895ecc118177fee658ce2ed29440e3e3 1 compiler_rt/tan.zig +3960 15568002 1777922721689272954 7e9794fe13282aed8ade46a8cc46fdde 1 compiler_rt/trunc.zig +1976 15567809 1777922721686272965 f40491911afd36dcbdcaf83bde552029 1 compiler_rt/divmodei4.zig +5274 15568020 1777922721690272950 b483f1668e5681f1d01a8d3379d3085c 1 compiler_rt/udivmodei4.zig +8695 15567934 1777922721688272957 7f6b80ee9fd1a888a1cefaf0f0c07003 1 compiler_rt/limb64.zig +2970 15567970 1777922721689272954 73fbe2fafb6bf806bc0f94e0dbcdbb82 1 compiler_rt/os_version_check.zig +12778 15567820 1777922721686272965 32b1cbab0c70a5f07d8449b52a41b212 1 compiler_rt/emutls.zig +9633 15567771 1777922721686272965 5be5ccc2045b773a50cc658d73e3f1fe 1 compiler_rt/arm.zig +2296 15567773 1777922721686272965 adeeb17e089446574c0ac7052482f9da 1 compiler_rt/aulldiv.zig +2443 15567774 1777922721686272965 e279358f66c28bb577bb85cbb84e1b13 1 compiler_rt/aullrem.zig +7898 15567783 1777922721686272965 06f37e75f1f65c2d1968533e3126f595 1 compiler_rt/clear_cache.zig +44080 15567930 1777922721688272957 abec634a6ef8a9483ea381073dda9495 1 compiler_rt/hexagon.zig +22504 15567772 1777922721686272965 ee140ab73a711e099a335fcde147ec95 1 compiler_rt/atomics.zig +8888 15567992 1777922721689272954 e025e27cc09dff6f87418466a43f6126 1 compiler_rt/stack_probe.zig +71732 15567754 1777922721686272965 369d1b315f5a60e440e7b5229d0c2164 1 compiler_rt/aarch64_outline_atomics.zig +6327 15567939 1777922721688272957 8bd7a5b699effd9b48177fb4f42ba749 1 compiler_rt/memcpy.zig +7302 15567940 1777922721688272957 469b60af6c756eaa579028727fd7f021 1 compiler_rt/memmove.zig +3975 15567991 1777922721689272954 c0d2e7ed8026c400d7a40345bd91bf4f 1 compiler_rt/ssp.zig +0 15567964 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negsi2_test.zig +0 15567963 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negdi2_test.zig +0 15567965 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negti2_test.zig +8149 15587771 1777922722081271498 848266c110821122ce6bc572fc7966c9 1 std/Build/Cache/Path.zig +2178 15587770 1777922722081271498 4641e40dd1fb14622c51a7b8ad1a5d37 1 std/Build/Cache/Directory.zig +37904 15587769 1777922722081271498 5df488280e227dc1fae402212d0d1fa0 1 std/Build/Cache/DepTokenizer.zig +2963 15587776 1777922722081271498 3b0a8799da32dd829cea1e048ca0bdd9 1 std/Build/Step/CheckFile.zig +116020 15587777 1777922722081271498 18bac9280e713b80bc53d2471a14f467 1 std/Build/Step/CheckObject.zig +42586 15587779 1777922722081271498 4f4fb7a01d1524c11e465df25bb20bfc 1 std/Build/Step/ConfigHeader.zig +831 15587780 1777922722081271498 0f223ee68995072c4beb7fd3ae600b02 1 std/Build/Step/Fail.zig +2697 15587781 1777922722081271498 3d6cf866859ca04eb013a6b4ae5eda8e 1 std/Build/Step/Fmt.zig +8841 15587782 1777922722081271498 5f12e1d9cd3e301c7d59c6d0462af4e6 1 std/Build/Step/InstallArtifact.zig +4433 15587783 1777922722081271498 c590243c9189e7c05edb58d307b01d4d 1 std/Build/Step/InstallDir.zig +1460 15587784 1777922722081271498 0040eb5b0836e8fa2056b8e33d66b4dd 1 std/Build/Step/InstallFile.zig +8120 15587785 1777922722081271498 295b05d43b5ace3d4b31c0050b107e6c 1 std/Build/Step/ObjCopy.zig +84912 15587778 1777922722081271498 58e730efa305588922a904e148d65c54 1 std/Build/Step/Compile.zig +23120 15587786 1777922722081271498 7ad270e654494ff667c1d415c427537f 1 std/Build/Step/Options.zig +109628 15587787 1777922722081271498 7bf82c87cfe60873b28b35fac908770d 1 std/Build/Step/Run.zig +11889 15587788 1777922722081271498 cfa8e53899ae65e54778a42e84a17a18 1 std/Build/Step/TranslateC.zig +15498 15587790 1777922722081271498 a41fe33f2341ddc013b1fca1385ecd90 1 std/Build/Step/WriteFile.zig +4250 15587789 1777922722081271498 dfabe6ac1052637a178eef042b9afdd3 1 std/Build/Step/UpdateSourceFiles.zig +22253 15587793 1777922722082271495 d9a2b05ebe843fa5e404ed496a247b65 1 std/Build/Watch/FsEvents.zig +0 15587817 1777922722082271495 82547a8dd7f3efb3f077622e34876868 1 std/Io/Threaded/test.zig +3139 15587811 1777922722082271495 fe5fe7e681f4ef3265a652f929df6985 1 std/Io/Reader/Limited.zig +18134 15587823 1777922722083271491 5a0826d8af9243d47ac0ec7740737941 1 std/Io/net/HostName.zig +0 15587824 1777922722083271491 82547a8dd7f3efb3f077622e34876868 1 std/Io/net/test.zig +12759 15587806 1777922722082271495 3c13d2a3cedf8a9f99d87cd0a98d153b 1 std/Io/File/Reader.zig +8053 15587807 1777922722082271495 2ce32c66e785fcb0a179751edc397f1f 1 std/Io/File/Writer.zig +2699 15587803 1777922722082271495 7fd41fc040ad02c0f3e6feba994632f2 1 std/Io/File/Atomic.zig +4691 15587804 1777922722082271495 0b7562cfbeb59f6f8d81b42628098927 1 std/Io/File/MemoryMap.zig +8305 15587805 1777922722082271495 5bf9ca3d1c3edf41a06e7bb0ef18166a 1 std/Io/File/MultiReader.zig +13315 15587893 1777922722085271483 61d05272e7ddb2e66aecfe56b0a6b40e 1 std/c/darwin/dispatch.zig +103441 15587906 1777922722086271480 e55ee93fe7500c447d1110e3f5a59831 1 std/compress/flate/Compress.zig +43916 15587907 1777922722086271480 3c452297218497c6a0d6dfd1e6411bbf 1 std/compress/flate/Decompress.zig +0 15587911 1777922722086271480 82547a8dd7f3efb3f077622e34876868 1 std/compress/lzma/test.zig +10184 15587915 1777922722086271480 21b193ffeea11c4791e036a76504d714 1 std/compress/xz/Decompress.zig +0 15587916 1777922722086271480 82547a8dd7f3efb3f077622e34876868 1 std/compress/xz/test.zig +79574 15587919 1777922722086271480 af8f151b39faf2c007e2c3b1ccfff8a5 1 std/compress/zstd/Decompress.zig +0 15588020 1777922722089271469 82547a8dd7f3efb3f077622e34876868 1 std/crypto/test.zig +23047 15587940 1777922722087271476 b54729e648f909a81268f06167f20669 1 std/crypto/aes/aesni.zig +23360 15587941 1777922722087271476 f5c1c07e89705b24f7bbd58f0a70facd 1 std/crypto/aes/armcrypto.zig +34577 15587942 1777922722087271476 184f3d736969e9c1be3921724324424e 1 std/crypto/aes/soft.zig +14574 15587927 1777922722086271480 b552b509d9ec611014aa027c881ac91c 1 std/crypto/25519/field.zig +33750 15587929 1777922722086271480 1609964fc626671466a751ead6b023a1 1 std/crypto/25519/scalar.zig +338 15587992 1777922722088271472 433b788abb384ec7e4c3641754e6dde9 1 std/crypto/pcurves/p256/field.zig +7435 15587995 1777922722088271472 82696e587c8e76ddb04029021b89c87a 1 std/crypto/pcurves/p256/scalar.zig +5807 15588010 1777922722089271469 59d4f7e4b6bb1d5529e6827ea10d8814 1 std/crypto/pcurves/tests/p256.zig +376 15587998 1777922722089271469 69a49ff5f537dcd2044702ac14b6891c 1 std/crypto/pcurves/p384/field.zig +6683 15588001 1777922722089271469 b62513369dfa0f5b4513e8baae554c59 1 std/crypto/pcurves/p384/scalar.zig +6858 15588011 1777922722089271469 621c32a3c0932bff6aef9a841d5fbfe8 1 std/crypto/pcurves/tests/p384.zig +343 15588004 1777922722089271469 738b22249e1d3a4c001765286bc82756 1 std/crypto/pcurves/secp256k1/field.zig +7440 15588005 1777922722089271469 a2c94ac2ee64aa257045479bbeb08026 1 std/crypto/pcurves/secp256k1/scalar.zig +6215 15588012 1777922722089271469 90125b8a7293d6448bb9a47580368f54 1 std/crypto/pcurves/tests/secp256k1.zig +82002 15587982 1777922722088271472 1f857c6712958ff825aebf76cc32ac36 1 std/crypto/kangarootwelve.zig +12252 15587970 1777922722087271476 2cde0e70f988d3c7402f68a6a0314902 1 std/crypto/codecs/asn1.zig +18414 15587971 1777922722087271476 35b79a3fd55544c4889106069900e621 1 std/crypto/codecs/base64_hex_ct.zig +84508 15588023 1777922722089271469 649a5ecda2066ee55b1b961a952f38e4 1 std/crypto/tls/Client.zig +13687 15587934 1777922722086271480 bc1cd32e365024071d2fc253363bf1d2 1 std/crypto/Certificate/Bundle.zig +3589 15587935 1777922722086271480 1774b11899c6e761cf2c54ab9cf5893a 1 std/crypto/Certificate/Chain.zig +68800 15588033 1777922722090271465 09cdb1c0d0788a66a040ddcb5eddf5a7 1 std/debug/Dwarf/expression.zig +30176 15588032 1777922722090271465 9ea6e3df4e3d610339e5ea8f25755dfe 1 std/debug/Dwarf/Unwind.zig +13415 15588029 1777922722089271469 b8a468905b79bd6e498576d88e341c4a 1 std/debug/Dwarf/SelfUnwinder.zig +9426 15588071 1777922722091271461 19fe74e26814be7f5083c3d8b5a0983e 1 std/fmt/parse_float/parse.zig +2950 15588068 1777922722091271461 e2f6cedde735fdaf086b7e0efdb66505 1 std/fmt/parse_float/convert_hex.zig +5401 15588067 1777922722091271461 cbeba905313f9b6c917fb231993989fe 1 std/fmt/parse_float/convert_fast.zig +48543 15588066 1777922722091271461 82c419f8469193cf67852d0ac4c65f55 1 std/fmt/parse_float/convert_eisel_lemire.zig +4586 15588069 1777922722091271461 2562e4c50c6403023d508a0c7e1f15f0 1 std/fmt/parse_float/convert_slow.zig +3506 15588085 1777922722091271461 9428b7df45d5b928d9c004b955588fe0 1 std/hash/crc/impl.zig +0 15588086 1777922722091271461 82547a8dd7f3efb3f077622e34876868 1 std/hash/crc/test.zig +2075 15588090 1777922722091271461 5910881f138d791cfa09dd89cc12fc40 1 std/hash/verify.zig +0 15588117 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/dynamic_test.zig +0 15588119 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/hashmap_test.zig +0 15588120 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/scanner_test.zig +0 15588122 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/static_test.zig +995 15588167 1777922722093271454 59077bc2784a5df334de08609b4c2a55 1 std/math/expo2.zig +452 15588142 1777922722093271454 ce633e6b665f3caba98995a3f146d7c7 1 std/math/complex/abs.zig +678 15588144 1777922722093271454 9dd2ece0bd4c6366c4a3cb5bf7b3db17 1 std/math/complex/acosh.zig +608 15588143 1777922722093271454 e3a7d70f219edead2e32e66a9476a469 1 std/math/complex/acos.zig +458 15588145 1777922722093271454 2fea305ef49ff29fdd688d2f7342051d 1 std/math/complex/arg.zig +641 15588147 1777922722093271454 59bed4da0e5763cbf2a3e08ec4bc9c6c 1 std/math/complex/asinh.zig +750 15588146 1777922722093271454 26f02f5afc54b9ec7673ddd6d0fcc3a9 1 std/math/complex/asin.zig +645 15588149 1777922722093271454 adf7751d27453fed0d4977a2dc50e85e 1 std/math/complex/atanh.zig +2527 15588148 1777922722093271454 2a909954adb7520e1eb158124c280ca2 1 std/math/complex/atan.zig +484 15588150 1777922722093271454 a9e61e0f7280deab3d077856af6ca8d9 1 std/math/complex/conj.zig +5818 15588152 1777922722093271454 3b53a3d1a1285447f00cc90f422cb7b1 1 std/math/complex/cosh.zig +577 15588151 1777922722093271454 26877517b7d9d620e841272fd8ea3661 1 std/math/complex/cos.zig +4899 15588153 1777922722093271454 4f31c5e9d921097840da690cc0324595 1 std/math/complex/exp.zig +620 15588155 1777922722093271454 4e4bb03cdbb57072938d447952587286 1 std/math/complex/log.zig +608 15588156 1777922722093271454 1258f2af84237de74fd033b6776798f2 1 std/math/complex/pow.zig +628 15588157 1777922722093271454 b5f2e65410101f915fb75fa5712c2fd4 1 std/math/complex/proj.zig +5363 15588159 1777922722093271454 89568cfbf7f8196aafffbd55ea670070 1 std/math/complex/sinh.zig +620 15588158 1777922722093271454 4aade0cdfc8ac82b062412f5566aec6c 1 std/math/complex/sin.zig +4249 15588160 1777922722093271454 0aeb21db75d92940ddcb1491d2f0445e 1 std/math/complex/sqrt.zig +3847 15588162 1777922722093271454 98009ed972f9f5fcb177d10a345456e1 1 std/math/complex/tanh.zig +626 15588161 1777922722093271454 ac4f4ba1ea51c6a8f2101a7bdf3b0d7c 1 std/math/complex/tan.zig +185960 15588137 1777922722093271454 73c91870bf9888390a4fbae783316b31 1 std/math/big/int.zig +3762 15588238 1777922722095271446 2fd0c246f4a8e9ba6ccef5ff7cf0ccfe 1 std/os/linux/vdso.zig +0 15588235 1777922722095271446 82547a8dd7f3efb3f077622e34876868 1 std/os/linux/test.zig +4028 15588209 1777922722094271450 fad889af74c19e89aec8d2d148367ad2 1 std/os/linux/aarch64.zig +5034 15588210 1777922722094271450 71b88c341539b947f3255d37700f0a9e 1 std/os/linux/arm.zig +3380 15588217 1777922722094271450 59d565de222e3a5cfe2a456c9705e122 1 std/os/linux/hexagon.zig +4816 15588220 1777922722094271450 2dc76d90755eb8f1deb0a9e80f359b40 1 std/os/linux/loongarch32.zig +4885 15588221 1777922722094271450 7a3cc3cbebbe2f0b12661a952b75c15d 1 std/os/linux/loongarch64.zig +4232 15588222 1777922722094271450 3395b9bf91d855e572ab17b5c9bcac50 1 std/os/linux/m68k.zig +7917 15588223 1777922722094271450 adf29231543fd97568b09af3e22046da 1 std/os/linux/mips.zig +6527 15588225 1777922722094271450 e063618f62bb68a7e8dae24506b02518 1 std/os/linux/mipsn32.zig +6537 15588224 1777922722094271450 8d0f1af1cac3e5e03b718a1d3425708f 1 std/os/linux/mips64.zig +4947 15588226 1777922722094271450 0d4afd00420b15c35dbaf8d5317340ae 1 std/os/linux/or1k.zig +8650 15588227 1777922722094271450 e09c38d7114a12168881b764ae9e8eba 1 std/os/linux/powerpc.zig +8261 15588228 1777922722094271450 8561a5c808ba8c8069c7df5a10720639 1 std/os/linux/powerpc64.zig +3640 15588229 1777922722094271450 d333fa4c740f3e6afbc45d98d513d684 1 std/os/linux/riscv32.zig +3641 15588230 1777922722094271450 a181350c52396d767c11fff4bc1bfea3 1 std/os/linux/riscv64.zig +4555 15588231 1777922722094271450 ad8917b9284d43622453013ec7d5a083 1 std/os/linux/s390x.zig +6966 15588233 1777922722095271446 9e9cad0859d808d852642ce7b2af7e78 1 std/os/linux/sparc64.zig +7003 15588240 1777922722095271446 e3e3fd9240e6d1ae21e8ecb216b4741a 1 std/os/linux/x86.zig +4300 15588239 1777922722095271446 3fba18c392f7404bdf7c81b1152e27c6 1 std/os/linux/x32.zig +4299 15588241 1777922722095271446 49eb8d69558e313084ba3ac63c3f6709 1 std/os/linux/x86_64.zig +4043 15588236 1777922722095271446 ce94b53cfedc272651855c9aca6eb340 1 std/os/linux/thumb.zig +19371 15588237 1777922722095271446 2596493b8d3ba40e9ca8668f737e002f 1 std/os/linux/tls.zig +47550 15588216 1777922722094271450 32c5da8e114e94ea2adec4c27b6ce0db 1 std/os/linux/bpf.zig +1297 15588219 1777922722094271450 daac8c407161fbb4bb996238aee46635 1 std/os/linux/ioctl.zig +8427 15588232 1777922722095271446 b845f84a2ea6f5532d8ffc78297dafed 1 std/os/linux/seccomp.zig +191416 15588234 1777922722095271446 2171c87abdee6ea939834e72eaa1a5eb 1 std/os/linux/syscalls.zig +19937 15588218 1777922722094271450 8ba8f2488f743f5b2557ce471784ff51 1 std/os/linux/io_uring_sqe.zig +70498 15588208 1777922722094271450 1bca4c9dd309bf457afc8410477d2bfa 1 std/os/linux/IoUring.zig +2126 15588244 1777922722095271446 d6f497f7c3ede56b9dd8eb2cae54c566 1 std/os/plan9/x86_64.zig +2317 15588274 1777922722096271443 be87bd6baef485caa6e53ac7a241c786 1 std/os/uefi/protocol.zig +37311 15588247 1777922722095271446 a67c5d40f56e40984ce32fba49cfa0bc 1 std/os/uefi/device_path.zig +2078 15588248 1777922722095271446 13b23e26af6b210b16c77d73b956e867 1 std/os/uefi/hii.zig +10107 15588275 1777922722096271443 e4c1fe82be2b68376749dbb625002706 1 std/os/uefi/status.zig +10732 15588282 1777922722096271443 68cf12b996f3dbf4516572e7fe0d5f28 1 std/os/uefi/tables.zig +3906 15588249 1777922722095271446 5c4587a7b4f3370e256119bdab607b4a 1 std/os/uefi/pool_allocator.zig +928 15588287 1777922722096271443 bdb9a1476aaf7f283248a744d45098b3 1 std/os/windows/kernel32.zig +24957 15588290 1777922722096271443 d002d05bd824d2a94ac1184a1de432b6 1 std/os/windows/ntdll.zig +6230 15588295 1777922722096271443 ae6102533d158f7aa36956692efdf400 1 std/os/windows/ws2_32.zig +7915 15588286 1777922722096271443 2295f6c84e927b878882595bca445084 1 std/os/windows/crypt32.zig +20117 15588289 1777922722096271443 696b67a75a9a665eb00672233edffbb2 1 std/os/windows/nls.zig +237477 15588291 1777922722096271443 67644436e9162e79563b60f574b36f99 1 std/os/windows/ntstatus.zig +159624 15588294 1777922722096271443 a39f9d487cebae65c6f7885b43d14926 1 std/os/windows/win32error.zig +3697 15588288 1777922722096271443 f5f54b1cf522ff663148d3c96268d459 1 std/os/windows/lang.zig +8449 15588292 1777922722096271443 3c42a760ba486f9b9455bd95d20d2e0b 1 std/os/windows/sublang.zig +134890 15588353 1777922722098271435 df90a233ff7b97b3d629b2cf2e6cb86a 1 std/zig/Parse.zig +133748 15588343 1777922722098271435 a88e2a4e8edd5e42ce36d5497be9cfe3 1 std/zig/Ast/Render.zig +9472 15588375 1777922722099271431 87195797eae5a3842acb5b520146fd13 1 std/zig/system/NativePaths.zig +12220 15588382 1777922722099271431 1f1c4d6952079202735b6347b5864845 1 std/zig/system/windows.zig +2320 15588379 1777922722099271431 e3e5ee526c7cbaefdeb93c1c71a9f4cf 1 std/zig/system/darwin.zig +17272 15588380 1777922722099271431 d567aa2d0fd3fea7e6ba769d0f8ec592 1 std/zig/system/linux.zig +2265 15588381 1777922722099271431 e842ad5fa8bb44c7b2f8d9b6a335fcf3 1 std/zig/system/loongarch.zig +26515 15588383 1777922722099271431 775e2bf6e3c40cf09c216c30e4630474 1 std/zig/system/x86.zig +19938 15588364 1777922722099271431 f668cf11e4bececc793b349896705637 1 std/zig/llvm/BitcodeReader.zig +17757 15588366 1777922722099271431 d9ff99a16b4c64c8b4178f94af361113 1 std/zig/llvm/bitcode_writer.zig +597464 15588365 1777922722099271431 3d2fda42992a57fa8717bda6172f399b 1 std/zig/llvm/Builder.zig +0 15567785 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/clzsi2_test.zig +0 15567784 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/clzdi2_test.zig +0 15567786 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/clzti2_test.zig +0 15567800 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ctzsi2_test.zig +0 15567799 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ctzdi2_test.zig +0 15567801 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ctzti2_test.zig +0 15567837 1777922721687272961 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ffssi2_test.zig +0 15567836 1777922721687272961 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ffsdi2_test.zig +0 15567838 1777922721687272961 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ffsti2_test.zig +0 15567973 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/paritysi2_test.zig +0 15567972 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/paritydi2_test.zig +0 15567974 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/parityti2_test.zig +0 15567977 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/popcountsi2_test.zig +0 15567976 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/popcountdi2_test.zig +0 15567978 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/popcountti2_test.zig +0 15567777 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bitreversesi2_test.zig +0 15567776 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bitreversedi2_test.zig +0 15567778 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bitreverseti2_test.zig +0 15567781 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bswapsi2_test.zig +0 15567780 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bswapdi2_test.zig +0 15567782 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bswapti2_test.zig +0 15567790 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/cmpsi2_test.zig +0 15567789 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/cmpdi2_test.zig +0 15567792 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/cmpti2_test.zig +0 15568016 1777922721690272950 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ucmpsi2_test.zig +0 15568015 1777922721690272950 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ucmpdi2_test.zig +0 15568017 1777922721690272950 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ucmpti2_test.zig +0 15567987 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/shift_test.zig +0 15568019 1777922721690272950 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/udivmoddi4_test.zig +0 15567943 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/mulXi3_test.zig +0 15567941 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/modti3_test.zig +0 15567816 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/divti3_test.zig +0 15568022 1777922721690272950 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/udivmodti4_test.zig +0 15567759 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/absvsi2_test.zig +0 15567757 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/absvdi2_test.zig +0 15567761 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/absvti2_test.zig +0 15567968 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negvsi2_test.zig +0 15567967 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negvdi2_test.zig +0 15567969 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negvti2_test.zig +0 15567954 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/mulosi4_test.zig +0 15567953 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/mulodi4_test.zig +0 15567955 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/muloti4_test.zig +0 15567826 1777922721687272961 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/extendf_test.zig +0 15568006 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/truncf_test.zig +0 15567933 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/int_from_float_test.zig +0 15567877 1777922721687272961 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/float_from_int_test.zig +0 15567796 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/comparesf2_test.zig +0 15567794 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/comparedf2_test.zig +0 15567764 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/addf3_test.zig +0 15567949 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/mulf3_test.zig +0 15567812 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/divsf3_test.zig +0 15567806 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/divdf3_test.zig +0 15567819 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/divxf3_test.zig +0 15567815 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/divtf3_test.zig +0 15567980 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/powiXf2_test.zig +20510 15568001 1777922721689272954 f6b225d4b9feff2de1e103d485dc8e40 1 compiler_rt/trig.zig +6045 15567981 1777922721689272954 18b634df64d66eb7c240db46b32eea60 1 compiler_rt/rem_pio2.zig +2247 15567983 1777922721689272954 2337e183931c970621500018ffe636df 1 compiler_rt/rem_pio2f.zig +5829 15567984 1777922721689272954 402ac72990072faf4f752a5636968782 1 compiler_rt/rem_pio2l.zig +1118 15567938 1777922721688272957 bec039b31d08232f98fc682d19a1ac73 1 compiler_rt/long_double.zig +0 15567923 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/fmodq_test.zig +0 15567924 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/fmodx_test.zig +10730 15587908 1777922722086271480 53adac0f8e0f7d9078504320a3c43e07 1 std/compress/flate/token.zig +12650 15587990 1777922722088271472 56befc361ef070a7bd0a2d3c1dc46994 1 std/crypto/pcurves/common.zig +67958 15587993 1777922722088271472 0f2daafefad01026d6796eec68d65d2e 1 std/crypto/pcurves/p256/p256_64.zig +76136 15587994 1777922722088271472 8ec5f177ef28f7a2a0ec8d103665db00 1 std/crypto/pcurves/p256/p256_scalar_64.zig +134511 15587999 1777922722089271469 2e0dda7c40794e981dd2d2471c4776a5 1 std/crypto/pcurves/p384/p384_64.zig +137291 15588000 1777922722089271469 81eb087d46e6c49907ae0c02d3230828 1 std/crypto/pcurves/p384/p384_scalar_64.zig +73280 15588006 1777922722089271469 c871f98dad15c7a8c29be9ccefa4b181 1 std/crypto/pcurves/secp256k1/secp256k1_64.zig +75859 15588007 1777922722089271469 e29275bdb0eb931fc383e7f2f5ded944 1 std/crypto/pcurves/secp256k1/secp256k1_scalar_64.zig +1807 15587968 1777922722087271476 f47429307ac0920ff18758ce86074549 1 std/crypto/codecs/asn1/der.zig +7105 15587960 1777922722087271476 66ccc511a453a86184290b4cacf80766 1 std/crypto/codecs/asn1/Oid.zig +0 15587969 1777922722087271476 82547a8dd7f3efb3f077622e34876868 1 std/crypto/codecs/asn1/test.zig +4011 15587933 1777922722086271480 a49557210ec6e38ec5826a46866649f7 1 std/crypto/Certificate/Bundle/macos.zig +17121 15588031 1777922722089271469 02ea7c4c86a3f7b66d945d1a88d0860d 1 std/debug/Dwarf/Unwind/VirtualMachine.zig +3081 15588065 1777922722091271461 2aeda0b8b6036bb4d980778abb5a928a 1 std/fmt/parse_float/common.zig +3073 15588064 1777922722091271461 3950e4fa1fdd11d50db0b4abfc254022 1 std/fmt/parse_float/FloatStream.zig +6036 15588063 1777922722091271461 68169ffe43d55f0eb5e26b984ef98670 1 std/fmt/parse_float/FloatInfo.zig +29140 15588070 1777922722091271461 04115d79320f402803a56bd43cc34cf9 1 std/fmt/parse_float/decimal.zig +2726 15588154 1777922722093271454 7f318d60fafbfa10754d5644fd131ffe 1 std/math/complex/ldexp.zig +0 15588138 1777922722093271454 82547a8dd7f3efb3f077622e34876868 1 std/math/big/int_test.zig +4082 15588212 1777922722094271450 11a08913a0ec64b8325b0d29601479a7 1 std/os/linux/bpf/btf.zig +1573 15588215 1777922722094271450 08d401fe72d3ad7d47a05a0dfa21751a 1 std/os/linux/bpf/kern.zig +0 15588207 1777922722094271450 82547a8dd7f3efb3f077622e34876868 1 std/os/linux/IoUring/test.zig +2001 15588265 1777922722096271443 539322409dfd2d684638b127038a6e33 1 std/os/uefi/protocol/service_binding.zig +1715 15588261 1777922722095271446 f6892127566a3c88d1d324cfca22e049 1 std/os/uefi/protocol/loaded_image.zig +4814 15588253 1777922722095271446 ae0050bfba8bda94901399e42fe62869 1 std/os/uefi/protocol/device_path.zig +3896 15588263 1777922722095271446 0eaedbe475401fd4e42c2f72619c3b04 1 std/os/uefi/protocol/rng.zig +544 15588266 1777922722096271443 a0f63cfe62d021c13659600cea4aaa1a 1 std/os/uefi/protocol/shell_parameters.zig +1496 15588267 1777922722096271443 92bd55cb521ba72da3dacbe3d5c5b804 1 std/os/uefi/protocol/simple_file_system.zig +13127 15588255 1777922722095271446 3e58288866670edca5973d3e29efe731 1 std/os/uefi/protocol/file.zig +5143 15588252 1777922722095271446 90c9d2e0c006c58adc3164e19f00657f 1 std/os/uefi/protocol/block_io.zig +1799 15588270 1777922722096271443 f024846a184666b0affa25a2cafbc10b 1 std/os/uefi/protocol/simple_text_input.zig +4974 15588271 1777922722096271443 8f8f74b6ab8260a314f3302e3b60a8b2 1 std/os/uefi/protocol/simple_text_input_ex.zig +9829 15588272 1777922722096271443 e29ba19063da848e891733725e4ef18c 1 std/os/uefi/protocol/simple_text_output.zig +2000 15588269 1777922722096271443 b5984b96aff1463f582bc80721e4a38c 1 std/os/uefi/protocol/simple_pointer.zig +2370 15588251 1777922722095271446 8910b48d0e2ed04512369394e9c24ef9 1 std/os/uefi/protocol/absolute_pointer.zig +4848 15588264 1777922722096271443 5a314d85dc7710d8e0d76e10d6c3922e 1 std/os/uefi/protocol/serial_io.zig +4268 15588256 1777922722095271446 be47eb42c9a36fecb0a4c61de4bdfb28 1 std/os/uefi/protocol/graphics_output.zig +2451 15588254 1777922722095271446 2485a4796e73c7c8a14535333ea36518 1 std/os/uefi/protocol/edid.zig +15926 15588268 1777922722096271443 f79068be4c5ecb4e18235f0494a8f3cf 1 std/os/uefi/protocol/simple_network.zig +9851 15588262 1777922722095271446 6ac87afb334f152ae1f60c7d37e0f794 1 std/os/uefi/protocol/managed_network.zig +13173 15588259 1777922722095271446 6918e512dad7b2ceae3fa8aea799bc07 1 std/os/uefi/protocol/ip6.zig +5348 15588260 1777922722095271446 f0e7e3eb4726b5acc733b4b709a6fb1b 1 std/os/uefi/protocol/ip6_config.zig +8539 15588273 1777922722096271443 75aeba724def9af2f5500e3b6a298bf6 1 std/os/uefi/protocol/udp6.zig +4193 15588257 1777922722095271446 ce7ddcd4ea155a56ac2f54b3d36b865f 1 std/os/uefi/protocol/hii_database.zig +1684 15588258 1777922722095271446 8a5d84a896afd4cbe181b6fe58095e17 1 std/os/uefi/protocol/hii_popup.zig +48199 15588277 1777922722096271443 e446bbeceb8ffaa0a0de93cfca1d074b 1 std/os/uefi/tables/boot_services.zig +18947 15588279 1777922722096271443 cb1eb30776a43459956ea4c0675dee88 1 std/os/uefi/tables/runtime_services.zig +2796 15588278 1777922722096271443 f0a08fa361dffa5eadb351a471801946 1 std/os/uefi/tables/configuration_table.zig +2295 15588280 1777922722096271443 25bf31dd5f33af51b4b9da897fa1e3d5 1 std/os/uefi/tables/system_table.zig +214 15588281 1777922722096271443 cdb95d6c52cd4654ef26be0bd9f114d4 1 std/os/uefi/tables/table_header.zig +0 15588370 1777922722099271431 82547a8dd7f3efb3f077622e34876868 1 std/zig/parser_test.zig +15193 15588376 1777922722099271431 7bce4e957862b1695847095b0e235801 1 std/zig/system/arm.zig +16515 15588378 1777922722099271431 c3ca99f8a604df7a396ed20c35bcebed 1 std/zig/system/darwin/macos.zig +80205 15588367 1777922722099271431 bfc1e840700a8f0e8a1a52a598010f74 1 std/zig/llvm/ir.zig +20581 15567982 1777922721689272954 e8eaf68a4ffa3364b8f352326a575189 1 compiler_rt/rem_pio2_large.zig +5806 15587963 1777922722087271476 92f1dd53520d8191f93c177825b7845c 1 std/crypto/codecs/asn1/der/Decoder.zig +5861 15587964 1777922722087271476 650695830257d32d9ea72d767d918703 1 std/crypto/codecs/asn1/der/Encoder.zig +419 15588213 1777922722094271450 ed7dfc04a5d0c4f0853edb5414ce981e 1 std/os/linux/bpf/btf_ext.zig +24525 15588214 1777922722094271450 52c7fac6ad48da05270f91f073a4af79 1 std/os/linux/bpf/helpers.zig +2972 15587962 1777922722087271476 8c37c40098d399e3b36a078ce1d4e3a1 1 std/crypto/codecs/asn1/der/ArrayListReverse.zig +732 15694112 1778004710556420501 6cbddfe1e551e395c4e94df4bdfbeab4 0 /home/bd/Projects/zig/zig-frugg/src/main.zig +184235 15590296 1777923881918513972 85ad82da3fad2cc8beda806b1ed8bdeb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/raylib.zig +49710 15590294 1777923881917513974 6d3f0781400dc8bd9d56f75863d4309e 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/raylib-ext.zig +35674 15590302 1777923881920513968 f0a6339cb07109132b564312afeff653 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/rlgl.zig +15973 15590299 1777923881919513970 477b270b06d00dcc87cd16fe35c3c924 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/raymath.zig +11416 15590300 1777923881919513970 8a43dcfb1320b98bb7f8ace3cc4f1743 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/rlgl-ext.zig +11139 15590297 1777923881918513972 0d1aa5facb81177d91b77bd9f7d4b6ae 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/raymath-ext.zig diff --git a/.zig-cache/h/885ad744bb6180560708d1b92ef56d58.txt b/.zig-cache/h/885ad744bb6180560708d1b92ef56d58.txt new file mode 100644 index 0000000..3816b42 --- /dev/null +++ b/.zig-cache/h/885ad744bb6180560708d1b92ef56d58.txt @@ -0,0 +1,28 @@ +0 +226085 15592272 1777923927291426454 57703b4cb9d20c85f2494106b300ce4c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rtextures.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +351 15608422 1738927222000000000 da08a2d3368091efc0a7185be5672029 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdarg.h +12030 15608436 1738927222000000000 26ed05f1c0047de7dce6035be193f801 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/alltypes.h +167 15607052 1738927222000000000 e9da61c73c730980972a824176188baf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +4903 15608525 1738927222000000000 ed1c72b1bae7a8f66cf26387f5a3450d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdlib.h +1123 15608335 1738927222000000000 05a6a8793bf10dec3a28bc91a5d11897 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/features.h +219 15608608 1738927222000000000 a3c11fe0f49806a9c8748497c3a5d08c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/alloca.h +3041 15608333 1738927222000000000 674d66a327c388875d7daa272ead7369 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/string.h +964 15607137 1738927222000000000 b380eb8513f60d9c20a2673704aa7687 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/strings.h +11491 15608596 1738927222000000000 efae42386740518b1f626a76459cd25d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/math.h +6097 15608386 1738927222000000000 bfab932e271831504f4ddaa58ab246c9 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdio.h +67218 15608547 1738927221000000000 1fa71b76d45cf8fef0abb1dae850f9f2 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/wasi/api.h +575 15608576 1738927222000000000 39c69d5b8584a46c3a3c1a1ed7ea7644 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stddef.h +2578 15608527 1738927222000000000 0a5bb2760329226e49320fbf5ceb1abe 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdint.h +815 15608447 1738927222000000000 cd851a9784f94f6596041d1e6a402eb1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/stdint.h +283010 15592234 1777923927280426475 da0de4b77a864a92ca0a84752ae64a25 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image.h +4412 15608610 1738927222000000000 f4ca41fb1112c994ce5deadd7009f1fa 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/limits.h +24 15608455 1738927222000000000 773e1f0853282ba140053113f445be6d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/limits.h +428 15608607 1738927222000000000 31f38b261e42c4f6912cc4954954c56a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/assert.h +76007 15592230 1777923927279426477 a736a10590b842a754f3c9d9bba6437a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/rltexgpu.h +18326 15592228 1777923927278426479 0a1701580c647f7b4f8a424d04ac746d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoi.h +71221 15592236 1777923927282426471 ca3d5f23a730342b4f4dd18653e45db1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image_write.h +17918 15592237 1777923927282426471 2bb87817ffe9d6d6d3187db2bffe388c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_perlin.h +457839 15592235 1777923927281426473 d73e04ebd94264210f8f82aac82d1da4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image_resize2.h diff --git a/.zig-cache/h/88cf12280b52496f8a8be4f2f84b17d6.txt b/.zig-cache/h/88cf12280b52496f8a8be4f2f84b17d6.txt new file mode 100644 index 0000000..3a761af --- /dev/null +++ b/.zig-cache/h/88cf12280b52496f8a8be4f2f84b17d6.txt @@ -0,0 +1,89 @@ +0 +117970 15592271 1777923927291426454 31672e71fc2d475bd7ec65a7f43b43cb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rtext.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +42963 11322601 1770636718000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +4286 11322288 1770636718000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11322493 1770636718000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11322492 1770636718000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11322476 1770636718000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11322407 1770636718000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11322597 1770636718000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11322607 1770636718000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11322294 1770636718000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11322510 1770636718000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11322509 1770636718000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +1697 11322469 1770636718000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11322470 1770636718000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +4929 11322268 1770636718000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11322267 1770636718000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +983 11322423 1770636718000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11322414 1770636718000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +5713 11322677 1770636718000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +8806 11322409 1770636718000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11322459 1770636718000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11322405 1770636718000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +143 11322418 1770636718000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11322419 1770636718000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11322456 1770636718000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11322457 1770636718000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11322368 1770636718000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11322485 1770636718000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +1905 11322253 1770636718000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11322254 1770636718000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +2450 11322244 1770636718000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11322460 1770636718000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11322651 1770636718000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11322334 1770636718000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11322430 1770636718000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11322416 1770636718000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11322454 1770636718000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11322453 1770636718000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11322328 1770636718000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11322403 1770636718000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11322327 1770636718000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11322243 1770636718000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11322382 1770636718000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11322383 1770636718000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11322230 1770636718000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11322425 1770636718000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11322377 1770636718000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +34258 11322599 1770636718000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +381 11322413 1770636718000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11322415 1770636718000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11322412 1770636718000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11322411 1770636718000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11322410 1770636718000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11322433 1770636718000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11322420 1770636718000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11322375 1770636718000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +21266 11322602 1770636718000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11322603 1770636718000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +10969 11322481 1770636718000000000 dd17390845739df8331656ac5a17ef8e 0 /usr/include/ctype.h +20199 15592238 1777923927282426471 f594338f23ce56591d8032c04431a84a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_rect_pack.h +6841 11322240 1770636718000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +53032 11322525 1770636718000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +5402 11322295 1770636718000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11322289 1770636718000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +1215 11322269 1770636718000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11322271 1770636718000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11322270 1770636718000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11322297 1770636718000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11322296 1770636718000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11322299 1770636718000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11322298 1770636718000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11322287 1770636718000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +199176 15592239 1777923927282426471 db1ca3cdcf9606efbbb14aa8bbde39c4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_truetype.h diff --git a/.zig-cache/h/8d4454ad5f9d8f457b61ab846de6da27.txt b/.zig-cache/h/8d4454ad5f9d8f457b61ab846de6da27.txt new file mode 100644 index 0000000..0138f45 --- /dev/null +++ b/.zig-cache/h/8d4454ad5f9d8f457b61ab846de6da27.txt @@ -0,0 +1,57 @@ +0 +113824 15592256 1777923927286426463 eaa3ac47a6f370a3247b2e595e877cae 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raudio.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +351 15608422 1738927222000000000 da08a2d3368091efc0a7185be5672029 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdarg.h +12030 15608436 1738927222000000000 26ed05f1c0047de7dce6035be193f801 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/alltypes.h +167 15607052 1738927222000000000 e9da61c73c730980972a824176188baf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +4107565 15592224 1777923927276426483 40a300c8571017a8213fcc665a614206 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/miniaudio.h +575 15608576 1738927222000000000 39c69d5b8584a46c3a3c1a1ed7ea7644 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stddef.h +9367 15607082 1738927222000000000 47f47346759cf646e990bca53338b254 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/pthread.h +1123 15608335 1738927222000000000 05a6a8793bf10dec3a28bc91a5d11897 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/features.h +4399 15608598 1738927222000000000 51a1e0abfdcc1d8d6afc363e76c7f970 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/sched.h +4438 15608577 1738927222000000000 921be7c0960cfe9014899f23d668a85b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/time.h +428 15608607 1738927222000000000 31f38b261e42c4f6912cc4954954c56a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/assert.h +4412 15608610 1738927222000000000 f4ca41fb1112c994ce5deadd7009f1fa 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/limits.h +24 15608455 1738927222000000000 773e1f0853282ba140053113f445be6d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/limits.h +11491 15608596 1738927222000000000 efae42386740518b1f626a76459cd25d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/math.h +4903 15608525 1738927222000000000 ed1c72b1bae7a8f66cf26387f5a3450d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdlib.h +219 15608608 1738927222000000000 a3c11fe0f49806a9c8748497c3a5d08c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/alloca.h +3041 15608333 1738927222000000000 674d66a327c388875d7daa272ead7369 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/string.h +964 15607137 1738927222000000000 b380eb8513f60d9c20a2673704aa7687 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/strings.h +6097 15608386 1738927222000000000 bfab932e271831504f4ddaa58ab246c9 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdio.h +67218 15608547 1738927221000000000 1fa71b76d45cf8fef0abb1dae850f9f2 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/wasi/api.h +2578 15608527 1738927222000000000 0a5bb2760329226e49320fbf5ceb1abe 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdint.h +815 15608447 1738927222000000000 cd851a9784f94f6596041d1e6a402eb1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/stdint.h +6903 15608330 1738927222000000000 a1194fa3339f5b787f60312bce9bd4dc 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/wchar.h +2254 15608377 1738927222000000000 8030fd98d352b473522eef8d986bd45c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/sys/time.h +1332 15608378 1738927222000000000 18432538c3ab3277a7c055dfd1846050 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/sys/select.h +14244 15607068 1738927222000000000 9594526477f7ad63c9dbcd11af025579 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/unistd.h +68 15608452 1738927222000000000 f38b9122c92bc19006648b5f6d7a1cf5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/posix.h +4281 15608360 1738927222000000000 3eb29d21d878f7d2656bf2612f53b514 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/sys/stat.h +521 15608437 1738927222000000000 a8f7b39b37e5a109cb3086f062ecd235 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/stat.h +9671 15607087 1738927221000000000 86e49b6fd256e45dc26b273265429f76 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/emscripten.h +14111 15607110 1738927221000000000 4898e19b79e81ea8a6b998995c15b64a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/em_asm.h +1863 15607100 1738927221000000000 dc53755527835a1a7ca61d8e0d281c28 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/em_macros.h +1893 15607111 1738927221000000000 d7e1c28ee3a51c27c4f2484cb14207bd 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/em_types.h +3372 15607108 1738927221000000000 6710bc7695c18f1e1de93cfef4091024 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/em_js.h +7460 15607092 1738927221000000000 0ddd795c97234b43279ef844ee7568f6 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/promise.h +1928 15607086 1738927221000000000 f60b00490148126ecfa90f80e68f1214 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/wget.h +146 15607084 1738947787000000000 9d0ea595ec9580ee0d304fe782543940 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/version.h +369 15607077 1738927222000000000 e91bc6541baff2463c8f1a0a446f542c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/errno.h +5443 15608426 1738927222000000000 3e89460e3ee0d588e32f488181b6737e 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/errno.h +1886 15608358 1738927222000000000 0b9328407fe1bf07b85e55fbe8add505 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/sys/types.h +1958 15607254 1738927222000000000 a11e4e35af678f92d4840a83265bd45d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/endian.h +10320 15607105 1738927221000000000 f26781c6e6a6351f05c39c1e287b8dff 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/webaudio.h +20 15608337 1738927222000000000 a6b760d6a1c78fc0182a68f7da06f36f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/memory.h +30580 15607085 1738927221000000000 dd661b267ed88cacbe7b9d8e694139c7 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/html5.h +1261 15607098 1738927221000000000 f6c322fc54983382533e485bb63478e8 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/eventloop.h +3451 15607093 1738927221000000000 44fda93b7dcbd61b867d19404fca2935 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/console.h +11097 15607114 1738927221000000000 063b9ecd69660c474e7c791601fe3cfd 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/html5_webgl.h +364560 15592110 1777923927256426522 aa3f7a4e5ed2aea4a1ec6c90429905d4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/dr_wav.h +192790 15592240 1777923927283426469 890c281f1c8cc1ed210397614a0eb43c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_vorbis.c +206600 15592109 1777923927255426525 8a111acae971c169c181fb95f0bbb828 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/dr_mp3.h +23845 15592226 1777923927278426479 f136d45fb944c980c3798c30d5d3d443 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoa.h +10241 15592227 1777923927278426479 737b9fb56af4b423417c98b7fd85a98b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoaplay.c +102215 15592222 1777923927267426501 87feda682bd5df29026e59540130ea22 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/jar_xm.h +51996 15592221 1777923927267426501 7826726113566a1ac41845859112fa61 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/jar_mod.h diff --git a/.zig-cache/h/8d7088afc4e87e045fc5e283665a9c24.txt b/.zig-cache/h/8d7088afc4e87e045fc5e283665a9c24.txt new file mode 100644 index 0000000..d91868c --- /dev/null +++ b/.zig-cache/h/8d7088afc4e87e045fc5e283665a9c24.txt @@ -0,0 +1,322 @@ +0 +460816 2104748 1749858906000000000 19b59f2a2768926dd4cb35a090cb8868 0 /lib64/libGL.so +1313184 8947735 1770539241000000000 e72e4619f955c3a38211536766b516f4 0 /lib64/libX11.so +47088 8741261 1769439156000000000 da6f4be2e87e2aa16772a75fa6a36f63 0 /lib64/libXrandr.so +14328 8741287 1769438631000000000 621184dc819e1014d93ea9a7f28bdccb 0 /lib64/libXinerama.so +75832 118800 1725514872000000000 8080cfc6a1c65c31d450aeb5fedf0788 0 /lib64/libXi.so +47048 118794 1730878554000000000 81c5a9837f418f236c79e736ea7f1e53 0 /lib64/libXcursor.so +179546 15592265 1777923927288426459 e6c02b151e39c59246cdfe8aeaaa21f4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rcore.c +94278 15592270 1777923927290426456 148e15819214db74e0525ec276acecdd 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rshapes.c +226085 15592272 1777923927291426454 57703b4cb9d20c85f2494106b300ce4c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rtextures.c +117970 15592271 1777923927291426454 31672e71fc2d475bd7ec65a7f43b43cb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rtext.c +338872 15592269 1777923927290426456 76fc55680b7dd750a09c7c8d4885d438 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rmodels.c +113824 15592256 1777923927286426463 eaa3ac47a6f370a3247b2e595e877cae 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raudio.c +6000 15592267 1777923927288426459 c08daa562131e2220de1a06bca726720 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rglfw.c +50 15596151 1777925798684431311 fd3888aa7ca9778df50390896cce6318 2 o/da8bf749420ef1065612c05b8ed536b3/raygui.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +6268 15568152 1777922721698272920 f23d0597dbe24fbef0b9db0a6a912bdb 1 include/float.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +34258 11024114 1776766428000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +381 11023928 1776766428000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11023930 1776766428000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11023927 1776766428000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11023926 1776766428000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11023925 1776766428000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11023948 1776766428000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11023935 1776766428000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11023890 1776766428000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +21266 11024117 1776766428000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11024118 1776766428000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +10969 11023996 1776766428000000000 dd17390845739df8331656ac5a17ef8e 0 /usr/include/ctype.h +20199 15592238 1777923927282426471 f594338f23ce56591d8032c04431a84a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_rect_pack.h +6841 11023755 1776766428000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +199176 15592239 1777923927282426471 db1ca3cdcf9606efbbb14aa8bbde39c4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_truetype.h +15326 11024213 1776766428000000000 dd0cebc61fc90f380c881a1cbd85230a 0 /usr/include/time.h +3331 11023919 1776766428000000000 d088285f55f90486f8680c7de68e427d 0 /usr/include/bits/time.h +6203 11023923 1776766428000000000 ccfa5c0039c1ddbdb09c6db5d1922cc3 0 /usr/include/bits/timex.h +760 11023970 1776766428000000000 3cf515d0336ee94d22cc413b45febc49 0 /usr/include/bits/types/struct_tm.h +288 11023951 1776766428000000000 2de06c14c40bd39deaf2f372dace4ac7 0 /usr/include/bits/types/struct_itimerspec.h +557459 15592112 1777923927256426522 2ee4da35738ca3fd429e246ffcc4e963 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glad.h +27519 15568253 1777922721701272909 1bf965d23c79a082ac103b8d4944724e 1 include/stdint.h +8268 11024113 1776766428000000000 07868a6486476f79d1af8befa09ff966 0 /usr/include/stdint.h +1906 11023987 1776766428000000000 eb31012558f3028fc2c3c0def47ccc8a 0 /usr/include/bits/wchar.h +1049 11023885 1776766428000000000 df8b58b124e95d233ec646186fc72d07 0 /usr/include/bits/stdint-uintn.h +1305 11023884 1776766428000000000 e13a68eb8203cd6be160c31f99d931f7 0 /usr/include/bits/stdint-least.h +90849 15592263 1777923927287426462 db41cf17388962b34436c4fde7782f23 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raymath.h +22533 15592266 1777923927288426459 cbeefe4aa2ae48eebcd037e4f86c02e6 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rgestures.h +22184 15592264 1777923927287426462 cd673acb0eee1d11118f9c543c1b96ed 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rcamera.h +21703 15592233 1777923927279426477 a147737b6c68b2b89f993a9fe8b5e03b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/sinfl.h +28109 15592232 1777923927279426477 9a39a8073b251d465d23f4f98d4d0e0b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/sdefl.h +3794 15568174 1777922721699272917 42f44f0344ca976c19820ae587ff2c10 1 include/limits.h +5839 11024036 1776766428000000000 93606ee9e7d5800ac5b8e3efedd3f157 0 /usr/include/limits.h +5198 11023832 1776766428000000000 a6dd17f359e45199ea5666f65b1113a6 0 /usr/include/bits/posix1_lim.h +3175 11023807 1776766428000000000 b08b1c7bc1b5a70132a5b8b175b8c0db 0 /usr/include/bits/local_lim.h +937 8943972 1770625897000000000 65da8eafce628e0f5da011204e471ee0 0 /usr/include/linux/limits.h +1214 11023840 1776766428000000000 2fe7b4205802733911a5efa9b71bb5e6 0 /usr/include/bits/pthread_stack_min-dynamic.h +2867 11023833 1776766428000000000 7d8aa86701e9a380845c5cd8a669e984 0 /usr/include/bits/posix2_lim.h +3858 11023992 1776766428000000000 6056c22530b9b6e43d3215eee277a553 0 /usr/include/bits/xopen_lim.h +1385 11023977 1776766428000000000 59219f4f906088fd1473df647db44849 0 /usr/include/bits/uio_lim.h +11631 15592231 1777923927279426477 e20f072c356800ba394b5b82e64a3a40 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/rprand.h +45053 11024218 1776766428000000000 61decd3126c9fca1538df8298cac1894 0 /usr/include/unistd.h +5910 11023834 1776766428000000000 3ab8ab6e5779785e032604f1768b415c 0 /usr/include/bits/posix_opt.h +3791 11023770 1776766428000000000 e918da89dc6f1bc95caac7b9e99e3ccc 0 /usr/include/bits/environments.h +23828 11023761 1776766428000000000 9cf65881ab165e5e8e291a2f7fcd0a71 0 /usr/include/bits/confname.h +1810 11023789 1776766428000000000 996cb3fd9509868b01621c74e4a86ade 0 /usr/include/bits/getopt_posix.h +3667 11023787 1776766428000000000 ac9188a8d7cc4aac4ca3ac108e99f032 0 /usr/include/bits/getopt_core.h +2035 11023980 1776766428000000000 0cb61ab97cf5643355f3236fdfb9904c 0 /usr/include/bits/unistd_ext.h +377 8943771 1770625897000000000 7ed06359dec8788b24849d80d4e70c9a 0 /usr/include/linux/close_range.h +13793 11024176 1776766428000000000 9f12c6bf198df3a88c2d747996baf030 0 /usr/include/sys/stat.h +2231 11023878 1776766428000000000 eeced79f6a58db284452746e269ed387 0 /usr/include/bits/stat.h +6210 11023899 1776766428000000000 2fe01a59de528f1892df1bc5eef7c7cc 0 /usr/include/bits/struct_stat.h +1400 11023882 1776766428000000000 2002a64c42584c7d184facbe3d81a350 0 /usr/include/bits/statx.h +7838 8944322 1770625897000000000 c0813c1096a17ee5a243bf75dcb7977a 0 /usr/include/linux/stat.h +1829 8944384 1770625897000000000 64ed48c0a52d7d50d7685f6332d61a80 0 /usr/include/linux/types.h +31 8943632 1770625897000000000 748039e47be584104c75dc853bfee6d8 0 /usr/include/asm/types.h +233 8943572 1770625897000000000 ff35ee9081c54a4556677db7b6ac43bd 0 /usr/include/asm-generic/types.h +864 8943546 1770625897000000000 de8f38f0cdc81bf3a5b301889f3dc586 0 /usr/include/asm-generic/int-ll64.h +321 8943578 1770625897000000000 426fd8fd87f0a7222c2d8dc0b1c11a1e 0 /usr/include/asm/bitsperlong.h +1092 8943539 1770625897000000000 ea09d2bd626e1051f84d4ecee37ba039 0 /usr/include/asm-generic/bitsperlong.h +1098 8944239 1770625897000000000 d50b3f49c69b44a5ecd1f232af677d5e 0 /usr/include/linux/posix_types.h +2135 8944323 1770625897000000000 7f1dcecb733611ba8bc38c8fa69c11bb 0 /usr/include/linux/stddef.h +224 8943606 1770625897000000000 d200bb7a30c7371a4580f935befe5542 0 /usr/include/asm/posix_types.h +609 8943608 1770625897000000000 45284a1e84848c31de23d3bd515534ee 0 /usr/include/asm/posix_types_64.h +2420 8943556 1770625897000000000 27c6e0a2b3849c0a9a5f71c86e17deb5 0 /usr/include/asm-generic/posix_types.h +2409 11023881 1776766428000000000 1ca18c39930458d2b106898c1f1ed517 0 /usr/include/bits/statx-generic.h +1202 11023966 1776766428000000000 adf1f98ff50dc6da3f9c81c1f7718940 0 /usr/include/bits/types/struct_statx_timestamp.h +2248 11023965 1776766428000000000 13e0688c779dbc994826255da64ed106 0 /usr/include/bits/types/struct_statx.h +12617 11023997 1776766428000000000 f18eaf57a7b514f3b577f9f5a6bc2d33 0 /usr/include/dirent.h +1771 11023763 1776766428000000000 23e0e14a4e8b16a68e0bc2941bc51c70 0 /usr/include/bits/dirent.h +1275 11023764 1776766428000000000 05d55b8f8aff261c558e2bf919c00c3e 0 /usr/include/bits/dirent_ext.h +93702 15592247 1777923927284426468 9bce58225fa3dedb03ed4cab5c2b195a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/platforms/rcore_desktop_glfw.c +241826 15592156 1777923927261426513 86501dc510331da26275322e654ec46a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3.h +417 15568047 1777922721690272950 d2edf43390585163b0f70c6bd1d7e3b7 1 include/__stddef_header_macro.h +717 15568052 1777922721690272950 81288588f2bdd7ac4f213fa113429ef2 1 include/__stddef_ptrdiff_t.h +708 15568051 1777922721690272950 04b70454bf7cdd0c492cfaf134f95be7 1 include/__stddef_offsetof.h +9164 11024185 1776766428000000000 d2e1b3053beaf053af8a55c6a804fde1 0 /usr/include/sys/time.h +21201 15592157 1777923927261426513 368cd78bfbe5e29e658aa2a5326f9063 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3native.h +99801 8947721 1770539241000000000 f2e7c6c90e11927568ff931d109f936c 0 /usr/include/X11/Xlib.h +20137 7769018 1766144024000000000 382791d667a3393547f807899249bfc0 0 /usr/include/X11/X.h +7946 7769025 1766144024000000000 8a5039c8a7aa3a4eab5f7181393ac108 0 /usr/include/X11/Xfuncproto.h +3115 7769030 1766144024000000000 d53b0559a65c0bcdb77ed0459f1b9976 0 /usr/include/X11/Xosdefs.h +17060 8741258 1769439156000000000 1884746db8290f2b31b7f8451b1cf4b3 0 /usr/include/X11/extensions/Xrandr.h +6909 7769087 1766144024000000000 401965d00acc575149fba334f8bc506d 0 /usr/include/X11/extensions/randr.h +33826 96756 1734163523000000000 cd6d26a1a49037b6952f6ad6add5241b 0 /usr/include/X11/extensions/Xrender.h +21355 8947727 1770539241000000000 52ce1ad0b2c8b33c883e4de9cf2e58fc 0 /usr/include/X11/Xutil.h +2769 7769135 1766144024000000000 0d41ae60a19d8f9ba25f1763119261cc 0 /usr/include/X11/keysym.h +186629 7769136 1766144024000000000 bd52d531f256dfa6f7971ce3c84e5d8b 0 /usr/include/X11/keysymdef.h +6933 7769092 1766144024000000000 f3454f10c8ec914bc2cacc67ae344c58 0 /usr/include/X11/extensions/render.h +2401 7769024 1766144024000000000 8c25483e69b3966a7bf02ad71233d30b 0 /usr/include/X11/Xdefs.h +2518 7769023 1766144024000000000 a6ecf58bbcdb259e383e67043e2a7022 0 /usr/include/X11/Xatom.h +45680 15592241 1777923927283426469 eb116170525d41104424990ac7adcf2f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/tinyobj_loader_c.h +1679 11024003 1776766428000000000 abb7aa3ce3560985cdcc5222002abe0a 0 /usr/include/errno.h +1426 11023773 1776766428000000000 f5901b3b5db0a666bc76fe7ac755756b 0 /usr/include/bits/errno.h +23 8943817 1770625897000000000 0e9514526df5411989c0921d62c34bb0 0 /usr/include/linux/errno.h +31 8943586 1770625897000000000 303204c8e8dd5d0b26a8bbfede43c812 0 /usr/include/asm/errno.h +5648 8943542 1770625897000000000 8becdc7faaf464f4f03c90038b9730e0 0 /usr/include/asm-generic/errno.h +1612 8943541 1770625897000000000 9e53730016da2684ae9a8bb2284166de 0 /usr/include/asm-generic/errno-base.h +894 11023936 1776766428000000000 21d9a2571870c420b53485fe487743c5 0 /usr/include/bits/types/error_t.h +205754 15592105 1777923927253426528 5d2f236b6f6ef5d9a1b295fd3d1846d5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/cgltf.h +19659 15592242 1777923927284426468 6f6765d6e719e243ad70cc22023392da 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/vox_loader.h +306683 15592223 1777923927268426499 15241acfe0a45badbe1236db00c6ea81 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/m3d.h +72865 15592225 1777923927278426479 9dc0644bac4164f220adfabe1352af5b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/par_shapes.h +293735 15590661 1777923923667433573 7cfda270441ca39c49b2e81410b1effb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/src/raygui.h +283010 15592234 1777923927280426475 da0de4b77a864a92ca0a84752ae64a25 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image.h +201616 15568149 1777922721698272920 c59721a008a14bf4245225c8d6dd981f 1 include/emmintrin.h +120340 15568276 1777922721702272906 8e35d00e3ce60714ef2dd6312b645f5d 1 include/xmmintrin.h +60004 15568188 1777922721700272913 9d96163416d339553543c8056304615f 1 include/mmintrin.h +1929 15568187 1777922721700272913 b6b5caf8039b8eeb1a472434df3e6037 1 include/mm_malloc.h +76007 15592230 1777923927279426477 a736a10590b842a754f3c9d9bba6437a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/rltexgpu.h +18326 15592228 1777923927278426479 0a1701580c647f7b4f8a424d04ac746d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoi.h +71221 15592236 1777923927282426471 ca3d5f23a730342b4f4dd18653e45db1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image_write.h +17918 15592237 1777923927282426471 2bb87817ffe9d6d6d3187db2bffe388c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_perlin.h +457839 15592235 1777923927281426473 d73e04ebd94264210f8f82aac82d1da4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image_resize2.h +14504 15592172 1777923927262426511 b27f6b3bb53bc837cf7ea3290ce6416e 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/init.c +35817 15592174 1777923927262426511 f72e6da24b2e8dc2c561d4faf974a05c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/internal.h +6421 15592189 1777923927264426507 9430a43cbffb7932dc5ccfe1bf2d0807 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/platform.h +11827 15592185 1777923927264426507 4beac7be71da25898297d83d4e922499 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/null_platform.h +44741 15592217 1777923927266426503 6868a25f2f702569928920058ddd21bf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_platform.h +13045 11024108 1776766428000000000 efc9e225e109bb08a8dec4661ace2e4c 0 /usr/include/signal.h +3313 11023866 1776766428000000000 c7b07d26fe58fc7ceff1ae4edad8acd6 0 /usr/include/bits/signum-generic.h +2580 11023865 1776766428000000000 500defef7a2bd9a9e56449a3aea3b0f9 0 /usr/include/bits/signum-arch.h +272 11023942 1776766428000000000 52033494d2efb18f3ae4d42d90be994c 0 /usr/include/bits/types/sig_atomic_t.h +3892 11023944 1776766428000000000 9f30a8a17236994ddab5a49513bee1c1 0 /usr/include/bits/types/siginfo_t.h +1148 11023932 1776766428000000000 cef99022964de0d2a9bb4a66335a242a 0 /usr/include/bits/types/__sigval_t.h +729 11023860 1776766428000000000 732ba145bdaaec5752d3851d994fb038 0 /usr/include/bits/siginfo-arch.h +7537 11023862 1776766428000000000 4397eb5131c9e02a702340cc690db708 0 /usr/include/bits/siginfo-consts.h +204 11023861 1776766428000000000 070bf764547621a5cbd9eca15e56bf40 0 /usr/include/bits/siginfo-consts-arch.h +599 11023946 1776766428000000000 9a9be4e0a7b8d98d52679616ab1b7362 0 /usr/include/bits/types/sigval_t.h +1204 11023943 1776766428000000000 ab141640b4254a15993e20837b92ffa9 0 /usr/include/bits/types/sigevent_t.h +1471 11023859 1776766428000000000 2763ca41204119b32bf53713071bb096 0 /usr/include/bits/sigevent-consts.h +2935 11023857 1776766428000000000 abb4550dd27d1f45d7bd71b5a552f386 0 /usr/include/bits/sigaction.h +4266 11023858 1776766428000000000 8e4aadcbffc06002a69da0003c1793a1 0 /usr/include/bits/sigcontext.h +1062 11023947 1776766428000000000 3418e41d444a3efa09c1989618745709 0 /usr/include/bits/types/stack_t.h +5842 11024193 1776766428000000000 3850964a3dfeecfdf8d6341ce10a867b 0 /usr/include/sys/ucontext.h +1168 11023867 1776766428000000000 8d25e4dc4342ca228643759acadb8af6 0 /usr/include/bits/sigstack.h +1283 11023868 1776766428000000000 3177a841d4601f625a64ad164ae45250 0 /usr/include/bits/sigstksz.h +1188 11023876 1776766428000000000 0a23e9e025646d8d7930c5f34b481456 0 /usr/include/bits/ss_flags.h +1073 11023964 1776766428000000000 6ec7e47258c49e849f75f41527e676a0 0 /usr/include/bits/types/struct_sigstack.h +1692 11023869 1776766428000000000 bc31047fff5a76a10c2880762a977d27 0 /usr/include/bits/sigthread.h +1285 11023863 1776766428000000000 368ef36453d66bf3b3d3595424daf7ac 0 /usr/include/bits/signal_ext.h +10628 8947726 1770539241000000000 9b0233263c20c2e8be88d5e81fbf2202 0 /usr/include/X11/Xresource.h +13200 96705 1730878554000000000 3e56a893977bb933a42f01ba8765a1e8 0 /usr/include/X11/Xcursor/Xcursor.h +30994 8947718 1770539241000000000 658cd959aab5d6441ea7ca46bbfcb740 0 /usr/include/X11/XKBlib.h +19697 7769051 1766144024000000000 1231e8955febccf3c025770c66a93818 0 /usr/include/X11/extensions/XKBstr.h +28212 7769048 1766144024000000000 6a2dd9db6376855e6a13ac1dc2254091 0 /usr/include/X11/extensions/XKB.h +1964 8741283 1769438631000000000 8307bc8fd193fbd4b22c24a07b9e56ad 0 /usr/include/X11/extensions/Xinerama.h +21969 96734 1725514872000000000 f898f73ab9f0b0455f75ad7e86f933d4 0 /usr/include/X11/extensions/XInput2.h +11151 7769045 1766144024000000000 f4e9b097c0ff2c41507c68b4960a37cb 0 /usr/include/X11/extensions/XI2.h +1928 8741105 1769438528000000000 4e4a900ecc48c6c5eaaadb164d67df47 0 /usr/include/X11/extensions/Xge.h +7750 4242540 1756837749000000000 0d98a55dff8c00f367e9aece0d0a1143 0 /usr/include/X11/extensions/Xfixes.h +5924 7769123 1766144024000000000 b5e9bd0eec3d3c1748a593e505171a71 0 /usr/include/X11/extensions/xfixeswire.h +4132 8741110 1769438528000000000 8aaad0750a17168ab35987a0fd39ecf0 0 /usr/include/X11/extensions/shape.h +1878 7769098 1766144024000000000 104206d1aae79c53870ed605be13e54f 0 /usr/include/X11/extensions/shapeconst.h +1288 15592220 1777923927267426501 e581c6e4cdd807e79c0a665fc1bb619f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/xkb_unicode.h +1292 15592192 1777923927264426507 c453ea96e91669ea925c8bfb93fe5bb7 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_poll.h +22 11024084 1776766428000000000 0ea58fcbabea8c4434197b25c0da0032 0 /usr/include/poll.h +3030 11024151 1776766428000000000 fdfc712b78cbcaa0020d4464fb281b64 0 /usr/include/sys/poll.h +2076 11023830 1776766428000000000 d4de1743efaa71a7637fb37b349b20f7 0 /usr/include/bits/poll.h +1424 15592183 1777923927263426509 9ae4151868a02c1a8ea9749672383fb1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/null_joystick.h +2322 15592176 1777923927262426511 a5affdc2a0143346be41f93f566b6938 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/linux_joystick.h +16913 8943925 1770625897000000000 19cc0a8c96115bd0b4fbe906dc1f6915 0 /usr/include/linux/input.h +2032 11024137 1776766428000000000 cbe6601caeaa9849483d92383653843e 0 /usr/include/sys/ioctl.h +1005 11023798 1776766428000000000 38935023d2f5efc233bbd63192a23f93 0 /usr/include/bits/ioctls.h +32 8943591 1770625897000000000 1014a0ae33d0bed260382fbd3c912982 0 /usr/include/asm/ioctls.h +3987 8943548 1770625897000000000 d4ce71e9aa1f00a5b67c8b21b6a30d5b 0 /usr/include/asm-generic/ioctls.h +163 8943932 1770625897000000000 9a139ff78a7a978a13a83c0722fc021d 0 /usr/include/linux/ioctl.h +31 8943590 1770625897000000000 5f11f2dd8e479e58c3cf546e72403770 0 /usr/include/asm/ioctl.h +3518 8943547 1770625897000000000 4b7aa229557b073687359ca327709a32 0 /usr/include/asm-generic/ioctl.h +6846 8944315 1770625897000000000 d2b055f7283492c05492a5924f94aec4 0 /usr/include/linux/sockios.h +33 8943625 1770625897000000000 ddabb13f9fd87bf61e5f15f7a99b4729 0 /usr/include/asm/sockios.h +447 8943565 1770625897000000000 e503e15c8b0357f68274467ba5f06da4 0 /usr/include/asm-generic/sockios.h +2089 11023797 1776766428000000000 93897a02d50af887190f5248a717605e 0 /usr/include/bits/ioctl-types.h +3568 11024191 1776766428000000000 7fd74c28a21229e87ba5588cee27bd8c 0 /usr/include/sys/ttydefaults.h +31350 8943924 1770625897000000000 7eb002eb71a3e9a208ffc627561eda0b 0 /usr/include/linux/input-event-codes.h +25940 11024095 1776766428000000000 d3d9037b10d420aa0b919ad6d97bdab1 0 /usr/include/regex.h +1674 15592194 1777923927264426507 4c75518582750b9acebe3f524a3ea420 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_thread.h +48570 11024091 1776766428000000000 df73001c3d08af59a57b790c20f13f2a 0 /usr/include/pthread.h +5043 11024099 1776766428000000000 e6a51b852746c12c94ed682ec128431b 0 /usr/include/sched.h +5952 11023847 1776766428000000000 0926186d78c26fdbfea09ab846c93da9 0 /usr/include/bits/sched.h +4558 8944287 1770625897000000000 13cfeea4f632939bde4c2db64ec930ff 0 /usr/include/linux/sched/types.h +1073 11023957 1776766428000000000 fd5bfcedcccd0699759e0e9b4b5f31d2 0 /usr/include/bits/types/struct_sched_param.h +4516 11023762 1776766428000000000 eab9f52a0722cf3bd47401680264c9bd 0 /usr/include/bits/cpu-set.h +1287 11023853 1776766428000000000 81b3c862d757d31fa9585485df82c1f6 0 /usr/include/bits/setjmp.h +1467 11023949 1776766428000000000 c65b4aa95fccac40bd98fee3ba150e60 0 /usr/include/bits/types/struct___jmp_buf_tag.h +1489 15592196 1777923927264426507 d9c9c16faccc333851fa1d1a1a9c0e0f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_time.h +6332 15592188 1777923927264426507 e46b39fefa824d3bef7915a22a3cbeab 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/platform.c +25760 15592168 1777923927262426511 91513c3fe4d6179408927b6f25a20e31 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/context.c +15194 15592179 1777923927263426509 cc2653c900eea5854d3118df97d564cc 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/monitor.c +35148 15592210 1777923927265426505 371ef2deaaf656211c21bd031730bc45 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/window.c +41395 15592173 1777923927262426511 fd2bdc39d9a0f3e9cbdf4151a429af0b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/input.c +504825 15592177 1777923927263426509 e792314d005187ea839d8a118bf5a826 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/mappings.h +11947 15592197 1777923927264426507 a6026f9e8a003c782bd514b578ed47fb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/vulkan.c +1816 15592190 1777923927264426507 becad53c5bcd77daf7f13b36a669ff80 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_module.c +8794 11023998 1776766428000000000 1e941a0fcec84e68e593320606a258d5 0 /usr/include/dlfcn.h +2521 11023766 1776766428000000000 ce423e8702be28530185e4b09b199fdf 0 /usr/include/bits/dlfcn.h +1119 11023765 1776766428000000000 212bcf73af743c3898fdc9ef533a0cbf 0 /usr/include/bits/dl_find_object.h +3245 15592193 1777923927264426507 6da2432577062b037d05bf9685421152 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_thread.c +2206 15592195 1777923927264426507 f4c2594a47b4f565719a8a5a9f0a444c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_time.c +3044 15592191 1777923927264426507 34fbca07f16ff7c4f5d37b58374af726 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_poll.c +12404 15592175 1777923927262426511 ebe2a4724621dc831b6c06e12f74d4d5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/linux_joystick.c +3901 11024135 1776766428000000000 51573e40baf39611dae19b6b79da6b5a 0 /usr/include/sys/inotify.h +1080 11023796 1776766428000000000 23db2031318a86cc91c8de94ba8271de 0 /usr/include/bits/inotify.h +11458 11024006 1776766428000000000 6761c01cab1e7a637ff70b712787863d 0 /usr/include/fcntl.h +2246 11023779 1776766428000000000 230f6d44354f98fab2643bb2fe61a31c 0 /usr/include/bits/fcntl.h +15826 11023778 1776766428000000000 a89c09049a7837aa75452e239a5650fd 0 /usr/include/bits/fcntl-linux.h +1066 11023950 1776766428000000000 930adb19f5f9cbc3933b958f4a1e5ffa 0 /usr/include/bits/types/struct_iovec.h +4477 8943829 1770625897000000000 cb9419cc89a7af265a184c1f6f002f00 0 /usr/include/linux/falloc.h +1450 8944213 1770625897000000000 dfc953efad59381f85cedbcaf15d1f22 0 /usr/include/linux/openat2.h +2041 11023826 1776766428000000000 7fb288a7769cdc7b7a64bda1f15cccd2 0 /usr/include/bits/openat2.h +22943 15592219 1777923927267426501 61daf1865cea794f6fe989a933855d52 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/xkb_unicode.c +29639 15592169 1777923927262426511 1a0561496727613edebd464a7417f6c3 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/egl_context.c +11935 15592187 1777923927264426507 4c3e6494b0bcc0aee47c28a18bda9100 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/osmesa_context.c +70569 15592215 1777923927266426503 95309a7537992a74bb2bc4bf449110d0 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_init.c +7675 11024038 1776766428000000000 f38e3af658cf4e4d245a435a9a10f0a0 0 /usr/include/locale.h +1368 11023808 1776766428000000000 a15e215b176aca549a08eeec063be072 0 /usr/include/bits/locale.h +20136 15592216 1777923927266426503 fb57e4d2291d8c29f447b0cda750a942 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_monitor.c +106419 15592218 1777923927267426501 71a3c2a523df63f5cb929d61fe0824c3 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_window.c +3118 8947728 1770539241000000000 49c18fff52345f9fbca72361b14cde5c 0 /usr/include/X11/cursorfont.h +5236 7769027 1766144024000000000 d1fbdb8a1a35d2391ee2c34805ef3f1e 0 /usr/include/X11/Xmd.h +23690 15592171 1777923927262426511 38704d9b41375b7557c5fe54e0e4eb99 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/glx_context.c +4107565 15592224 1777923927276426483 40a300c8571017a8213fcc665a614206 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/miniaudio.h +40129 11024224 1776766428000000000 846d60b8884553e61b200835c9192db4 0 /usr/include/wchar.h +796 11023973 1776766428000000000 eee748e39eee0c3ba0222f7d0a22f5bb 0 /usr/include/bits/types/wint_t.h +135 11023939 1776766428000000000 88a8626270b2c135f6fae239597f3050 0 /usr/include/bits/types/mbstate_t.h +1400 11024128 1776766428000000000 2f0c7eff02f27ac2b7f317551e29ec48 0 /usr/include/sys/eventfd.h +1129 11023776 1776766428000000000 1529b91466df4e72721b7951edd4ed3e 0 /usr/include/bits/eventfd.h +364560 15592110 1777923927256426522 aa3f7a4e5ed2aea4a1ec6c90429905d4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/dr_wav.h +192790 15592240 1777923927283426469 890c281f1c8cc1ed210397614a0eb43c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_vorbis.c +206600 15592109 1777923927255426525 8a111acae971c169c181fb95f0bbb828 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/dr_mp3.h +23845 15592226 1777923927278426479 f136d45fb944c980c3798c30d5d3d443 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoa.h +10241 15592227 1777923927278426479 737b9fb56af4b423417c98b7fd85a98b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoaplay.c +102215 15592222 1777923927267426501 87feda682bd5df29026e59540130ea22 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/jar_xm.h +51996 15592221 1777923927267426501 7826726113566a1ac41845859112fa61 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/jar_mod.h diff --git a/.zig-cache/h/8fb5a9be3c7a0142143c8a92b7d100d2.txt b/.zig-cache/h/8fb5a9be3c7a0142143c8a92b7d100d2.txt new file mode 100644 index 0000000..fcd1fd2 --- /dev/null +++ b/.zig-cache/h/8fb5a9be3c7a0142143c8a92b7d100d2.txt @@ -0,0 +1,6 @@ +0 +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 1 zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +22184 15592264 1777923927287426462 cd673acb0eee1d11118f9c543c1b96ed 1 zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rcamera.h +90849 15592263 1777923927287426462 db41cf17388962b34436c4fde7782f23 1 zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raymath.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 1 zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +293735 15590661 1777923923667433573 7cfda270441ca39c49b2e81410b1effb 1 zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/src/raygui.h diff --git a/.zig-cache/h/925b6ef0442b2cf28ac746f940feac62.txt b/.zig-cache/h/925b6ef0442b2cf28ac746f940feac62.txt new file mode 100644 index 0000000..eaac8d1 --- /dev/null +++ b/.zig-cache/h/925b6ef0442b2cf28ac746f940feac62.txt @@ -0,0 +1,290 @@ +0 +113824 15592256 1777923927286426463 eaa3ac47a6f370a3247b2e595e877cae 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raudio.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +4107565 15592224 1777923927276426483 40a300c8571017a8213fcc665a614206 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/miniaudio.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +417 15568047 1777922721690272950 d2edf43390585163b0f70c6bd1d7e3b7 1 include/__stddef_header_macro.h +717 15568052 1777922721690272950 81288588f2bdd7ac4f213fa113429ef2 1 include/__stddef_ptrdiff_t.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +708 15568051 1777922721690272950 04b70454bf7cdd0c492cfaf134f95be7 1 include/__stddef_offsetof.h +48570 11024091 1776766428000000000 df73001c3d08af59a57b790c20f13f2a 0 /usr/include/pthread.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5043 11024099 1776766428000000000 e6a51b852746c12c94ed682ec128431b 0 /usr/include/sched.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +5952 11023847 1776766428000000000 0926186d78c26fdbfea09ab846c93da9 0 /usr/include/bits/sched.h +4558 8944287 1770625897000000000 13cfeea4f632939bde4c2db64ec930ff 0 /usr/include/linux/sched/types.h +1829 8944384 1770625897000000000 64ed48c0a52d7d50d7685f6332d61a80 0 /usr/include/linux/types.h +31 8943632 1770625897000000000 748039e47be584104c75dc853bfee6d8 0 /usr/include/asm/types.h +233 8943572 1770625897000000000 ff35ee9081c54a4556677db7b6ac43bd 0 /usr/include/asm-generic/types.h +864 8943546 1770625897000000000 de8f38f0cdc81bf3a5b301889f3dc586 0 /usr/include/asm-generic/int-ll64.h +321 8943578 1770625897000000000 426fd8fd87f0a7222c2d8dc0b1c11a1e 0 /usr/include/asm/bitsperlong.h +1092 8943539 1770625897000000000 ea09d2bd626e1051f84d4ecee37ba039 0 /usr/include/asm-generic/bitsperlong.h +1098 8944239 1770625897000000000 d50b3f49c69b44a5ecd1f232af677d5e 0 /usr/include/linux/posix_types.h +2135 8944323 1770625897000000000 7f1dcecb733611ba8bc38c8fa69c11bb 0 /usr/include/linux/stddef.h +224 8943606 1770625897000000000 d200bb7a30c7371a4580f935befe5542 0 /usr/include/asm/posix_types.h +609 8943608 1770625897000000000 45284a1e84848c31de23d3bd515534ee 0 /usr/include/asm/posix_types_64.h +2420 8943556 1770625897000000000 27c6e0a2b3849c0a9a5f71c86e17deb5 0 /usr/include/asm-generic/posix_types.h +1073 11023957 1776766428000000000 fd5bfcedcccd0699759e0e9b4b5f31d2 0 /usr/include/bits/types/struct_sched_param.h +4516 11023762 1776766428000000000 eab9f52a0722cf3bd47401680264c9bd 0 /usr/include/bits/cpu-set.h +15326 11024213 1776766428000000000 dd0cebc61fc90f380c881a1cbd85230a 0 /usr/include/time.h +3331 11023919 1776766428000000000 d088285f55f90486f8680c7de68e427d 0 /usr/include/bits/time.h +6203 11023923 1776766428000000000 ccfa5c0039c1ddbdb09c6db5d1922cc3 0 /usr/include/bits/timex.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +760 11023970 1776766428000000000 3cf515d0336ee94d22cc413b45febc49 0 /usr/include/bits/types/struct_tm.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +288 11023951 1776766428000000000 2de06c14c40bd39deaf2f372dace4ac7 0 /usr/include/bits/types/struct_itimerspec.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1287 11023853 1776766428000000000 81b3c862d757d31fa9585485df82c1f6 0 /usr/include/bits/setjmp.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +1467 11023949 1776766428000000000 c65b4aa95fccac40bd98fee3ba150e60 0 /usr/include/bits/types/struct___jmp_buf_tag.h +1214 11023840 1776766428000000000 2fe7b4205802733911a5efa9b71bb5e6 0 /usr/include/bits/pthread_stack_min-dynamic.h +6841 11023755 1776766428000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +3794 15568174 1777922721699272917 42f44f0344ca976c19820ae587ff2c10 1 include/limits.h +5839 11024036 1776766428000000000 93606ee9e7d5800ac5b8e3efedd3f157 0 /usr/include/limits.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +5198 11023832 1776766428000000000 a6dd17f359e45199ea5666f65b1113a6 0 /usr/include/bits/posix1_lim.h +3175 11023807 1776766428000000000 b08b1c7bc1b5a70132a5b8b175b8c0db 0 /usr/include/bits/local_lim.h +937 8943972 1770625897000000000 65da8eafce628e0f5da011204e471ee0 0 /usr/include/linux/limits.h +2867 11023833 1776766428000000000 7d8aa86701e9a380845c5cd8a669e984 0 /usr/include/bits/posix2_lim.h +3858 11023992 1776766428000000000 6056c22530b9b6e43d3215eee277a553 0 /usr/include/bits/xopen_lim.h +1385 11023977 1776766428000000000 59219f4f906088fd1473df647db44849 0 /usr/include/bits/uio_lim.h +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +21266 11024117 1776766428000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11024118 1776766428000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +34258 11024114 1776766428000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +381 11023928 1776766428000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11023930 1776766428000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11023927 1776766428000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11023926 1776766428000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11023925 1776766428000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11023948 1776766428000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11023935 1776766428000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11023890 1776766428000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +40129 11024224 1776766428000000000 846d60b8884553e61b200835c9192db4 0 /usr/include/wchar.h +1906 11023987 1776766428000000000 eb31012558f3028fc2c3c0def47ccc8a 0 /usr/include/bits/wchar.h +796 11023973 1776766428000000000 eee748e39eee0c3ba0222f7d0a22f5bb 0 /usr/include/bits/types/wint_t.h +135 11023939 1776766428000000000 88a8626270b2c135f6fae239597f3050 0 /usr/include/bits/types/mbstate_t.h +9164 11024185 1776766428000000000 d2e1b3053beaf053af8a55c6a804fde1 0 /usr/include/sys/time.h +45053 11024218 1776766428000000000 61decd3126c9fca1538df8298cac1894 0 /usr/include/unistd.h +5910 11023834 1776766428000000000 3ab8ab6e5779785e032604f1768b415c 0 /usr/include/bits/posix_opt.h +3791 11023770 1776766428000000000 e918da89dc6f1bc95caac7b9e99e3ccc 0 /usr/include/bits/environments.h +23828 11023761 1776766428000000000 9cf65881ab165e5e8e291a2f7fcd0a71 0 /usr/include/bits/confname.h +1810 11023789 1776766428000000000 996cb3fd9509868b01621c74e4a86ade 0 /usr/include/bits/getopt_posix.h +3667 11023787 1776766428000000000 ac9188a8d7cc4aac4ca3ac108e99f032 0 /usr/include/bits/getopt_core.h +2035 11023980 1776766428000000000 0cb61ab97cf5643355f3236fdfb9904c 0 /usr/include/bits/unistd_ext.h +377 8943771 1770625897000000000 7ed06359dec8788b24849d80d4e70c9a 0 /usr/include/linux/close_range.h +13793 11024176 1776766428000000000 9f12c6bf198df3a88c2d747996baf030 0 /usr/include/sys/stat.h +2231 11023878 1776766428000000000 eeced79f6a58db284452746e269ed387 0 /usr/include/bits/stat.h +6210 11023899 1776766428000000000 2fe01a59de528f1892df1bc5eef7c7cc 0 /usr/include/bits/struct_stat.h +1400 11023882 1776766428000000000 2002a64c42584c7d184facbe3d81a350 0 /usr/include/bits/statx.h +7838 8944322 1770625897000000000 c0813c1096a17ee5a243bf75dcb7977a 0 /usr/include/linux/stat.h +2409 11023881 1776766428000000000 1ca18c39930458d2b106898c1f1ed517 0 /usr/include/bits/statx-generic.h +1202 11023966 1776766428000000000 adf1f98ff50dc6da3f9c81c1f7718940 0 /usr/include/bits/types/struct_statx_timestamp.h +2248 11023965 1776766428000000000 13e0688c779dbc994826255da64ed106 0 /usr/include/bits/types/struct_statx.h +16632 15568165 1777922721699272917 70963188f6adf02d47abf0e69307e3ce 1 include/immintrin.h +1727 15568274 1777922721702272906 02224c13847552071474f4b8a67094f2 1 include/x86gprintrin.h +1395 15568160 1777922721699272917 fb46b2d83a3e08fdd2816a60bb34c1f4 1 include/hresetintrin.h +5079 15568259 1777922721701272909 17e8211de80c4aedcb92d94180a78574 1 include/uintrintrin.h +1572 15568261 1777922721701272909 090a143fbece0766fad22b1d0a3d99de 1 include/usermsrintrin.h +3347 15568148 1777922721698272920 fb37aa3848b11ad0dde9222206788fed 1 include/crc32intrin.h +2073 15568223 1777922721700272913 b7662e91645d1456a47a0baff1a8e60b 1 include/prfchiintrin.h +6748 15568227 1777922721700272913 60e92c0f22c6fd0127612d8d4fb33f1a 1 include/raointintrin.h +2383 15568146 1777922721698272920 3d1c9e6b8d2f63d088f4554226dea82d 1 include/cmpccxaddintrin.h +60004 15568188 1777922721700272913 9d96163416d339553543c8056304615f 1 include/mmintrin.h +120340 15568276 1777922721702272906 8e35d00e3ce60714ef2dd6312b645f5d 1 include/xmmintrin.h +1929 15568187 1777922721700272913 b6b5caf8039b8eeb1a472434df3e6037 1 include/mm_malloc.h +201616 15568149 1777922721698272920 c59721a008a14bf4245225c8d6dd981f 1 include/emmintrin.h +11390 15568207 1777922721700272913 af3b468e9f028463cda1ea1862bdd32f 1 include/pmmintrin.h +31927 15568257 1777922721701272909 a94b62300284d904ddd77a8612722040 1 include/tmmintrin.h +101720 15568245 1777922721701272909 65d276eda8a6b7f54badd06b69b605d7 1 include/smmintrin.h +1948 15568208 1777922721700272913 0d0dc43525f7392cd17b908e07c520a2 1 include/popcntintrin.h +659 15568273 1777922721702272906 88839041dd2d933a1ceb26cde857faea 1 include/wmmintrin.h +5269 15568058 1777922721690272950 73101524ee05bfb36c066bf9bb6e60d7 1 include/__wmmintrin_aes.h +2036 15568059 1777922721690272950 679b048994ef6e3eb20b4627ae70bbf3 1 include/__wmmintrin_pclmul.h +1193 15568143 1777922721698272920 0a42c930a770c0836dbe4a3703bb4512 1 include/clflushoptintrin.h +1229 15568144 1777922721698272920 c053e392024dcadcb1da23c409ffb040 1 include/clwbintrin.h +201849 15568132 1777922721698272920 b4ccac975fdcf069bc879ccf03d0b80f 1 include/avxintrin.h +192637 15568104 1777922721697272924 215b76cd9cf97075404f4c97c36c24f0 1 include/avx2intrin.h +5524 15568151 1777922721698272920 a8307854b76c9de85b83d9befd78477f 1 include/f16cintrin.h +20350 15568138 1777922721698272920 52d5562b0fcd60ad86d13264e78f569d 1 include/bmiintrin.h +7546 15568137 1777922721698272920 e3a2aaeac7ef1aaf72d32c13e79fabf8 1 include/bmi2intrin.h +3659 15568185 1777922721700272913 da624bb823db719405e0df2f497fd83e 1 include/lzcntintrin.h +29337 15568154 1777922721699272917 37368c2b3ac26685c39d619149a048a5 1 include/fmaintrin.h +392651 15568110 1777922721697272924 417c1f0ac26fce36e4bf57569e3ae768 1 include/avx512fintrin.h +330339 15568123 1777922721698272920 49a5250ddc213c5fcbbde5cef04535e8 1 include/avx512vlintrin.h +77845 15568107 1777922721697272924 52fdf0987ae18302e0e01534ef877cc2 1 include/avx512bwintrin.h +2626 15568106 1777922721697272924 4c8c0fd807ad9e5271cdd15d2977f9d0 1 include/avx512bitalgintrin.h +4327 15568108 1777922721697272924 d60cce9efd3cf6e1817c5b6437e4be3d 1 include/avx512cdintrin.h +2357 15568129 1777922721698272920 6f8315696bf9a22f42ec05d59da5d065 1 include/avx512vpopcntdqintrin.h +3957 15568130 1777922721698272920 abb99a6c6070cfc30e96f19e82cc0bbb 1 include/avx512vpopcntdqvlintrin.h +4428 15568127 1777922721698272920 d65f32b0b2809f1f45646161d119f357 1 include/avx512vnniintrin.h +13736 15568125 1777922721698272920 f0bad1557e9b86244734e891fe49a319 1 include/avx512vlvnniintrin.h +10690 15568136 1777922721698272920 3cc87c685806872776354f4a0b5d2155 1 include/avxvnniintrin.h +60287 15568109 1777922721697272924 b9a24e2c100dbc7ee399c43d96773394 1 include/avx512dqintrin.h +4629 15568118 1777922721697272924 312bc5534b5826436e11de728e563806 1 include/avx512vlbitalgintrin.h +124474 15568119 1777922721697272924 9c4b311057a3d5598fd23dc67c776400 1 include/avx512vlbwintrin.h +8141 15568120 1777922721697272924 d74858c8ea47f20ff9c4092d113ea41c 1 include/avx512vlcdintrin.h +47827 15568121 1777922721697272924 3c73b81ef4b33ba6bcb6714431e09354 1 include/avx512vldqintrin.h +2660 15568112 1777922721697272924 6400d05d435160c1d6d346c344a76086 1 include/avx512ifmaintrin.h +4712 15568113 1777922721697272924 fa03ebe74dbaca356d64dbe640460035 1 include/avx512ifmavlintrin.h +5886 15568131 1777922721698272920 0e78550e483532f19c0908b38276ec64 1 include/avxifmaintrin.h +3920 15568115 1777922721697272924 5700f088b6969618471ef25f630669d0 1 include/avx512vbmiintrin.h +7402 15568116 1777922721697272924 16d47f57484ed296b3e6e1368e704595 1 include/avx512vbmivlintrin.h +13493 15568114 1777922721697272924 b105a7215373b26faee90ebcf9611298 1 include/avx512vbmi2intrin.h +26633 15568124 1777922721698272920 3e9303ac0a4faf37b84922e7f0c7fbac 1 include/avx512vlvbmi2intrin.h +160735 15568111 1777922721697272924 74efdcbf12d39f136d48990ed6247ae4 1 include/avx512fp16intrin.h +87561 15568122 1777922721697272924 f6fd101ffd8ecd06bab96e21091b3f55 1 include/avx512vlfp16intrin.h +10832 15568105 1777922721697272924 f328f474b8b2f7ecd99fc38496b8ba0c 1 include/avx512bf16intrin.h +19922 15568117 1777922721697272924 ae2035290c3da7e9ee66b53aa998e2e8 1 include/avx512vlbf16intrin.h +934 15568206 1777922721700272913 9eec7d1953339f7017502cf78723950d 1 include/pkuintrin.h +1086 15568269 1777922721702272906 637855aacd197db9868d139d6fafe450 1 include/vpclmulqdqintrin.h +2671 15568263 1777922721701272909 57f64f1aed9ee8ed6eca03464494e60c 1 include/vaesintrin.h +9822 15568156 1777922721699272917 220fde0fd70770eba04dde846bdbbef7 1 include/gfniintrin.h +17431 15568135 1777922721698272920 a7d4a6dc8f028f8c7ace573ef994a4d1 1 include/avxvnniint8intrin.h +14432 15568133 1777922721698272920 72cc1449016b76cd7ab84c886811a3e2 1 include/avxneconvertintrin.h +6088 15568239 1777922721701272909 0f30b3a47ff82ec3699c8cd0e40cbc92 1 include/sha512intrin.h +7470 15568242 1777922721701272909 bc67c183035f74d21e316c8ab20ae2f0 1 include/sm3intrin.h +8401 15568244 1777922721701272909 6ab760098261dfe1782c73be8e138705 1 include/sm4intrin.h +16222 15568134 1777922721698272920 682df57b668a75daebe49e56a2f1c645 1 include/avxvnniint16intrin.h +1280 15568235 1777922721701272909 6eab1c6b32be874b9c82a3ff1d2772e6 1 include/rtmintrin.h +873 15568282 1777922721702272906 dcac3c4fb2d9e8fc2e32c099cc2f4a7c 1 include/xtestintrin.h +7660 15568240 1777922721701272909 3ce15406906216d7b4f3b25709fd0765 1 include/shaintrin.h +2890 15568155 1777922721699272917 72e559c6284e7b3e59ece194e6e3e2f1 1 include/fxsrintrin.h +1678 15568279 1777922721702272906 adc179a954bd6419ecb3679e88e76d89 1 include/xsaveintrin.h +1026 15568280 1777922721702272906 5e941b1ef68d3e6e9aa207d5d00dba2f 1 include/xsaveoptintrin.h +2574 15568278 1777922721702272906 83e5e79720328dd0054ce7660005acd2 1 include/xsavecintrin.h +1268 15568281 1777922721702272906 51ebe3f93e82afad00bcea35da340569 1 include/xsavesintrin.h +3351 15568141 1777922721698272920 940fdc9a595824a3546eb2d73c351f8f 1 include/cetintrin.h +5565 15568060 1777922721690272950 c17718c6485c7659e7890a4cbab75219 1 include/adcintrin.h +3447 15568061 1777922721690272950 a7ca4b601933a32c4855f0ec1ceb8b73 1 include/adxintrin.h +2919 15568229 1777922721701272909 9ba44bec7d615d70d29c2cf49efd2fd9 1 include/rdseedintrin.h +749 15568272 1777922721702272906 ab03b0b2ec3b24b5c381d040fbd5d3f3 1 include/wbnoinvdintrin.h +1207 15568142 1777922721698272920 faf0346a1135a650caebf7c0fa660e06 1 include/cldemoteintrin.h +1357 15568270 1777922721702272906 c29665f4ae7d08f40fdba4bdf3c59fcb 1 include/waitpkgintrin.h +1612 15568190 1777922721700272913 361388a1deda89bbc5200844d0aec7a4 1 include/movdirintrin.h +2025 15568193 1777922721700272913 0f19f76e900e332d57533e05989a2a0c 1 include/movrsintrin.h +7036 15568192 1777922721700272913 2c6fb76c226fac69586d6e93c0fd3908 1 include/movrs_avx10_2intrin.h +3973 15568191 1777922721700272913 19680bd74186f6c0adedde41e57f21e1 1 include/movrs_avx10_2_512intrin.h +1216 15568205 1777922721700272913 b3205c333672913fc7c8acc26dfb5304 1 include/pconfigintrin.h +1816 15568238 1777922721701272909 4814b5f568d79fe0a3ff9a01056fa17b 1 include/sgxintrin.h +1076 15568226 1777922721700272913 3fae1e12e188144704082b5c0de48a7f 1 include/ptwriteintrin.h +764 15568169 1777922721699272917 c4f35c928a775df7195a03f0d5411aff 1 include/invpcidintrin.h +17973 15568171 1777922721699272917 0b48ddfbbe168ffd50b79789be908d2a 1 include/keylockerintrin.h +20304 15568071 1777922721691272946 3381fed3b944ecfc74f30d27ff094bca 1 include/amxintrin.h +3327 15568068 1777922721691272946 f1e5420b9d7fe9febe794a24e96e4ce9 1 include/amxfp16intrin.h +6933 15568066 1777922721691272946 78b4f2aa1cf1c0239e304a1f474331d0 1 include/amxcomplexintrin.h +8839 15568070 1777922721691272946 5ccf1e3f33ad6379d2a262f4438cd502 1 include/amxfp8intrin.h +10853 15568076 1777922721691272946 7921f0f126779340730c078d6b3c9997 1 include/amxtransposeintrin.h +2290 15568072 1777922721691272946 5f7e30d92bb23f379ce740ff06bde41f 1 include/amxmovrsintrin.h +9402 15568073 1777922721691272946 6fa922cc643f704d9fa08f0cce57fd0b 1 include/amxmovrstransposeintrin.h +12986 15568064 1777922721691272946 107cbdc06513520aa9e4e158e3f6c491 1 include/amxavx512intrin.h +3562 15568074 1777922721691272946 fd05d9e0127721d899581134b681ca3c 1 include/amxtf32intrin.h +3643 15568075 1777922721691272946 55a73f65dcb801b11b24e97984ccedb0 1 include/amxtf32transposeintrin.h +3525 15568065 1777922721691272946 52d2749a270864e796b43cc5ee738a7f 1 include/amxbf16transposeintrin.h +3525 15568069 1777922721691272946 42f3593c062932dfe44c29ecf4283afb 1 include/amxfp16transposeintrin.h +12061 15568067 1777922721691272946 3ac118b8b4568263387fa6cc9c6d757d 1 include/amxcomplextransposeintrin.h +3102 15568128 1777922721698272920 731bbd34cb220f83027d2d1b60e5b916 1 include/avx512vp2intersectintrin.h +4782 15568126 1777922721698272920 380ed65ce4ea2eb042a085a39a69d79e 1 include/avx512vlvp2intersectintrin.h +44658 15568097 1777922721696272928 faca47b99e2b7dd009773fe525926cad 1 include/avx10_2bf16intrin.h +108821 15568098 1777922721696272928 fb976c4700d15c22d82fec385805cc26 1 include/avx10_2convertintrin.h +2410 15568099 1777922721696272928 10419d2bc12d8a9878d0e2866a79b6ed 1 include/avx10_2copyintrin.h +13680 15568100 1777922721696272928 3b54fb6f688ef31b5b288d68add52055 1 include/avx10_2minmaxintrin.h +17003 15568101 1777922721696272928 21161b694449a0ad9ec0ff4fd45c5338 1 include/avx10_2niintrin.h +15253 15568102 1777922721696272928 b54db7027b0759bf2c6e98812c65825d 1 include/avx10_2satcvtdsintrin.h +18140 15568103 1777922721696272928 90423834c7a102028a91b8ed880457bd 1 include/avx10_2satcvtintrin.h +23410 15568091 1777922721696272928 95bee4d483b52e84460e33e248d24b78 1 include/avx10_2_512bf16intrin.h +13192 15568092 1777922721696272928 b29bf6fb9e659842d31f4be78f82b58a 1 include/avx10_2_512convertintrin.h +7526 15568093 1777922721696272928 e922b6ff2d475a67b2edd396292f7078 1 include/avx10_2_512minmaxintrin.h +14039 15568094 1777922721696272928 706c14e292a7064003c3a9554b34d98d 1 include/avx10_2_512niintrin.h +13799 15568095 1777922721696272928 9a37b5547f48ae1333e9109ba36c0502 1 include/avx10_2_512satcvtdsintrin.h +16999 15568096 1777922721696272928 cc3b16d0b0f0630231d148f1376082d1 1 include/avx10_2_512satcvtintrin.h +1195 15568243 1777922721701272909 415f4786cb23f5ee37699dc6b7eff360 1 include/sm4evexintrin.h +2167 15568150 1777922721698272920 6e887392f50e32d2c4bc3eb4ca4e4def 1 include/enqcmdintrin.h +881 15568237 1777922721701272909 de461f45e00eb8aa42c96123bef0f9a0 1 include/serializeintrin.h +2015 15568258 1777922721701272909 d9bd2435957a5e62c538d80aea562772 1 include/tsxldtrkintrin.h +1679 11024003 1776766428000000000 abb7aa3ce3560985cdcc5222002abe0a 0 /usr/include/errno.h +1426 11023773 1776766428000000000 f5901b3b5db0a666bc76fe7ac755756b 0 /usr/include/bits/errno.h +23 8943817 1770625897000000000 0e9514526df5411989c0921d62c34bb0 0 /usr/include/linux/errno.h +31 8943586 1770625897000000000 303204c8e8dd5d0b26a8bbfede43c812 0 /usr/include/asm/errno.h +5648 8943542 1770625897000000000 8becdc7faaf464f4f03c90038b9730e0 0 /usr/include/asm-generic/errno.h +1612 8943541 1770625897000000000 9e53730016da2684ae9a8bb2284166de 0 /usr/include/asm-generic/errno-base.h +894 11023936 1776766428000000000 21d9a2571870c420b53485fe487743c5 0 /usr/include/bits/types/error_t.h +8794 11023998 1776766428000000000 1e941a0fcec84e68e593320606a258d5 0 /usr/include/dlfcn.h +2521 11023766 1776766428000000000 ce423e8702be28530185e4b09b199fdf 0 /usr/include/bits/dlfcn.h +1119 11023765 1776766428000000000 212bcf73af743c3898fdc9ef533a0cbf 0 /usr/include/bits/dl_find_object.h +22 11024084 1776766428000000000 0ea58fcbabea8c4434197b25c0da0032 0 /usr/include/poll.h +3030 11024151 1776766428000000000 fdfc712b78cbcaa0020d4464fb281b64 0 /usr/include/sys/poll.h +2076 11023830 1776766428000000000 d4de1743efaa71a7637fb37b349b20f7 0 /usr/include/bits/poll.h +1400 11024128 1776766428000000000 2f0c7eff02f27ac2b7f317551e29ec48 0 /usr/include/sys/eventfd.h +27519 15568253 1777922721701272909 1bf965d23c79a082ac103b8d4944724e 1 include/stdint.h +8268 11024113 1776766428000000000 07868a6486476f79d1af8befa09ff966 0 /usr/include/stdint.h +1049 11023885 1776766428000000000 df8b58b124e95d233ec646186fc72d07 0 /usr/include/bits/stdint-uintn.h +1305 11023884 1776766428000000000 e13a68eb8203cd6be160c31f99d931f7 0 /usr/include/bits/stdint-least.h +1129 11023776 1776766428000000000 1529b91466df4e72721b7951edd4ed3e 0 /usr/include/bits/eventfd.h +364560 15592110 1777923927256426522 aa3f7a4e5ed2aea4a1ec6c90429905d4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/dr_wav.h +192790 15592240 1777923927283426469 890c281f1c8cc1ed210397614a0eb43c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_vorbis.c +206600 15592109 1777923927255426525 8a111acae971c169c181fb95f0bbb828 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/dr_mp3.h +23845 15592226 1777923927278426479 f136d45fb944c980c3798c30d5d3d443 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoa.h +10241 15592227 1777923927278426479 737b9fb56af4b423417c98b7fd85a98b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoaplay.c +102215 15592222 1777923927267426501 87feda682bd5df29026e59540130ea22 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/jar_xm.h +51996 15592221 1777923927267426501 7826726113566a1ac41845859112fa61 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/jar_mod.h diff --git a/.zig-cache/h/95faa71149ca71c43e637e7751fc21dc.txt b/.zig-cache/h/95faa71149ca71c43e637e7751fc21dc.txt new file mode 100644 index 0000000..e69de29 diff --git a/.zig-cache/h/9b4b272481a69ae1f05e85f61b4dc27d.txt b/.zig-cache/h/9b4b272481a69ae1f05e85f61b4dc27d.txt new file mode 100644 index 0000000..1a35e7b --- /dev/null +++ b/.zig-cache/h/9b4b272481a69ae1f05e85f61b4dc27d.txt @@ -0,0 +1,75 @@ +0 +94278 15592270 1777923927290426456 148e15819214db74e0525ec276acecdd 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rshapes.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +6268 15568152 1777922721698272920 f23d0597dbe24fbef0b9db0a6a912bdb 1 include/float.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h diff --git a/.zig-cache/h/9c3ed3b9b9dd33a3b4a681fab0009b33.txt b/.zig-cache/h/9c3ed3b9b9dd33a3b4a681fab0009b33.txt new file mode 100644 index 0000000..329426e --- /dev/null +++ b/.zig-cache/h/9c3ed3b9b9dd33a3b4a681fab0009b33.txt @@ -0,0 +1,125 @@ +0 +338872 15592269 1777923927290426456 76fc55680b7dd750a09c7c8d4885d438 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rmodels.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +90849 15592263 1777923927287426462 db41cf17388962b34436c4fde7782f23 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raymath.h +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +34258 11024114 1776766428000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +381 11023928 1776766428000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11023930 1776766428000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11023927 1776766428000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11023926 1776766428000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11023925 1776766428000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11023948 1776766428000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11023935 1776766428000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11023890 1776766428000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +21266 11024117 1776766428000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11024118 1776766428000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +45680 15592241 1777923927283426469 eb116170525d41104424990ac7adcf2f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/tinyobj_loader_c.h +6841 11023755 1776766428000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +1679 11024003 1776766428000000000 abb7aa3ce3560985cdcc5222002abe0a 0 /usr/include/errno.h +1426 11023773 1776766428000000000 f5901b3b5db0a666bc76fe7ac755756b 0 /usr/include/bits/errno.h +23 8943817 1770625897000000000 0e9514526df5411989c0921d62c34bb0 0 /usr/include/linux/errno.h +31 8943586 1770625897000000000 303204c8e8dd5d0b26a8bbfede43c812 0 /usr/include/asm/errno.h +5648 8943542 1770625897000000000 8becdc7faaf464f4f03c90038b9730e0 0 /usr/include/asm-generic/errno.h +1612 8943541 1770625897000000000 9e53730016da2684ae9a8bb2284166de 0 /usr/include/asm-generic/errno-base.h +894 11023936 1776766428000000000 21d9a2571870c420b53485fe487743c5 0 /usr/include/bits/types/error_t.h +205754 15592105 1777923927253426528 5d2f236b6f6ef5d9a1b295fd3d1846d5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/cgltf.h +417 15568047 1777922721690272950 d2edf43390585163b0f70c6bd1d7e3b7 1 include/__stddef_header_macro.h +717 15568052 1777922721690272950 81288588f2bdd7ac4f213fa113429ef2 1 include/__stddef_ptrdiff_t.h +708 15568051 1777922721690272950 04b70454bf7cdd0c492cfaf134f95be7 1 include/__stddef_offsetof.h +27519 15568253 1777922721701272909 1bf965d23c79a082ac103b8d4944724e 1 include/stdint.h +8268 11024113 1776766428000000000 07868a6486476f79d1af8befa09ff966 0 /usr/include/stdint.h +1906 11023987 1776766428000000000 eb31012558f3028fc2c3c0def47ccc8a 0 /usr/include/bits/wchar.h +1049 11023885 1776766428000000000 df8b58b124e95d233ec646186fc72d07 0 /usr/include/bits/stdint-uintn.h +1305 11023884 1776766428000000000 e13a68eb8203cd6be160c31f99d931f7 0 /usr/include/bits/stdint-least.h +3794 15568174 1777922721699272917 42f44f0344ca976c19820ae587ff2c10 1 include/limits.h +5839 11024036 1776766428000000000 93606ee9e7d5800ac5b8e3efedd3f157 0 /usr/include/limits.h +5198 11023832 1776766428000000000 a6dd17f359e45199ea5666f65b1113a6 0 /usr/include/bits/posix1_lim.h +3175 11023807 1776766428000000000 b08b1c7bc1b5a70132a5b8b175b8c0db 0 /usr/include/bits/local_lim.h +937 8943972 1770625897000000000 65da8eafce628e0f5da011204e471ee0 0 /usr/include/linux/limits.h +1214 11023840 1776766428000000000 2fe7b4205802733911a5efa9b71bb5e6 0 /usr/include/bits/pthread_stack_min-dynamic.h +2867 11023833 1776766428000000000 7d8aa86701e9a380845c5cd8a669e984 0 /usr/include/bits/posix2_lim.h +3858 11023992 1776766428000000000 6056c22530b9b6e43d3215eee277a553 0 /usr/include/bits/xopen_lim.h +1385 11023977 1776766428000000000 59219f4f906088fd1473df647db44849 0 /usr/include/bits/uio_lim.h +6268 15568152 1777922721698272920 f23d0597dbe24fbef0b9db0a6a912bdb 1 include/float.h +19659 15592242 1777923927284426468 6f6765d6e719e243ad70cc22023392da 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/vox_loader.h +306683 15592223 1777923927268426499 15241acfe0a45badbe1236db00c6ea81 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/m3d.h +72865 15592225 1777923927278426479 9dc0644bac4164f220adfabe1352af5b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/par_shapes.h +45053 11024218 1776766428000000000 61decd3126c9fca1538df8298cac1894 0 /usr/include/unistd.h +5910 11023834 1776766428000000000 3ab8ab6e5779785e032604f1768b415c 0 /usr/include/bits/posix_opt.h +3791 11023770 1776766428000000000 e918da89dc6f1bc95caac7b9e99e3ccc 0 /usr/include/bits/environments.h +23828 11023761 1776766428000000000 9cf65881ab165e5e8e291a2f7fcd0a71 0 /usr/include/bits/confname.h +1810 11023789 1776766428000000000 996cb3fd9509868b01621c74e4a86ade 0 /usr/include/bits/getopt_posix.h +3667 11023787 1776766428000000000 ac9188a8d7cc4aac4ca3ac108e99f032 0 /usr/include/bits/getopt_core.h +2035 11023980 1776766428000000000 0cb61ab97cf5643355f3236fdfb9904c 0 /usr/include/bits/unistd_ext.h +377 8943771 1770625897000000000 7ed06359dec8788b24849d80d4e70c9a 0 /usr/include/linux/close_range.h diff --git a/.zig-cache/h/a0733277fb4015f75c9d364d19410808.txt b/.zig-cache/h/a0733277fb4015f75c9d364d19410808.txt new file mode 100644 index 0000000..82565f4 --- /dev/null +++ b/.zig-cache/h/a0733277fb4015f75c9d364d19410808.txt @@ -0,0 +1,85 @@ +0 +50 15596151 1777925798684431311 fd3888aa7ca9778df50390896cce6318 2 o/da8bf749420ef1065612c05b8ed536b3/raygui.c +293735 15590661 1777923923667433573 7cfda270441ca39c49b2e81410b1effb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/src/raygui.h +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +34258 11024114 1776766428000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +381 11023928 1776766428000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11023930 1776766428000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11023927 1776766428000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11023926 1776766428000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11023925 1776766428000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11023948 1776766428000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11023935 1776766428000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11023890 1776766428000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +21266 11024117 1776766428000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +4753 11024118 1776766428000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +10969 11023996 1776766428000000000 dd17390845739df8331656ac5a17ef8e 0 /usr/include/ctype.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h diff --git a/.zig-cache/h/a12ca381c44e013f8fb248a8c08a57db.txt b/.zig-cache/h/a12ca381c44e013f8fb248a8c08a57db.txt new file mode 100644 index 0000000..d9aea56 --- /dev/null +++ b/.zig-cache/h/a12ca381c44e013f8fb248a8c08a57db.txt @@ -0,0 +1,829 @@ +0 +1343 15590147 1777923882671512549 8fa58a8a17f30dfd4cba278cc9ce445f 0 src/main.zig +184235 15590296 1777923881918513972 85ad82da3fad2cc8beda806b1ed8bdeb 0 zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/raylib.zig +13545774 15596946 1777927048097234781 ccb2f62a6b420e00cf94d3324ca71501 2 o/c655dfdc50855fa632b92da24c7e0244/libraylib.a +460816 2104748 1749858906000000000 19b59f2a2768926dd4cb35a090cb8868 0 /lib64/libGL.so +1313184 11320745 1770539241000000000 e72e4619f955c3a38211536766b516f4 0 /lib64/libX11.so +47088 11321900 1769439156000000000 da6f4be2e87e2aa16772a75fa6a36f63 0 /lib64/libXrandr.so +14328 11321926 1769438631000000000 621184dc819e1014d93ea9a7f28bdccb 0 /lib64/libXinerama.so +75832 11321942 1725514872000000000 8080cfc6a1c65c31d450aeb5fedf0788 0 /lib64/libXi.so +47048 11322029 1730878554000000000 81c5a9837f418f236c79e736ea7f1e53 0 /lib64/libXcursor.so +10806 15588318 1777922722097271439 8c5b1950a5ebd26914a8e350d73d6999 1 std/std.zig +2525 15587766 1777922722081271498 71e0dabdb301ba10f8ca420941767e70 1 std/BitStack.zig +102991 15587797 1777922722082271495 75827315f3c3585390aebfe0aa119cb6 1 std/Build.zig +4266 15587886 1777922722085271483 16fdba428de22eb1305e855dec42f9a9 1 std/buf_map.zig +4526 15587887 1777922722085271483 8e63f8aad9b21f2cac5dcdcafd975d93 1 std/buf_set.zig +26749 15588047 1777922722090271465 94db977a6517f376d616042aec36c899 1 std/deque.zig +8176 15587798 1777922722082271495 af059436f9aa9ce8410e2a090d402920 1 std/DoublyLinkedList.zig +23691 15588057 1777922722090271465 3804b9a26510c6fe8d6e8e36a68dc482 1 std/dynamic_library.zig +135875 15587827 1777922722083271491 db86574f603d848efccc949d881d7ff4 1 std/Io.zig +46161 15588202 1777922722094271450 56e536443df53290961fcccb0248fae4 1 std/multi_array_list.zig +22225 15588304 1777922722097271439 561ce3400c8ac8d5b974517205c4f0ea 1 std/priority_queue.zig +35249 15588303 1777922722097271439 f30a503fcc87a18b18deced637313484 1 std/priority_dequeue.zig +64903 15587828 1777922722083271491 65a38fafd0d3cb5b25ca2488c18dae3e 1 std/Progress.zig +18069 15587843 1777922722083271491 8d1118eeb93cb6e46910fece65a272b3 1 std/Random.zig +10905 15587844 1777922722084271487 d0732789c7d50ebb4a3644f4b79bfad4 1 std/SemanticVersion.zig +5325 15587845 1777922722084271487 9b3e9e32c95aa2d415f162836c908e22 1 std/SinglyLinkedList.zig +117251 15587877 1777922722085271483 64f19f2a345ce26b80375c5f07d3eb60 1 std/Target.zig +66110 15587878 1777922722085271483 434d2e14ecbcf3813a62db89c218de07 1 std/Thread.zig +24524 15588330 1777922722097271439 1694ad0602c4425ddf33879d415f4ab1 1 std/treap.zig +32908 15587879 1777922722085271483 0effee4fbdb48a21d5a7de6981175d09 1 std/Uri.zig +97347 15587881 1777922722085271483 6e2bf450682db7fe2f70f856e6a69953 1 std/array_list.zig +97238 15587880 1777922722085271483 277386674f342dc4f1bcc7aff33ca523 1 std/array_hash_map.zig +20679 15587883 1777922722085271483 e7807462ad093052a700641168907e85 1 std/atomic.zig +24364 15587884 1777922722085271483 307015c80605830d882c9a9c5a417cb6 1 std/base64.zig +69662 15587885 1777922722085271483 7d9220a12d959c3fbdb0ad5d2dd745a1 1 std/bit_set.zig +43574 15587890 1777922722085271483 9b559f4ead3bbab2ddf320c5d9e35ef8 1 std/builtin.zig +371584 15587902 1777922722086271480 5e032a1afe94597d47a218be0ec20277 1 std/c.zig +77408 15587903 1777922722086271480 80080b1bacb0c8d673dc0bb465cc26e3 1 std/coff.zig +372 15587921 1777922722086271480 b867983786f01e8333e32b633eb10410 1 std/compress.zig +17640 15588317 1777922722097271439 bd79322afba3cc08000a99c21bfd26d7 1 std/static_string_map.zig +14657 15588025 1777922722089271469 ec00cc50efd2df8055faaa18a8b150d4 1 std/crypto.zig +76832 15588046 1777922722090271465 d49109fe127342ca0667bf94eb59fd2f 1 std/debug.zig +4894 15588056 1777922722090271465 61fff94fe737bda88edd8ca624c0a93c 1 std/dwarf.zig +90513 15588058 1777922722090271465 ede53ba4bac041f8a65ea772acae0cf0 1 std/elf.zig +56153 15588059 1777922722090271465 7afe4323fff4ddc8b4fb0b43cb9bf3bc 1 std/enums.zig +58268 15588073 1777922722091271461 642dc1256607ec96b839c549851b2c91 1 std/fmt.zig +729 15588077 1777922722091271461 0215ac7c2c72b37feee794b5911b205e 1 std/fs.zig +4178 15588078 1777922722091271461 55d3b5abd2866f8efe872f7339310a5c 1 std/gpu.zig +4080 15588093 1777922722091271461 571b514d96d7378ef13c8e6325e62ebf 1 std/hash.zig +80547 15588094 1777922722091271461 98d70ba2e89d37b4ed01247687fd83c3 1 std/hash_map.zig +38871 15588103 1777922722092271458 6c2f0da7917bebc86c5cd9528748e166 1 std/heap.zig +39320 15588111 1777922722092271458 3cb1bd9830c559b6288becb2db86fa08 1 std/http.zig +5458 15588124 1777922722092271458 83ba0216673ecfc447f968f67e88f774 1 std/json.zig +4897 15588125 1777922722092271458 7ff89bbb36c1fb140621f1e8fc3862c8 1 std/leb128.zig +7039 15588126 1777922722092271458 c6c6467049074839115f224de558946d 1 std/log.zig +72538 15588127 1777922722092271458 f2001ea91ead4103a9eb9cb995ea88ba 1 std/macho.zig +74865 15588195 1777922722094271450 273f62e9b9f832d5dd38c1402c0a48ed 1 std/math.zig +198145 15588198 1777922722094271450 22953e783cdc7561c4a15182f751d98e 1 std/mem.zig +35008 15588201 1777922722094271450 28f1d6dd4b7d63bc3a3570e9199e8376 1 std/meta.zig +433 15588297 1777922722096271443 74b41a911daaf29c0b0ef736d0df8af9 1 std/os.zig +16798 15588298 1777922722096271443 e6a5612c85472d16e2049377b392e536 1 std/pdb.zig +13777 15588299 1777922722096271443 aee2d674f93679708d83f4bc563d9c31 1 std/pie.zig +60638 15588302 1777922722097271439 91112299d7c1608c1b7c406ef8ca8083 1 std/posix.zig +42615 15588310 1777922722097271439 79697d237229c19709238f38b4dea1ee 1 std/process.zig +39704 15588315 1777922722097271439 204eff1c5332b5ab938ef3e30aac0ff0 1 std/sort.zig +23044 15588311 1777922722097271439 4cb21aacce1e6e69623ab74ec0986ae3 1 std/simd.zig +18221 15587882 1777922722085271483 ba5aad7d300f6596af851529cb14ecec 1 std/ascii.zig +44772 15588322 1777922722097271439 82a4d2308a683c39c74253045d469374 1 std/tar.zig +49967 15588326 1777922722097271439 5985bb10a3df3ffd445cba60cbe8ab90 1 std/testing.zig +1015 15588329 1777922722097271439 0dd8c20d912d8db9104f4b808b86bf8a 1 std/time.zig +10835 15588331 1777922722097271439 9bd3cc2d0b87156ecc92c4873b9f5f96 1 std/tz.zig +84830 15588334 1777922722097271439 a0675cff7ad8bd3379a81efc02f8fb84 1 std/unicode.zig +12292 15588339 1777922722097271439 8757ba546e520503fcc6a58d9b0d0083 1 std/valgrind.zig +17661 15588340 1777922722098271435 a8988138c7ee50f868cd1db24ab3d1d6 1 std/wasm.zig +44987 15588387 1777922722100271428 f86c914b8f81b14502f0d8561b1439b6 1 std/zig.zig +26670 15588388 1777922722100271428 93724928f5f24ae5c14b26c9c2d3ed3f 1 std/zip.zig +1242 15588393 1777922722100271428 c5e5cebc2cfc9353dc65aa5193442b60 1 std/zon.zig +31720 15588316 1777922722097271439 ffd3a427c45dfa3cbc9761a1361d1d3c 1 std/start.zig +1343 15590147 1777923882671512549 8fa58a8a17f30dfd4cba278cc9ce445f 0 /home/bd/Projects/zig/zig-frugg/src/main.zig +60609 15587772 1777922722081271498 75c8c12c985cd8192806ca67e152ab02 1 std/Build/Cache.zig +38981 15587791 1777922722082271495 be5b6a4bf599cf8fb54d6cb84cf21e5a 1 std/Build/Step.zig +26577 15587774 1777922722081271498 98f120af5a4b7824a26104c00a1d4bd1 1 std/Build/Module.zig +43910 15587794 1777922722082271495 a59d963e44dc7302d869d03e948a68a4 1 std/Build/Watch.zig +21695 15587773 1777922722081271498 ad7f7cf87f2d7cecfde3308a9a959c3c 1 std/Build/Fuzz.zig +34965 15587795 1777922722082271495 7b5315aea2d8aae761b704545ca6fd8a 1 std/Build/WebServer.zig +18326 15587796 1777922722082271495 86b3353e10f6891989b87fc619625f26 1 std/Build/abi.zig +778302 15587818 1777922722083271491 4d59b0d04131c010b5f58eb38120fbd9 1 std/Io/Threaded.zig +8949 15587821 1777922722083271491 40de485275e5d9bb6449f34e577313a2 1 std/Io/fiber.zig +184480 15587801 1777922722082271495 051fe407bbf5fa278eb5ba8923864173 1 std/Io/Dispatch.zig +53826 15587809 1777922722082271495 9e4d97b716cad9a064e52a86d622fc34 1 std/Io/Kqueue.zig +224474 15587819 1777922722083271491 8b60359fa3a92d4d6d3abe55a7e324e6 1 std/Io/Uring.zig +87408 15587812 1777922722082271495 9e17e83fad8cb492e5ae4ed460d46786 1 std/Io/Reader.zig +109608 15587820 1777922722083271491 98cc344f10dd258d0b9e9a433b55bb47 1 std/Io/Writer.zig +54298 15587825 1777922722083271491 6c83f2205f839d4830728dcacdc785d4 1 std/Io/net.zig +80457 15587800 1777922722082271495 92155343884f0d4850994d8697afe172 1 std/Io/Dir.zig +26690 15587808 1777922722082271495 7b97a0f8b4be80a0f463b68d50250a5c 1 std/Io/File.zig +5555 15587815 1777922722082271495 f6a7792ba60b33de2cacb4566e345d20 1 std/Io/Terminal.zig +9375 15587813 1777922722082271495 d2e926a1f61d5405b6d47098198f7b8e 1 std/Io/RwLock.zig +1802 15587814 1777922722082271495 6813309428640ae1f7c5714dbb51a16b 1 std/Io/Semaphore.zig +0 15587826 1777922722083271491 82547a8dd7f3efb3f077622e34876868 1 std/Io/test.zig +1811 15587830 1777922722083271491 4f975bd4c885c2b17936c7c15e2a1fa0 1 std/Random/Ascon.zig +2688 15587831 1777922722083271491 64c6fd1bd09becbfb3dca08dd7335a8b 1 std/Random/ChaCha.zig +6100 15587832 1777922722083271491 14fb5367ee7128106466c91abe89d828 1 std/Random/Isaac64.zig +2727 15587833 1777922722083271491 98b129620d81fc551cc2747eb5e93a2d 1 std/Random/Pcg.zig +3242 15587837 1777922722083271491 13e05c7b4ba6bd757c30dbc6e1520198 1 std/Random/Xoroshiro128.zig +3177 15587838 1777922722083271491 ece4176296c0d5a4735a0e13195d3e89 1 std/Random/Xoshiro256.zig +3158 15587835 1777922722083271491 e0b128479f8a117718ec288761f83ac0 1 std/Random/Sfc64.zig +3699 15587834 1777922722083271491 f562dad96707be48e6745a1f57cbf27c 1 std/Random/RomuTrio.zig +530 15587836 1777922722083271491 6862d091fadcbbb652464ab10689bd23 1 std/Random/SplitMix64.zig +4526 15587842 1777922722083271491 8ac3cfca93be2f623ce661fc9fb27686 1 std/Random/ziggurat.zig +600 15587840 1777922722083271491 11504a4d6115814ba14dfe02b3020485 1 std/Random/lcg.zig +0 15587841 1777922722083271491 82547a8dd7f3efb3f077622e34876868 1 std/Random/test.zig +30498 15587847 1777922722084271487 cf7aa2742e3fd138caf72147ec971b51 1 std/Target/Query.zig +115997 15587848 1777922722084271487 bc87bf7bcf6400d24d41b7415b169cc9 1 std/Target/aarch64.zig +2897 15587849 1777922722084271487 a02e557aa365ac787ac2c02b52315ddc 1 std/Target/alpha.zig +108519 15587850 1777922722084271487 a8d3ef24d10efbbb1847d5a2d06fb744 1 std/Target/amdgcn.zig +1274 15587851 1777922722084271487 c251325fefba8d6614a0692c5ceb2eea 1 std/Target/arc.zig +79096 15587852 1777922722084271487 6fb9e355597a9d862f083069aaf2fcd6 1 std/Target/arm.zig +84636 15587853 1777922722084271487 78f08f956d02f181a2fd446cf9402613 1 std/Target/avr.zig +2425 15587854 1777922722084271487 3376bf5f146580e9b3ce5e329a604817 1 std/Target/bpf.zig +77604 15587855 1777922722084271487 be007dfe415760a79fc1d9d7dc89a548 1 std/Target/csky.zig +18058 15587857 1777922722084271487 8ccf22d3bcff20d7636d8251948f4618 1 std/Target/hexagon.zig +4895 15587858 1777922722084271487 b870aa73f7bd666ffa47be26fa7bb580 1 std/Target/hppa.zig +665 15587856 1777922722084271487 1dec26e22b22006cd47d45b427f8a00c 1 std/Target/generic.zig +1881 15587859 1777922722084271487 26256603d875aee0f67f6e2aee670b46 1 std/Target/kvx.zig +1207 15587860 1777922722084271487 2119135642c6ce06557e5005da5d27d3 1 std/Target/lanai.zig +7184 15587861 1777922722084271487 891c7f973054eec39b43f2293eda2bd8 1 std/Target/loongarch.zig +7140 15587862 1777922722084271487 85a640161b5e75f1b0e44aafa7b2ac12 1 std/Target/m68k.zig +17604 15587863 1777922722084271487 404eba23c6a57f7914b92003c464442a 1 std/Target/mips.zig +2227 15587864 1777922722084271487 f424aba074f946c774143fd6a0cc9b02 1 std/Target/msp430.zig +20314 15587865 1777922722084271487 d68d9c5654a2c1114ce6dbc8038ef2f7 1 std/Target/nvptx.zig +35033 15587866 1777922722084271487 af9f967f62c784018632fc7184d14e0c 1 std/Target/powerpc.zig +1396 15587867 1777922722084271487 11966b944c6a6f5eb378759087686f44 1 std/Target/propeller.zig +108921 15587868 1777922722084271487 ff74cb05f762242da93430e2a04837df 1 std/Target/riscv.zig +32139 15587869 1777922722084271487 b9dcac5eace647b63bda3d9c524dc034 1 std/Target/s390x.zig +22391 15587870 1777922722084271487 5f74d7b977102ace4820a6def358a7ae 1 std/Target/sparc.zig +5037 15587871 1777922722084271487 7a802abba56de166296a02820267f278 1 std/Target/spirv.zig +1276 15587872 1777922722084271487 320e5694ddc1e4347015e29952472e47 1 std/Target/ve.zig +6517 15587873 1777922722084271487 1babc8b342fb599193f79f08f76e9463 1 std/Target/wasm.zig +138177 15587874 1777922722084271487 f5c6a3aff25f10c1b8c51ce82ffbb5b4 1 std/Target/x86.zig +1234 15587875 1777922722084271487 9977314bd28dc12c6017784ed96cc578 1 std/Target/xcore.zig +8826 15587876 1777922722085271483 8d42978afbcc85d87e2e98c0a9676a9b 1 std/Target/xtensa.zig +84368 15587889 1777922722085271483 a8bf92242607060c62d642acae8086b7 1 std/builtin/assembly.zig +56465 15587894 1777922722085271483 75c3bc60568091a9ea5edc5bc57ed38a 1 std/c/darwin.zig +17769 15587896 1777922722085271483 e2b778ddd3253970afd02693aed8fd0f 1 std/c/freebsd.zig +13639 15587898 1777922722085271483 de6d72b9cc43ab0645c64780d8e547e5 1 std/c/illumos.zig +12071 15587899 1777922722085271483 b48c05a0bd047e3f2341dbbd8767c1e7 1 std/c/netbsd.zig +8189 15587895 1777922722085271483 31ff648d6f4d2a8a32e4f989005450dc 1 std/c/dragonfly.zig +11736 15587897 1777922722085271483 faf314e053e5b99c66ad05c0570b73e0 1 std/c/haiku.zig +17047 15587900 1777922722085271483 76c2f77ef2816a7f0b4efa24425f0619 1 std/c/openbsd.zig +4446 15587901 1777922722085271483 69f4fd8d8726dca0e21d271d871ac1ad 1 std/c/serenity.zig +5846 15587909 1777922722086271480 37e8d751c7e895b6336511502160706a 1 std/compress/flate.zig +24222 15587912 1777922722086271480 5af5ea9ae660ca1a5c5e59ca3412c7cf 1 std/compress/lzma.zig +8172 15587913 1777922722086271480 3e50158bc60e46aae6beac631af863e1 1 std/compress/lzma2.zig +95 15587917 1777922722086271480 f5a4e96de879e27f05973ae987231c97 1 std/compress/xz.zig +7266 15587920 1777922722086271480 0d0abcd9f7d011ccda93bfe73d0b7e1a 1 std/compress/zstd.zig +10377 15588021 1777922722089271469 6a102711f65e65c4fd8596a251e151de 1 std/crypto/timing_safe.zig +47279 15587938 1777922722087271476 9b37d3e0fffea1f1b265eb76dd5ec80d 1 std/crypto/aegis.zig +6851 15587945 1777922722087271476 ea7fad6fda828c72abcc0148e4659e9c 1 std/crypto/aes_gcm.zig +13389 15587946 1777922722087271476 0b0853e7521a731af48464868cd7c167 1 std/crypto/aes_gcm_siv.zig +20660 15587948 1777922722087271476 f87b68e4f3f0abfaaed777c531726b81 1 std/crypto/aes_siv.zig +15331 15587947 1777922722087271476 250e8a7b0eaeef0184fd38096c7a562a 1 std/crypto/aes_ocb.zig +34240 15587944 1777922722087271476 a23f55c0fa49aee3338a137383c7eac3 1 std/crypto/aes_ccm.zig +47973 15587950 1777922722087271476 45b8c60c342c33749442b0e7b4f595db 1 std/crypto/ascon.zig +51938 15587956 1777922722087271476 40b26141042cd451c52e3d5d62117ae3 1 std/crypto/chacha20.zig +6309 15587981 1777922722088271472 1318dc8b9450bda7d30b2f2bd66ef98f 1 std/crypto/isap.zig +27318 15588015 1777922722089271469 d339759780a2203fc7165aff07d6d9b9 1 std/crypto/salsa20.zig +3626 15587979 1777922722088271472 7d28bd5a64f521b7f7322612e4d5f562 1 std/crypto/hmac.zig +18291 15588019 1777922722089271469 6be864f028108d8cae57460c05505974 1 std/crypto/siphash.zig +6226 15587957 1777922722087271476 4270e1555211de4aca948cd086fc7129 1 std/crypto/cmac.zig +6228 15587955 1777922722087271476 b0c7f4ebda117a1b4a12cec460fc143c 1 std/crypto/cbc_mac.zig +8704 15587943 1777922722087271476 1cd28407835970107e3ffc55d0b925b8 1 std/crypto/aes.zig +15303 15587983 1777922722088271472 ac2b7ab43674f07a4208ffa738f420c5 1 std/crypto/keccak_p.zig +11653 15587987 1777922722088271472 43be60c6dba9df3811d0ea93fb4d96b7 1 std/crypto/modes.zig +8666 15587930 1777922722086271480 3db725807664be68a1f523268f119154 1 std/crypto/25519/x25519.zig +207825 15587980 1777922722088271472 6f8e5747aa0ccf4d1164cae5d7a3017f 1 std/crypto/hybrid_kem.zig +71867 15587986 1777922722088271472 baec87190da463f19137f91c956a1a69 1 std/crypto/ml_kem.zig +9490 15587924 1777922722086271480 b5f8bd262f97fec80ec5c6bbce1d4d75 1 std/crypto/25519/curve25519.zig +25856 15587926 1777922722086271480 9c6b6973fd05e5de7576dfbcbcf8f074 1 std/crypto/25519/edwards25519.zig +16188 15587996 1777922722088271472 eaa7e1c4f3bee68fab2081ca41c5167c 1 std/crypto/pcurves/p256.zig +16384 15588002 1777922722089271469 a08bdcefbc4eeca22d09e82d6e71b464 1 std/crypto/pcurves/p384.zig +7971 15587928 1777922722086271480 d0d33655dcbd80c50d53283108a54034 1 std/crypto/25519/ristretto255.zig +20534 15588008 1777922722089271469 19bb9b198f95ad22e061196119587445 1 std/crypto/pcurves/secp256k1.zig +28981 15587953 1777922722087271476 e43277ffc7f554e017fc549af17d0c11 1 std/crypto/blake2.zig +66773 15587954 1777922722087271476 461aaa010dffed2badd194e564003503 1 std/crypto/blake3.zig +9751 15587984 1777922722088271472 d4911af79a2684c60a4325e9142b1609 1 std/crypto/md5.zig +9321 15587937 1777922722086271480 15ebe6e9b9de51b93b00e1b463f00cb4 1 std/crypto/Sha1.zig +36488 15588017 1777922722089271469 6a526b804e6d522b31243c9c19581539 1 std/crypto/sha2.zig +34393 15588018 1777922722089271469 9156c9859584353dba59a3a04e3b43d0 1 std/crypto/sha3.zig +2756 15587977 1777922722088271472 3f1b15f01d5b6045525b1b5b73081e67 1 std/crypto/hash_composition.zig +3703 15587978 1777922722088271472 09d36564cbdc5d24ea6fa90e4b7dd6e5 1 std/crypto/hkdf.zig +20462 15587976 1777922722088271472 80717cf57bf4cce973e3fcd7792a1640 1 std/crypto/ghash_polyval.zig +7227 15588014 1777922722089271469 d7e68094b5cd519221d91c8f9a9875ed 1 std/crypto/poly1305.zig +29207 15587949 1777922722087271476 94f263cff18e63719fb56351d8958281 1 std/crypto/argon2.zig +40185 15587951 1777922722087271476 d15c97fc7af13704d70dea22de36356f 1 std/crypto/bcrypt.zig +28777 15588016 1777922722089271469 c461f6daa050c5f52fae84aec9156e30 1 std/crypto/scrypt.zig +8451 15587988 1777922722088271472 e0bc6ddf2119b9cfe2a19626ded9635a 1 std/crypto/pbkdf2.zig +13808 15588013 1777922722089271469 82c3f3e7125258f0d01a5199588e0757 1 std/crypto/phc_encoding.zig +36622 15587925 1777922722086271480 8c9984aeca0e229cf80a241e1a124f4c 1 std/crypto/25519/ed25519.zig +389641 15587973 1777922722088271472 0726186a985abbc92e4fa0ff70efa341 1 std/crypto/ecdsa.zig +121853 15587985 1777922722088271472 d7cfd905ace13529f5dbe22b2e44f447 1 std/crypto/ml_dsa.zig +42649 15587975 1777922722088271472 ab7882c88b456a51e3e1f5dea262d267 1 std/crypto/ff.zig +165 15587972 1777922722087271476 0ab9a19cc7544d7896d8555b38c3292a 1 std/crypto/codecs.zig +1825 15587974 1777922722088271472 d28156f6f25a3ec50eb16496ef0b30e4 1 std/crypto/errors.zig +25567 15588024 1777922722089271469 965e374c252f652ecbbbdd4c010aaa9d 1 std/crypto/tls.zig +51526 15587936 1777922722086271480 c9040311a8bb41064e13320ceb1bfd03 1 std/crypto/Certificate.zig +59764 15588034 1777922722090271465 97dd4985f3e67db8805a42b323dd2b5c 1 std/debug/Dwarf.zig +43962 15588038 1777922722090271465 b62ab4a4546b7ca38c9cdf5255805463 1 std/debug/Pdb.zig +21243 15588035 1777922722090271465 e0fe1c3b436c95da3936ab5a37e5e850 1 std/debug/ElfFile.zig +23226 15588037 1777922722090271465 494ab44d53cb322ba4a55c08cf6e7d15 1 std/debug/MachOFile.zig +4448 15588036 1777922722090271465 d79e9edc86be729aaae44fcaa9edbcb3 1 std/debug/Info.zig +8592 15588027 1777922722089271469 28d43178547c2f7d23f09c36470880c0 1 std/debug/Coverage.zig +97088 15588043 1777922722090271465 07a4df481fdae7e1e9173ea1af4ddfd2 1 std/debug/cpu_context.zig +30535 15588042 1777922722090271465 ac5e8a4486eb26d75d3f3e5da357a5ed 1 std/debug/SelfInfo/Windows.zig +17837 15588040 1777922722090271465 94ab10377365b77b448fae97a5090c6d 1 std/debug/SelfInfo/Elf.zig +29884 15588041 1777922722090271465 3af99105c7ca096c7c04dfe0442e1c12 1 std/debug/SelfInfo/MachO.zig +3234 15588045 1777922722090271465 94b504fa568201fccb60245a0380012e 1 std/debug/simple_panic.zig +2349 15588044 1777922722090271465 58f6d8954e49f4e277db7b9bad6e1f3c 1 std/debug/no_panic.zig +3939 15588055 1777922722090271465 5ee5df976eaaf300e36cd234fc3f2f43 1 std/dwarf/TAG.zig +7632 15588049 1777922722090271465 101aeaf3e9df594bf04093c15135dc96 1 std/dwarf/AT.zig +5693 15588054 1777922722090271465 01d731f8d28ba8382ff3c5885d5e0c75 1 std/dwarf/OP.zig +1963 15588053 1777922722090271465 055280c08a34f56d3d4ea7d69cf3fca3 1 std/dwarf/LANG.zig +1399 15588052 1777922722090271465 40a7d4ac60d12c6e9ca294acaed35474 1 std/dwarf/FORM.zig +1479 15588050 1777922722090271465 8bd901aaa561652b86f99819d0da7a57 1 std/dwarf/ATE.zig +857 15588051 1777922722090271465 eabc7cc5311330003544e4fa9b48be68 1 std/dwarf/EH.zig +94864 15588061 1777922722090271465 9f838a528dd1ffb0f4e1bfb3661aecff 1 std/fmt/float.zig +13189 15588072 1777922722091271461 8fcd1365fb1fe2c743d223fc34880b6a 1 std/fmt/parse_float.zig +115637 15588075 1777922722091271461 c8d60085bfbda39db97904d347ae1872 1 std/fs/path.zig +0 15588076 1777922722091271461 82547a8dd7f3efb3f077622e34876868 1 std/fs/test.zig +2797 15588080 1777922722091271461 e2d2903d78455f002bdf1543be5bd9b3 1 std/hash/Adler32.zig +14410 15588081 1777922722091271461 cd5b1a84c317ca8ba9ccce283a58c367 1 std/hash/auto_hash.zig +19972 15588087 1777922722091271461 c36dede4b91e35db37ea45c66dbe6fe9 1 std/hash/crc.zig +1890 15588088 1777922722091271461 8022a7844b1545ef9cc7889a3a71944a 1 std/hash/fnv.zig +9977 15588089 1777922722091271461 26add2cb2571b835338f163c8ca63459 1 std/hash/murmur.zig +12412 15588083 1777922722091271461 cd681dc3507b42839b769eae04b1dc3b 1 std/hash/cityhash.zig +8367 15588091 1777922722091271461 4744eb583f951c0ddcee1cf3bdde33fb 1 std/hash/wyhash.zig +41613 15588092 1777922722091271461 b682042146ed3b411db8eb14cb99500a 1 std/hash/xxhash.zig +41284 15588096 1777922722091271461 9e2c0ca6eeba53dae8ed198c0434b781 1 std/heap/ArenaAllocator.zig +7510 15588100 1777922722091271461 0afc8bd3d67b9a71a6047ee2e9af262b 1 std/heap/SmpAllocator.zig +10192 15588098 1777922722091271461 ee89eecf52bcaf358a5ca7a2e9d97d7e 1 std/heap/FixedBufferAllocator.zig +10150 15588099 1777922722091271461 9e0ab6e7efcbb2f1a65540c4f7a560ef 1 std/heap/PageAllocator.zig +11445 15588097 1777922722091271461 61f511afcd1508b7ca05f5496473488c 1 std/heap/BrkAllocator.zig +62382 15588101 1777922722092271458 be427a53e4015492bc8a4a190a806e5f 1 std/heap/debug_allocator.zig +13267 15588102 1777922722092271458 08b7d341701a499e0e0d42b973d7ab69 1 std/heap/memory_pool.zig +71392 15588106 1777922722092271458 9b5ff49fb65f881c7ed12494a3859cb8 1 std/http/Client.zig +31356 15588109 1777922722092271458 90eef6015c85cd72220c3d81a69a9530 1 std/http/Server.zig +13015 15588107 1777922722092271458 4c7e2ad894ad12f141066550c9bb326a 1 std/http/HeadParser.zig +3791 15588105 1777922722092271458 61420280e3c9986a74a687031fdcf831 1 std/http/ChunkParser.zig +3099 15588108 1777922722092271458 208dea04bf6038830461bfb99eafbce8 1 std/http/HeaderIterator.zig +0 15588110 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/http/test.zig +7992 15588116 1777922722092271458 af3841850a2c29b3668d337e57dbec60 1 std/json/dynamic.zig +3272 15588118 1777922722092271458 39fdbe23f321a0cb11a35e428810a09e 1 std/json/hashmap.zig +72865 15588114 1777922722092271458 0bd906a63c98af2b142fc2a11e0e8ddf 1 std/json/Scanner.zig +33916 15588121 1777922722092271458 4edf437de0e97088b6290948fbceb1fb 1 std/json/static.zig +37299 15588115 1777922722092271458 328e21f9d500de455940ccb3a735aaef 1 std/json/Stringify.zig +0 15588123 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/test.zig +0 15588113 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/JSONTestSuite_test.zig +11506 15588168 1777922722093271454 4f01608c6085251ec5a5f0a6e3ebb50e 1 std/math/float.zig +1859 15588176 1777922722093271454 1e9c6dc339df3808681640d38706fb6e 1 std/math/isnan.zig +7877 15588169 1777922722093271454 21099ae36d31e459824cfc3757a834f2 1 std/math/frexp.zig +4599 15588186 1777922722093271454 d22656b17f575c4645f36971dbdd57b4 1 std/math/modf.zig +1136 15588164 1777922722093271454 9f0946a16071ec7d7cb9f45c227c22f1 1 std/math/copysign.zig +1083 15588174 1777922722093271454 eb357e7577b828d5fc2ce3b4118459f2 1 std/math/isfinite.zig +1775 15588175 1777922722093271454 44fb86a5536455ca3877bb415347c6ac 1 std/math/isinf.zig +1456 15588178 1777922722093271454 a37461dca6f9345d8f8a2729c13b9ff6 1 std/math/iszero.zig +1837 15588177 1777922722093271454 cb4e66e7b3adbf190150294715c788b0 1 std/math/isnormal.zig +19209 15588187 1777922722093271454 000ec81e9c79a332fb482883ab800777 1 std/math/nextafter.zig +1484 15588191 1777922722093271454 4be5196a5746ef5c06a1968c833acd1f 1 std/math/signbit.zig +503 15588190 1777922722093271454 66d1263715127908b281862dba5dc24b 1 std/math/scalbn.zig +6839 15588180 1777922722093271454 65cf74d2abee4d99cea2993060dc9cc0 1 std/math/ldexp.zig +11782 15588188 1777922722093271454 63d5a77b3d074170d5e328d7ab9f7955 1 std/math/pow.zig +7647 15588189 1777922722093271454 0973f1b6b3c7b008fe03e68add8caaab 1 std/math/powi.zig +2797 15588193 1777922722094271450 53aa585d8092381038f9eda1c3c128d1 1 std/math/sqrt.zig +4812 15588140 1777922722093271454 6f62d1f1ae7bff93c034f6f664aeaa12 1 std/math/cbrt.zig +30081 15588129 1777922722092271458 9120d5d144777f39094c64677ed37eda 1 std/math/acos.zig +30241 15588131 1777922722092271458 0dfaed068a87bab2f2a813c1b301adf2 1 std/math/asin.zig +37723 15588133 1777922722092271458 b16a00df0bbbd49d285d16d68d9de116 1 std/math/atan.zig +10553 15588134 1777922722092271458 0cafcb907ba579b6b64631165a647329 1 std/math/atan2.zig +5365 15588172 1777922722093271454 c70a10cbadd81265d9efbd501e601623 1 std/math/hypot.zig +11499 15588166 1777922722093271454 1ddb2b66fbdf7acb2a4ad484203ae340 1 std/math/expm1.zig +5519 15588173 1777922722093271454 eacf48263508740f77738f675caef7a6 1 std/math/ilogb.zig +2531 15588181 1777922722093271454 b3b40fd4682f372913e09bc18ca3fcd6 1 std/math/log.zig +1834 15588184 1777922722093271454 4ebf02b0e7decd5b836db4794717a753 1 std/math/log2.zig +6132 15588182 1777922722093271454 db4699d35a47e4e75c376fa3abd67c0d 1 std/math/log10.zig +4179 15588185 1777922722093271454 210b5a1a5cd0f20e944783da890dfc99 1 std/math/log_int.zig +8872 15588183 1777922722093271454 754de08c8dc06a6115beb96e5a991ad7 1 std/math/log1p.zig +4299 15588132 1777922722092271458 9d6c681faf8421823919e5bf347bf740 1 std/math/asinh.zig +2756 15588130 1777922722092271458 349667a0bb1e62bdc0383bce5747190c 1 std/math/acosh.zig +3399 15588135 1777922722092271458 7b22337c4a4df112f2c4be431b076007 1 std/math/atanh.zig +4294 15588192 1777922722094271450 42ef534228feb279b81e6fa2a5d79333 1 std/math/sinh.zig +4157 15588165 1777922722093271454 1dcc281bf0ca8a9782e5ae845f7b1fa5 1 std/math/cosh.zig +4581 15588194 1777922722094271450 2b64632014a58c73e7052420b356fcaa 1 std/math/tanh.zig +2024 15588171 1777922722093271454 28fd0ee50d92f0c08fd6aab95d6f15ee 1 std/math/gcd.zig +1194 15588179 1777922722093271454 40b3836f0a2277cb76754547dd483869 1 std/math/lcm.zig +11487 15588170 1777922722093271454 c0bf0098a075fd684bcbeff41e5abbc4 1 std/math/gamma.zig +6563 15588163 1777922722093271454 dccdf309b3630a59978e204ea0cbde99 1 std/math/complex.zig +746 15588139 1777922722093271454 cd57ee7b96c9ee1b66a3e7fc3ef16da9 1 std/math/big.zig +19435 15588197 1777922722094271450 c2c009def560d0da77a8b4ff43524293 1 std/mem/Allocator.zig +5936 15588200 1777922722094271450 731e370ecb6a476616ba5957ba5212a4 1 std/meta/trailer_flags.zig +291416 15588242 1777922722095271446 4869165fe9dddf6396b27a9ff488775f 1 std/os/linux.zig +10513 15588245 1777922722095271446 9c49defe45d5132eb0b774e015de8164 1 std/os/plan9.zig +7464 15588283 1777922722096271443 2d75cf68a9a9ca7fe435633981a95d0e 1 std/os/uefi.zig +16085 15588284 1777922722096271443 cbf7731f9fc13816669478d0d86619b2 1 std/os/wasi.zig +32297 15588204 1777922722094271450 65f360158bf4985210015307097e266f 1 std/os/emscripten.zig +206520 15588296 1777922722096271443 63ff2a80fff80a84d5bcaa93ee0f7e53 1 std/os/windows.zig +0 15588301 1777922722096271443 82547a8dd7f3efb3f077622e34876868 1 std/posix/test.zig +4357 15588307 1777922722097271439 95000eed0a91ee9ca99c19f988221556 1 std/process/Child.zig +38308 15588306 1777922722097271439 fed95aed49061092984c2712847bb002 1 std/process/Args.zig +37415 15588308 1777922722097271439 72a8079e3ff625cd0c9d671e09d86fb3 1 std/process/Environ.zig +2508 15588309 1777922722097271439 8376136df00bc63ca0f3095f0ca3689a 1 std/process/Preopens.zig +51714 15588313 1777922722097271439 eb8790d984ce4a6ddd6376d877c85ff1 1 std/sort/block.zig +12404 15588314 1777922722097271439 4aec5577b3c4edbe484599906af3ae5d 1 std/sort/pdq.zig +17695 15588320 1777922722097271439 24ba1410c711ba60c366c789e33f2468 1 std/tar/Writer.zig +0 15588321 1777922722097271439 82547a8dd7f3efb3f077622e34876868 1 std/tar/test.zig +5695 15588324 1777922722097271439 79b2e7cbd2cb182aed04f9377683c628 1 std/testing/FailingAllocator.zig +31908 15588325 1777922722097271439 85bfe90f22d1658f84533528a61699bc 1 std/testing/Smith.zig +6755 15588328 1777922722097271439 b00dfc370ddde87be5237de9f894d759 1 std/time/epoch.zig +7574 15588338 1777922722097271439 d017fea857f95f2c01199efab8dbf965 1 std/valgrind/memcheck.zig +2493 15588337 1777922722097271439 30a771b8491dd283a50c6166babded38 1 std/valgrind/callgrind.zig +1249 15588336 1777922722097271439 6781a2e56089a14f4f2a391169bf7c05 1 std/valgrind/cachegrind.zig +63162 15588386 1777922722100271428 6eeffe690c11f6257c0b5e0566d66f50 1 std/zig/tokenizer.zig +33392 15588350 1777922722098271435 c7c95e9c83f1903d675ab0c975ee4f28 1 std/zig/ErrorBundle.zig +10230 15588354 1777922722098271435 634f3489256d07cec274929dac2605ae 1 std/zig/Server.zig +2260 15588349 1777922722098271435 aa042aba45b700151fd968f123a7266e 1 std/zig/Client.zig +10291 15588355 1777922722098271435 03571043d71a739e9b067f7b96b71631 1 std/zig/TokenSmith.zig +14296 15588373 1777922722099271431 0d186a7370f174935a9c2c3f11942b8c 1 std/zig/string_literal.zig +6720 15588369 1777922722099271431 07baee4aa2d7c097b1307a2cdec422cf 1 std/zig/number_literal.zig +1666 15588372 1777922722099271431 87e0eb501395d68ddce525f8555f960c 1 std/zig/primitives.zig +145138 15588344 1777922722098271435 ab1af8ea616576f755ba7908af0b8ea5 1 std/zig/Ast.zig +567556 15588345 1777922722098271435 a56e781f97d05f34b8f9147799af3174 1 std/zig/AstGen.zig +78968 15588347 1777922722098271435 73a8282784a552df103c813f759de518 1 std/zig/AstSmith.zig +222229 15588357 1777922722099271431 035e30944ed3dc8c9d792b5336c38c8b 1 std/zig/Zir.zig +9178 15588358 1777922722099271431 cb7401f7c5bb5446a01aa5af5eaa2ad3 1 std/zig/Zoir.zig +35999 15588359 1777922722099271431 a86113a78e1f8cf462a758090971d8f9 1 std/zig/ZonGen.zig +51977 15588384 1777922722100271428 b1fdfaeed0b47fe1908cac4bca93213a 1 std/zig/system.zig +22538 15588348 1777922722098271435 85030d1db27b93c3540ce828f6bb4f75 1 std/zig/BuiltinFn.zig +43382 15588346 1777922722098271435 5b945ae5ef98aa0bed48cd16d2c6d004 1 std/zig/AstRlAnnotate.zig +35921 15588352 1777922722098271435 2bb60a489e7e7a4b6c06359c8cb96d52 1 std/zig/LibCInstallation.zig +51355 15588356 1777922722098271435 58aa36ce7c67359021b741bba200bd1d 1 std/zig/WindowsSdk.zig +10091 15588351 1777922722098271435 40d483d775f9a56db993ce02e3448ab7 1 std/zig/LibCDirs.zig +26758 15588385 1777922722100271428 1365cf108e82594e5f641faf1259b59d 1 std/zig/target.zig +247 15588368 1777922722099271431 4fee6920e55c663811dd32d69b7f2937 1 std/zig/llvm.zig +8078 15588361 1777922722099271431 6a5228c368c6a0dea7c7ebc8c6642f10 1 std/zig/c_translation/builtins.zig +16223 15588362 1777922722099271431 9aa7e031559265e0320a9b106d1865db 1 std/zig/c_translation/helpers.zig +120086 15588391 1777922722100271428 fcd145a5d3703b0c905144501d34d648 1 std/zon/parse.zig +46916 15588392 1777922722100271428 7bf4408cdd1c84975a793e5daefb12a8 1 std/zon/stringify.zig +32374 15588390 1777922722100271428 d6fd80a48ef08dc277abac7b527c7110 1 std/zon/Serializer.zig +2159 15588293 1777922722096271443 e912d0164349d3c86eb8b1226a86388f 1 std/os/windows/tls.zig +184235 15590296 1777923881918513972 85ad82da3fad2cc8beda806b1ed8bdeb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/raylib.zig +8149 15587771 1777922722081271498 848266c110821122ce6bc572fc7966c9 1 std/Build/Cache/Path.zig +2178 15587770 1777922722081271498 4641e40dd1fb14622c51a7b8ad1a5d37 1 std/Build/Cache/Directory.zig +37904 15587769 1777922722081271498 5df488280e227dc1fae402212d0d1fa0 1 std/Build/Cache/DepTokenizer.zig +2963 15587776 1777922722081271498 3b0a8799da32dd829cea1e048ca0bdd9 1 std/Build/Step/CheckFile.zig +116020 15587777 1777922722081271498 18bac9280e713b80bc53d2471a14f467 1 std/Build/Step/CheckObject.zig +42586 15587779 1777922722081271498 4f4fb7a01d1524c11e465df25bb20bfc 1 std/Build/Step/ConfigHeader.zig +831 15587780 1777922722081271498 0f223ee68995072c4beb7fd3ae600b02 1 std/Build/Step/Fail.zig +2697 15587781 1777922722081271498 3d6cf866859ca04eb013a6b4ae5eda8e 1 std/Build/Step/Fmt.zig +8841 15587782 1777922722081271498 5f12e1d9cd3e301c7d59c6d0462af4e6 1 std/Build/Step/InstallArtifact.zig +4433 15587783 1777922722081271498 c590243c9189e7c05edb58d307b01d4d 1 std/Build/Step/InstallDir.zig +1460 15587784 1777922722081271498 0040eb5b0836e8fa2056b8e33d66b4dd 1 std/Build/Step/InstallFile.zig +8120 15587785 1777922722081271498 295b05d43b5ace3d4b31c0050b107e6c 1 std/Build/Step/ObjCopy.zig +84912 15587778 1777922722081271498 58e730efa305588922a904e148d65c54 1 std/Build/Step/Compile.zig +23120 15587786 1777922722081271498 7ad270e654494ff667c1d415c427537f 1 std/Build/Step/Options.zig +109628 15587787 1777922722081271498 7bf82c87cfe60873b28b35fac908770d 1 std/Build/Step/Run.zig +11889 15587788 1777922722081271498 cfa8e53899ae65e54778a42e84a17a18 1 std/Build/Step/TranslateC.zig +15498 15587790 1777922722081271498 a41fe33f2341ddc013b1fca1385ecd90 1 std/Build/Step/WriteFile.zig +4250 15587789 1777922722081271498 dfabe6ac1052637a178eef042b9afdd3 1 std/Build/Step/UpdateSourceFiles.zig +22253 15587793 1777922722082271495 d9a2b05ebe843fa5e404ed496a247b65 1 std/Build/Watch/FsEvents.zig +0 15587817 1777922722082271495 82547a8dd7f3efb3f077622e34876868 1 std/Io/Threaded/test.zig +3139 15587811 1777922722082271495 fe5fe7e681f4ef3265a652f929df6985 1 std/Io/Reader/Limited.zig +18134 15587823 1777922722083271491 5a0826d8af9243d47ac0ec7740737941 1 std/Io/net/HostName.zig +0 15587824 1777922722083271491 82547a8dd7f3efb3f077622e34876868 1 std/Io/net/test.zig +12759 15587806 1777922722082271495 3c13d2a3cedf8a9f99d87cd0a98d153b 1 std/Io/File/Reader.zig +8053 15587807 1777922722082271495 2ce32c66e785fcb0a179751edc397f1f 1 std/Io/File/Writer.zig +2699 15587803 1777922722082271495 7fd41fc040ad02c0f3e6feba994632f2 1 std/Io/File/Atomic.zig +4691 15587804 1777922722082271495 0b7562cfbeb59f6f8d81b42628098927 1 std/Io/File/MemoryMap.zig +8305 15587805 1777922722082271495 5bf9ca3d1c3edf41a06e7bb0ef18166a 1 std/Io/File/MultiReader.zig +13315 15587893 1777922722085271483 61d05272e7ddb2e66aecfe56b0a6b40e 1 std/c/darwin/dispatch.zig +103441 15587906 1777922722086271480 e55ee93fe7500c447d1110e3f5a59831 1 std/compress/flate/Compress.zig +43916 15587907 1777922722086271480 3c452297218497c6a0d6dfd1e6411bbf 1 std/compress/flate/Decompress.zig +0 15587911 1777922722086271480 82547a8dd7f3efb3f077622e34876868 1 std/compress/lzma/test.zig +10184 15587915 1777922722086271480 21b193ffeea11c4791e036a76504d714 1 std/compress/xz/Decompress.zig +0 15587916 1777922722086271480 82547a8dd7f3efb3f077622e34876868 1 std/compress/xz/test.zig +79574 15587919 1777922722086271480 af8f151b39faf2c007e2c3b1ccfff8a5 1 std/compress/zstd/Decompress.zig +0 15588020 1777922722089271469 82547a8dd7f3efb3f077622e34876868 1 std/crypto/test.zig +23047 15587940 1777922722087271476 b54729e648f909a81268f06167f20669 1 std/crypto/aes/aesni.zig +23360 15587941 1777922722087271476 f5c1c07e89705b24f7bbd58f0a70facd 1 std/crypto/aes/armcrypto.zig +34577 15587942 1777922722087271476 184f3d736969e9c1be3921724324424e 1 std/crypto/aes/soft.zig +14574 15587927 1777922722086271480 b552b509d9ec611014aa027c881ac91c 1 std/crypto/25519/field.zig +33750 15587929 1777922722086271480 1609964fc626671466a751ead6b023a1 1 std/crypto/25519/scalar.zig +338 15587992 1777922722088271472 433b788abb384ec7e4c3641754e6dde9 1 std/crypto/pcurves/p256/field.zig +7435 15587995 1777922722088271472 82696e587c8e76ddb04029021b89c87a 1 std/crypto/pcurves/p256/scalar.zig +5807 15588010 1777922722089271469 59d4f7e4b6bb1d5529e6827ea10d8814 1 std/crypto/pcurves/tests/p256.zig +376 15587998 1777922722089271469 69a49ff5f537dcd2044702ac14b6891c 1 std/crypto/pcurves/p384/field.zig +6683 15588001 1777922722089271469 b62513369dfa0f5b4513e8baae554c59 1 std/crypto/pcurves/p384/scalar.zig +6858 15588011 1777922722089271469 621c32a3c0932bff6aef9a841d5fbfe8 1 std/crypto/pcurves/tests/p384.zig +343 15588004 1777922722089271469 738b22249e1d3a4c001765286bc82756 1 std/crypto/pcurves/secp256k1/field.zig +7440 15588005 1777922722089271469 a2c94ac2ee64aa257045479bbeb08026 1 std/crypto/pcurves/secp256k1/scalar.zig +6215 15588012 1777922722089271469 90125b8a7293d6448bb9a47580368f54 1 std/crypto/pcurves/tests/secp256k1.zig +82002 15587982 1777922722088271472 1f857c6712958ff825aebf76cc32ac36 1 std/crypto/kangarootwelve.zig +12252 15587970 1777922722087271476 2cde0e70f988d3c7402f68a6a0314902 1 std/crypto/codecs/asn1.zig +18414 15587971 1777922722087271476 35b79a3fd55544c4889106069900e621 1 std/crypto/codecs/base64_hex_ct.zig +84508 15588023 1777922722089271469 649a5ecda2066ee55b1b961a952f38e4 1 std/crypto/tls/Client.zig +13687 15587934 1777922722086271480 bc1cd32e365024071d2fc253363bf1d2 1 std/crypto/Certificate/Bundle.zig +3589 15587935 1777922722086271480 1774b11899c6e761cf2c54ab9cf5893a 1 std/crypto/Certificate/Chain.zig +68800 15588033 1777922722090271465 09cdb1c0d0788a66a040ddcb5eddf5a7 1 std/debug/Dwarf/expression.zig +30176 15588032 1777922722090271465 9ea6e3df4e3d610339e5ea8f25755dfe 1 std/debug/Dwarf/Unwind.zig +13415 15588029 1777922722089271469 b8a468905b79bd6e498576d88e341c4a 1 std/debug/Dwarf/SelfUnwinder.zig +9426 15588071 1777922722091271461 19fe74e26814be7f5083c3d8b5a0983e 1 std/fmt/parse_float/parse.zig +2950 15588068 1777922722091271461 e2f6cedde735fdaf086b7e0efdb66505 1 std/fmt/parse_float/convert_hex.zig +5401 15588067 1777922722091271461 cbeba905313f9b6c917fb231993989fe 1 std/fmt/parse_float/convert_fast.zig +48543 15588066 1777922722091271461 82c419f8469193cf67852d0ac4c65f55 1 std/fmt/parse_float/convert_eisel_lemire.zig +4586 15588069 1777922722091271461 2562e4c50c6403023d508a0c7e1f15f0 1 std/fmt/parse_float/convert_slow.zig +3506 15588085 1777922722091271461 9428b7df45d5b928d9c004b955588fe0 1 std/hash/crc/impl.zig +0 15588086 1777922722091271461 82547a8dd7f3efb3f077622e34876868 1 std/hash/crc/test.zig +2075 15588090 1777922722091271461 5910881f138d791cfa09dd89cc12fc40 1 std/hash/verify.zig +0 15588117 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/dynamic_test.zig +0 15588119 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/hashmap_test.zig +0 15588120 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/scanner_test.zig +0 15588122 1777922722092271458 82547a8dd7f3efb3f077622e34876868 1 std/json/static_test.zig +995 15588167 1777922722093271454 59077bc2784a5df334de08609b4c2a55 1 std/math/expo2.zig +452 15588142 1777922722093271454 ce633e6b665f3caba98995a3f146d7c7 1 std/math/complex/abs.zig +678 15588144 1777922722093271454 9dd2ece0bd4c6366c4a3cb5bf7b3db17 1 std/math/complex/acosh.zig +608 15588143 1777922722093271454 e3a7d70f219edead2e32e66a9476a469 1 std/math/complex/acos.zig +458 15588145 1777922722093271454 2fea305ef49ff29fdd688d2f7342051d 1 std/math/complex/arg.zig +641 15588147 1777922722093271454 59bed4da0e5763cbf2a3e08ec4bc9c6c 1 std/math/complex/asinh.zig +750 15588146 1777922722093271454 26f02f5afc54b9ec7673ddd6d0fcc3a9 1 std/math/complex/asin.zig +645 15588149 1777922722093271454 adf7751d27453fed0d4977a2dc50e85e 1 std/math/complex/atanh.zig +2527 15588148 1777922722093271454 2a909954adb7520e1eb158124c280ca2 1 std/math/complex/atan.zig +484 15588150 1777922722093271454 a9e61e0f7280deab3d077856af6ca8d9 1 std/math/complex/conj.zig +5818 15588152 1777922722093271454 3b53a3d1a1285447f00cc90f422cb7b1 1 std/math/complex/cosh.zig +577 15588151 1777922722093271454 26877517b7d9d620e841272fd8ea3661 1 std/math/complex/cos.zig +4899 15588153 1777922722093271454 4f31c5e9d921097840da690cc0324595 1 std/math/complex/exp.zig +620 15588155 1777922722093271454 4e4bb03cdbb57072938d447952587286 1 std/math/complex/log.zig +608 15588156 1777922722093271454 1258f2af84237de74fd033b6776798f2 1 std/math/complex/pow.zig +628 15588157 1777922722093271454 b5f2e65410101f915fb75fa5712c2fd4 1 std/math/complex/proj.zig +5363 15588159 1777922722093271454 89568cfbf7f8196aafffbd55ea670070 1 std/math/complex/sinh.zig +620 15588158 1777922722093271454 4aade0cdfc8ac82b062412f5566aec6c 1 std/math/complex/sin.zig +4249 15588160 1777922722093271454 0aeb21db75d92940ddcb1491d2f0445e 1 std/math/complex/sqrt.zig +3847 15588162 1777922722093271454 98009ed972f9f5fcb177d10a345456e1 1 std/math/complex/tanh.zig +626 15588161 1777922722093271454 ac4f4ba1ea51c6a8f2101a7bdf3b0d7c 1 std/math/complex/tan.zig +185960 15588137 1777922722093271454 73c91870bf9888390a4fbae783316b31 1 std/math/big/int.zig +3762 15588238 1777922722095271446 2fd0c246f4a8e9ba6ccef5ff7cf0ccfe 1 std/os/linux/vdso.zig +0 15588235 1777922722095271446 82547a8dd7f3efb3f077622e34876868 1 std/os/linux/test.zig +4028 15588209 1777922722094271450 fad889af74c19e89aec8d2d148367ad2 1 std/os/linux/aarch64.zig +5034 15588210 1777922722094271450 71b88c341539b947f3255d37700f0a9e 1 std/os/linux/arm.zig +3380 15588217 1777922722094271450 59d565de222e3a5cfe2a456c9705e122 1 std/os/linux/hexagon.zig +4816 15588220 1777922722094271450 2dc76d90755eb8f1deb0a9e80f359b40 1 std/os/linux/loongarch32.zig +4885 15588221 1777922722094271450 7a3cc3cbebbe2f0b12661a952b75c15d 1 std/os/linux/loongarch64.zig +4232 15588222 1777922722094271450 3395b9bf91d855e572ab17b5c9bcac50 1 std/os/linux/m68k.zig +7917 15588223 1777922722094271450 adf29231543fd97568b09af3e22046da 1 std/os/linux/mips.zig +6527 15588225 1777922722094271450 e063618f62bb68a7e8dae24506b02518 1 std/os/linux/mipsn32.zig +6537 15588224 1777922722094271450 8d0f1af1cac3e5e03b718a1d3425708f 1 std/os/linux/mips64.zig +4947 15588226 1777922722094271450 0d4afd00420b15c35dbaf8d5317340ae 1 std/os/linux/or1k.zig +8650 15588227 1777922722094271450 e09c38d7114a12168881b764ae9e8eba 1 std/os/linux/powerpc.zig +8261 15588228 1777922722094271450 8561a5c808ba8c8069c7df5a10720639 1 std/os/linux/powerpc64.zig +3640 15588229 1777922722094271450 d333fa4c740f3e6afbc45d98d513d684 1 std/os/linux/riscv32.zig +3641 15588230 1777922722094271450 a181350c52396d767c11fff4bc1bfea3 1 std/os/linux/riscv64.zig +4555 15588231 1777922722094271450 ad8917b9284d43622453013ec7d5a083 1 std/os/linux/s390x.zig +6966 15588233 1777922722095271446 9e9cad0859d808d852642ce7b2af7e78 1 std/os/linux/sparc64.zig +7003 15588240 1777922722095271446 e3e3fd9240e6d1ae21e8ecb216b4741a 1 std/os/linux/x86.zig +4300 15588239 1777922722095271446 3fba18c392f7404bdf7c81b1152e27c6 1 std/os/linux/x32.zig +4299 15588241 1777922722095271446 49eb8d69558e313084ba3ac63c3f6709 1 std/os/linux/x86_64.zig +4043 15588236 1777922722095271446 ce94b53cfedc272651855c9aca6eb340 1 std/os/linux/thumb.zig +19371 15588237 1777922722095271446 2596493b8d3ba40e9ca8668f737e002f 1 std/os/linux/tls.zig +47550 15588216 1777922722094271450 32c5da8e114e94ea2adec4c27b6ce0db 1 std/os/linux/bpf.zig +1297 15588219 1777922722094271450 daac8c407161fbb4bb996238aee46635 1 std/os/linux/ioctl.zig +8427 15588232 1777922722095271446 b845f84a2ea6f5532d8ffc78297dafed 1 std/os/linux/seccomp.zig +191416 15588234 1777922722095271446 2171c87abdee6ea939834e72eaa1a5eb 1 std/os/linux/syscalls.zig +19937 15588218 1777922722094271450 8ba8f2488f743f5b2557ce471784ff51 1 std/os/linux/io_uring_sqe.zig +70498 15588208 1777922722094271450 1bca4c9dd309bf457afc8410477d2bfa 1 std/os/linux/IoUring.zig +2126 15588244 1777922722095271446 d6f497f7c3ede56b9dd8eb2cae54c566 1 std/os/plan9/x86_64.zig +2317 15588274 1777922722096271443 be87bd6baef485caa6e53ac7a241c786 1 std/os/uefi/protocol.zig +37311 15588247 1777922722095271446 a67c5d40f56e40984ce32fba49cfa0bc 1 std/os/uefi/device_path.zig +2078 15588248 1777922722095271446 13b23e26af6b210b16c77d73b956e867 1 std/os/uefi/hii.zig +10107 15588275 1777922722096271443 e4c1fe82be2b68376749dbb625002706 1 std/os/uefi/status.zig +10732 15588282 1777922722096271443 68cf12b996f3dbf4516572e7fe0d5f28 1 std/os/uefi/tables.zig +3906 15588249 1777922722095271446 5c4587a7b4f3370e256119bdab607b4a 1 std/os/uefi/pool_allocator.zig +928 15588287 1777922722096271443 bdb9a1476aaf7f283248a744d45098b3 1 std/os/windows/kernel32.zig +24957 15588290 1777922722096271443 d002d05bd824d2a94ac1184a1de432b6 1 std/os/windows/ntdll.zig +6230 15588295 1777922722096271443 ae6102533d158f7aa36956692efdf400 1 std/os/windows/ws2_32.zig +7915 15588286 1777922722096271443 2295f6c84e927b878882595bca445084 1 std/os/windows/crypt32.zig +20117 15588289 1777922722096271443 696b67a75a9a665eb00672233edffbb2 1 std/os/windows/nls.zig +237477 15588291 1777922722096271443 67644436e9162e79563b60f574b36f99 1 std/os/windows/ntstatus.zig +159624 15588294 1777922722096271443 a39f9d487cebae65c6f7885b43d14926 1 std/os/windows/win32error.zig +3697 15588288 1777922722096271443 f5f54b1cf522ff663148d3c96268d459 1 std/os/windows/lang.zig +8449 15588292 1777922722096271443 3c42a760ba486f9b9455bd95d20d2e0b 1 std/os/windows/sublang.zig +134890 15588353 1777922722098271435 df90a233ff7b97b3d629b2cf2e6cb86a 1 std/zig/Parse.zig +133748 15588343 1777922722098271435 a88e2a4e8edd5e42ce36d5497be9cfe3 1 std/zig/Ast/Render.zig +9472 15588375 1777922722099271431 87195797eae5a3842acb5b520146fd13 1 std/zig/system/NativePaths.zig +12220 15588382 1777922722099271431 1f1c4d6952079202735b6347b5864845 1 std/zig/system/windows.zig +2320 15588379 1777922722099271431 e3e5ee526c7cbaefdeb93c1c71a9f4cf 1 std/zig/system/darwin.zig +17272 15588380 1777922722099271431 d567aa2d0fd3fea7e6ba769d0f8ec592 1 std/zig/system/linux.zig +2265 15588381 1777922722099271431 e842ad5fa8bb44c7b2f8d9b6a335fcf3 1 std/zig/system/loongarch.zig +26515 15588383 1777922722099271431 775e2bf6e3c40cf09c216c30e4630474 1 std/zig/system/x86.zig +19938 15588364 1777922722099271431 f668cf11e4bececc793b349896705637 1 std/zig/llvm/BitcodeReader.zig +17757 15588366 1777922722099271431 d9ff99a16b4c64c8b4178f94af361113 1 std/zig/llvm/bitcode_writer.zig +597464 15588365 1777922722099271431 3d2fda42992a57fa8717bda6172f399b 1 std/zig/llvm/Builder.zig +49710 15590294 1777923881917513974 6d3f0781400dc8bd9d56f75863d4309e 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/raylib-ext.zig +35674 15590302 1777923881920513968 f0a6339cb07109132b564312afeff653 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/rlgl.zig +15973 15590299 1777923881919513970 477b270b06d00dcc87cd16fe35c3c924 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/raymath.zig +10730 15587908 1777922722086271480 53adac0f8e0f7d9078504320a3c43e07 1 std/compress/flate/token.zig +12650 15587990 1777922722088271472 56befc361ef070a7bd0a2d3c1dc46994 1 std/crypto/pcurves/common.zig +67958 15587993 1777922722088271472 0f2daafefad01026d6796eec68d65d2e 1 std/crypto/pcurves/p256/p256_64.zig +76136 15587994 1777922722088271472 8ec5f177ef28f7a2a0ec8d103665db00 1 std/crypto/pcurves/p256/p256_scalar_64.zig +134511 15587999 1777922722089271469 2e0dda7c40794e981dd2d2471c4776a5 1 std/crypto/pcurves/p384/p384_64.zig +137291 15588000 1777922722089271469 81eb087d46e6c49907ae0c02d3230828 1 std/crypto/pcurves/p384/p384_scalar_64.zig +73280 15588006 1777922722089271469 c871f98dad15c7a8c29be9ccefa4b181 1 std/crypto/pcurves/secp256k1/secp256k1_64.zig +75859 15588007 1777922722089271469 e29275bdb0eb931fc383e7f2f5ded944 1 std/crypto/pcurves/secp256k1/secp256k1_scalar_64.zig +1807 15587968 1777922722087271476 f47429307ac0920ff18758ce86074549 1 std/crypto/codecs/asn1/der.zig +7105 15587960 1777922722087271476 66ccc511a453a86184290b4cacf80766 1 std/crypto/codecs/asn1/Oid.zig +0 15587969 1777922722087271476 82547a8dd7f3efb3f077622e34876868 1 std/crypto/codecs/asn1/test.zig +4011 15587933 1777922722086271480 a49557210ec6e38ec5826a46866649f7 1 std/crypto/Certificate/Bundle/macos.zig +17121 15588031 1777922722089271469 02ea7c4c86a3f7b66d945d1a88d0860d 1 std/debug/Dwarf/Unwind/VirtualMachine.zig +3081 15588065 1777922722091271461 2aeda0b8b6036bb4d980778abb5a928a 1 std/fmt/parse_float/common.zig +3073 15588064 1777922722091271461 3950e4fa1fdd11d50db0b4abfc254022 1 std/fmt/parse_float/FloatStream.zig +6036 15588063 1777922722091271461 68169ffe43d55f0eb5e26b984ef98670 1 std/fmt/parse_float/FloatInfo.zig +29140 15588070 1777922722091271461 04115d79320f402803a56bd43cc34cf9 1 std/fmt/parse_float/decimal.zig +2726 15588154 1777922722093271454 7f318d60fafbfa10754d5644fd131ffe 1 std/math/complex/ldexp.zig +0 15588138 1777922722093271454 82547a8dd7f3efb3f077622e34876868 1 std/math/big/int_test.zig +4082 15588212 1777922722094271450 11a08913a0ec64b8325b0d29601479a7 1 std/os/linux/bpf/btf.zig +1573 15588215 1777922722094271450 08d401fe72d3ad7d47a05a0dfa21751a 1 std/os/linux/bpf/kern.zig +0 15588207 1777922722094271450 82547a8dd7f3efb3f077622e34876868 1 std/os/linux/IoUring/test.zig +2001 15588265 1777922722096271443 539322409dfd2d684638b127038a6e33 1 std/os/uefi/protocol/service_binding.zig +1715 15588261 1777922722095271446 f6892127566a3c88d1d324cfca22e049 1 std/os/uefi/protocol/loaded_image.zig +4814 15588253 1777922722095271446 ae0050bfba8bda94901399e42fe62869 1 std/os/uefi/protocol/device_path.zig +3896 15588263 1777922722095271446 0eaedbe475401fd4e42c2f72619c3b04 1 std/os/uefi/protocol/rng.zig +544 15588266 1777922722096271443 a0f63cfe62d021c13659600cea4aaa1a 1 std/os/uefi/protocol/shell_parameters.zig +1496 15588267 1777922722096271443 92bd55cb521ba72da3dacbe3d5c5b804 1 std/os/uefi/protocol/simple_file_system.zig +13127 15588255 1777922722095271446 3e58288866670edca5973d3e29efe731 1 std/os/uefi/protocol/file.zig +5143 15588252 1777922722095271446 90c9d2e0c006c58adc3164e19f00657f 1 std/os/uefi/protocol/block_io.zig +1799 15588270 1777922722096271443 f024846a184666b0affa25a2cafbc10b 1 std/os/uefi/protocol/simple_text_input.zig +4974 15588271 1777922722096271443 8f8f74b6ab8260a314f3302e3b60a8b2 1 std/os/uefi/protocol/simple_text_input_ex.zig +9829 15588272 1777922722096271443 e29ba19063da848e891733725e4ef18c 1 std/os/uefi/protocol/simple_text_output.zig +2000 15588269 1777922722096271443 b5984b96aff1463f582bc80721e4a38c 1 std/os/uefi/protocol/simple_pointer.zig +2370 15588251 1777922722095271446 8910b48d0e2ed04512369394e9c24ef9 1 std/os/uefi/protocol/absolute_pointer.zig +4848 15588264 1777922722096271443 5a314d85dc7710d8e0d76e10d6c3922e 1 std/os/uefi/protocol/serial_io.zig +4268 15588256 1777922722095271446 be47eb42c9a36fecb0a4c61de4bdfb28 1 std/os/uefi/protocol/graphics_output.zig +2451 15588254 1777922722095271446 2485a4796e73c7c8a14535333ea36518 1 std/os/uefi/protocol/edid.zig +15926 15588268 1777922722096271443 f79068be4c5ecb4e18235f0494a8f3cf 1 std/os/uefi/protocol/simple_network.zig +9851 15588262 1777922722095271446 6ac87afb334f152ae1f60c7d37e0f794 1 std/os/uefi/protocol/managed_network.zig +13173 15588259 1777922722095271446 6918e512dad7b2ceae3fa8aea799bc07 1 std/os/uefi/protocol/ip6.zig +5348 15588260 1777922722095271446 f0e7e3eb4726b5acc733b4b709a6fb1b 1 std/os/uefi/protocol/ip6_config.zig +8539 15588273 1777922722096271443 75aeba724def9af2f5500e3b6a298bf6 1 std/os/uefi/protocol/udp6.zig +4193 15588257 1777922722095271446 ce7ddcd4ea155a56ac2f54b3d36b865f 1 std/os/uefi/protocol/hii_database.zig +1684 15588258 1777922722095271446 8a5d84a896afd4cbe181b6fe58095e17 1 std/os/uefi/protocol/hii_popup.zig +48199 15588277 1777922722096271443 e446bbeceb8ffaa0a0de93cfca1d074b 1 std/os/uefi/tables/boot_services.zig +18947 15588279 1777922722096271443 cb1eb30776a43459956ea4c0675dee88 1 std/os/uefi/tables/runtime_services.zig +2796 15588278 1777922722096271443 f0a08fa361dffa5eadb351a471801946 1 std/os/uefi/tables/configuration_table.zig +2295 15588280 1777922722096271443 25bf31dd5f33af51b4b9da897fa1e3d5 1 std/os/uefi/tables/system_table.zig +214 15588281 1777922722096271443 cdb95d6c52cd4654ef26be0bd9f114d4 1 std/os/uefi/tables/table_header.zig +0 15588370 1777922722099271431 82547a8dd7f3efb3f077622e34876868 1 std/zig/parser_test.zig +15193 15588376 1777922722099271431 7bce4e957862b1695847095b0e235801 1 std/zig/system/arm.zig +16515 15588378 1777922722099271431 c3ca99f8a604df7a396ed20c35bcebed 1 std/zig/system/darwin/macos.zig +80205 15588367 1777922722099271431 bfc1e840700a8f0e8a1a52a598010f74 1 std/zig/llvm/ir.zig +11416 15590300 1777923881919513970 8a43dcfb1320b98bb7f8ace3cc4f1743 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/rlgl-ext.zig +11139 15590297 1777923881918513972 0d1aa5facb81177d91b77bd9f7d4b6ae 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ/lib/raymath-ext.zig +5806 15587963 1777922722087271476 92f1dd53520d8191f93c177825b7845c 1 std/crypto/codecs/asn1/der/Decoder.zig +5861 15587964 1777922722087271476 650695830257d32d9ea72d767d918703 1 std/crypto/codecs/asn1/der/Encoder.zig +419 15588213 1777922722094271450 ed7dfc04a5d0c4f0853edb5414ce981e 1 std/os/linux/bpf/btf_ext.zig +24525 15588214 1777922722094271450 52c7fac6ad48da05270f91f073a4af79 1 std/os/linux/bpf/helpers.zig +2972 15587962 1777922722087271476 8c37c40098d399e3b36a078ce1d4e3a1 1 std/crypto/codecs/asn1/der/ArrayListReverse.zig +25527 15568024 1777922721690272950 8a205f0b1c5732c3190e50f042589dec 1 compiler_rt.zig +6710 15567798 1777922721686272965 2f406272323372f06ea32e7ba2671145 1 compiler_rt/count0bits.zig +1072 15567971 1777922721689272954 eb5665f235da79b18b24ad86fe636e3c 1 compiler_rt/parity.zig +1612 15567975 1777922721689272954 d5a192d1e6221072b39fd9489871805a 1 compiler_rt/popcount.zig +2555 15567775 1777922721686272965 94abc6c88d8b95079f2ffa08c953c84c 1 compiler_rt/bitreverse.zig +3053 15567779 1777922721686272965 f7bd2670352233064ec7083d6debbd43 1 compiler_rt/bswap.zig +1542 15567787 1777922721686272965 e86cf64174068e25059755c8b9d3312b 1 compiler_rt/cmp.zig +3992 15567986 1777922721689272954 3814ae54caaedf00b147deed4c0112f2 1 compiler_rt/shift.zig +26650 15567931 1777922721688272957 22806e43d0dac46aa72f227a85ab24f6 1 compiler_rt/int.zig +2729 15567942 1777922721688272957 32bdb9f5e7090032336e0cc3dcf004f1 1 compiler_rt/mulXi3.zig +10004 15568018 1777922721690272950 c75da294f9737c7c23ef89b4ac4a4680 1 compiler_rt/udivmod.zig +671 15567755 1777922721686272965 a6cfe83f9d8eb6e22dee6dc0ccee3367 1 compiler_rt/absv.zig +250 15567758 1777922721686272965 a8533a5e47ce15013e24b841121b73eb 1 compiler_rt/absvsi2.zig +217 15567756 1777922721686272965 3ce3bf7ea907beec5e63de5695aa6067 1 compiler_rt/absvdi2.zig +220 15567760 1777922721686272965 4448933a51a6997d5207f53443eec830 1 compiler_rt/absvti2.zig +1096 15567966 1777922721689272954 3a4bf91b607ee1118dab9735b082df49 1 compiler_rt/negv.zig +920 15567769 1777922721686272965 c5f857dc4717914fa062b400f9622607 1 compiler_rt/addvsi3.zig +959 15567768 1777922721686272965 257639b9472ac430476135afc780b665 1 compiler_rt/addvdi3.zig +850 15567998 1777922721689272954 ac36fb2149d5966ec7d505b909b86806 1 compiler_rt/subvsi3.zig +889 15567997 1777922721689272954 29e5e19036e4c660c957d19977fc2ee4 1 compiler_rt/subvdi3.zig +809 15567960 1777922721689272954 11f5f27cedd3438d13495331ac628626 1 compiler_rt/mulvsi3.zig +2849 15567952 1777922721689272954 86dfcaff625a305b4f8efe5d0533dace 1 compiler_rt/mulo.zig +6009 15567825 1777922721687272961 013ab2758ced7bbc2fc6988565eeb6c7 1 compiler_rt/extendf.zig +749 15567828 1777922721687272961 98eeaa4a548abf8762d1e9af9bc22ca1 1 compiler_rt/extendhfsf2.zig +335 15567827 1777922721687272961 da58ac4390996051556bfd8719d92a85 1 compiler_rt/extendhfdf2.zig +320 15567829 1777922721687272961 8871bda397e6825c39f23f0251ca0d22 1 compiler_rt/extendhftf2.zig +317 15567830 1777922721687272961 aaa7ccf0843a956beb418588dba37f19 1 compiler_rt/extendhfxf2.zig +514 15567831 1777922721687272961 bc571756252a1a5584d093538484a6ad 1 compiler_rt/extendsfdf2.zig +582 15567832 1777922721687272961 4974f1c781c0e5d63fb539beb1bac943 1 compiler_rt/extendsftf2.zig +266 15567833 1777922721687272961 2561f4cdb6d5cba42fa2a5cddaefb2b8 1 compiler_rt/extendsfxf2.zig +600 15567823 1777922721687272961 c095241dde6a34dfe058cf702b751be4 1 compiler_rt/extenddftf2.zig +303 15567824 1777922721687272961 bfc17774e2b2a3829741caae7c642755 1 compiler_rt/extenddfxf2.zig +1511 15567834 1777922721687272961 2a7c11b488cd1af64b87e3ef6e916eb6 1 compiler_rt/extendxftf2.zig +8121 15568005 1777922721689272954 20afe15564559323e44421df48412060 1 compiler_rt/truncf.zig +692 15568007 1777922721689272954 9d5f8f839d8728a9e54f9db08b6fc9f6 1 compiler_rt/truncsfhf2.zig +509 15568003 1777922721689272954 36a7e39f41512b69d8dd4b03148a07e2 1 compiler_rt/truncdfhf2.zig +470 15568004 1777922721689272954 2d0a9da2fc5f44f832277023e3ae7aab 1 compiler_rt/truncdfsf2.zig +318 15568013 1777922721689272954 139d3b014e0554bc57be883dbcb13040 1 compiler_rt/truncxfhf2.zig +239 15568014 1777922721690272950 ae2c69fc5bd6a62401142b0cce712d31 1 compiler_rt/truncxfsf2.zig +239 15568012 1777922721689272954 64b17fde24984d08777a286b452ed71b 1 compiler_rt/truncxfdf2.zig +321 15568009 1777922721689272954 1afa1aed29807fa59e1dd55d76568c92 1 compiler_rt/trunctfhf2.zig +550 15568010 1777922721689272954 c6072c8226886282a81de6ac65a6832f 1 compiler_rt/trunctfsf2.zig +532 15568008 1777922721689272954 c1eaf14f67fcf5d0dcd04b9ea346246e 1 compiler_rt/trunctfdf2.zig +2791 15568011 1777922721689272954 ba812a42d7ab9bcc80710007cb084cf2 1 compiler_rt/trunctfxf2.zig +5022 15567932 1777922721688272957 19bab1ecf558b764bd8e8468a4437453 1 compiler_rt/int_from_float.zig +505 15567843 1777922721687272961 1fa8b56a94273bc472a6be89f8e49cb6 1 compiler_rt/fixhfei.zig +486 15567847 1777922721687272961 3e7787e9660e6e3524cf38eb839127d6 1 compiler_rt/fixsfsi.zig +642 15567845 1777922721687272961 cf2cacfdce0a2700ef1151756d454c85 1 compiler_rt/fixsfdi.zig +583 15567848 1777922721687272961 3d05f9c93a1d9edb2dd8fdfc54a2a5cf 1 compiler_rt/fixsfti.zig +505 15567846 1777922721687272961 24db7b91a9d948a2ad7caf09eac5bac6 1 compiler_rt/fixsfei.zig +504 15567841 1777922721687272961 5f0698948ec15aeb0c7317a8aa00443a 1 compiler_rt/fixdfsi.zig +624 15567839 1777922721687272961 31f529f960e287899bfea39220efe423 1 compiler_rt/fixdfdi.zig +565 15567842 1777922721687272961 1b746ea2e5364fe3d06f59ae59750aec 1 compiler_rt/fixdfti.zig +505 15567840 1777922721687272961 544f2f0344a72b62fc744fe9964fd699 1 compiler_rt/fixdfei.zig +555 15567851 1777922721687272961 21912f18e11f59d98fcda7b2163587dd 1 compiler_rt/fixtfsi.zig +555 15567849 1777922721687272961 f6c717ba5d2610cfee93c3fcc781efd9 1 compiler_rt/fixtfdi.zig +650 15567852 1777922721687272961 879363d43dc2ccd2ccda8c6846a8d86e 1 compiler_rt/fixtfti.zig +506 15567850 1777922721687272961 e0f51045e782f2826083492df6292ff6 1 compiler_rt/fixtfei.zig +280 15567875 1777922721687272961 17542bcca7e4498a30b7ff317688ba9e 1 compiler_rt/fixxfsi.zig +247 15567873 1777922721687272961 8cb1d23d6f6efacc6b4f44a929bbffbb 1 compiler_rt/fixxfdi.zig +505 15567874 1777922721687272961 1fece5086db5fb44264e371192df926b 1 compiler_rt/fixxfei.zig +289 15567859 1777922721687272961 9052b90819d6e134589cf15421be20d3 1 compiler_rt/fixunshfsi.zig +256 15567857 1777922721687272961 6091d7b00dd29ba5314dda663c59d247 1 compiler_rt/fixunshfdi.zig +583 15567860 1777922721687272961 4e766b5ed70ad0738c4cc53db4a55d43 1 compiler_rt/fixunshfti.zig +485 15567858 1777922721687272961 b25d09befb8f331a968d63a91d13f1b3 1 compiler_rt/fixunshfei.zig +498 15567863 1777922721687272961 13a3e3cdc102220cda3e65d6d16b1803 1 compiler_rt/fixunssfsi.zig +639 15567861 1777922721687272961 36a07146caf82dbad47163a3ca473afb 1 compiler_rt/fixunssfdi.zig +619 15567864 1777922721687272961 56789acf458135e6c3a782a8572d6010 1 compiler_rt/fixunssfti.zig +485 15567862 1777922721687272961 3e11a2202c44d57de654ce2d29be9b17 1 compiler_rt/fixunssfei.zig +498 15567855 1777922721687272961 5fcc6dc71f3120b36f2fe57f95a4df13 1 compiler_rt/fixunsdfsi.zig +639 15567853 1777922721687272961 a830fab7334d07637a73ebb72e61c48c 1 compiler_rt/fixunsdfdi.zig +583 15567856 1777922721687272961 c4e648867a929a625fcbe892c855a0cc 1 compiler_rt/fixunsdfti.zig +485 15567854 1777922721687272961 8d7b3d247e80d9f47e5debacbc6e2b88 1 compiler_rt/fixunsdfei.zig +555 15567867 1777922721687272961 14924a3e8dcce47ec68fb9c45f7a6a08 1 compiler_rt/fixunstfsi.zig +555 15567865 1777922721687272961 99d881339bbbe56c6c73f4ac5d192c6f 1 compiler_rt/fixunstfdi.zig +692 15567868 1777922721687272961 abf77a1c7dd0243fd13146b2b275fc9f 1 compiler_rt/fixunstfti.zig +486 15567866 1777922721687272961 96f3507e58f63f9988db501bd3c3881d 1 compiler_rt/fixunstfei.zig +289 15567871 1777922721687272961 7b8251710687d6ab61e988db20cbecaf 1 compiler_rt/fixunsxfsi.zig +256 15567869 1777922721687272961 352c31350bc98c309e28c1705ae709b7 1 compiler_rt/fixunsxfdi.zig +601 15567872 1777922721687272961 805918cac365386594689e0b14d5c23c 1 compiler_rt/fixunsxfti.zig +483 15567870 1777922721687272961 3e85f5658cb15905fc6235fc4609ea39 1 compiler_rt/fixunsxfei.zig +4033 15567876 1777922721687272961 08f568a06331f48d4981b570aa9bf4e7 1 compiler_rt/float_from_int.zig +286 15567889 1777922721688272957 106565430b27b00575389beb7b556c32 1 compiler_rt/floatsihf.zig +489 15567890 1777922721688272957 99ac4b64eae6451228fdf3e76d49ca5a 1 compiler_rt/floatsisf.zig +489 15567888 1777922721688272957 5e6458641b2311288dd5c00c68c662ef 1 compiler_rt/floatsidf.zig +549 15567891 1777922721688272957 5a42b568187c33cfce0199909fcd71c8 1 compiler_rt/floatsitf.zig +304 15567892 1777922721688272957 7136a4ad8f4fb251b019c70d60e112f2 1 compiler_rt/floatsixf.zig +253 15567879 1777922721687272961 b6c524b7b79a0b2ba575668317d16be8 1 compiler_rt/floatdihf.zig +611 15567880 1777922721687272961 3876b9e1125045a0bba7ec7e30502a8b 1 compiler_rt/floatdisf.zig +629 15567878 1777922721687272961 ac4256b4976a496e9da9f3b5cc62e6b8 1 compiler_rt/floatdidf.zig +567 15567881 1777922721687272961 e60a88490ec274e0bcd8a335dffc2f77 1 compiler_rt/floatditf.zig +253 15567882 1777922721687272961 5c41253cc75c758f3d8414c06820b2e8 1 compiler_rt/floatdixf.zig +582 15567894 1777922721688272957 aa003fed3c28fcf0661465916cb226d1 1 compiler_rt/floattihf.zig +564 15567895 1777922721688272957 edebc519fd8c78ffadcfa533755b47e5 1 compiler_rt/floattisf.zig +564 15567893 1777922721688272957 4108329e5b3cd7683c90776309e92291 1 compiler_rt/floattidf.zig +655 15567896 1777922721688272957 5ad2e9750665a0bc0f20e70de861dd2a 1 compiler_rt/floattitf.zig +582 15567897 1777922721688272957 d70e70beff307c5a02db9159d0c10876 1 compiler_rt/floattixf.zig +510 15567884 1777922721687272961 1646d6f1c02bb7b56165f216939a9766 1 compiler_rt/floateihf.zig +510 15567885 1777922721687272961 527c6da025482fa3e66b7143a7d9ea01 1 compiler_rt/floateisf.zig +479 15567883 1777922721687272961 7089012ddd1b9df0b322dd94006d29cb 1 compiler_rt/floateidf.zig +512 15567886 1777922721687272961 7f5adb0ede96341b927fd2b19ae21832 1 compiler_rt/floateitf.zig +479 15567887 1777922721688272957 a23d0cf72c9624bd4deb5bf9ab59680d 1 compiler_rt/floateixf.zig +263 15567909 1777922721688272957 d0eabbfe905bd1955dfbf4ff74789d9b 1 compiler_rt/floatunsihf.zig +516 15567910 1777922721688272957 4889e042d98fd6fe78fdd5512ad1222a 1 compiler_rt/floatunsisf.zig +498 15567908 1777922721688272957 469980dadce3b1303d8e5447b80253e0 1 compiler_rt/floatunsidf.zig +580 15567911 1777922721688272957 ad932fe90a33e55661927317df353bbc 1 compiler_rt/floatunsitf.zig +292 15567912 1777922721688272957 b74eb06b45723852ed8907ef9a3c1e2e 1 compiler_rt/floatunsixf.zig +292 15567899 1777922721688272957 d33b3dad7c05a80047aa89ef177f5de5 1 compiler_rt/floatundihf.zig +640 15567900 1777922721688272957 bfe6adee0ae9ff36f0f3a727942b60ff 1 compiler_rt/floatundisf.zig +622 15567898 1777922721688272957 5b21700386001f90ca76f4a69bbcc531 1 compiler_rt/floatundidf.zig +562 15567901 1777922721688272957 7ecbce03f6e2f7d34f669c43e05b5a5a 1 compiler_rt/floatunditf.zig +292 15567902 1777922721688272957 da5d76f43d53f823d14115e813e1e679 1 compiler_rt/floatundixf.zig +576 15567914 1777922721688272957 2953c33c5afb985a57994b5286303007 1 compiler_rt/floatuntihf.zig +594 15567915 1777922721688272957 05f6dcc434cc4afcdeab7e22fc1dc4ae 1 compiler_rt/floatuntisf.zig +576 15567913 1777922721688272957 b11ac0fc0d92ee51164a46a58d962730 1 compiler_rt/floatuntidf.zig +671 15567916 1777922721688272957 c473c1e7ddec98bb533d1273ad3b4a66 1 compiler_rt/floatuntitf.zig +594 15567917 1777922721688272957 9aa52768facdbbc8d846ea2d3494ecc1 1 compiler_rt/floatuntixf.zig +518 15567904 1777922721688272957 b569e15c4960f096d22a8498695037b3 1 compiler_rt/floatuneihf.zig +518 15567905 1777922721688272957 3da1804fc261f82d9a85f4cb42fcc7cf 1 compiler_rt/floatuneisf.zig +518 15567903 1777922721688272957 72d8c1345792bda65e245e216c54bfb4 1 compiler_rt/floatuneidf.zig +489 15567906 1777922721688272957 250b2f2ee910f6889439f6902e824242 1 compiler_rt/floatuneitf.zig +518 15567907 1777922721688272957 8775dcf872567dbca4aaa9be89c98d5c 1 compiler_rt/floatuneixf.zig +9442 15567795 1777922721686272965 a4d8663a92788da43cb9d84cfbb3e58c 1 compiler_rt/comparef.zig +2605 15567788 1777922721686272965 91858a90e46f0fae6148a5be22f15aba 1 compiler_rt/cmpdf2.zig +3596 15567791 1777922721686272965 ed4eee3b4269a73e58e195ab991424b6 1 compiler_rt/cmptf2.zig +1891 15567793 1777922721686272965 1bcb2490de66ad4411a56bb1b1beadda 1 compiler_rt/cmpxf2.zig +522 15568023 1777922721690272950 3cec9a8449e552edb9ea21bdcfcd5d16 1 compiler_rt/unorddf2.zig +792 15567926 1777922721688272957 bd0ef74753abec5e9bf5ff1ece192ce1 1 compiler_rt/gehf2.zig +1289 15567927 1777922721688272957 752957c0e08ab46d38903882d4e373e6 1 compiler_rt/gesf2.zig +1307 15567925 1777922721688272957 77abb220c445ca209cdc0bd63d0c35f4 1 compiler_rt/gedf2.zig +363 15567929 1777922721688272957 71abd2cb5cc15adfad10f2d1b086455c 1 compiler_rt/gexf2.zig +1102 15567928 1777922721688272957 857b9121c2764ef9fa6c80b222bae740 1 compiler_rt/getf2.zig +6364 15567763 1777922721686272965 a28efd2a8cc22dd72d94e92efdcaf5e8 1 compiler_rt/addf3.zig +258 15567765 1777922721686272965 cdb97ed9e9e4f737d1f50210538b5fa5 1 compiler_rt/addhf3.zig +482 15567766 1777922721686272965 7c66383d101eb8f59fe91827b0fa7052 1 compiler_rt/addsf3.zig +482 15567762 1777922721686272965 e98de91516f58550155b9f3cdc601a6a 1 compiler_rt/adddf3.zig +526 15567767 1777922721686272965 6a3199d5327ebdb5ac2a57b2891ce8e9 1 compiler_rt/addtf3.zig +262 15567770 1777922721686272965 37bb3df1d21ca3fb5c73a77e28251f0a 1 compiler_rt/addxf3.zig +345 15567994 1777922721689272954 d9dd819eb7b3e86e7499f19496aea205 1 compiler_rt/subhf3.zig +605 15567995 1777922721689272954 3730fe6e180d1398a620f7eeb43a77fb 1 compiler_rt/subsf3.zig +623 15567993 1777922721689272954 7be5439bbd27e235a8fb91189b8400e5 1 compiler_rt/subdf3.zig +685 15567996 1777922721689272954 9bd91d1677c201db0fbe5aff338cf3a5 1 compiler_rt/subtf3.zig +305 15567999 1777922721689272954 fe73f8ec762008d8326f6948b3c58f3c 1 compiler_rt/subxf3.zig +8424 15567948 1777922721688272957 8e0c05bcfe476732180e7179a76711cf 1 compiler_rt/mulf3.zig +262 15567951 1777922721688272957 6a4d90f1850cdff4b9101cf5f3653506 1 compiler_rt/mulhf3.zig +468 15567957 1777922721689272954 9e1e52d638844b75ab5c4d9b1605394d 1 compiler_rt/mulsf3.zig +486 15567947 1777922721688272957 f18b5c02041a116c8908d4c293c839fa 1 compiler_rt/muldf3.zig +538 15567959 1777922721689272954 f0405d80ca7cb47530b94f4f2ac72c77 1 compiler_rt/multf3.zig +262 15567962 1777922721689272954 099cf6140d3741138e202d701d1d874a 1 compiler_rt/mulxf3.zig +285 15567808 1777922721686272965 ae5c2e64d205ad937c80f9c50800e579 1 compiler_rt/divhf3.zig +8402 15567811 1777922721686272965 e007dd91050d3f9670856a31b291d71d 1 compiler_rt/divsf3.zig +9199 15567805 1777922721686272965 64b385486134b7bf452a4b4e3d8aa5ee 1 compiler_rt/divdf3.zig +8620 15567818 1777922721686272965 841562b842e29f7fc82e5e830cac819a 1 compiler_rt/divxf3.zig +10560 15567814 1777922721686272965 ebc16bc889cdb5e114e6bd9b797169b6 1 compiler_rt/divtf3.zig +1602 15567979 1777922721689272954 ed08c76b13adf76b35de9a6acfb5f900 1 compiler_rt/powiXf2.zig +2275 15567944 1777922721688272957 31c049fe940585ddd225b0c4f49de0ab 1 compiler_rt/mulc3.zig +364 15567950 1777922721688272957 512781f166a8c3875da561f4f8230be9 1 compiler_rt/mulhc3.zig +331 15567956 1777922721689272954 102e16161771af7814e38255adbe4dca 1 compiler_rt/mulsc3.zig +331 15567946 1777922721688272957 bb3e4f1e45e087a2cbf5e1b8c7294ab5 1 compiler_rt/muldc3.zig +364 15567961 1777922721689272954 0575402536fa7953282dd3719153c560 1 compiler_rt/mulxc3.zig +469 15567958 1777922721689272954 2599c8fc1dd703990f1d52fcc8405afc 1 compiler_rt/multc3.zig +2280 15567802 1777922721686272965 9e6aaeda713b6cd43eca1180606dc9f8 1 compiler_rt/divc3.zig +406 15567807 1777922721686272965 412c7456a893811918eb7e32f5ca2b4f 1 compiler_rt/divhc3.zig +373 15567810 1777922721686272965 7e02e8c2afcd2c36b275e526b50e7de7 1 compiler_rt/divsc3.zig +373 15567804 1777922721686272965 5be22ecc99b60a1e269ebcd07b63ba48 1 compiler_rt/divdc3.zig +373 15567817 1777922721686272965 eb964b5ea20bc7ea6b214d5165684b59 1 compiler_rt/divxc3.zig +511 15567813 1777922721686272965 f00ce0a1115432ed877e70a7210e020d 1 compiler_rt/divtc3.zig +8401 15567797 1777922721686272965 48ce97085562f8f0d3e93ba3a00c6330 1 compiler_rt/cos.zig +11191 15567821 1777922721686272965 233a0c2675fcf9fb0562d061d3f4ef8d 1 compiler_rt/exp.zig +20463 15567822 1777922721686272965 990315018671e600e5f43983656b35c7 1 compiler_rt/exp2.zig +1415 15567835 1777922721687272961 cd3fa4a3253c94922cf7fd4dbe8cf6d6 1 compiler_rt/fabs.zig +8451 15567918 1777922721688272957 0b87695dedb440735139b41072ac04b4 1 compiler_rt/floor_ceil.zig +11101 15567919 1777922721688272957 28c4313cc538b2f5812a52ec4bec4b02 1 compiler_rt/fma.zig +2369 15567920 1777922721688272957 a7f052b4bdafcce80219707ccbcd4a79 1 compiler_rt/fmax.zig +2371 15567921 1777922721688272957 2881caf3353e21fdc068c2894b526e33 1 compiler_rt/fmin.zig +11725 15567922 1777922721688272957 79f5a6f3e0524014ac73e0cb70026778 1 compiler_rt/fmod.zig +27755 15567935 1777922721688272957 8fa60be4c24fa34c552469dc3b4d63cf 1 compiler_rt/log.zig +9191 15567936 1777922721688272957 94721fe1abfbc3e173c681c73594e4b5 1 compiler_rt/log10.zig +8667 15567937 1777922721688272957 49e6cdf9ea75329f51154c609db64cc2 1 compiler_rt/log2.zig +4824 15567985 1777922721689272954 18ecc9f71f2af16e8866e41610d6e1db 1 compiler_rt/round.zig +9430 15567988 1777922721689272954 b933cc2801f9f84ff21b33c81ed4d0a9 1 compiler_rt/sin.zig +14726 15567989 1777922721689272954 d2d11e62b12ffea565f68495b486d0fe 1 compiler_rt/sincos.zig +29204 15567990 1777922721689272954 963eea878eff95387128b7a278530024 1 compiler_rt/sqrt.zig +7816 15568000 1777922721689272954 895ecc118177fee658ce2ed29440e3e3 1 compiler_rt/tan.zig +3960 15568002 1777922721689272954 7e9794fe13282aed8ade46a8cc46fdde 1 compiler_rt/trunc.zig +1976 15567809 1777922721686272965 f40491911afd36dcbdcaf83bde552029 1 compiler_rt/divmodei4.zig +5274 15568020 1777922721690272950 b483f1668e5681f1d01a8d3379d3085c 1 compiler_rt/udivmodei4.zig +8695 15567934 1777922721688272957 7f6b80ee9fd1a888a1cefaf0f0c07003 1 compiler_rt/limb64.zig +2970 15567970 1777922721689272954 73fbe2fafb6bf806bc0f94e0dbcdbb82 1 compiler_rt/os_version_check.zig +12778 15567820 1777922721686272965 32b1cbab0c70a5f07d8449b52a41b212 1 compiler_rt/emutls.zig +9633 15567771 1777922721686272965 5be5ccc2045b773a50cc658d73e3f1fe 1 compiler_rt/arm.zig +2296 15567773 1777922721686272965 adeeb17e089446574c0ac7052482f9da 1 compiler_rt/aulldiv.zig +2443 15567774 1777922721686272965 e279358f66c28bb577bb85cbb84e1b13 1 compiler_rt/aullrem.zig +7898 15567783 1777922721686272965 06f37e75f1f65c2d1968533e3126f595 1 compiler_rt/clear_cache.zig +44080 15567930 1777922721688272957 abec634a6ef8a9483ea381073dda9495 1 compiler_rt/hexagon.zig +22504 15567772 1777922721686272965 ee140ab73a711e099a335fcde147ec95 1 compiler_rt/atomics.zig +8888 15567992 1777922721689272954 e025e27cc09dff6f87418466a43f6126 1 compiler_rt/stack_probe.zig +71732 15567754 1777922721686272965 369d1b315f5a60e440e7b5229d0c2164 1 compiler_rt/aarch64_outline_atomics.zig +6327 15567939 1777922721688272957 8bd7a5b699effd9b48177fb4f42ba749 1 compiler_rt/memcpy.zig +7302 15567940 1777922721688272957 469b60af6c756eaa579028727fd7f021 1 compiler_rt/memmove.zig +3975 15567991 1777922721689272954 c0d2e7ed8026c400d7a40345bd91bf4f 1 compiler_rt/ssp.zig +0 15567964 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negsi2_test.zig +0 15567963 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negdi2_test.zig +0 15567965 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negti2_test.zig +0 15567785 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/clzsi2_test.zig +0 15567784 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/clzdi2_test.zig +0 15567786 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/clzti2_test.zig +0 15567800 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ctzsi2_test.zig +0 15567799 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ctzdi2_test.zig +0 15567801 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ctzti2_test.zig +0 15567837 1777922721687272961 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ffssi2_test.zig +0 15567836 1777922721687272961 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ffsdi2_test.zig +0 15567838 1777922721687272961 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ffsti2_test.zig +0 15567973 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/paritysi2_test.zig +0 15567972 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/paritydi2_test.zig +0 15567974 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/parityti2_test.zig +0 15567977 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/popcountsi2_test.zig +0 15567976 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/popcountdi2_test.zig +0 15567978 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/popcountti2_test.zig +0 15567777 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bitreversesi2_test.zig +0 15567776 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bitreversedi2_test.zig +0 15567778 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bitreverseti2_test.zig +0 15567781 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bswapsi2_test.zig +0 15567780 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bswapdi2_test.zig +0 15567782 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/bswapti2_test.zig +0 15567790 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/cmpsi2_test.zig +0 15567789 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/cmpdi2_test.zig +0 15567792 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/cmpti2_test.zig +0 15568016 1777922721690272950 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ucmpsi2_test.zig +0 15568015 1777922721690272950 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ucmpdi2_test.zig +0 15568017 1777922721690272950 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/ucmpti2_test.zig +0 15567987 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/shift_test.zig +0 15568019 1777922721690272950 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/udivmoddi4_test.zig +0 15567943 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/mulXi3_test.zig +0 15567941 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/modti3_test.zig +0 15567816 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/divti3_test.zig +0 15568022 1777922721690272950 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/udivmodti4_test.zig +0 15567759 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/absvsi2_test.zig +0 15567757 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/absvdi2_test.zig +0 15567761 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/absvti2_test.zig +0 15567968 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negvsi2_test.zig +0 15567967 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negvdi2_test.zig +0 15567969 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/negvti2_test.zig +0 15567954 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/mulosi4_test.zig +0 15567953 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/mulodi4_test.zig +0 15567955 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/muloti4_test.zig +0 15567826 1777922721687272961 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/extendf_test.zig +0 15568006 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/truncf_test.zig +0 15567933 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/int_from_float_test.zig +0 15567877 1777922721687272961 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/float_from_int_test.zig +0 15567796 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/comparesf2_test.zig +0 15567794 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/comparedf2_test.zig +0 15567764 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/addf3_test.zig +0 15567949 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/mulf3_test.zig +0 15567812 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/divsf3_test.zig +0 15567806 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/divdf3_test.zig +0 15567819 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/divxf3_test.zig +0 15567815 1777922721686272965 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/divtf3_test.zig +0 15567980 1777922721689272954 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/powiXf2_test.zig +20510 15568001 1777922721689272954 f6b225d4b9feff2de1e103d485dc8e40 1 compiler_rt/trig.zig +6045 15567981 1777922721689272954 18b634df64d66eb7c240db46b32eea60 1 compiler_rt/rem_pio2.zig +2247 15567983 1777922721689272954 2337e183931c970621500018ffe636df 1 compiler_rt/rem_pio2f.zig +5829 15567984 1777922721689272954 402ac72990072faf4f752a5636968782 1 compiler_rt/rem_pio2l.zig +1118 15567938 1777922721688272957 bec039b31d08232f98fc682d19a1ac73 1 compiler_rt/long_double.zig +0 15567923 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/fmodq_test.zig +0 15567924 1777922721688272957 82547a8dd7f3efb3f077622e34876868 1 compiler_rt/fmodx_test.zig +20581 15567982 1777922721689272954 e8eaf68a4ffa3364b8f352326a575189 1 compiler_rt/rem_pio2_large.zig diff --git a/.zig-cache/h/a1f51cf339ee05edc9e9899c5d2caa4e.txt b/.zig-cache/h/a1f51cf339ee05edc9e9899c5d2caa4e.txt new file mode 100644 index 0000000..e69de29 diff --git a/.zig-cache/h/bc13d93a5dcdeadc4550af53b6c6abb8.txt b/.zig-cache/h/bc13d93a5dcdeadc4550af53b6c6abb8.txt new file mode 100644 index 0000000..5fc3166 --- /dev/null +++ b/.zig-cache/h/bc13d93a5dcdeadc4550af53b6c6abb8.txt @@ -0,0 +1,87 @@ +0 +50 15596151 1777925798684431311 fd3888aa7ca9778df50390896cce6318 2 o/da8bf749420ef1065612c05b8ed536b3/raygui.c +293735 15590661 1777923923667433573 7cfda270441ca39c49b2e81410b1effb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/src/raygui.h +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +34258 11024114 1776766428000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +381 11023928 1776766428000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11023930 1776766428000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11023927 1776766428000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11023926 1776766428000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11023925 1776766428000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11023948 1776766428000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11023935 1776766428000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11023890 1776766428000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +5599 11023887 1776766428000000000 e430a87e8deadc82d69f0f011fb6ea3e 0 /usr/include/bits/stdio.h +21266 11024117 1776766428000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +4753 11024118 1776766428000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +10969 11023996 1776766428000000000 dd17390845739df8331656ac5a17ef8e 0 /usr/include/ctype.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1516 11023891 1776766428000000000 046e6949e60c5229cc0f25afa40a0c7d 0 /usr/include/bits/stdlib-bsearch.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h diff --git a/.zig-cache/h/c57cfb1786f2acd3cbcad9dafe18cd51.txt b/.zig-cache/h/c57cfb1786f2acd3cbcad9dafe18cd51.txt new file mode 100644 index 0000000..4f81224 --- /dev/null +++ b/.zig-cache/h/c57cfb1786f2acd3cbcad9dafe18cd51.txt @@ -0,0 +1,265 @@ +0 +6000 15592267 1777923927288426459 c08daa562131e2220de1a06bca726720 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rglfw.c +14504 15592172 1777923927262426511 b27f6b3bb53bc837cf7ea3290ce6416e 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/init.c +35817 15592174 1777923927262426511 f72e6da24b2e8dc2c561d4faf974a05c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/internal.h +241826 15592156 1777923927261426513 86501dc510331da26275322e654ec46a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +417 15568047 1777922721690272950 d2edf43390585163b0f70c6bd1d7e3b7 1 include/__stddef_header_macro.h +717 15568052 1777922721690272950 81288588f2bdd7ac4f213fa113429ef2 1 include/__stddef_ptrdiff_t.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +708 15568051 1777922721690272950 04b70454bf7cdd0c492cfaf134f95be7 1 include/__stddef_offsetof.h +27519 15568253 1777922721701272909 1bf965d23c79a082ac103b8d4944724e 1 include/stdint.h +8268 11441074 1770636718000000000 07868a6486476f79d1af8befa09ff966 0 /usr/include/stdint.h +4286 11440764 1770636718000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11440969 1770636718000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11440968 1770636718000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11440952 1770636718000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11440883 1770636718000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11441073 1770636718000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11441083 1770636718000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11440770 1770636718000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11440986 1770636718000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11440985 1770636718000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +8806 11440885 1770636718000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11440935 1770636718000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11440881 1770636718000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +1906 11440948 1770636718000000000 eb31012558f3028fc2c3c0def47ccc8a 0 /usr/include/bits/wchar.h +1037 11440844 1770636718000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +1049 11440846 1770636718000000000 df8b58b124e95d233ec646186fc72d07 0 /usr/include/bits/stdint-uintn.h +1305 11440845 1770636718000000000 e13a68eb8203cd6be160c31f99d931f7 0 /usr/include/bits/stdint-least.h +6421 15592189 1777923927264426507 9430a43cbffb7932dc5ccfe1bf2d0807 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/platform.h +11827 15592185 1777923927264426507 4beac7be71da25898297d83d4e922499 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/null_platform.h +44741 15592217 1777923927266426503 6868a25f2f702569928920058ddd21bf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_platform.h +45053 11441179 1770636718000000000 61decd3126c9fca1538df8298cac1894 0 /usr/include/unistd.h +5910 11440795 1770636718000000000 3ab8ab6e5779785e032604f1768b415c 0 /usr/include/bits/posix_opt.h +3791 11440731 1770636718000000000 e918da89dc6f1bc95caac7b9e99e3ccc 0 /usr/include/bits/environments.h +23828 11440722 1770636718000000000 9cf65881ab165e5e8e291a2f7fcd0a71 0 /usr/include/bits/confname.h +1810 11440750 1770636718000000000 996cb3fd9509868b01621c74e4a86ade 0 /usr/include/bits/getopt_posix.h +3667 11440748 1770636718000000000 ac9188a8d7cc4aac4ca3ac108e99f032 0 /usr/include/bits/getopt_core.h +2035 11440941 1770636718000000000 0cb61ab97cf5643355f3236fdfb9904c 0 /usr/include/bits/unistd_ext.h +377 8943771 1770625897000000000 7ed06359dec8788b24849d80d4e70c9a 0 /usr/include/linux/close_range.h +13045 11441069 1770636718000000000 efc9e225e109bb08a8dec4661ace2e4c 0 /usr/include/signal.h +3313 11440827 1770636718000000000 c7b07d26fe58fc7ceff1ae4edad8acd6 0 /usr/include/bits/signum-generic.h +2580 11440826 1770636718000000000 500defef7a2bd9a9e56449a3aea3b0f9 0 /usr/include/bits/signum-arch.h +272 11440903 1770636718000000000 52033494d2efb18f3ae4d42d90be994c 0 /usr/include/bits/types/sig_atomic_t.h +195 11440906 1770636718000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11440892 1770636718000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +877 11440929 1770636718000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +1905 11440729 1770636718000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11440730 1770636718000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +208 11440932 1770636718000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +3892 11440905 1770636718000000000 9f30a8a17236994ddab5a49513bee1c1 0 /usr/include/bits/types/siginfo_t.h +1148 11440893 1770636718000000000 cef99022964de0d2a9bb4a66335a242a 0 /usr/include/bits/types/__sigval_t.h +729 11440821 1770636718000000000 732ba145bdaaec5752d3851d994fb038 0 /usr/include/bits/siginfo-arch.h +7537 11440823 1770636718000000000 4397eb5131c9e02a702340cc690db708 0 /usr/include/bits/siginfo-consts.h +204 11440822 1770636718000000000 070bf764547621a5cbd9eca15e56bf40 0 /usr/include/bits/siginfo-consts-arch.h +599 11440907 1770636718000000000 9a9be4e0a7b8d98d52679616ab1b7362 0 /usr/include/bits/types/sigval_t.h +1204 11440904 1770636718000000000 ab141640b4254a15993e20837b92ffa9 0 /usr/include/bits/types/sigevent_t.h +1471 11440820 1770636718000000000 2763ca41204119b32bf53713071bb096 0 /usr/include/bits/sigevent-consts.h +2935 11440818 1770636718000000000 abb4550dd27d1f45d7bd71b5a552f386 0 /usr/include/bits/sigaction.h +4266 11440819 1770636718000000000 8e4aadcbffc06002a69da0003c1793a1 0 /usr/include/bits/sigcontext.h +1062 11440908 1770636718000000000 3418e41d444a3efa09c1989618745709 0 /usr/include/bits/types/stack_t.h +5842 11441154 1770636718000000000 3850964a3dfeecfdf8d6341ce10a867b 0 /usr/include/sys/ucontext.h +1168 11440828 1770636718000000000 8d25e4dc4342ca228643759acadb8af6 0 /usr/include/bits/sigstack.h +1283 11440829 1770636718000000000 3177a841d4601f625a64ad164ae45250 0 /usr/include/bits/sigstksz.h +1188 11440837 1770636718000000000 0a23e9e025646d8d7930c5f34b481456 0 /usr/include/bits/ss_flags.h +1073 11440925 1770636718000000000 6ec7e47258c49e849f75f41527e676a0 0 /usr/include/bits/types/struct_sigstack.h +3072 11440804 1770636718000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11440879 1770636718000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11440803 1770636718000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11440719 1770636718000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11440858 1770636718000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11440859 1770636718000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1692 11440830 1770636718000000000 bc31047fff5a76a10c2880762a977d27 0 /usr/include/bits/sigthread.h +1285 11440824 1770636718000000000 368ef36453d66bf3b3d3595424daf7ac 0 /usr/include/bits/signal_ext.h +99801 11320731 1770539241000000000 f2e7c6c90e11927568ff931d109f936c 0 /usr/include/X11/Xlib.h +5713 11441153 1770636718000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +143 11440894 1770636718000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11440895 1770636718000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +159 11440933 1770636718000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +2299 11440961 1770636718000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +2450 11440720 1770636718000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11440936 1770636718000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11441127 1770636718000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11440810 1770636718000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +416 11440930 1770636718000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +20137 7769018 1766144024000000000 382791d667a3393547f807899249bfc0 0 /usr/include/X11/X.h +7946 7769025 1766144024000000000 8a5039c8a7aa3a4eab5f7181393ac108 0 /usr/include/X11/Xfuncproto.h +3115 7769030 1766144024000000000 d53b0559a65c0bcdb77ed0459f1b9976 0 /usr/include/X11/Xosdefs.h +2769 7769135 1766144024000000000 0d41ae60a19d8f9ba25f1763119261cc 0 /usr/include/X11/keysym.h +186629 7769136 1766144024000000000 bd52d531f256dfa6f7971ce3c84e5d8b 0 /usr/include/X11/keysymdef.h +2518 7769023 1766144024000000000 a6ecf58bbcdb259e383e67043e2a7022 0 /usr/include/X11/Xatom.h +10628 11320736 1770539241000000000 9b0233263c20c2e8be88d5e81fbf2202 0 /usr/include/X11/Xresource.h +13200 11322026 1730878554000000000 3e56a893977bb933a42f01ba8765a1e8 0 /usr/include/X11/Xcursor/Xcursor.h +34258 11441075 1770636718000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +381 11440889 1770636718000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11440891 1770636718000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11440888 1770636718000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11440887 1770636718000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11440886 1770636718000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11440909 1770636718000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11440896 1770636718000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11440851 1770636718000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +4929 11440744 1770636718000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11440743 1770636718000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +17060 11321897 1769439156000000000 1884746db8290f2b31b7f8451b1cf4b3 0 /usr/include/X11/extensions/Xrandr.h +6909 7769087 1766144024000000000 401965d00acc575149fba334f8bc506d 0 /usr/include/X11/extensions/randr.h +33826 96756 1734163523000000000 cd6d26a1a49037b6952f6ad6add5241b 0 /usr/include/X11/extensions/Xrender.h +21355 11320737 1770539241000000000 52ce1ad0b2c8b33c883e4de9cf2e58fc 0 /usr/include/X11/Xutil.h +6933 7769092 1766144024000000000 f3454f10c8ec914bc2cacc67ae344c58 0 /usr/include/X11/extensions/render.h +2401 7769024 1766144024000000000 8c25483e69b3966a7bf02ad71233d30b 0 /usr/include/X11/Xdefs.h +30994 11320728 1770539241000000000 658cd959aab5d6441ea7ca46bbfcb740 0 /usr/include/X11/XKBlib.h +19697 7769051 1766144024000000000 1231e8955febccf3c025770c66a93818 0 /usr/include/X11/extensions/XKBstr.h +28212 7769048 1766144024000000000 6a2dd9db6376855e6a13ac1dc2254091 0 /usr/include/X11/extensions/XKB.h +1964 11321922 1769438631000000000 8307bc8fd193fbd4b22c24a07b9e56ad 0 /usr/include/X11/extensions/Xinerama.h +21969 11321939 1725514872000000000 f898f73ab9f0b0455f75ad7e86f933d4 0 /usr/include/X11/extensions/XInput2.h +11151 7769045 1766144024000000000 f4e9b097c0ff2c41507c68b4960a37cb 0 /usr/include/X11/extensions/XI2.h +1928 8741105 1769438528000000000 4e4a900ecc48c6c5eaaadb164d67df47 0 /usr/include/X11/extensions/Xge.h +7750 4242540 1756837749000000000 0d98a55dff8c00f367e9aece0d0a1143 0 /usr/include/X11/extensions/Xfixes.h +5924 7769123 1766144024000000000 b5e9bd0eec3d3c1748a593e505171a71 0 /usr/include/X11/extensions/xfixeswire.h +4132 8741110 1769438528000000000 8aaad0750a17168ab35987a0fd39ecf0 0 /usr/include/X11/extensions/shape.h +1878 7769098 1766144024000000000 104206d1aae79c53870ed605be13e54f 0 /usr/include/X11/extensions/shapeconst.h +1288 15592220 1777923927267426501 e581c6e4cdd807e79c0a665fc1bb619f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/xkb_unicode.h +1292 15592192 1777923927264426507 c453ea96e91669ea925c8bfb93fe5bb7 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_poll.h +22 11441045 1770636718000000000 0ea58fcbabea8c4434197b25c0da0032 0 /usr/include/poll.h +3030 11441112 1770636718000000000 fdfc712b78cbcaa0020d4464fb281b64 0 /usr/include/sys/poll.h +2076 11440791 1770636718000000000 d4de1743efaa71a7637fb37b349b20f7 0 /usr/include/bits/poll.h +1424 15592183 1777923927263426509 9ae4151868a02c1a8ea9749672383fb1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/null_joystick.h +2322 15592176 1777923927262426511 a5affdc2a0143346be41f93f566b6938 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/linux_joystick.h +16913 8943925 1770625897000000000 19cc0a8c96115bd0b4fbe906dc1f6915 0 /usr/include/linux/input.h +9164 11441146 1770636718000000000 d2e1b3053beaf053af8a55c6a804fde1 0 /usr/include/sys/time.h +2032 11441098 1770636718000000000 cbe6601caeaa9849483d92383653843e 0 /usr/include/sys/ioctl.h +1005 11440759 1770636718000000000 38935023d2f5efc233bbd63192a23f93 0 /usr/include/bits/ioctls.h +32 8943591 1770625897000000000 1014a0ae33d0bed260382fbd3c912982 0 /usr/include/asm/ioctls.h +3987 8943548 1770625897000000000 d4ce71e9aa1f00a5b67c8b21b6a30d5b 0 /usr/include/asm-generic/ioctls.h +163 8943932 1770625897000000000 9a139ff78a7a978a13a83c0722fc021d 0 /usr/include/linux/ioctl.h +31 8943590 1770625897000000000 5f11f2dd8e479e58c3cf546e72403770 0 /usr/include/asm/ioctl.h +3518 8943547 1770625897000000000 4b7aa229557b073687359ca327709a32 0 /usr/include/asm-generic/ioctl.h +6846 8944315 1770625897000000000 d2b055f7283492c05492a5924f94aec4 0 /usr/include/linux/sockios.h +321 8943578 1770625897000000000 426fd8fd87f0a7222c2d8dc0b1c11a1e 0 /usr/include/asm/bitsperlong.h +1092 8943539 1770625897000000000 ea09d2bd626e1051f84d4ecee37ba039 0 /usr/include/asm-generic/bitsperlong.h +33 8943625 1770625897000000000 ddabb13f9fd87bf61e5f15f7a99b4729 0 /usr/include/asm/sockios.h +447 8943565 1770625897000000000 e503e15c8b0357f68274467ba5f06da4 0 /usr/include/asm-generic/sockios.h +2089 11440758 1770636718000000000 93897a02d50af887190f5248a717605e 0 /usr/include/bits/ioctl-types.h +3568 11441152 1770636718000000000 7fd74c28a21229e87ba5588cee27bd8c 0 /usr/include/sys/ttydefaults.h +1829 8944384 1770625897000000000 64ed48c0a52d7d50d7685f6332d61a80 0 /usr/include/linux/types.h +31 8943632 1770625897000000000 748039e47be584104c75dc853bfee6d8 0 /usr/include/asm/types.h +233 8943572 1770625897000000000 ff35ee9081c54a4556677db7b6ac43bd 0 /usr/include/asm-generic/types.h +864 8943546 1770625897000000000 de8f38f0cdc81bf3a5b301889f3dc586 0 /usr/include/asm-generic/int-ll64.h +1098 8944239 1770625897000000000 d50b3f49c69b44a5ecd1f232af677d5e 0 /usr/include/linux/posix_types.h +2135 8944323 1770625897000000000 7f1dcecb733611ba8bc38c8fa69c11bb 0 /usr/include/linux/stddef.h +224 8943606 1770625897000000000 d200bb7a30c7371a4580f935befe5542 0 /usr/include/asm/posix_types.h +609 8943608 1770625897000000000 45284a1e84848c31de23d3bd515534ee 0 /usr/include/asm/posix_types_64.h +2420 8943556 1770625897000000000 27c6e0a2b3849c0a9a5f71c86e17deb5 0 /usr/include/asm-generic/posix_types.h +31350 8943924 1770625897000000000 7eb002eb71a3e9a208ffc627561eda0b 0 /usr/include/linux/input-event-codes.h +937 8943972 1770625897000000000 65da8eafce628e0f5da011204e471ee0 0 /usr/include/linux/limits.h +25940 11441056 1770636718000000000 d3d9037b10d420aa0b919ad6d97bdab1 0 /usr/include/regex.h +1674 15592194 1777923927264426507 4c75518582750b9acebe3f524a3ea420 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_thread.h +48570 11441052 1770636718000000000 df73001c3d08af59a57b790c20f13f2a 0 /usr/include/pthread.h +5043 11441060 1770636718000000000 e6a51b852746c12c94ed682ec128431b 0 /usr/include/sched.h +5952 11440808 1770636718000000000 0926186d78c26fdbfea09ab846c93da9 0 /usr/include/bits/sched.h +4558 8944287 1770625897000000000 13cfeea4f632939bde4c2db64ec930ff 0 /usr/include/linux/sched/types.h +1073 11440918 1770636718000000000 fd5bfcedcccd0699759e0e9b4b5f31d2 0 /usr/include/bits/types/struct_sched_param.h +4516 11440723 1770636718000000000 eab9f52a0722cf3bd47401680264c9bd 0 /usr/include/bits/cpu-set.h +15326 11441174 1770636718000000000 dd0cebc61fc90f380c881a1cbd85230a 0 /usr/include/time.h +3331 11440880 1770636718000000000 d088285f55f90486f8680c7de68e427d 0 /usr/include/bits/time.h +6203 11440884 1770636718000000000 ccfa5c0039c1ddbdb09c6db5d1922cc3 0 /usr/include/bits/timex.h +760 11440931 1770636718000000000 3cf515d0336ee94d22cc413b45febc49 0 /usr/include/bits/types/struct_tm.h +288 11440912 1770636718000000000 2de06c14c40bd39deaf2f372dace4ac7 0 /usr/include/bits/types/struct_itimerspec.h +983 11440899 1770636718000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11440890 1770636718000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +1287 11440814 1770636718000000000 81b3c862d757d31fa9585485df82c1f6 0 /usr/include/bits/setjmp.h +1467 11440910 1770636718000000000 c65b4aa95fccac40bd98fee3ba150e60 0 /usr/include/bits/types/struct___jmp_buf_tag.h +1214 11440801 1770636718000000000 2fe7b4205802733911a5efa9b71bb5e6 0 /usr/include/bits/pthread_stack_min-dynamic.h +1489 15592196 1777923927264426507 d9c9c16faccc333851fa1d1a1a9c0e0f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_time.h +21201 15592157 1777923927261426513 368cd78bfbe5e29e658aa2a5326f9063 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3native.h +21266 11441078 1770636718000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11441079 1770636718000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +42963 11441077 1770636718000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +1697 11440945 1770636718000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11440946 1770636718000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +1203 11440706 1770636718000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11440901 1770636718000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11440853 1770636718000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +6841 11440716 1770636718000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +6332 15592188 1777923927264426507 e46b39fefa824d3bef7915a22a3cbeab 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/platform.c +25760 15592168 1777923927262426511 91513c3fe4d6179408927b6f25a20e31 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/context.c +3794 15568174 1777922721699272917 42f44f0344ca976c19820ae587ff2c10 1 include/limits.h +5839 11440997 1770636718000000000 93606ee9e7d5800ac5b8e3efedd3f157 0 /usr/include/limits.h +5198 11440793 1770636718000000000 a6dd17f359e45199ea5666f65b1113a6 0 /usr/include/bits/posix1_lim.h +3175 11440768 1770636718000000000 b08b1c7bc1b5a70132a5b8b175b8c0db 0 /usr/include/bits/local_lim.h +2867 11440794 1770636718000000000 7d8aa86701e9a380845c5cd8a669e984 0 /usr/include/bits/posix2_lim.h +3858 11440953 1770636718000000000 6056c22530b9b6e43d3215eee277a553 0 /usr/include/bits/xopen_lim.h +1385 11440938 1770636718000000000 59219f4f906088fd1473df647db44849 0 /usr/include/bits/uio_lim.h +15194 15592179 1777923927263426509 cc2653c900eea5854d3118df97d564cc 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/monitor.c +53032 11441001 1770636718000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +5402 11440771 1770636718000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11440765 1770636718000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +1215 11440745 1770636718000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11440747 1770636718000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11440746 1770636718000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11440773 1770636718000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11440772 1770636718000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11440775 1770636718000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11440774 1770636718000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11440763 1770636718000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +6268 15568152 1777922721698272920 f23d0597dbe24fbef0b9db0a6a912bdb 1 include/float.h +35148 15592210 1777923927265426505 371ef2deaaf656211c21bd031730bc45 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/window.c +41395 15592173 1777923927262426511 fd2bdc39d9a0f3e9cbdf4151a429af0b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/input.c +504825 15592177 1777923927263426509 e792314d005187ea839d8a118bf5a826 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/mappings.h +11947 15592197 1777923927264426507 a6026f9e8a003c782bd514b578ed47fb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/vulkan.c +1816 15592190 1777923927264426507 becad53c5bcd77daf7f13b36a669ff80 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_module.c +8794 11440959 1770636718000000000 1e941a0fcec84e68e593320606a258d5 0 /usr/include/dlfcn.h +2521 11440727 1770636718000000000 ce423e8702be28530185e4b09b199fdf 0 /usr/include/bits/dlfcn.h +1119 11440726 1770636718000000000 212bcf73af743c3898fdc9ef533a0cbf 0 /usr/include/bits/dl_find_object.h +3245 15592193 1777923927264426507 6da2432577062b037d05bf9685421152 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_thread.c +2206 15592195 1777923927264426507 f4c2594a47b4f565719a8a5a9f0a444c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_time.c +3044 15592191 1777923927264426507 34fbca07f16ff7c4f5d37b58374af726 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_poll.c +1679 11440964 1770636718000000000 abb7aa3ce3560985cdcc5222002abe0a 0 /usr/include/errno.h +1426 11440734 1770636718000000000 f5901b3b5db0a666bc76fe7ac755756b 0 /usr/include/bits/errno.h +23 8943817 1770625897000000000 0e9514526df5411989c0921d62c34bb0 0 /usr/include/linux/errno.h +31 8943586 1770625897000000000 303204c8e8dd5d0b26a8bbfede43c812 0 /usr/include/asm/errno.h +5648 8943542 1770625897000000000 8becdc7faaf464f4f03c90038b9730e0 0 /usr/include/asm-generic/errno.h +1612 8943541 1770625897000000000 9e53730016da2684ae9a8bb2284166de 0 /usr/include/asm-generic/errno-base.h +894 11440897 1770636718000000000 21d9a2571870c420b53485fe487743c5 0 /usr/include/bits/types/error_t.h +12404 15592175 1777923927262426511 ebe2a4724621dc831b6c06e12f74d4d5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/linux_joystick.c +13793 11441137 1770636718000000000 9f12c6bf198df3a88c2d747996baf030 0 /usr/include/sys/stat.h +2231 11440839 1770636718000000000 eeced79f6a58db284452746e269ed387 0 /usr/include/bits/stat.h +6210 11440860 1770636718000000000 2fe01a59de528f1892df1bc5eef7c7cc 0 /usr/include/bits/struct_stat.h +1400 11440843 1770636718000000000 2002a64c42584c7d184facbe3d81a350 0 /usr/include/bits/statx.h +7838 8944322 1770625897000000000 c0813c1096a17ee5a243bf75dcb7977a 0 /usr/include/linux/stat.h +2409 11440842 1770636718000000000 1ca18c39930458d2b106898c1f1ed517 0 /usr/include/bits/statx-generic.h +1202 11440927 1770636718000000000 adf1f98ff50dc6da3f9c81c1f7718940 0 /usr/include/bits/types/struct_statx_timestamp.h +2248 11440926 1770636718000000000 13e0688c779dbc994826255da64ed106 0 /usr/include/bits/types/struct_statx.h +3901 11441096 1770636718000000000 51573e40baf39611dae19b6b79da6b5a 0 /usr/include/sys/inotify.h +1080 11440757 1770636718000000000 23db2031318a86cc91c8de94ba8271de 0 /usr/include/bits/inotify.h +11458 11440967 1770636718000000000 6761c01cab1e7a637ff70b712787863d 0 /usr/include/fcntl.h +2246 11440740 1770636718000000000 230f6d44354f98fab2643bb2fe61a31c 0 /usr/include/bits/fcntl.h +15826 11440739 1770636718000000000 a89c09049a7837aa75452e239a5650fd 0 /usr/include/bits/fcntl-linux.h +1066 11440911 1770636718000000000 930adb19f5f9cbc3933b958f4a1e5ffa 0 /usr/include/bits/types/struct_iovec.h +4477 8943829 1770625897000000000 cb9419cc89a7af265a184c1f6f002f00 0 /usr/include/linux/falloc.h +1450 8944213 1770625897000000000 dfc953efad59381f85cedbcaf15d1f22 0 /usr/include/linux/openat2.h +2041 11440787 1770636718000000000 7fb288a7769cdc7b7a64bda1f15cccd2 0 /usr/include/bits/openat2.h +12617 11440958 1770636718000000000 f18eaf57a7b514f3b577f9f5a6bc2d33 0 /usr/include/dirent.h +1771 11440724 1770636718000000000 23e0e14a4e8b16a68e0bc2941bc51c70 0 /usr/include/bits/dirent.h +1275 11440725 1770636718000000000 05d55b8f8aff261c558e2bf919c00c3e 0 /usr/include/bits/dirent_ext.h +22943 15592219 1777923927267426501 61daf1865cea794f6fe989a933855d52 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/xkb_unicode.c +29639 15592169 1777923927262426511 1a0561496727613edebd464a7417f6c3 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/egl_context.c +11935 15592187 1777923927264426507 4c3e6494b0bcc0aee47c28a18bda9100 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/osmesa_context.c +70569 15592215 1777923927266426503 95309a7537992a74bb2bc4bf449110d0 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_init.c +7675 11440999 1770636718000000000 f38e3af658cf4e4d245a435a9a10f0a0 0 /usr/include/locale.h +1368 11440769 1770636718000000000 a15e215b176aca549a08eeec063be072 0 /usr/include/bits/locale.h +20136 15592216 1777923927266426503 fb57e4d2291d8c29f447b0cda750a942 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_monitor.c +106419 15592218 1777923927267426501 71a3c2a523df63f5cb929d61fe0824c3 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_window.c +3118 11320738 1770539241000000000 49c18fff52345f9fbca72361b14cde5c 0 /usr/include/X11/cursorfont.h +5236 7769027 1766144024000000000 d1fbdb8a1a35d2391ee2c34805ef3f1e 0 /usr/include/X11/Xmd.h +23690 15592171 1777923927262426511 38704d9b41375b7557c5fe54e0e4eb99 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/glx_context.c diff --git a/.zig-cache/h/c5a18852cd7e58d56af1208d2a82c15e.txt b/.zig-cache/h/c5a18852cd7e58d56af1208d2a82c15e.txt new file mode 100644 index 0000000..cb50ed5 --- /dev/null +++ b/.zig-cache/h/c5a18852cd7e58d56af1208d2a82c15e.txt @@ -0,0 +1,91 @@ +0 +117970 15592271 1777923927291426454 31672e71fc2d475bd7ec65a7f43b43cb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rtext.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1516 11023891 1776766428000000000 046e6949e60c5229cc0f25afa40a0c7d 0 /usr/include/bits/stdlib-bsearch.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +34258 11024114 1776766428000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +381 11023928 1776766428000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11023930 1776766428000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11023927 1776766428000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11023926 1776766428000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11023925 1776766428000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11023948 1776766428000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11023935 1776766428000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11023890 1776766428000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +5599 11023887 1776766428000000000 e430a87e8deadc82d69f0f011fb6ea3e 0 /usr/include/bits/stdio.h +21266 11024117 1776766428000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11024118 1776766428000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +10969 11023996 1776766428000000000 dd17390845739df8331656ac5a17ef8e 0 /usr/include/ctype.h +20199 15592238 1777923927282426471 f594338f23ce56591d8032c04431a84a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_rect_pack.h +6841 11023755 1776766428000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +199176 15592239 1777923927282426471 db1ca3cdcf9606efbbb14aa8bbde39c4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_truetype.h diff --git a/.zig-cache/h/d1dbcd3a0a956f1196191f148f05a5c8.txt b/.zig-cache/h/d1dbcd3a0a956f1196191f148f05a5c8.txt new file mode 100644 index 0000000..89b2066 --- /dev/null +++ b/.zig-cache/h/d1dbcd3a0a956f1196191f148f05a5c8.txt @@ -0,0 +1,95 @@ +0 +179546 15592265 1777923927288426459 e6c02b151e39c59246cdfe8aeaaa21f4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rcore.c +94278 15592270 1777923927290426456 148e15819214db74e0525ec276acecdd 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rshapes.c +226085 15592272 1777923927291426454 57703b4cb9d20c85f2494106b300ce4c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rtextures.c +117970 15592271 1777923927291426454 31672e71fc2d475bd7ec65a7f43b43cb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rtext.c +338872 15592269 1777923927290426456 76fc55680b7dd750a09c7c8d4885d438 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rmodels.c +113824 15592256 1777923927286426463 eaa3ac47a6f370a3247b2e595e877cae 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raudio.c +50 15596151 1777925798684431311 fd3888aa7ca9778df50390896cce6318 2 o/da8bf749420ef1065612c05b8ed536b3/raygui.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +351 15608422 1738927222000000000 da08a2d3368091efc0a7185be5672029 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdarg.h +12030 15608436 1738927222000000000 26ed05f1c0047de7dce6035be193f801 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/alltypes.h +167 15607052 1738927222000000000 e9da61c73c730980972a824176188baf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +11491 15608596 1738927222000000000 efae42386740518b1f626a76459cd25d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/math.h +1123 15608335 1738927222000000000 05a6a8793bf10dec3a28bc91a5d11897 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/features.h +1060 15607076 1738927222000000000 799a852adda1ab9a480998124e03ba5d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/float.h +479 15608425 1738927222000000000 347897448ff1fea5bfa9ff900161e535 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/float.h +4903 15608525 1738927222000000000 ed1c72b1bae7a8f66cf26387f5a3450d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdlib.h +219 15608608 1738927222000000000 a3c11fe0f49806a9c8748497c3a5d08c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/alloca.h +6097 15608386 1738927222000000000 bfab932e271831504f4ddaa58ab246c9 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdio.h +67218 15608547 1738927221000000000 1fa71b76d45cf8fef0abb1dae850f9f2 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/wasi/api.h +575 15608576 1738927222000000000 39c69d5b8584a46c3a3c1a1ed7ea7644 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stddef.h +2578 15608527 1738927222000000000 0a5bb2760329226e49320fbf5ceb1abe 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdint.h +815 15608447 1738927222000000000 cd851a9784f94f6596041d1e6a402eb1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/stdint.h +3041 15608333 1738927222000000000 674d66a327c388875d7daa272ead7369 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/string.h +964 15607137 1738927222000000000 b380eb8513f60d9c20a2673704aa7687 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/strings.h +1787 15608457 1738927222000000000 1f72f697f2a98f6405ff841e95c980f5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/ctype.h +20199 15592238 1777923927282426471 f594338f23ce56591d8032c04431a84a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_rect_pack.h +428 15608607 1738927222000000000 31f38b261e42c4f6912cc4954954c56a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/assert.h +199176 15592239 1777923927282426471 db1ca3cdcf9606efbbb14aa8bbde39c4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_truetype.h +4438 15608577 1738927222000000000 921be7c0960cfe9014899f23d668a85b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/time.h +43996 15608530 1738927221000000000 270d44b09e74b6d74250d94bb489167b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/GLES2/gl2.h +1160 15608531 1738927221000000000 45931b5ece6f587fbc7cf553b11ccf06 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/GLES2/gl2platform.h +10279 15608579 1738927221000000000 6c8fa10137b15e62a657a94d167f4d1d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/KHR/khrplatform.h +233400 15608532 1738927221000000000 6d3905b5e9c26a6459e357840cd0a0b3 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/GLES2/gl2ext.h +90849 15592263 1777923927287426462 db41cf17388962b34436c4fde7782f23 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raymath.h +22533 15592266 1777923927288426459 cbeefe4aa2ae48eebcd037e4f86c02e6 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rgestures.h +22184 15592264 1777923927287426462 cd673acb0eee1d11118f9c543c1b96ed 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rcamera.h +21703 15592233 1777923927279426477 a147737b6c68b2b89f993a9fe8b5e03b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/sinfl.h +28109 15592232 1777923927279426477 9a39a8073b251d465d23f4f98d4d0e0b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/sdefl.h +4412 15608610 1738927222000000000 f4ca41fb1112c994ce5deadd7009f1fa 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/limits.h +24 15608455 1738927222000000000 773e1f0853282ba140053113f445be6d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/limits.h +11631 15592231 1777923927279426477 e20f072c356800ba394b5b82e64a3a40 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/rprand.h +4281 15608360 1738927222000000000 3eb29d21d878f7d2656bf2612f53b514 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/sys/stat.h +521 15608437 1738927222000000000 a8f7b39b37e5a109cb3086f062ecd235 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/stat.h +1711 15608621 1738927222000000000 99fc83cb96fda4ea6f30d0b248ba4a3b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/dirent.h +201 15608456 1738927222000000000 37d8c95ed51417363955fb7162fcae01 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/dirent.h +14244 15607068 1738927222000000000 9594526477f7ad63c9dbcd11af025579 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/unistd.h +68 15608452 1738927222000000000 f38b9122c92bc19006648b5f6d7a1cf5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/posix.h +82940 15592254 1777923927286426463 bd1e54e2f6460bfe0287a5849a852c4f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/platforms/rcore_web.c +241826 15592156 1777923927261426513 86501dc510331da26275322e654ec46a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3.h +9671 15607087 1738927221000000000 86e49b6fd256e45dc26b273265429f76 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/emscripten.h +14111 15607110 1738927221000000000 4898e19b79e81ea8a6b998995c15b64a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/em_asm.h +1863 15607100 1738927221000000000 dc53755527835a1a7ca61d8e0d281c28 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/em_macros.h +1893 15607111 1738927221000000000 d7e1c28ee3a51c27c4f2484cb14207bd 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/em_types.h +3372 15607108 1738927221000000000 6710bc7695c18f1e1de93cfef4091024 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/em_js.h +7460 15607092 1738927221000000000 0ddd795c97234b43279ef844ee7568f6 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/promise.h +1928 15607086 1738927221000000000 f60b00490148126ecfa90f80e68f1214 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/wget.h +146 15607084 1738947787000000000 9d0ea595ec9580ee0d304fe782543940 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/version.h +30580 15607085 1738927221000000000 dd661b267ed88cacbe7b9d8e694139c7 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/html5.h +9367 15607082 1738927222000000000 47f47346759cf646e990bca53338b254 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/pthread.h +4399 15608598 1738927222000000000 51a1e0abfdcc1d8d6afc363e76c7f970 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/sched.h +1261 15607098 1738927221000000000 f6c322fc54983382533e485bb63478e8 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/eventloop.h +3451 15607093 1738927221000000000 44fda93b7dcbd61b867d19404fca2935 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/console.h +11097 15607114 1738927221000000000 063b9ecd69660c474e7c791601fe3cfd 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/html5_webgl.h +2254 15608377 1738927222000000000 8030fd98d352b473522eef8d986bd45c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/sys/time.h +1332 15608378 1738927222000000000 18432538c3ab3277a7c055dfd1846050 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/sys/select.h +283010 15592234 1777923927280426475 da0de4b77a864a92ca0a84752ae64a25 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image.h +76007 15592230 1777923927279426477 a736a10590b842a754f3c9d9bba6437a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/rltexgpu.h +18326 15592228 1777923927278426479 0a1701580c647f7b4f8a424d04ac746d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoi.h +71221 15592236 1777923927282426471 ca3d5f23a730342b4f4dd18653e45db1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image_write.h +17918 15592237 1777923927282426471 2bb87817ffe9d6d6d3187db2bffe388c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_perlin.h +457839 15592235 1777923927281426473 d73e04ebd94264210f8f82aac82d1da4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image_resize2.h +45680 15592241 1777923927283426469 eb116170525d41104424990ac7adcf2f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/tinyobj_loader_c.h +369 15607077 1738927222000000000 e91bc6541baff2463c8f1a0a446f542c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/errno.h +5443 15608426 1738927222000000000 3e89460e3ee0d588e32f488181b6737e 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/errno.h +205754 15592105 1777923927253426528 5d2f236b6f6ef5d9a1b295fd3d1846d5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/cgltf.h +19659 15592242 1777923927284426468 6f6765d6e719e243ad70cc22023392da 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/vox_loader.h +306683 15592223 1777923927268426499 15241acfe0a45badbe1236db00c6ea81 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/m3d.h +72865 15592225 1777923927278426479 9dc0644bac4164f220adfabe1352af5b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/par_shapes.h +293735 15590661 1777923923667433573 7cfda270441ca39c49b2e81410b1effb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/src/raygui.h +4107565 15592224 1777923927276426483 40a300c8571017a8213fcc665a614206 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/miniaudio.h +6903 15608330 1738927222000000000 a1194fa3339f5b787f60312bce9bd4dc 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/wchar.h +1886 15608358 1738927222000000000 0b9328407fe1bf07b85e55fbe8add505 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/sys/types.h +1958 15607254 1738927222000000000 a11e4e35af678f92d4840a83265bd45d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/endian.h +10320 15607105 1738927221000000000 f26781c6e6a6351f05c39c1e287b8dff 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/emscripten/webaudio.h +20 15608337 1738927222000000000 a6b760d6a1c78fc0182a68f7da06f36f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/memory.h +364560 15592110 1777923927256426522 aa3f7a4e5ed2aea4a1ec6c90429905d4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/dr_wav.h +192790 15592240 1777923927283426469 890c281f1c8cc1ed210397614a0eb43c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_vorbis.c +206600 15592109 1777923927255426525 8a111acae971c169c181fb95f0bbb828 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/dr_mp3.h +23845 15592226 1777923927278426479 f136d45fb944c980c3798c30d5d3d443 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoa.h +10241 15592227 1777923927278426479 737b9fb56af4b423417c98b7fd85a98b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoaplay.c +102215 15592222 1777923927267426501 87feda682bd5df29026e59540130ea22 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/jar_xm.h +51996 15592221 1777923927267426501 7826726113566a1ac41845859112fa61 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/jar_mod.h diff --git a/.zig-cache/h/dbfc09ab499d47b62a2ac853d01e9a45.txt b/.zig-cache/h/dbfc09ab499d47b62a2ac853d01e9a45.txt new file mode 100644 index 0000000..e69de29 diff --git a/.zig-cache/h/e15aa9a90ea08adb38f9b47006cb2409.txt b/.zig-cache/h/e15aa9a90ea08adb38f9b47006cb2409.txt new file mode 100644 index 0000000..adc8423 --- /dev/null +++ b/.zig-cache/h/e15aa9a90ea08adb38f9b47006cb2409.txt @@ -0,0 +1,113 @@ +0 +226085 15592272 1777923927291426454 57703b4cb9d20c85f2494106b300ce4c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rtextures.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +21266 11024117 1776766428000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11024118 1776766428000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +34258 11024114 1776766428000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +381 11023928 1776766428000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11023930 1776766428000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11023927 1776766428000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11023926 1776766428000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11023925 1776766428000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11023948 1776766428000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11023935 1776766428000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11023890 1776766428000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +283010 15592234 1777923927280426475 da0de4b77a864a92ca0a84752ae64a25 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image.h +417 15568047 1777922721690272950 d2edf43390585163b0f70c6bd1d7e3b7 1 include/__stddef_header_macro.h +717 15568052 1777922721690272950 81288588f2bdd7ac4f213fa113429ef2 1 include/__stddef_ptrdiff_t.h +708 15568051 1777922721690272950 04b70454bf7cdd0c492cfaf134f95be7 1 include/__stddef_offsetof.h +3794 15568174 1777922721699272917 42f44f0344ca976c19820ae587ff2c10 1 include/limits.h +5839 11024036 1776766428000000000 93606ee9e7d5800ac5b8e3efedd3f157 0 /usr/include/limits.h +5198 11023832 1776766428000000000 a6dd17f359e45199ea5666f65b1113a6 0 /usr/include/bits/posix1_lim.h +3175 11023807 1776766428000000000 b08b1c7bc1b5a70132a5b8b175b8c0db 0 /usr/include/bits/local_lim.h +937 8943972 1770625897000000000 65da8eafce628e0f5da011204e471ee0 0 /usr/include/linux/limits.h +1214 11023840 1776766428000000000 2fe7b4205802733911a5efa9b71bb5e6 0 /usr/include/bits/pthread_stack_min-dynamic.h +2867 11023833 1776766428000000000 7d8aa86701e9a380845c5cd8a669e984 0 /usr/include/bits/posix2_lim.h +3858 11023992 1776766428000000000 6056c22530b9b6e43d3215eee277a553 0 /usr/include/bits/xopen_lim.h +1385 11023977 1776766428000000000 59219f4f906088fd1473df647db44849 0 /usr/include/bits/uio_lim.h +6841 11023755 1776766428000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +27519 15568253 1777922721701272909 1bf965d23c79a082ac103b8d4944724e 1 include/stdint.h +8268 11024113 1776766428000000000 07868a6486476f79d1af8befa09ff966 0 /usr/include/stdint.h +1906 11023987 1776766428000000000 eb31012558f3028fc2c3c0def47ccc8a 0 /usr/include/bits/wchar.h +1049 11023885 1776766428000000000 df8b58b124e95d233ec646186fc72d07 0 /usr/include/bits/stdint-uintn.h +1305 11023884 1776766428000000000 e13a68eb8203cd6be160c31f99d931f7 0 /usr/include/bits/stdint-least.h +201616 15568149 1777922721698272920 c59721a008a14bf4245225c8d6dd981f 1 include/emmintrin.h +120340 15568276 1777922721702272906 8e35d00e3ce60714ef2dd6312b645f5d 1 include/xmmintrin.h +60004 15568188 1777922721700272913 9d96163416d339553543c8056304615f 1 include/mmintrin.h +1929 15568187 1777922721700272913 b6b5caf8039b8eeb1a472434df3e6037 1 include/mm_malloc.h +76007 15592230 1777923927279426477 a736a10590b842a754f3c9d9bba6437a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/rltexgpu.h +18326 15592228 1777923927278426479 0a1701580c647f7b4f8a424d04ac746d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoi.h +71221 15592236 1777923927282426471 ca3d5f23a730342b4f4dd18653e45db1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image_write.h +17918 15592237 1777923927282426471 2bb87817ffe9d6d6d3187db2bffe388c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_perlin.h +457839 15592235 1777923927281426473 d73e04ebd94264210f8f82aac82d1da4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image_resize2.h diff --git a/.zig-cache/h/e463740e28b4d5b8e17758265e9a5769.txt b/.zig-cache/h/e463740e28b4d5b8e17758265e9a5769.txt new file mode 100644 index 0000000..5489728 --- /dev/null +++ b/.zig-cache/h/e463740e28b4d5b8e17758265e9a5769.txt @@ -0,0 +1,292 @@ +0 +113824 15592256 1777923927286426463 eaa3ac47a6f370a3247b2e595e877cae 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raudio.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +4107565 15592224 1777923927276426483 40a300c8571017a8213fcc665a614206 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/miniaudio.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +417 15568047 1777922721690272950 d2edf43390585163b0f70c6bd1d7e3b7 1 include/__stddef_header_macro.h +717 15568052 1777922721690272950 81288588f2bdd7ac4f213fa113429ef2 1 include/__stddef_ptrdiff_t.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +708 15568051 1777922721690272950 04b70454bf7cdd0c492cfaf134f95be7 1 include/__stddef_offsetof.h +48570 11024091 1776766428000000000 df73001c3d08af59a57b790c20f13f2a 0 /usr/include/pthread.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5043 11024099 1776766428000000000 e6a51b852746c12c94ed682ec128431b 0 /usr/include/sched.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +5952 11023847 1776766428000000000 0926186d78c26fdbfea09ab846c93da9 0 /usr/include/bits/sched.h +4558 8944287 1770625897000000000 13cfeea4f632939bde4c2db64ec930ff 0 /usr/include/linux/sched/types.h +1829 8944384 1770625897000000000 64ed48c0a52d7d50d7685f6332d61a80 0 /usr/include/linux/types.h +31 8943632 1770625897000000000 748039e47be584104c75dc853bfee6d8 0 /usr/include/asm/types.h +233 8943572 1770625897000000000 ff35ee9081c54a4556677db7b6ac43bd 0 /usr/include/asm-generic/types.h +864 8943546 1770625897000000000 de8f38f0cdc81bf3a5b301889f3dc586 0 /usr/include/asm-generic/int-ll64.h +321 8943578 1770625897000000000 426fd8fd87f0a7222c2d8dc0b1c11a1e 0 /usr/include/asm/bitsperlong.h +1092 8943539 1770625897000000000 ea09d2bd626e1051f84d4ecee37ba039 0 /usr/include/asm-generic/bitsperlong.h +1098 8944239 1770625897000000000 d50b3f49c69b44a5ecd1f232af677d5e 0 /usr/include/linux/posix_types.h +2135 8944323 1770625897000000000 7f1dcecb733611ba8bc38c8fa69c11bb 0 /usr/include/linux/stddef.h +224 8943606 1770625897000000000 d200bb7a30c7371a4580f935befe5542 0 /usr/include/asm/posix_types.h +609 8943608 1770625897000000000 45284a1e84848c31de23d3bd515534ee 0 /usr/include/asm/posix_types_64.h +2420 8943556 1770625897000000000 27c6e0a2b3849c0a9a5f71c86e17deb5 0 /usr/include/asm-generic/posix_types.h +1073 11023957 1776766428000000000 fd5bfcedcccd0699759e0e9b4b5f31d2 0 /usr/include/bits/types/struct_sched_param.h +4516 11023762 1776766428000000000 eab9f52a0722cf3bd47401680264c9bd 0 /usr/include/bits/cpu-set.h +15326 11024213 1776766428000000000 dd0cebc61fc90f380c881a1cbd85230a 0 /usr/include/time.h +3331 11023919 1776766428000000000 d088285f55f90486f8680c7de68e427d 0 /usr/include/bits/time.h +6203 11023923 1776766428000000000 ccfa5c0039c1ddbdb09c6db5d1922cc3 0 /usr/include/bits/timex.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +760 11023970 1776766428000000000 3cf515d0336ee94d22cc413b45febc49 0 /usr/include/bits/types/struct_tm.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +288 11023951 1776766428000000000 2de06c14c40bd39deaf2f372dace4ac7 0 /usr/include/bits/types/struct_itimerspec.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1287 11023853 1776766428000000000 81b3c862d757d31fa9585485df82c1f6 0 /usr/include/bits/setjmp.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +1467 11023949 1776766428000000000 c65b4aa95fccac40bd98fee3ba150e60 0 /usr/include/bits/types/struct___jmp_buf_tag.h +1214 11023840 1776766428000000000 2fe7b4205802733911a5efa9b71bb5e6 0 /usr/include/bits/pthread_stack_min-dynamic.h +6841 11023755 1776766428000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +3794 15568174 1777922721699272917 42f44f0344ca976c19820ae587ff2c10 1 include/limits.h +5839 11024036 1776766428000000000 93606ee9e7d5800ac5b8e3efedd3f157 0 /usr/include/limits.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +5198 11023832 1776766428000000000 a6dd17f359e45199ea5666f65b1113a6 0 /usr/include/bits/posix1_lim.h +3175 11023807 1776766428000000000 b08b1c7bc1b5a70132a5b8b175b8c0db 0 /usr/include/bits/local_lim.h +937 8943972 1770625897000000000 65da8eafce628e0f5da011204e471ee0 0 /usr/include/linux/limits.h +2867 11023833 1776766428000000000 7d8aa86701e9a380845c5cd8a669e984 0 /usr/include/bits/posix2_lim.h +3858 11023992 1776766428000000000 6056c22530b9b6e43d3215eee277a553 0 /usr/include/bits/xopen_lim.h +1385 11023977 1776766428000000000 59219f4f906088fd1473df647db44849 0 /usr/include/bits/uio_lim.h +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1516 11023891 1776766428000000000 046e6949e60c5229cc0f25afa40a0c7d 0 /usr/include/bits/stdlib-bsearch.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +21266 11024117 1776766428000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11024118 1776766428000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +34258 11024114 1776766428000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +381 11023928 1776766428000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11023930 1776766428000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11023927 1776766428000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11023926 1776766428000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11023925 1776766428000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11023948 1776766428000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11023935 1776766428000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11023890 1776766428000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +5599 11023887 1776766428000000000 e430a87e8deadc82d69f0f011fb6ea3e 0 /usr/include/bits/stdio.h +40129 11024224 1776766428000000000 846d60b8884553e61b200835c9192db4 0 /usr/include/wchar.h +1906 11023987 1776766428000000000 eb31012558f3028fc2c3c0def47ccc8a 0 /usr/include/bits/wchar.h +796 11023973 1776766428000000000 eee748e39eee0c3ba0222f7d0a22f5bb 0 /usr/include/bits/types/wint_t.h +135 11023939 1776766428000000000 88a8626270b2c135f6fae239597f3050 0 /usr/include/bits/types/mbstate_t.h +9164 11024185 1776766428000000000 d2e1b3053beaf053af8a55c6a804fde1 0 /usr/include/sys/time.h +45053 11024218 1776766428000000000 61decd3126c9fca1538df8298cac1894 0 /usr/include/unistd.h +5910 11023834 1776766428000000000 3ab8ab6e5779785e032604f1768b415c 0 /usr/include/bits/posix_opt.h +3791 11023770 1776766428000000000 e918da89dc6f1bc95caac7b9e99e3ccc 0 /usr/include/bits/environments.h +23828 11023761 1776766428000000000 9cf65881ab165e5e8e291a2f7fcd0a71 0 /usr/include/bits/confname.h +1810 11023789 1776766428000000000 996cb3fd9509868b01621c74e4a86ade 0 /usr/include/bits/getopt_posix.h +3667 11023787 1776766428000000000 ac9188a8d7cc4aac4ca3ac108e99f032 0 /usr/include/bits/getopt_core.h +2035 11023980 1776766428000000000 0cb61ab97cf5643355f3236fdfb9904c 0 /usr/include/bits/unistd_ext.h +377 8943771 1770625897000000000 7ed06359dec8788b24849d80d4e70c9a 0 /usr/include/linux/close_range.h +13793 11024176 1776766428000000000 9f12c6bf198df3a88c2d747996baf030 0 /usr/include/sys/stat.h +2231 11023878 1776766428000000000 eeced79f6a58db284452746e269ed387 0 /usr/include/bits/stat.h +6210 11023899 1776766428000000000 2fe01a59de528f1892df1bc5eef7c7cc 0 /usr/include/bits/struct_stat.h +1400 11023882 1776766428000000000 2002a64c42584c7d184facbe3d81a350 0 /usr/include/bits/statx.h +7838 8944322 1770625897000000000 c0813c1096a17ee5a243bf75dcb7977a 0 /usr/include/linux/stat.h +2409 11023881 1776766428000000000 1ca18c39930458d2b106898c1f1ed517 0 /usr/include/bits/statx-generic.h +1202 11023966 1776766428000000000 adf1f98ff50dc6da3f9c81c1f7718940 0 /usr/include/bits/types/struct_statx_timestamp.h +2248 11023965 1776766428000000000 13e0688c779dbc994826255da64ed106 0 /usr/include/bits/types/struct_statx.h +16632 15568165 1777922721699272917 70963188f6adf02d47abf0e69307e3ce 1 include/immintrin.h +1727 15568274 1777922721702272906 02224c13847552071474f4b8a67094f2 1 include/x86gprintrin.h +1395 15568160 1777922721699272917 fb46b2d83a3e08fdd2816a60bb34c1f4 1 include/hresetintrin.h +5079 15568259 1777922721701272909 17e8211de80c4aedcb92d94180a78574 1 include/uintrintrin.h +1572 15568261 1777922721701272909 090a143fbece0766fad22b1d0a3d99de 1 include/usermsrintrin.h +3347 15568148 1777922721698272920 fb37aa3848b11ad0dde9222206788fed 1 include/crc32intrin.h +2073 15568223 1777922721700272913 b7662e91645d1456a47a0baff1a8e60b 1 include/prfchiintrin.h +6748 15568227 1777922721700272913 60e92c0f22c6fd0127612d8d4fb33f1a 1 include/raointintrin.h +2383 15568146 1777922721698272920 3d1c9e6b8d2f63d088f4554226dea82d 1 include/cmpccxaddintrin.h +60004 15568188 1777922721700272913 9d96163416d339553543c8056304615f 1 include/mmintrin.h +120340 15568276 1777922721702272906 8e35d00e3ce60714ef2dd6312b645f5d 1 include/xmmintrin.h +1929 15568187 1777922721700272913 b6b5caf8039b8eeb1a472434df3e6037 1 include/mm_malloc.h +201616 15568149 1777922721698272920 c59721a008a14bf4245225c8d6dd981f 1 include/emmintrin.h +11390 15568207 1777922721700272913 af3b468e9f028463cda1ea1862bdd32f 1 include/pmmintrin.h +31927 15568257 1777922721701272909 a94b62300284d904ddd77a8612722040 1 include/tmmintrin.h +101720 15568245 1777922721701272909 65d276eda8a6b7f54badd06b69b605d7 1 include/smmintrin.h +1948 15568208 1777922721700272913 0d0dc43525f7392cd17b908e07c520a2 1 include/popcntintrin.h +659 15568273 1777922721702272906 88839041dd2d933a1ceb26cde857faea 1 include/wmmintrin.h +5269 15568058 1777922721690272950 73101524ee05bfb36c066bf9bb6e60d7 1 include/__wmmintrin_aes.h +2036 15568059 1777922721690272950 679b048994ef6e3eb20b4627ae70bbf3 1 include/__wmmintrin_pclmul.h +1193 15568143 1777922721698272920 0a42c930a770c0836dbe4a3703bb4512 1 include/clflushoptintrin.h +1229 15568144 1777922721698272920 c053e392024dcadcb1da23c409ffb040 1 include/clwbintrin.h +201849 15568132 1777922721698272920 b4ccac975fdcf069bc879ccf03d0b80f 1 include/avxintrin.h +192637 15568104 1777922721697272924 215b76cd9cf97075404f4c97c36c24f0 1 include/avx2intrin.h +5524 15568151 1777922721698272920 a8307854b76c9de85b83d9befd78477f 1 include/f16cintrin.h +20350 15568138 1777922721698272920 52d5562b0fcd60ad86d13264e78f569d 1 include/bmiintrin.h +7546 15568137 1777922721698272920 e3a2aaeac7ef1aaf72d32c13e79fabf8 1 include/bmi2intrin.h +3659 15568185 1777922721700272913 da624bb823db719405e0df2f497fd83e 1 include/lzcntintrin.h +29337 15568154 1777922721699272917 37368c2b3ac26685c39d619149a048a5 1 include/fmaintrin.h +392651 15568110 1777922721697272924 417c1f0ac26fce36e4bf57569e3ae768 1 include/avx512fintrin.h +330339 15568123 1777922721698272920 49a5250ddc213c5fcbbde5cef04535e8 1 include/avx512vlintrin.h +77845 15568107 1777922721697272924 52fdf0987ae18302e0e01534ef877cc2 1 include/avx512bwintrin.h +2626 15568106 1777922721697272924 4c8c0fd807ad9e5271cdd15d2977f9d0 1 include/avx512bitalgintrin.h +4327 15568108 1777922721697272924 d60cce9efd3cf6e1817c5b6437e4be3d 1 include/avx512cdintrin.h +2357 15568129 1777922721698272920 6f8315696bf9a22f42ec05d59da5d065 1 include/avx512vpopcntdqintrin.h +3957 15568130 1777922721698272920 abb99a6c6070cfc30e96f19e82cc0bbb 1 include/avx512vpopcntdqvlintrin.h +4428 15568127 1777922721698272920 d65f32b0b2809f1f45646161d119f357 1 include/avx512vnniintrin.h +13736 15568125 1777922721698272920 f0bad1557e9b86244734e891fe49a319 1 include/avx512vlvnniintrin.h +10690 15568136 1777922721698272920 3cc87c685806872776354f4a0b5d2155 1 include/avxvnniintrin.h +60287 15568109 1777922721697272924 b9a24e2c100dbc7ee399c43d96773394 1 include/avx512dqintrin.h +4629 15568118 1777922721697272924 312bc5534b5826436e11de728e563806 1 include/avx512vlbitalgintrin.h +124474 15568119 1777922721697272924 9c4b311057a3d5598fd23dc67c776400 1 include/avx512vlbwintrin.h +8141 15568120 1777922721697272924 d74858c8ea47f20ff9c4092d113ea41c 1 include/avx512vlcdintrin.h +47827 15568121 1777922721697272924 3c73b81ef4b33ba6bcb6714431e09354 1 include/avx512vldqintrin.h +2660 15568112 1777922721697272924 6400d05d435160c1d6d346c344a76086 1 include/avx512ifmaintrin.h +4712 15568113 1777922721697272924 fa03ebe74dbaca356d64dbe640460035 1 include/avx512ifmavlintrin.h +5886 15568131 1777922721698272920 0e78550e483532f19c0908b38276ec64 1 include/avxifmaintrin.h +3920 15568115 1777922721697272924 5700f088b6969618471ef25f630669d0 1 include/avx512vbmiintrin.h +7402 15568116 1777922721697272924 16d47f57484ed296b3e6e1368e704595 1 include/avx512vbmivlintrin.h +13493 15568114 1777922721697272924 b105a7215373b26faee90ebcf9611298 1 include/avx512vbmi2intrin.h +26633 15568124 1777922721698272920 3e9303ac0a4faf37b84922e7f0c7fbac 1 include/avx512vlvbmi2intrin.h +160735 15568111 1777922721697272924 74efdcbf12d39f136d48990ed6247ae4 1 include/avx512fp16intrin.h +87561 15568122 1777922721697272924 f6fd101ffd8ecd06bab96e21091b3f55 1 include/avx512vlfp16intrin.h +10832 15568105 1777922721697272924 f328f474b8b2f7ecd99fc38496b8ba0c 1 include/avx512bf16intrin.h +19922 15568117 1777922721697272924 ae2035290c3da7e9ee66b53aa998e2e8 1 include/avx512vlbf16intrin.h +934 15568206 1777922721700272913 9eec7d1953339f7017502cf78723950d 1 include/pkuintrin.h +1086 15568269 1777922721702272906 637855aacd197db9868d139d6fafe450 1 include/vpclmulqdqintrin.h +2671 15568263 1777922721701272909 57f64f1aed9ee8ed6eca03464494e60c 1 include/vaesintrin.h +9822 15568156 1777922721699272917 220fde0fd70770eba04dde846bdbbef7 1 include/gfniintrin.h +17431 15568135 1777922721698272920 a7d4a6dc8f028f8c7ace573ef994a4d1 1 include/avxvnniint8intrin.h +14432 15568133 1777922721698272920 72cc1449016b76cd7ab84c886811a3e2 1 include/avxneconvertintrin.h +6088 15568239 1777922721701272909 0f30b3a47ff82ec3699c8cd0e40cbc92 1 include/sha512intrin.h +7470 15568242 1777922721701272909 bc67c183035f74d21e316c8ab20ae2f0 1 include/sm3intrin.h +8401 15568244 1777922721701272909 6ab760098261dfe1782c73be8e138705 1 include/sm4intrin.h +16222 15568134 1777922721698272920 682df57b668a75daebe49e56a2f1c645 1 include/avxvnniint16intrin.h +1280 15568235 1777922721701272909 6eab1c6b32be874b9c82a3ff1d2772e6 1 include/rtmintrin.h +873 15568282 1777922721702272906 dcac3c4fb2d9e8fc2e32c099cc2f4a7c 1 include/xtestintrin.h +7660 15568240 1777922721701272909 3ce15406906216d7b4f3b25709fd0765 1 include/shaintrin.h +2890 15568155 1777922721699272917 72e559c6284e7b3e59ece194e6e3e2f1 1 include/fxsrintrin.h +1678 15568279 1777922721702272906 adc179a954bd6419ecb3679e88e76d89 1 include/xsaveintrin.h +1026 15568280 1777922721702272906 5e941b1ef68d3e6e9aa207d5d00dba2f 1 include/xsaveoptintrin.h +2574 15568278 1777922721702272906 83e5e79720328dd0054ce7660005acd2 1 include/xsavecintrin.h +1268 15568281 1777922721702272906 51ebe3f93e82afad00bcea35da340569 1 include/xsavesintrin.h +3351 15568141 1777922721698272920 940fdc9a595824a3546eb2d73c351f8f 1 include/cetintrin.h +5565 15568060 1777922721690272950 c17718c6485c7659e7890a4cbab75219 1 include/adcintrin.h +3447 15568061 1777922721690272950 a7ca4b601933a32c4855f0ec1ceb8b73 1 include/adxintrin.h +2919 15568229 1777922721701272909 9ba44bec7d615d70d29c2cf49efd2fd9 1 include/rdseedintrin.h +749 15568272 1777922721702272906 ab03b0b2ec3b24b5c381d040fbd5d3f3 1 include/wbnoinvdintrin.h +1207 15568142 1777922721698272920 faf0346a1135a650caebf7c0fa660e06 1 include/cldemoteintrin.h +1357 15568270 1777922721702272906 c29665f4ae7d08f40fdba4bdf3c59fcb 1 include/waitpkgintrin.h +1612 15568190 1777922721700272913 361388a1deda89bbc5200844d0aec7a4 1 include/movdirintrin.h +2025 15568193 1777922721700272913 0f19f76e900e332d57533e05989a2a0c 1 include/movrsintrin.h +7036 15568192 1777922721700272913 2c6fb76c226fac69586d6e93c0fd3908 1 include/movrs_avx10_2intrin.h +3973 15568191 1777922721700272913 19680bd74186f6c0adedde41e57f21e1 1 include/movrs_avx10_2_512intrin.h +1216 15568205 1777922721700272913 b3205c333672913fc7c8acc26dfb5304 1 include/pconfigintrin.h +1816 15568238 1777922721701272909 4814b5f568d79fe0a3ff9a01056fa17b 1 include/sgxintrin.h +1076 15568226 1777922721700272913 3fae1e12e188144704082b5c0de48a7f 1 include/ptwriteintrin.h +764 15568169 1777922721699272917 c4f35c928a775df7195a03f0d5411aff 1 include/invpcidintrin.h +17973 15568171 1777922721699272917 0b48ddfbbe168ffd50b79789be908d2a 1 include/keylockerintrin.h +20304 15568071 1777922721691272946 3381fed3b944ecfc74f30d27ff094bca 1 include/amxintrin.h +3327 15568068 1777922721691272946 f1e5420b9d7fe9febe794a24e96e4ce9 1 include/amxfp16intrin.h +6933 15568066 1777922721691272946 78b4f2aa1cf1c0239e304a1f474331d0 1 include/amxcomplexintrin.h +8839 15568070 1777922721691272946 5ccf1e3f33ad6379d2a262f4438cd502 1 include/amxfp8intrin.h +10853 15568076 1777922721691272946 7921f0f126779340730c078d6b3c9997 1 include/amxtransposeintrin.h +2290 15568072 1777922721691272946 5f7e30d92bb23f379ce740ff06bde41f 1 include/amxmovrsintrin.h +9402 15568073 1777922721691272946 6fa922cc643f704d9fa08f0cce57fd0b 1 include/amxmovrstransposeintrin.h +12986 15568064 1777922721691272946 107cbdc06513520aa9e4e158e3f6c491 1 include/amxavx512intrin.h +3562 15568074 1777922721691272946 fd05d9e0127721d899581134b681ca3c 1 include/amxtf32intrin.h +3643 15568075 1777922721691272946 55a73f65dcb801b11b24e97984ccedb0 1 include/amxtf32transposeintrin.h +3525 15568065 1777922721691272946 52d2749a270864e796b43cc5ee738a7f 1 include/amxbf16transposeintrin.h +3525 15568069 1777922721691272946 42f3593c062932dfe44c29ecf4283afb 1 include/amxfp16transposeintrin.h +12061 15568067 1777922721691272946 3ac118b8b4568263387fa6cc9c6d757d 1 include/amxcomplextransposeintrin.h +3102 15568128 1777922721698272920 731bbd34cb220f83027d2d1b60e5b916 1 include/avx512vp2intersectintrin.h +4782 15568126 1777922721698272920 380ed65ce4ea2eb042a085a39a69d79e 1 include/avx512vlvp2intersectintrin.h +44658 15568097 1777922721696272928 faca47b99e2b7dd009773fe525926cad 1 include/avx10_2bf16intrin.h +108821 15568098 1777922721696272928 fb976c4700d15c22d82fec385805cc26 1 include/avx10_2convertintrin.h +2410 15568099 1777922721696272928 10419d2bc12d8a9878d0e2866a79b6ed 1 include/avx10_2copyintrin.h +13680 15568100 1777922721696272928 3b54fb6f688ef31b5b288d68add52055 1 include/avx10_2minmaxintrin.h +17003 15568101 1777922721696272928 21161b694449a0ad9ec0ff4fd45c5338 1 include/avx10_2niintrin.h +15253 15568102 1777922721696272928 b54db7027b0759bf2c6e98812c65825d 1 include/avx10_2satcvtdsintrin.h +18140 15568103 1777922721696272928 90423834c7a102028a91b8ed880457bd 1 include/avx10_2satcvtintrin.h +23410 15568091 1777922721696272928 95bee4d483b52e84460e33e248d24b78 1 include/avx10_2_512bf16intrin.h +13192 15568092 1777922721696272928 b29bf6fb9e659842d31f4be78f82b58a 1 include/avx10_2_512convertintrin.h +7526 15568093 1777922721696272928 e922b6ff2d475a67b2edd396292f7078 1 include/avx10_2_512minmaxintrin.h +14039 15568094 1777922721696272928 706c14e292a7064003c3a9554b34d98d 1 include/avx10_2_512niintrin.h +13799 15568095 1777922721696272928 9a37b5547f48ae1333e9109ba36c0502 1 include/avx10_2_512satcvtdsintrin.h +16999 15568096 1777922721696272928 cc3b16d0b0f0630231d148f1376082d1 1 include/avx10_2_512satcvtintrin.h +1195 15568243 1777922721701272909 415f4786cb23f5ee37699dc6b7eff360 1 include/sm4evexintrin.h +2167 15568150 1777922721698272920 6e887392f50e32d2c4bc3eb4ca4e4def 1 include/enqcmdintrin.h +881 15568237 1777922721701272909 de461f45e00eb8aa42c96123bef0f9a0 1 include/serializeintrin.h +2015 15568258 1777922721701272909 d9bd2435957a5e62c538d80aea562772 1 include/tsxldtrkintrin.h +1679 11024003 1776766428000000000 abb7aa3ce3560985cdcc5222002abe0a 0 /usr/include/errno.h +1426 11023773 1776766428000000000 f5901b3b5db0a666bc76fe7ac755756b 0 /usr/include/bits/errno.h +23 8943817 1770625897000000000 0e9514526df5411989c0921d62c34bb0 0 /usr/include/linux/errno.h +31 8943586 1770625897000000000 303204c8e8dd5d0b26a8bbfede43c812 0 /usr/include/asm/errno.h +5648 8943542 1770625897000000000 8becdc7faaf464f4f03c90038b9730e0 0 /usr/include/asm-generic/errno.h +1612 8943541 1770625897000000000 9e53730016da2684ae9a8bb2284166de 0 /usr/include/asm-generic/errno-base.h +894 11023936 1776766428000000000 21d9a2571870c420b53485fe487743c5 0 /usr/include/bits/types/error_t.h +8794 11023998 1776766428000000000 1e941a0fcec84e68e593320606a258d5 0 /usr/include/dlfcn.h +2521 11023766 1776766428000000000 ce423e8702be28530185e4b09b199fdf 0 /usr/include/bits/dlfcn.h +1119 11023765 1776766428000000000 212bcf73af743c3898fdc9ef533a0cbf 0 /usr/include/bits/dl_find_object.h +22 11024084 1776766428000000000 0ea58fcbabea8c4434197b25c0da0032 0 /usr/include/poll.h +3030 11024151 1776766428000000000 fdfc712b78cbcaa0020d4464fb281b64 0 /usr/include/sys/poll.h +2076 11023830 1776766428000000000 d4de1743efaa71a7637fb37b349b20f7 0 /usr/include/bits/poll.h +1400 11024128 1776766428000000000 2f0c7eff02f27ac2b7f317551e29ec48 0 /usr/include/sys/eventfd.h +27519 15568253 1777922721701272909 1bf965d23c79a082ac103b8d4944724e 1 include/stdint.h +8268 11024113 1776766428000000000 07868a6486476f79d1af8befa09ff966 0 /usr/include/stdint.h +1049 11023885 1776766428000000000 df8b58b124e95d233ec646186fc72d07 0 /usr/include/bits/stdint-uintn.h +1305 11023884 1776766428000000000 e13a68eb8203cd6be160c31f99d931f7 0 /usr/include/bits/stdint-least.h +1129 11023776 1776766428000000000 1529b91466df4e72721b7951edd4ed3e 0 /usr/include/bits/eventfd.h +364560 15592110 1777923927256426522 aa3f7a4e5ed2aea4a1ec6c90429905d4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/dr_wav.h +192790 15592240 1777923927283426469 890c281f1c8cc1ed210397614a0eb43c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_vorbis.c +206600 15592109 1777923927255426525 8a111acae971c169c181fb95f0bbb828 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/dr_mp3.h +23845 15592226 1777923927278426479 f136d45fb944c980c3798c30d5d3d443 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoa.h +10241 15592227 1777923927278426479 737b9fb56af4b423417c98b7fd85a98b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoaplay.c +102215 15592222 1777923927267426501 87feda682bd5df29026e59540130ea22 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/jar_xm.h +51996 15592221 1777923927267426501 7826726113566a1ac41845859112fa61 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/jar_mod.h diff --git a/.zig-cache/h/e602035e78761cfbb7f0d43e41bc4c93.txt b/.zig-cache/h/e602035e78761cfbb7f0d43e41bc4c93.txt new file mode 100644 index 0000000..573541a --- /dev/null +++ b/.zig-cache/h/e602035e78761cfbb7f0d43e41bc4c93.txt @@ -0,0 +1 @@ +0 diff --git a/.zig-cache/h/e8e7dd93070aad1d8a037c064f775777.txt b/.zig-cache/h/e8e7dd93070aad1d8a037c064f775777.txt new file mode 100644 index 0000000..5b8d59e --- /dev/null +++ b/.zig-cache/h/e8e7dd93070aad1d8a037c064f775777.txt @@ -0,0 +1,232 @@ +0 +226085 15592272 1777923927291426454 57703b4cb9d20c85f2494106b300ce4c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rtextures.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1516 11023891 1776766428000000000 046e6949e60c5229cc0f25afa40a0c7d 0 /usr/include/bits/stdlib-bsearch.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +21266 11024117 1776766428000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11024118 1776766428000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +34258 11024114 1776766428000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +381 11023928 1776766428000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11023930 1776766428000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11023927 1776766428000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11023926 1776766428000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11023925 1776766428000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11023948 1776766428000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11023935 1776766428000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11023890 1776766428000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +5599 11023887 1776766428000000000 e430a87e8deadc82d69f0f011fb6ea3e 0 /usr/include/bits/stdio.h +283010 15592234 1777923927280426475 da0de4b77a864a92ca0a84752ae64a25 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image.h +417 15568047 1777922721690272950 d2edf43390585163b0f70c6bd1d7e3b7 1 include/__stddef_header_macro.h +717 15568052 1777922721690272950 81288588f2bdd7ac4f213fa113429ef2 1 include/__stddef_ptrdiff_t.h +708 15568051 1777922721690272950 04b70454bf7cdd0c492cfaf134f95be7 1 include/__stddef_offsetof.h +3794 15568174 1777922721699272917 42f44f0344ca976c19820ae587ff2c10 1 include/limits.h +5839 11024036 1776766428000000000 93606ee9e7d5800ac5b8e3efedd3f157 0 /usr/include/limits.h +5198 11023832 1776766428000000000 a6dd17f359e45199ea5666f65b1113a6 0 /usr/include/bits/posix1_lim.h +3175 11023807 1776766428000000000 b08b1c7bc1b5a70132a5b8b175b8c0db 0 /usr/include/bits/local_lim.h +937 8943972 1770625897000000000 65da8eafce628e0f5da011204e471ee0 0 /usr/include/linux/limits.h +1214 11023840 1776766428000000000 2fe7b4205802733911a5efa9b71bb5e6 0 /usr/include/bits/pthread_stack_min-dynamic.h +2867 11023833 1776766428000000000 7d8aa86701e9a380845c5cd8a669e984 0 /usr/include/bits/posix2_lim.h +3858 11023992 1776766428000000000 6056c22530b9b6e43d3215eee277a553 0 /usr/include/bits/xopen_lim.h +1385 11023977 1776766428000000000 59219f4f906088fd1473df647db44849 0 /usr/include/bits/uio_lim.h +6841 11023755 1776766428000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +27519 15568253 1777922721701272909 1bf965d23c79a082ac103b8d4944724e 1 include/stdint.h +8268 11024113 1776766428000000000 07868a6486476f79d1af8befa09ff966 0 /usr/include/stdint.h +1906 11023987 1776766428000000000 eb31012558f3028fc2c3c0def47ccc8a 0 /usr/include/bits/wchar.h +1049 11023885 1776766428000000000 df8b58b124e95d233ec646186fc72d07 0 /usr/include/bits/stdint-uintn.h +1305 11023884 1776766428000000000 e13a68eb8203cd6be160c31f99d931f7 0 /usr/include/bits/stdint-least.h +201616 15568149 1777922721698272920 c59721a008a14bf4245225c8d6dd981f 1 include/emmintrin.h +120340 15568276 1777922721702272906 8e35d00e3ce60714ef2dd6312b645f5d 1 include/xmmintrin.h +60004 15568188 1777922721700272913 9d96163416d339553543c8056304615f 1 include/mmintrin.h +1929 15568187 1777922721700272913 b6b5caf8039b8eeb1a472434df3e6037 1 include/mm_malloc.h +76007 15592230 1777923927279426477 a736a10590b842a754f3c9d9bba6437a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/rltexgpu.h +18326 15592228 1777923927278426479 0a1701580c647f7b4f8a424d04ac746d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoi.h +71221 15592236 1777923927282426471 ca3d5f23a730342b4f4dd18653e45db1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image_write.h +17918 15592237 1777923927282426471 2bb87817ffe9d6d6d3187db2bffe388c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_perlin.h +457839 15592235 1777923927281426473 d73e04ebd94264210f8f82aac82d1da4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_image_resize2.h +101720 15568245 1777922721701272909 65d276eda8a6b7f54badd06b69b605d7 1 include/smmintrin.h +31927 15568257 1777922721701272909 a94b62300284d904ddd77a8612722040 1 include/tmmintrin.h +11390 15568207 1777922721700272913 af3b468e9f028463cda1ea1862bdd32f 1 include/pmmintrin.h +1948 15568208 1777922721700272913 0d0dc43525f7392cd17b908e07c520a2 1 include/popcntintrin.h +3347 15568148 1777922721698272920 fb37aa3848b11ad0dde9222206788fed 1 include/crc32intrin.h +16632 15568165 1777922721699272917 70963188f6adf02d47abf0e69307e3ce 1 include/immintrin.h +1727 15568274 1777922721702272906 02224c13847552071474f4b8a67094f2 1 include/x86gprintrin.h +1395 15568160 1777922721699272917 fb46b2d83a3e08fdd2816a60bb34c1f4 1 include/hresetintrin.h +5079 15568259 1777922721701272909 17e8211de80c4aedcb92d94180a78574 1 include/uintrintrin.h +1572 15568261 1777922721701272909 090a143fbece0766fad22b1d0a3d99de 1 include/usermsrintrin.h +2073 15568223 1777922721700272913 b7662e91645d1456a47a0baff1a8e60b 1 include/prfchiintrin.h +6748 15568227 1777922721700272913 60e92c0f22c6fd0127612d8d4fb33f1a 1 include/raointintrin.h +2383 15568146 1777922721698272920 3d1c9e6b8d2f63d088f4554226dea82d 1 include/cmpccxaddintrin.h +659 15568273 1777922721702272906 88839041dd2d933a1ceb26cde857faea 1 include/wmmintrin.h +5269 15568058 1777922721690272950 73101524ee05bfb36c066bf9bb6e60d7 1 include/__wmmintrin_aes.h +2036 15568059 1777922721690272950 679b048994ef6e3eb20b4627ae70bbf3 1 include/__wmmintrin_pclmul.h +1193 15568143 1777922721698272920 0a42c930a770c0836dbe4a3703bb4512 1 include/clflushoptintrin.h +1229 15568144 1777922721698272920 c053e392024dcadcb1da23c409ffb040 1 include/clwbintrin.h +201849 15568132 1777922721698272920 b4ccac975fdcf069bc879ccf03d0b80f 1 include/avxintrin.h +192637 15568104 1777922721697272924 215b76cd9cf97075404f4c97c36c24f0 1 include/avx2intrin.h +5524 15568151 1777922721698272920 a8307854b76c9de85b83d9befd78477f 1 include/f16cintrin.h +20350 15568138 1777922721698272920 52d5562b0fcd60ad86d13264e78f569d 1 include/bmiintrin.h +7546 15568137 1777922721698272920 e3a2aaeac7ef1aaf72d32c13e79fabf8 1 include/bmi2intrin.h +3659 15568185 1777922721700272913 da624bb823db719405e0df2f497fd83e 1 include/lzcntintrin.h +29337 15568154 1777922721699272917 37368c2b3ac26685c39d619149a048a5 1 include/fmaintrin.h +392651 15568110 1777922721697272924 417c1f0ac26fce36e4bf57569e3ae768 1 include/avx512fintrin.h +330339 15568123 1777922721698272920 49a5250ddc213c5fcbbde5cef04535e8 1 include/avx512vlintrin.h +77845 15568107 1777922721697272924 52fdf0987ae18302e0e01534ef877cc2 1 include/avx512bwintrin.h +2626 15568106 1777922721697272924 4c8c0fd807ad9e5271cdd15d2977f9d0 1 include/avx512bitalgintrin.h +4327 15568108 1777922721697272924 d60cce9efd3cf6e1817c5b6437e4be3d 1 include/avx512cdintrin.h +2357 15568129 1777922721698272920 6f8315696bf9a22f42ec05d59da5d065 1 include/avx512vpopcntdqintrin.h +3957 15568130 1777922721698272920 abb99a6c6070cfc30e96f19e82cc0bbb 1 include/avx512vpopcntdqvlintrin.h +4428 15568127 1777922721698272920 d65f32b0b2809f1f45646161d119f357 1 include/avx512vnniintrin.h +13736 15568125 1777922721698272920 f0bad1557e9b86244734e891fe49a319 1 include/avx512vlvnniintrin.h +10690 15568136 1777922721698272920 3cc87c685806872776354f4a0b5d2155 1 include/avxvnniintrin.h +60287 15568109 1777922721697272924 b9a24e2c100dbc7ee399c43d96773394 1 include/avx512dqintrin.h +4629 15568118 1777922721697272924 312bc5534b5826436e11de728e563806 1 include/avx512vlbitalgintrin.h +124474 15568119 1777922721697272924 9c4b311057a3d5598fd23dc67c776400 1 include/avx512vlbwintrin.h +8141 15568120 1777922721697272924 d74858c8ea47f20ff9c4092d113ea41c 1 include/avx512vlcdintrin.h +47827 15568121 1777922721697272924 3c73b81ef4b33ba6bcb6714431e09354 1 include/avx512vldqintrin.h +2660 15568112 1777922721697272924 6400d05d435160c1d6d346c344a76086 1 include/avx512ifmaintrin.h +4712 15568113 1777922721697272924 fa03ebe74dbaca356d64dbe640460035 1 include/avx512ifmavlintrin.h +5886 15568131 1777922721698272920 0e78550e483532f19c0908b38276ec64 1 include/avxifmaintrin.h +3920 15568115 1777922721697272924 5700f088b6969618471ef25f630669d0 1 include/avx512vbmiintrin.h +7402 15568116 1777922721697272924 16d47f57484ed296b3e6e1368e704595 1 include/avx512vbmivlintrin.h +13493 15568114 1777922721697272924 b105a7215373b26faee90ebcf9611298 1 include/avx512vbmi2intrin.h +26633 15568124 1777922721698272920 3e9303ac0a4faf37b84922e7f0c7fbac 1 include/avx512vlvbmi2intrin.h +160735 15568111 1777922721697272924 74efdcbf12d39f136d48990ed6247ae4 1 include/avx512fp16intrin.h +87561 15568122 1777922721697272924 f6fd101ffd8ecd06bab96e21091b3f55 1 include/avx512vlfp16intrin.h +10832 15568105 1777922721697272924 f328f474b8b2f7ecd99fc38496b8ba0c 1 include/avx512bf16intrin.h +19922 15568117 1777922721697272924 ae2035290c3da7e9ee66b53aa998e2e8 1 include/avx512vlbf16intrin.h +934 15568206 1777922721700272913 9eec7d1953339f7017502cf78723950d 1 include/pkuintrin.h +1086 15568269 1777922721702272906 637855aacd197db9868d139d6fafe450 1 include/vpclmulqdqintrin.h +2671 15568263 1777922721701272909 57f64f1aed9ee8ed6eca03464494e60c 1 include/vaesintrin.h +9822 15568156 1777922721699272917 220fde0fd70770eba04dde846bdbbef7 1 include/gfniintrin.h +17431 15568135 1777922721698272920 a7d4a6dc8f028f8c7ace573ef994a4d1 1 include/avxvnniint8intrin.h +14432 15568133 1777922721698272920 72cc1449016b76cd7ab84c886811a3e2 1 include/avxneconvertintrin.h +6088 15568239 1777922721701272909 0f30b3a47ff82ec3699c8cd0e40cbc92 1 include/sha512intrin.h +7470 15568242 1777922721701272909 bc67c183035f74d21e316c8ab20ae2f0 1 include/sm3intrin.h +8401 15568244 1777922721701272909 6ab760098261dfe1782c73be8e138705 1 include/sm4intrin.h +16222 15568134 1777922721698272920 682df57b668a75daebe49e56a2f1c645 1 include/avxvnniint16intrin.h +1280 15568235 1777922721701272909 6eab1c6b32be874b9c82a3ff1d2772e6 1 include/rtmintrin.h +873 15568282 1777922721702272906 dcac3c4fb2d9e8fc2e32c099cc2f4a7c 1 include/xtestintrin.h +7660 15568240 1777922721701272909 3ce15406906216d7b4f3b25709fd0765 1 include/shaintrin.h +2890 15568155 1777922721699272917 72e559c6284e7b3e59ece194e6e3e2f1 1 include/fxsrintrin.h +1678 15568279 1777922721702272906 adc179a954bd6419ecb3679e88e76d89 1 include/xsaveintrin.h +1026 15568280 1777922721702272906 5e941b1ef68d3e6e9aa207d5d00dba2f 1 include/xsaveoptintrin.h +2574 15568278 1777922721702272906 83e5e79720328dd0054ce7660005acd2 1 include/xsavecintrin.h +1268 15568281 1777922721702272906 51ebe3f93e82afad00bcea35da340569 1 include/xsavesintrin.h +3351 15568141 1777922721698272920 940fdc9a595824a3546eb2d73c351f8f 1 include/cetintrin.h +5565 15568060 1777922721690272950 c17718c6485c7659e7890a4cbab75219 1 include/adcintrin.h +3447 15568061 1777922721690272950 a7ca4b601933a32c4855f0ec1ceb8b73 1 include/adxintrin.h +2919 15568229 1777922721701272909 9ba44bec7d615d70d29c2cf49efd2fd9 1 include/rdseedintrin.h +749 15568272 1777922721702272906 ab03b0b2ec3b24b5c381d040fbd5d3f3 1 include/wbnoinvdintrin.h +1207 15568142 1777922721698272920 faf0346a1135a650caebf7c0fa660e06 1 include/cldemoteintrin.h +1357 15568270 1777922721702272906 c29665f4ae7d08f40fdba4bdf3c59fcb 1 include/waitpkgintrin.h +1612 15568190 1777922721700272913 361388a1deda89bbc5200844d0aec7a4 1 include/movdirintrin.h +2025 15568193 1777922721700272913 0f19f76e900e332d57533e05989a2a0c 1 include/movrsintrin.h +7036 15568192 1777922721700272913 2c6fb76c226fac69586d6e93c0fd3908 1 include/movrs_avx10_2intrin.h +3973 15568191 1777922721700272913 19680bd74186f6c0adedde41e57f21e1 1 include/movrs_avx10_2_512intrin.h +1216 15568205 1777922721700272913 b3205c333672913fc7c8acc26dfb5304 1 include/pconfigintrin.h +1816 15568238 1777922721701272909 4814b5f568d79fe0a3ff9a01056fa17b 1 include/sgxintrin.h +1076 15568226 1777922721700272913 3fae1e12e188144704082b5c0de48a7f 1 include/ptwriteintrin.h +764 15568169 1777922721699272917 c4f35c928a775df7195a03f0d5411aff 1 include/invpcidintrin.h +17973 15568171 1777922721699272917 0b48ddfbbe168ffd50b79789be908d2a 1 include/keylockerintrin.h +20304 15568071 1777922721691272946 3381fed3b944ecfc74f30d27ff094bca 1 include/amxintrin.h +3327 15568068 1777922721691272946 f1e5420b9d7fe9febe794a24e96e4ce9 1 include/amxfp16intrin.h +6933 15568066 1777922721691272946 78b4f2aa1cf1c0239e304a1f474331d0 1 include/amxcomplexintrin.h +8839 15568070 1777922721691272946 5ccf1e3f33ad6379d2a262f4438cd502 1 include/amxfp8intrin.h +10853 15568076 1777922721691272946 7921f0f126779340730c078d6b3c9997 1 include/amxtransposeintrin.h +2290 15568072 1777922721691272946 5f7e30d92bb23f379ce740ff06bde41f 1 include/amxmovrsintrin.h +9402 15568073 1777922721691272946 6fa922cc643f704d9fa08f0cce57fd0b 1 include/amxmovrstransposeintrin.h +12986 15568064 1777922721691272946 107cbdc06513520aa9e4e158e3f6c491 1 include/amxavx512intrin.h +3562 15568074 1777922721691272946 fd05d9e0127721d899581134b681ca3c 1 include/amxtf32intrin.h +3643 15568075 1777922721691272946 55a73f65dcb801b11b24e97984ccedb0 1 include/amxtf32transposeintrin.h +3525 15568065 1777922721691272946 52d2749a270864e796b43cc5ee738a7f 1 include/amxbf16transposeintrin.h +3525 15568069 1777922721691272946 42f3593c062932dfe44c29ecf4283afb 1 include/amxfp16transposeintrin.h +12061 15568067 1777922721691272946 3ac118b8b4568263387fa6cc9c6d757d 1 include/amxcomplextransposeintrin.h +3102 15568128 1777922721698272920 731bbd34cb220f83027d2d1b60e5b916 1 include/avx512vp2intersectintrin.h +4782 15568126 1777922721698272920 380ed65ce4ea2eb042a085a39a69d79e 1 include/avx512vlvp2intersectintrin.h +44658 15568097 1777922721696272928 faca47b99e2b7dd009773fe525926cad 1 include/avx10_2bf16intrin.h +108821 15568098 1777922721696272928 fb976c4700d15c22d82fec385805cc26 1 include/avx10_2convertintrin.h +2410 15568099 1777922721696272928 10419d2bc12d8a9878d0e2866a79b6ed 1 include/avx10_2copyintrin.h +13680 15568100 1777922721696272928 3b54fb6f688ef31b5b288d68add52055 1 include/avx10_2minmaxintrin.h +17003 15568101 1777922721696272928 21161b694449a0ad9ec0ff4fd45c5338 1 include/avx10_2niintrin.h +15253 15568102 1777922721696272928 b54db7027b0759bf2c6e98812c65825d 1 include/avx10_2satcvtdsintrin.h +18140 15568103 1777922721696272928 90423834c7a102028a91b8ed880457bd 1 include/avx10_2satcvtintrin.h +23410 15568091 1777922721696272928 95bee4d483b52e84460e33e248d24b78 1 include/avx10_2_512bf16intrin.h +13192 15568092 1777922721696272928 b29bf6fb9e659842d31f4be78f82b58a 1 include/avx10_2_512convertintrin.h +7526 15568093 1777922721696272928 e922b6ff2d475a67b2edd396292f7078 1 include/avx10_2_512minmaxintrin.h +14039 15568094 1777922721696272928 706c14e292a7064003c3a9554b34d98d 1 include/avx10_2_512niintrin.h +13799 15568095 1777922721696272928 9a37b5547f48ae1333e9109ba36c0502 1 include/avx10_2_512satcvtdsintrin.h +16999 15568096 1777922721696272928 cc3b16d0b0f0630231d148f1376082d1 1 include/avx10_2_512satcvtintrin.h +1195 15568243 1777922721701272909 415f4786cb23f5ee37699dc6b7eff360 1 include/sm4evexintrin.h +2167 15568150 1777922721698272920 6e887392f50e32d2c4bc3eb4ca4e4def 1 include/enqcmdintrin.h +881 15568237 1777922721701272909 de461f45e00eb8aa42c96123bef0f9a0 1 include/serializeintrin.h +2015 15568258 1777922721701272909 d9bd2435957a5e62c538d80aea562772 1 include/tsxldtrkintrin.h diff --git a/.zig-cache/h/e9445e3f72f35e2a72f0d293f60008ad.txt b/.zig-cache/h/e9445e3f72f35e2a72f0d293f60008ad.txt new file mode 100644 index 0000000..6092f86 --- /dev/null +++ b/.zig-cache/h/e9445e3f72f35e2a72f0d293f60008ad.txt @@ -0,0 +1,267 @@ +0 +6000 15592267 1777923927288426459 c08daa562131e2220de1a06bca726720 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rglfw.c +14504 15592172 1777923927262426511 b27f6b3bb53bc837cf7ea3290ce6416e 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/init.c +35817 15592174 1777923927262426511 f72e6da24b2e8dc2c561d4faf974a05c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/internal.h +241826 15592156 1777923927261426513 86501dc510331da26275322e654ec46a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +417 15568047 1777922721690272950 d2edf43390585163b0f70c6bd1d7e3b7 1 include/__stddef_header_macro.h +717 15568052 1777922721690272950 81288588f2bdd7ac4f213fa113429ef2 1 include/__stddef_ptrdiff_t.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +708 15568051 1777922721690272950 04b70454bf7cdd0c492cfaf134f95be7 1 include/__stddef_offsetof.h +27519 15568253 1777922721701272909 1bf965d23c79a082ac103b8d4944724e 1 include/stdint.h +8268 11024113 1776766428000000000 07868a6486476f79d1af8befa09ff966 0 /usr/include/stdint.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +1906 11023987 1776766428000000000 eb31012558f3028fc2c3c0def47ccc8a 0 /usr/include/bits/wchar.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +1049 11023885 1776766428000000000 df8b58b124e95d233ec646186fc72d07 0 /usr/include/bits/stdint-uintn.h +1305 11023884 1776766428000000000 e13a68eb8203cd6be160c31f99d931f7 0 /usr/include/bits/stdint-least.h +6421 15592189 1777923927264426507 9430a43cbffb7932dc5ccfe1bf2d0807 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/platform.h +11827 15592185 1777923927264426507 4beac7be71da25898297d83d4e922499 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/null_platform.h +44741 15592217 1777923927266426503 6868a25f2f702569928920058ddd21bf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_platform.h +45053 11024218 1776766428000000000 61decd3126c9fca1538df8298cac1894 0 /usr/include/unistd.h +5910 11023834 1776766428000000000 3ab8ab6e5779785e032604f1768b415c 0 /usr/include/bits/posix_opt.h +3791 11023770 1776766428000000000 e918da89dc6f1bc95caac7b9e99e3ccc 0 /usr/include/bits/environments.h +23828 11023761 1776766428000000000 9cf65881ab165e5e8e291a2f7fcd0a71 0 /usr/include/bits/confname.h +1810 11023789 1776766428000000000 996cb3fd9509868b01621c74e4a86ade 0 /usr/include/bits/getopt_posix.h +3667 11023787 1776766428000000000 ac9188a8d7cc4aac4ca3ac108e99f032 0 /usr/include/bits/getopt_core.h +2035 11023980 1776766428000000000 0cb61ab97cf5643355f3236fdfb9904c 0 /usr/include/bits/unistd_ext.h +377 8943771 1770625897000000000 7ed06359dec8788b24849d80d4e70c9a 0 /usr/include/linux/close_range.h +13045 11024108 1776766428000000000 efc9e225e109bb08a8dec4661ace2e4c 0 /usr/include/signal.h +3313 11023866 1776766428000000000 c7b07d26fe58fc7ceff1ae4edad8acd6 0 /usr/include/bits/signum-generic.h +2580 11023865 1776766428000000000 500defef7a2bd9a9e56449a3aea3b0f9 0 /usr/include/bits/signum-arch.h +272 11023942 1776766428000000000 52033494d2efb18f3ae4d42d90be994c 0 /usr/include/bits/types/sig_atomic_t.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +3892 11023944 1776766428000000000 9f30a8a17236994ddab5a49513bee1c1 0 /usr/include/bits/types/siginfo_t.h +1148 11023932 1776766428000000000 cef99022964de0d2a9bb4a66335a242a 0 /usr/include/bits/types/__sigval_t.h +729 11023860 1776766428000000000 732ba145bdaaec5752d3851d994fb038 0 /usr/include/bits/siginfo-arch.h +7537 11023862 1776766428000000000 4397eb5131c9e02a702340cc690db708 0 /usr/include/bits/siginfo-consts.h +204 11023861 1776766428000000000 070bf764547621a5cbd9eca15e56bf40 0 /usr/include/bits/siginfo-consts-arch.h +599 11023946 1776766428000000000 9a9be4e0a7b8d98d52679616ab1b7362 0 /usr/include/bits/types/sigval_t.h +1204 11023943 1776766428000000000 ab141640b4254a15993e20837b92ffa9 0 /usr/include/bits/types/sigevent_t.h +1471 11023859 1776766428000000000 2763ca41204119b32bf53713071bb096 0 /usr/include/bits/sigevent-consts.h +2935 11023857 1776766428000000000 abb4550dd27d1f45d7bd71b5a552f386 0 /usr/include/bits/sigaction.h +4266 11023858 1776766428000000000 8e4aadcbffc06002a69da0003c1793a1 0 /usr/include/bits/sigcontext.h +1062 11023947 1776766428000000000 3418e41d444a3efa09c1989618745709 0 /usr/include/bits/types/stack_t.h +5842 11024193 1776766428000000000 3850964a3dfeecfdf8d6341ce10a867b 0 /usr/include/sys/ucontext.h +1168 11023867 1776766428000000000 8d25e4dc4342ca228643759acadb8af6 0 /usr/include/bits/sigstack.h +1283 11023868 1776766428000000000 3177a841d4601f625a64ad164ae45250 0 /usr/include/bits/sigstksz.h +1188 11023876 1776766428000000000 0a23e9e025646d8d7930c5f34b481456 0 /usr/include/bits/ss_flags.h +1073 11023964 1776766428000000000 6ec7e47258c49e849f75f41527e676a0 0 /usr/include/bits/types/struct_sigstack.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1692 11023869 1776766428000000000 bc31047fff5a76a10c2880762a977d27 0 /usr/include/bits/sigthread.h +1285 11023863 1776766428000000000 368ef36453d66bf3b3d3595424daf7ac 0 /usr/include/bits/signal_ext.h +99801 11320731 1770539241000000000 f2e7c6c90e11927568ff931d109f936c 0 /usr/include/X11/Xlib.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +20137 7769018 1766144024000000000 382791d667a3393547f807899249bfc0 0 /usr/include/X11/X.h +7946 7769025 1766144024000000000 8a5039c8a7aa3a4eab5f7181393ac108 0 /usr/include/X11/Xfuncproto.h +3115 7769030 1766144024000000000 d53b0559a65c0bcdb77ed0459f1b9976 0 /usr/include/X11/Xosdefs.h +2769 7769135 1766144024000000000 0d41ae60a19d8f9ba25f1763119261cc 0 /usr/include/X11/keysym.h +186629 7769136 1766144024000000000 bd52d531f256dfa6f7971ce3c84e5d8b 0 /usr/include/X11/keysymdef.h +2518 7769023 1766144024000000000 a6ecf58bbcdb259e383e67043e2a7022 0 /usr/include/X11/Xatom.h +10628 11320736 1770539241000000000 9b0233263c20c2e8be88d5e81fbf2202 0 /usr/include/X11/Xresource.h +13200 11322026 1730878554000000000 3e56a893977bb933a42f01ba8765a1e8 0 /usr/include/X11/Xcursor/Xcursor.h +34258 11024114 1776766428000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +381 11023928 1776766428000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11023930 1776766428000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11023927 1776766428000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11023926 1776766428000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11023925 1776766428000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11023948 1776766428000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11023935 1776766428000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11023890 1776766428000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +5599 11023887 1776766428000000000 e430a87e8deadc82d69f0f011fb6ea3e 0 /usr/include/bits/stdio.h +17060 11321897 1769439156000000000 1884746db8290f2b31b7f8451b1cf4b3 0 /usr/include/X11/extensions/Xrandr.h +6909 7769087 1766144024000000000 401965d00acc575149fba334f8bc506d 0 /usr/include/X11/extensions/randr.h +33826 96756 1734163523000000000 cd6d26a1a49037b6952f6ad6add5241b 0 /usr/include/X11/extensions/Xrender.h +21355 11320737 1770539241000000000 52ce1ad0b2c8b33c883e4de9cf2e58fc 0 /usr/include/X11/Xutil.h +6933 7769092 1766144024000000000 f3454f10c8ec914bc2cacc67ae344c58 0 /usr/include/X11/extensions/render.h +2401 7769024 1766144024000000000 8c25483e69b3966a7bf02ad71233d30b 0 /usr/include/X11/Xdefs.h +30994 11320728 1770539241000000000 658cd959aab5d6441ea7ca46bbfcb740 0 /usr/include/X11/XKBlib.h +19697 7769051 1766144024000000000 1231e8955febccf3c025770c66a93818 0 /usr/include/X11/extensions/XKBstr.h +28212 7769048 1766144024000000000 6a2dd9db6376855e6a13ac1dc2254091 0 /usr/include/X11/extensions/XKB.h +1964 11321922 1769438631000000000 8307bc8fd193fbd4b22c24a07b9e56ad 0 /usr/include/X11/extensions/Xinerama.h +21969 11321939 1725514872000000000 f898f73ab9f0b0455f75ad7e86f933d4 0 /usr/include/X11/extensions/XInput2.h +11151 7769045 1766144024000000000 f4e9b097c0ff2c41507c68b4960a37cb 0 /usr/include/X11/extensions/XI2.h +1928 8741105 1769438528000000000 4e4a900ecc48c6c5eaaadb164d67df47 0 /usr/include/X11/extensions/Xge.h +7750 4242540 1756837749000000000 0d98a55dff8c00f367e9aece0d0a1143 0 /usr/include/X11/extensions/Xfixes.h +5924 7769123 1766144024000000000 b5e9bd0eec3d3c1748a593e505171a71 0 /usr/include/X11/extensions/xfixeswire.h +4132 8741110 1769438528000000000 8aaad0750a17168ab35987a0fd39ecf0 0 /usr/include/X11/extensions/shape.h +1878 7769098 1766144024000000000 104206d1aae79c53870ed605be13e54f 0 /usr/include/X11/extensions/shapeconst.h +1288 15592220 1777923927267426501 e581c6e4cdd807e79c0a665fc1bb619f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/xkb_unicode.h +1292 15592192 1777923927264426507 c453ea96e91669ea925c8bfb93fe5bb7 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_poll.h +22 11024084 1776766428000000000 0ea58fcbabea8c4434197b25c0da0032 0 /usr/include/poll.h +3030 11024151 1776766428000000000 fdfc712b78cbcaa0020d4464fb281b64 0 /usr/include/sys/poll.h +2076 11023830 1776766428000000000 d4de1743efaa71a7637fb37b349b20f7 0 /usr/include/bits/poll.h +1424 15592183 1777923927263426509 9ae4151868a02c1a8ea9749672383fb1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/null_joystick.h +2322 15592176 1777923927262426511 a5affdc2a0143346be41f93f566b6938 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/linux_joystick.h +16913 8943925 1770625897000000000 19cc0a8c96115bd0b4fbe906dc1f6915 0 /usr/include/linux/input.h +9164 11024185 1776766428000000000 d2e1b3053beaf053af8a55c6a804fde1 0 /usr/include/sys/time.h +2032 11024137 1776766428000000000 cbe6601caeaa9849483d92383653843e 0 /usr/include/sys/ioctl.h +1005 11023798 1776766428000000000 38935023d2f5efc233bbd63192a23f93 0 /usr/include/bits/ioctls.h +32 8943591 1770625897000000000 1014a0ae33d0bed260382fbd3c912982 0 /usr/include/asm/ioctls.h +3987 8943548 1770625897000000000 d4ce71e9aa1f00a5b67c8b21b6a30d5b 0 /usr/include/asm-generic/ioctls.h +163 8943932 1770625897000000000 9a139ff78a7a978a13a83c0722fc021d 0 /usr/include/linux/ioctl.h +31 8943590 1770625897000000000 5f11f2dd8e479e58c3cf546e72403770 0 /usr/include/asm/ioctl.h +3518 8943547 1770625897000000000 4b7aa229557b073687359ca327709a32 0 /usr/include/asm-generic/ioctl.h +6846 8944315 1770625897000000000 d2b055f7283492c05492a5924f94aec4 0 /usr/include/linux/sockios.h +321 8943578 1770625897000000000 426fd8fd87f0a7222c2d8dc0b1c11a1e 0 /usr/include/asm/bitsperlong.h +1092 8943539 1770625897000000000 ea09d2bd626e1051f84d4ecee37ba039 0 /usr/include/asm-generic/bitsperlong.h +33 8943625 1770625897000000000 ddabb13f9fd87bf61e5f15f7a99b4729 0 /usr/include/asm/sockios.h +447 8943565 1770625897000000000 e503e15c8b0357f68274467ba5f06da4 0 /usr/include/asm-generic/sockios.h +2089 11023797 1776766428000000000 93897a02d50af887190f5248a717605e 0 /usr/include/bits/ioctl-types.h +3568 11024191 1776766428000000000 7fd74c28a21229e87ba5588cee27bd8c 0 /usr/include/sys/ttydefaults.h +1829 8944384 1770625897000000000 64ed48c0a52d7d50d7685f6332d61a80 0 /usr/include/linux/types.h +31 8943632 1770625897000000000 748039e47be584104c75dc853bfee6d8 0 /usr/include/asm/types.h +233 8943572 1770625897000000000 ff35ee9081c54a4556677db7b6ac43bd 0 /usr/include/asm-generic/types.h +864 8943546 1770625897000000000 de8f38f0cdc81bf3a5b301889f3dc586 0 /usr/include/asm-generic/int-ll64.h +1098 8944239 1770625897000000000 d50b3f49c69b44a5ecd1f232af677d5e 0 /usr/include/linux/posix_types.h +2135 8944323 1770625897000000000 7f1dcecb733611ba8bc38c8fa69c11bb 0 /usr/include/linux/stddef.h +224 8943606 1770625897000000000 d200bb7a30c7371a4580f935befe5542 0 /usr/include/asm/posix_types.h +609 8943608 1770625897000000000 45284a1e84848c31de23d3bd515534ee 0 /usr/include/asm/posix_types_64.h +2420 8943556 1770625897000000000 27c6e0a2b3849c0a9a5f71c86e17deb5 0 /usr/include/asm-generic/posix_types.h +31350 8943924 1770625897000000000 7eb002eb71a3e9a208ffc627561eda0b 0 /usr/include/linux/input-event-codes.h +937 8943972 1770625897000000000 65da8eafce628e0f5da011204e471ee0 0 /usr/include/linux/limits.h +25940 11024095 1776766428000000000 d3d9037b10d420aa0b919ad6d97bdab1 0 /usr/include/regex.h +1674 15592194 1777923927264426507 4c75518582750b9acebe3f524a3ea420 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_thread.h +48570 11024091 1776766428000000000 df73001c3d08af59a57b790c20f13f2a 0 /usr/include/pthread.h +5043 11024099 1776766428000000000 e6a51b852746c12c94ed682ec128431b 0 /usr/include/sched.h +5952 11023847 1776766428000000000 0926186d78c26fdbfea09ab846c93da9 0 /usr/include/bits/sched.h +4558 8944287 1770625897000000000 13cfeea4f632939bde4c2db64ec930ff 0 /usr/include/linux/sched/types.h +1073 11023957 1776766428000000000 fd5bfcedcccd0699759e0e9b4b5f31d2 0 /usr/include/bits/types/struct_sched_param.h +4516 11023762 1776766428000000000 eab9f52a0722cf3bd47401680264c9bd 0 /usr/include/bits/cpu-set.h +15326 11024213 1776766428000000000 dd0cebc61fc90f380c881a1cbd85230a 0 /usr/include/time.h +3331 11023919 1776766428000000000 d088285f55f90486f8680c7de68e427d 0 /usr/include/bits/time.h +6203 11023923 1776766428000000000 ccfa5c0039c1ddbdb09c6db5d1922cc3 0 /usr/include/bits/timex.h +760 11023970 1776766428000000000 3cf515d0336ee94d22cc413b45febc49 0 /usr/include/bits/types/struct_tm.h +288 11023951 1776766428000000000 2de06c14c40bd39deaf2f372dace4ac7 0 /usr/include/bits/types/struct_itimerspec.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +1287 11023853 1776766428000000000 81b3c862d757d31fa9585485df82c1f6 0 /usr/include/bits/setjmp.h +1467 11023949 1776766428000000000 c65b4aa95fccac40bd98fee3ba150e60 0 /usr/include/bits/types/struct___jmp_buf_tag.h +1214 11023840 1776766428000000000 2fe7b4205802733911a5efa9b71bb5e6 0 /usr/include/bits/pthread_stack_min-dynamic.h +1489 15592196 1777923927264426507 d9c9c16faccc333851fa1d1a1a9c0e0f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_time.h +21201 15592157 1777923927261426513 368cd78bfbe5e29e658aa2a5326f9063 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3native.h +21266 11024117 1776766428000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11024118 1776766428000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1516 11023891 1776766428000000000 046e6949e60c5229cc0f25afa40a0c7d 0 /usr/include/bits/stdlib-bsearch.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +6841 11023755 1776766428000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +6332 15592188 1777923927264426507 e46b39fefa824d3bef7915a22a3cbeab 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/platform.c +25760 15592168 1777923927262426511 91513c3fe4d6179408927b6f25a20e31 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/context.c +3794 15568174 1777922721699272917 42f44f0344ca976c19820ae587ff2c10 1 include/limits.h +5839 11024036 1776766428000000000 93606ee9e7d5800ac5b8e3efedd3f157 0 /usr/include/limits.h +5198 11023832 1776766428000000000 a6dd17f359e45199ea5666f65b1113a6 0 /usr/include/bits/posix1_lim.h +3175 11023807 1776766428000000000 b08b1c7bc1b5a70132a5b8b175b8c0db 0 /usr/include/bits/local_lim.h +2867 11023833 1776766428000000000 7d8aa86701e9a380845c5cd8a669e984 0 /usr/include/bits/posix2_lim.h +3858 11023992 1776766428000000000 6056c22530b9b6e43d3215eee277a553 0 /usr/include/bits/xopen_lim.h +1385 11023977 1776766428000000000 59219f4f906088fd1473df647db44849 0 /usr/include/bits/uio_lim.h +15194 15592179 1777923927263426509 cc2653c900eea5854d3118df97d564cc 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/monitor.c +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +6268 15568152 1777922721698272920 f23d0597dbe24fbef0b9db0a6a912bdb 1 include/float.h +35148 15592210 1777923927265426505 371ef2deaaf656211c21bd031730bc45 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/window.c +41395 15592173 1777923927262426511 fd2bdc39d9a0f3e9cbdf4151a429af0b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/input.c +504825 15592177 1777923927263426509 e792314d005187ea839d8a118bf5a826 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/mappings.h +11947 15592197 1777923927264426507 a6026f9e8a003c782bd514b578ed47fb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/vulkan.c +1816 15592190 1777923927264426507 becad53c5bcd77daf7f13b36a669ff80 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_module.c +8794 11023998 1776766428000000000 1e941a0fcec84e68e593320606a258d5 0 /usr/include/dlfcn.h +2521 11023766 1776766428000000000 ce423e8702be28530185e4b09b199fdf 0 /usr/include/bits/dlfcn.h +1119 11023765 1776766428000000000 212bcf73af743c3898fdc9ef533a0cbf 0 /usr/include/bits/dl_find_object.h +3245 15592193 1777923927264426507 6da2432577062b037d05bf9685421152 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_thread.c +2206 15592195 1777923927264426507 f4c2594a47b4f565719a8a5a9f0a444c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_time.c +3044 15592191 1777923927264426507 34fbca07f16ff7c4f5d37b58374af726 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_poll.c +1679 11024003 1776766428000000000 abb7aa3ce3560985cdcc5222002abe0a 0 /usr/include/errno.h +1426 11023773 1776766428000000000 f5901b3b5db0a666bc76fe7ac755756b 0 /usr/include/bits/errno.h +23 8943817 1770625897000000000 0e9514526df5411989c0921d62c34bb0 0 /usr/include/linux/errno.h +31 8943586 1770625897000000000 303204c8e8dd5d0b26a8bbfede43c812 0 /usr/include/asm/errno.h +5648 8943542 1770625897000000000 8becdc7faaf464f4f03c90038b9730e0 0 /usr/include/asm-generic/errno.h +1612 8943541 1770625897000000000 9e53730016da2684ae9a8bb2284166de 0 /usr/include/asm-generic/errno-base.h +894 11023936 1776766428000000000 21d9a2571870c420b53485fe487743c5 0 /usr/include/bits/types/error_t.h +12404 15592175 1777923927262426511 ebe2a4724621dc831b6c06e12f74d4d5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/linux_joystick.c +13793 11024176 1776766428000000000 9f12c6bf198df3a88c2d747996baf030 0 /usr/include/sys/stat.h +2231 11023878 1776766428000000000 eeced79f6a58db284452746e269ed387 0 /usr/include/bits/stat.h +6210 11023899 1776766428000000000 2fe01a59de528f1892df1bc5eef7c7cc 0 /usr/include/bits/struct_stat.h +1400 11023882 1776766428000000000 2002a64c42584c7d184facbe3d81a350 0 /usr/include/bits/statx.h +7838 8944322 1770625897000000000 c0813c1096a17ee5a243bf75dcb7977a 0 /usr/include/linux/stat.h +2409 11023881 1776766428000000000 1ca18c39930458d2b106898c1f1ed517 0 /usr/include/bits/statx-generic.h +1202 11023966 1776766428000000000 adf1f98ff50dc6da3f9c81c1f7718940 0 /usr/include/bits/types/struct_statx_timestamp.h +2248 11023965 1776766428000000000 13e0688c779dbc994826255da64ed106 0 /usr/include/bits/types/struct_statx.h +3901 11024135 1776766428000000000 51573e40baf39611dae19b6b79da6b5a 0 /usr/include/sys/inotify.h +1080 11023796 1776766428000000000 23db2031318a86cc91c8de94ba8271de 0 /usr/include/bits/inotify.h +11458 11024006 1776766428000000000 6761c01cab1e7a637ff70b712787863d 0 /usr/include/fcntl.h +2246 11023779 1776766428000000000 230f6d44354f98fab2643bb2fe61a31c 0 /usr/include/bits/fcntl.h +15826 11023778 1776766428000000000 a89c09049a7837aa75452e239a5650fd 0 /usr/include/bits/fcntl-linux.h +1066 11023950 1776766428000000000 930adb19f5f9cbc3933b958f4a1e5ffa 0 /usr/include/bits/types/struct_iovec.h +4477 8943829 1770625897000000000 cb9419cc89a7af265a184c1f6f002f00 0 /usr/include/linux/falloc.h +1450 8944213 1770625897000000000 dfc953efad59381f85cedbcaf15d1f22 0 /usr/include/linux/openat2.h +2041 11023826 1776766428000000000 7fb288a7769cdc7b7a64bda1f15cccd2 0 /usr/include/bits/openat2.h +12617 11023997 1776766428000000000 f18eaf57a7b514f3b577f9f5a6bc2d33 0 /usr/include/dirent.h +1771 11023763 1776766428000000000 23e0e14a4e8b16a68e0bc2941bc51c70 0 /usr/include/bits/dirent.h +1275 11023764 1776766428000000000 05d55b8f8aff261c558e2bf919c00c3e 0 /usr/include/bits/dirent_ext.h +22943 15592219 1777923927267426501 61daf1865cea794f6fe989a933855d52 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/xkb_unicode.c +29639 15592169 1777923927262426511 1a0561496727613edebd464a7417f6c3 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/egl_context.c +11935 15592187 1777923927264426507 4c3e6494b0bcc0aee47c28a18bda9100 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/osmesa_context.c +70569 15592215 1777923927266426503 95309a7537992a74bb2bc4bf449110d0 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_init.c +7675 11024038 1776766428000000000 f38e3af658cf4e4d245a435a9a10f0a0 0 /usr/include/locale.h +1368 11023808 1776766428000000000 a15e215b176aca549a08eeec063be072 0 /usr/include/bits/locale.h +20136 15592216 1777923927266426503 fb57e4d2291d8c29f447b0cda750a942 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_monitor.c +106419 15592218 1777923927267426501 71a3c2a523df63f5cb929d61fe0824c3 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_window.c +3118 11320738 1770539241000000000 49c18fff52345f9fbca72361b14cde5c 0 /usr/include/X11/cursorfont.h +5236 7769027 1766144024000000000 d1fbdb8a1a35d2391ee2c34805ef3f1e 0 /usr/include/X11/Xmd.h +23690 15592171 1777923927262426511 38704d9b41375b7557c5fe54e0e4eb99 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/glx_context.c diff --git a/.zig-cache/h/ec48e520ff9f63bf44f2169eb186f6cb.txt b/.zig-cache/h/ec48e520ff9f63bf44f2169eb186f6cb.txt new file mode 100644 index 0000000..572bd81 --- /dev/null +++ b/.zig-cache/h/ec48e520ff9f63bf44f2169eb186f6cb.txt @@ -0,0 +1,19 @@ +0 +50 15596151 1777925798684431311 fd3888aa7ca9778df50390896cce6318 2 o/da8bf749420ef1065612c05b8ed536b3/raygui.c +293735 15590661 1777923923667433573 7cfda270441ca39c49b2e81410b1effb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/src/raygui.h +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +351 15608422 1738927222000000000 da08a2d3368091efc0a7185be5672029 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdarg.h +12030 15608436 1738927222000000000 26ed05f1c0047de7dce6035be193f801 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/alltypes.h +167 15607052 1738927222000000000 e9da61c73c730980972a824176188baf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdbool.h +6097 15608386 1738927222000000000 bfab932e271831504f4ddaa58ab246c9 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdio.h +67218 15608547 1738927221000000000 1fa71b76d45cf8fef0abb1dae850f9f2 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/wasi/api.h +575 15608576 1738927222000000000 39c69d5b8584a46c3a3c1a1ed7ea7644 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stddef.h +2578 15608527 1738927222000000000 0a5bb2760329226e49320fbf5ceb1abe 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdint.h +815 15608447 1738927222000000000 cd851a9784f94f6596041d1e6a402eb1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/bits/stdint.h +1123 15608335 1738927222000000000 05a6a8793bf10dec3a28bc91a5d11897 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/features.h +3041 15608333 1738927222000000000 674d66a327c388875d7daa272ead7369 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/string.h +964 15607137 1738927222000000000 b380eb8513f60d9c20a2673704aa7687 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/strings.h +11491 15608596 1738927222000000000 efae42386740518b1f626a76459cd25d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/math.h +1787 15608457 1738927222000000000 1f72f697f2a98f6405ff841e95c980f5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/ctype.h +4903 15608525 1738927222000000000 ed1c72b1bae7a8f66cf26387f5a3450d 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/stdlib.h +219 15608608 1738927222000000000 a3c11fe0f49806a9c8748497c3a5d08c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/upstream/emscripten/cache/sysroot/include/alloca.h diff --git a/.zig-cache/h/ee5d3a6091ed4294a9287a9de706b276.txt b/.zig-cache/h/ee5d3a6091ed4294a9287a9de706b276.txt new file mode 100644 index 0000000..14092c7 --- /dev/null +++ b/.zig-cache/h/ee5d3a6091ed4294a9287a9de706b276.txt @@ -0,0 +1,278 @@ +0 +460816 2104748 1749858906000000000 19b59f2a2768926dd4cb35a090cb8868 0 /lib64/libGL.so +1313184 11320745 1770539241000000000 e72e4619f955c3a38211536766b516f4 0 /lib64/libX11.so +47088 11321900 1769439156000000000 da6f4be2e87e2aa16772a75fa6a36f63 0 /lib64/libXrandr.so +14328 11321926 1769438631000000000 621184dc819e1014d93ea9a7f28bdccb 0 /lib64/libXinerama.so +75832 11321942 1725514872000000000 8080cfc6a1c65c31d450aeb5fedf0788 0 /lib64/libXi.so +47048 11322029 1730878554000000000 81c5a9837f418f236c79e736ea7f1e53 0 /lib64/libXcursor.so +179546 15592265 1777923927288426459 e6c02b151e39c59246cdfe8aeaaa21f4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rcore.c +94278 15592270 1777923927290426456 148e15819214db74e0525ec276acecdd 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rshapes.c +226085 15592272 1777923927291426454 57703b4cb9d20c85f2494106b300ce4c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rtextures.c +117970 15592271 1777923927291426454 31672e71fc2d475bd7ec65a7f43b43cb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rtext.c +338872 15592269 1777923927290426456 76fc55680b7dd750a09c7c8d4885d438 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rmodels.c +113824 15592256 1777923927286426463 eaa3ac47a6f370a3247b2e595e877cae 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raudio.c +6000 15592267 1777923927288426459 c08daa562131e2220de1a06bca726720 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rglfw.c +50 15596151 1777925798684431311 fd3888aa7ca9778df50390896cce6318 2 o/da8bf749420ef1065612c05b8ed536b3/raygui.c +14504 15592172 1777923927262426511 b27f6b3bb53bc837cf7ea3290ce6416e 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/init.c +35817 15592174 1777923927262426511 f72e6da24b2e8dc2c561d4faf974a05c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/internal.h +241826 15592156 1777923927261426513 86501dc510331da26275322e654ec46a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +417 15568047 1777922721690272950 d2edf43390585163b0f70c6bd1d7e3b7 1 include/__stddef_header_macro.h +717 15568052 1777922721690272950 81288588f2bdd7ac4f213fa113429ef2 1 include/__stddef_ptrdiff_t.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +708 15568051 1777922721690272950 04b70454bf7cdd0c492cfaf134f95be7 1 include/__stddef_offsetof.h +27519 15568253 1777922721701272909 1bf965d23c79a082ac103b8d4944724e 1 include/stdint.h +8268 11441074 1770636718000000000 07868a6486476f79d1af8befa09ff966 0 /usr/include/stdint.h +4286 11440764 1770636718000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11440969 1770636718000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11440968 1770636718000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11440952 1770636718000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11440883 1770636718000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11441073 1770636718000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11441083 1770636718000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11440770 1770636718000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11440986 1770636718000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11440985 1770636718000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +8806 11440885 1770636718000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11440935 1770636718000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11440881 1770636718000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +1906 11440948 1770636718000000000 eb31012558f3028fc2c3c0def47ccc8a 0 /usr/include/bits/wchar.h +1037 11440844 1770636718000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +1049 11440846 1770636718000000000 df8b58b124e95d233ec646186fc72d07 0 /usr/include/bits/stdint-uintn.h +1305 11440845 1770636718000000000 e13a68eb8203cd6be160c31f99d931f7 0 /usr/include/bits/stdint-least.h +6421 15592189 1777923927264426507 9430a43cbffb7932dc5ccfe1bf2d0807 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/platform.h +11827 15592185 1777923927264426507 4beac7be71da25898297d83d4e922499 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/null_platform.h +44741 15592217 1777923927266426503 6868a25f2f702569928920058ddd21bf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_platform.h +45053 11441179 1770636718000000000 61decd3126c9fca1538df8298cac1894 0 /usr/include/unistd.h +5910 11440795 1770636718000000000 3ab8ab6e5779785e032604f1768b415c 0 /usr/include/bits/posix_opt.h +3791 11440731 1770636718000000000 e918da89dc6f1bc95caac7b9e99e3ccc 0 /usr/include/bits/environments.h +23828 11440722 1770636718000000000 9cf65881ab165e5e8e291a2f7fcd0a71 0 /usr/include/bits/confname.h +1810 11440750 1770636718000000000 996cb3fd9509868b01621c74e4a86ade 0 /usr/include/bits/getopt_posix.h +3667 11440748 1770636718000000000 ac9188a8d7cc4aac4ca3ac108e99f032 0 /usr/include/bits/getopt_core.h +2035 11440941 1770636718000000000 0cb61ab97cf5643355f3236fdfb9904c 0 /usr/include/bits/unistd_ext.h +377 8943771 1770625897000000000 7ed06359dec8788b24849d80d4e70c9a 0 /usr/include/linux/close_range.h +13045 11441069 1770636718000000000 efc9e225e109bb08a8dec4661ace2e4c 0 /usr/include/signal.h +3313 11440827 1770636718000000000 c7b07d26fe58fc7ceff1ae4edad8acd6 0 /usr/include/bits/signum-generic.h +2580 11440826 1770636718000000000 500defef7a2bd9a9e56449a3aea3b0f9 0 /usr/include/bits/signum-arch.h +272 11440903 1770636718000000000 52033494d2efb18f3ae4d42d90be994c 0 /usr/include/bits/types/sig_atomic_t.h +195 11440906 1770636718000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11440892 1770636718000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +877 11440929 1770636718000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +1905 11440729 1770636718000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11440730 1770636718000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +208 11440932 1770636718000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +3892 11440905 1770636718000000000 9f30a8a17236994ddab5a49513bee1c1 0 /usr/include/bits/types/siginfo_t.h +1148 11440893 1770636718000000000 cef99022964de0d2a9bb4a66335a242a 0 /usr/include/bits/types/__sigval_t.h +729 11440821 1770636718000000000 732ba145bdaaec5752d3851d994fb038 0 /usr/include/bits/siginfo-arch.h +7537 11440823 1770636718000000000 4397eb5131c9e02a702340cc690db708 0 /usr/include/bits/siginfo-consts.h +204 11440822 1770636718000000000 070bf764547621a5cbd9eca15e56bf40 0 /usr/include/bits/siginfo-consts-arch.h +599 11440907 1770636718000000000 9a9be4e0a7b8d98d52679616ab1b7362 0 /usr/include/bits/types/sigval_t.h +1204 11440904 1770636718000000000 ab141640b4254a15993e20837b92ffa9 0 /usr/include/bits/types/sigevent_t.h +1471 11440820 1770636718000000000 2763ca41204119b32bf53713071bb096 0 /usr/include/bits/sigevent-consts.h +2935 11440818 1770636718000000000 abb4550dd27d1f45d7bd71b5a552f386 0 /usr/include/bits/sigaction.h +4266 11440819 1770636718000000000 8e4aadcbffc06002a69da0003c1793a1 0 /usr/include/bits/sigcontext.h +1062 11440908 1770636718000000000 3418e41d444a3efa09c1989618745709 0 /usr/include/bits/types/stack_t.h +5842 11441154 1770636718000000000 3850964a3dfeecfdf8d6341ce10a867b 0 /usr/include/sys/ucontext.h +1168 11440828 1770636718000000000 8d25e4dc4342ca228643759acadb8af6 0 /usr/include/bits/sigstack.h +1283 11440829 1770636718000000000 3177a841d4601f625a64ad164ae45250 0 /usr/include/bits/sigstksz.h +1188 11440837 1770636718000000000 0a23e9e025646d8d7930c5f34b481456 0 /usr/include/bits/ss_flags.h +1073 11440925 1770636718000000000 6ec7e47258c49e849f75f41527e676a0 0 /usr/include/bits/types/struct_sigstack.h +3072 11440804 1770636718000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11440879 1770636718000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11440803 1770636718000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11440719 1770636718000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11440858 1770636718000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11440859 1770636718000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1692 11440830 1770636718000000000 bc31047fff5a76a10c2880762a977d27 0 /usr/include/bits/sigthread.h +1285 11440824 1770636718000000000 368ef36453d66bf3b3d3595424daf7ac 0 /usr/include/bits/signal_ext.h +99801 11320731 1770539241000000000 f2e7c6c90e11927568ff931d109f936c 0 /usr/include/X11/Xlib.h +5713 11441153 1770636718000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +143 11440894 1770636718000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11440895 1770636718000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +159 11440933 1770636718000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +2299 11440961 1770636718000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +2450 11440720 1770636718000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11440936 1770636718000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11441127 1770636718000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11440810 1770636718000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +416 11440930 1770636718000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +20137 7769018 1766144024000000000 382791d667a3393547f807899249bfc0 0 /usr/include/X11/X.h +7946 7769025 1766144024000000000 8a5039c8a7aa3a4eab5f7181393ac108 0 /usr/include/X11/Xfuncproto.h +3115 7769030 1766144024000000000 d53b0559a65c0bcdb77ed0459f1b9976 0 /usr/include/X11/Xosdefs.h +2769 7769135 1766144024000000000 0d41ae60a19d8f9ba25f1763119261cc 0 /usr/include/X11/keysym.h +186629 7769136 1766144024000000000 bd52d531f256dfa6f7971ce3c84e5d8b 0 /usr/include/X11/keysymdef.h +2518 7769023 1766144024000000000 a6ecf58bbcdb259e383e67043e2a7022 0 /usr/include/X11/Xatom.h +10628 11320736 1770539241000000000 9b0233263c20c2e8be88d5e81fbf2202 0 /usr/include/X11/Xresource.h +13200 11322026 1730878554000000000 3e56a893977bb933a42f01ba8765a1e8 0 /usr/include/X11/Xcursor/Xcursor.h +34258 11441075 1770636718000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +381 11440889 1770636718000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11440891 1770636718000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11440888 1770636718000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11440887 1770636718000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11440886 1770636718000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11440909 1770636718000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11440896 1770636718000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11440851 1770636718000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +4929 11440744 1770636718000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11440743 1770636718000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +17060 11321897 1769439156000000000 1884746db8290f2b31b7f8451b1cf4b3 0 /usr/include/X11/extensions/Xrandr.h +6909 7769087 1766144024000000000 401965d00acc575149fba334f8bc506d 0 /usr/include/X11/extensions/randr.h +33826 96756 1734163523000000000 cd6d26a1a49037b6952f6ad6add5241b 0 /usr/include/X11/extensions/Xrender.h +21355 11320737 1770539241000000000 52ce1ad0b2c8b33c883e4de9cf2e58fc 0 /usr/include/X11/Xutil.h +6933 7769092 1766144024000000000 f3454f10c8ec914bc2cacc67ae344c58 0 /usr/include/X11/extensions/render.h +2401 7769024 1766144024000000000 8c25483e69b3966a7bf02ad71233d30b 0 /usr/include/X11/Xdefs.h +30994 11320728 1770539241000000000 658cd959aab5d6441ea7ca46bbfcb740 0 /usr/include/X11/XKBlib.h +19697 7769051 1766144024000000000 1231e8955febccf3c025770c66a93818 0 /usr/include/X11/extensions/XKBstr.h +28212 7769048 1766144024000000000 6a2dd9db6376855e6a13ac1dc2254091 0 /usr/include/X11/extensions/XKB.h +1964 11321922 1769438631000000000 8307bc8fd193fbd4b22c24a07b9e56ad 0 /usr/include/X11/extensions/Xinerama.h +21969 11321939 1725514872000000000 f898f73ab9f0b0455f75ad7e86f933d4 0 /usr/include/X11/extensions/XInput2.h +11151 7769045 1766144024000000000 f4e9b097c0ff2c41507c68b4960a37cb 0 /usr/include/X11/extensions/XI2.h +1928 8741105 1769438528000000000 4e4a900ecc48c6c5eaaadb164d67df47 0 /usr/include/X11/extensions/Xge.h +7750 4242540 1756837749000000000 0d98a55dff8c00f367e9aece0d0a1143 0 /usr/include/X11/extensions/Xfixes.h +5924 7769123 1766144024000000000 b5e9bd0eec3d3c1748a593e505171a71 0 /usr/include/X11/extensions/xfixeswire.h +4132 8741110 1769438528000000000 8aaad0750a17168ab35987a0fd39ecf0 0 /usr/include/X11/extensions/shape.h +1878 7769098 1766144024000000000 104206d1aae79c53870ed605be13e54f 0 /usr/include/X11/extensions/shapeconst.h +1288 15592220 1777923927267426501 e581c6e4cdd807e79c0a665fc1bb619f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/xkb_unicode.h +1292 15592192 1777923927264426507 c453ea96e91669ea925c8bfb93fe5bb7 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_poll.h +22 11441045 1770636718000000000 0ea58fcbabea8c4434197b25c0da0032 0 /usr/include/poll.h +3030 11441112 1770636718000000000 fdfc712b78cbcaa0020d4464fb281b64 0 /usr/include/sys/poll.h +2076 11440791 1770636718000000000 d4de1743efaa71a7637fb37b349b20f7 0 /usr/include/bits/poll.h +1424 15592183 1777923927263426509 9ae4151868a02c1a8ea9749672383fb1 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/null_joystick.h +2322 15592176 1777923927262426511 a5affdc2a0143346be41f93f566b6938 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/linux_joystick.h +16913 8943925 1770625897000000000 19cc0a8c96115bd0b4fbe906dc1f6915 0 /usr/include/linux/input.h +9164 11441146 1770636718000000000 d2e1b3053beaf053af8a55c6a804fde1 0 /usr/include/sys/time.h +2032 11441098 1770636718000000000 cbe6601caeaa9849483d92383653843e 0 /usr/include/sys/ioctl.h +1005 11440759 1770636718000000000 38935023d2f5efc233bbd63192a23f93 0 /usr/include/bits/ioctls.h +32 8943591 1770625897000000000 1014a0ae33d0bed260382fbd3c912982 0 /usr/include/asm/ioctls.h +3987 8943548 1770625897000000000 d4ce71e9aa1f00a5b67c8b21b6a30d5b 0 /usr/include/asm-generic/ioctls.h +163 8943932 1770625897000000000 9a139ff78a7a978a13a83c0722fc021d 0 /usr/include/linux/ioctl.h +31 8943590 1770625897000000000 5f11f2dd8e479e58c3cf546e72403770 0 /usr/include/asm/ioctl.h +3518 8943547 1770625897000000000 4b7aa229557b073687359ca327709a32 0 /usr/include/asm-generic/ioctl.h +6846 8944315 1770625897000000000 d2b055f7283492c05492a5924f94aec4 0 /usr/include/linux/sockios.h +321 8943578 1770625897000000000 426fd8fd87f0a7222c2d8dc0b1c11a1e 0 /usr/include/asm/bitsperlong.h +1092 8943539 1770625897000000000 ea09d2bd626e1051f84d4ecee37ba039 0 /usr/include/asm-generic/bitsperlong.h +33 8943625 1770625897000000000 ddabb13f9fd87bf61e5f15f7a99b4729 0 /usr/include/asm/sockios.h +447 8943565 1770625897000000000 e503e15c8b0357f68274467ba5f06da4 0 /usr/include/asm-generic/sockios.h +2089 11440758 1770636718000000000 93897a02d50af887190f5248a717605e 0 /usr/include/bits/ioctl-types.h +3568 11441152 1770636718000000000 7fd74c28a21229e87ba5588cee27bd8c 0 /usr/include/sys/ttydefaults.h +1829 8944384 1770625897000000000 64ed48c0a52d7d50d7685f6332d61a80 0 /usr/include/linux/types.h +31 8943632 1770625897000000000 748039e47be584104c75dc853bfee6d8 0 /usr/include/asm/types.h +233 8943572 1770625897000000000 ff35ee9081c54a4556677db7b6ac43bd 0 /usr/include/asm-generic/types.h +864 8943546 1770625897000000000 de8f38f0cdc81bf3a5b301889f3dc586 0 /usr/include/asm-generic/int-ll64.h +1098 8944239 1770625897000000000 d50b3f49c69b44a5ecd1f232af677d5e 0 /usr/include/linux/posix_types.h +2135 8944323 1770625897000000000 7f1dcecb733611ba8bc38c8fa69c11bb 0 /usr/include/linux/stddef.h +224 8943606 1770625897000000000 d200bb7a30c7371a4580f935befe5542 0 /usr/include/asm/posix_types.h +609 8943608 1770625897000000000 45284a1e84848c31de23d3bd515534ee 0 /usr/include/asm/posix_types_64.h +2420 8943556 1770625897000000000 27c6e0a2b3849c0a9a5f71c86e17deb5 0 /usr/include/asm-generic/posix_types.h +31350 8943924 1770625897000000000 7eb002eb71a3e9a208ffc627561eda0b 0 /usr/include/linux/input-event-codes.h +937 8943972 1770625897000000000 65da8eafce628e0f5da011204e471ee0 0 /usr/include/linux/limits.h +25940 11441056 1770636718000000000 d3d9037b10d420aa0b919ad6d97bdab1 0 /usr/include/regex.h +1674 15592194 1777923927264426507 4c75518582750b9acebe3f524a3ea420 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_thread.h +48570 11441052 1770636718000000000 df73001c3d08af59a57b790c20f13f2a 0 /usr/include/pthread.h +5043 11441060 1770636718000000000 e6a51b852746c12c94ed682ec128431b 0 /usr/include/sched.h +5952 11440808 1770636718000000000 0926186d78c26fdbfea09ab846c93da9 0 /usr/include/bits/sched.h +4558 8944287 1770625897000000000 13cfeea4f632939bde4c2db64ec930ff 0 /usr/include/linux/sched/types.h +1073 11440918 1770636718000000000 fd5bfcedcccd0699759e0e9b4b5f31d2 0 /usr/include/bits/types/struct_sched_param.h +4516 11440723 1770636718000000000 eab9f52a0722cf3bd47401680264c9bd 0 /usr/include/bits/cpu-set.h +15326 11441174 1770636718000000000 dd0cebc61fc90f380c881a1cbd85230a 0 /usr/include/time.h +3331 11440880 1770636718000000000 d088285f55f90486f8680c7de68e427d 0 /usr/include/bits/time.h +6203 11440884 1770636718000000000 ccfa5c0039c1ddbdb09c6db5d1922cc3 0 /usr/include/bits/timex.h +760 11440931 1770636718000000000 3cf515d0336ee94d22cc413b45febc49 0 /usr/include/bits/types/struct_tm.h +288 11440912 1770636718000000000 2de06c14c40bd39deaf2f372dace4ac7 0 /usr/include/bits/types/struct_itimerspec.h +983 11440899 1770636718000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11440890 1770636718000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +1287 11440814 1770636718000000000 81b3c862d757d31fa9585485df82c1f6 0 /usr/include/bits/setjmp.h +1467 11440910 1770636718000000000 c65b4aa95fccac40bd98fee3ba150e60 0 /usr/include/bits/types/struct___jmp_buf_tag.h +1214 11440801 1770636718000000000 2fe7b4205802733911a5efa9b71bb5e6 0 /usr/include/bits/pthread_stack_min-dynamic.h +1489 15592196 1777923927264426507 d9c9c16faccc333851fa1d1a1a9c0e0f 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_time.h +21201 15592157 1777923927261426513 368cd78bfbe5e29e658aa2a5326f9063 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3native.h +21266 11441078 1770636718000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11441079 1770636718000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +42963 11441077 1770636718000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +1697 11440945 1770636718000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11440946 1770636718000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +1203 11440706 1770636718000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11440901 1770636718000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11440853 1770636718000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +6841 11440716 1770636718000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +6332 15592188 1777923927264426507 e46b39fefa824d3bef7915a22a3cbeab 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/platform.c +25760 15592168 1777923927262426511 91513c3fe4d6179408927b6f25a20e31 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/context.c +3794 15568174 1777922721699272917 42f44f0344ca976c19820ae587ff2c10 1 include/limits.h +5839 11440997 1770636718000000000 93606ee9e7d5800ac5b8e3efedd3f157 0 /usr/include/limits.h +5198 11440793 1770636718000000000 a6dd17f359e45199ea5666f65b1113a6 0 /usr/include/bits/posix1_lim.h +3175 11440768 1770636718000000000 b08b1c7bc1b5a70132a5b8b175b8c0db 0 /usr/include/bits/local_lim.h +2867 11440794 1770636718000000000 7d8aa86701e9a380845c5cd8a669e984 0 /usr/include/bits/posix2_lim.h +3858 11440953 1770636718000000000 6056c22530b9b6e43d3215eee277a553 0 /usr/include/bits/xopen_lim.h +1385 11440938 1770636718000000000 59219f4f906088fd1473df647db44849 0 /usr/include/bits/uio_lim.h +15194 15592179 1777923927263426509 cc2653c900eea5854d3118df97d564cc 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/monitor.c +53032 11441001 1770636718000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +5402 11440771 1770636718000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11440765 1770636718000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +1215 11440745 1770636718000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11440747 1770636718000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11440746 1770636718000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11440773 1770636718000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11440772 1770636718000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11440775 1770636718000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11440774 1770636718000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11440763 1770636718000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +6268 15568152 1777922721698272920 f23d0597dbe24fbef0b9db0a6a912bdb 1 include/float.h +35148 15592210 1777923927265426505 371ef2deaaf656211c21bd031730bc45 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/window.c +41395 15592173 1777923927262426511 fd2bdc39d9a0f3e9cbdf4151a429af0b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/input.c +504825 15592177 1777923927263426509 e792314d005187ea839d8a118bf5a826 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/mappings.h +11947 15592197 1777923927264426507 a6026f9e8a003c782bd514b578ed47fb 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/vulkan.c +1816 15592190 1777923927264426507 becad53c5bcd77daf7f13b36a669ff80 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_module.c +8794 11440959 1770636718000000000 1e941a0fcec84e68e593320606a258d5 0 /usr/include/dlfcn.h +2521 11440727 1770636718000000000 ce423e8702be28530185e4b09b199fdf 0 /usr/include/bits/dlfcn.h +1119 11440726 1770636718000000000 212bcf73af743c3898fdc9ef533a0cbf 0 /usr/include/bits/dl_find_object.h +3245 15592193 1777923927264426507 6da2432577062b037d05bf9685421152 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_thread.c +2206 15592195 1777923927264426507 f4c2594a47b4f565719a8a5a9f0a444c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_time.c +3044 15592191 1777923927264426507 34fbca07f16ff7c4f5d37b58374af726 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/posix_poll.c +1679 11440964 1770636718000000000 abb7aa3ce3560985cdcc5222002abe0a 0 /usr/include/errno.h +1426 11440734 1770636718000000000 f5901b3b5db0a666bc76fe7ac755756b 0 /usr/include/bits/errno.h +23 8943817 1770625897000000000 0e9514526df5411989c0921d62c34bb0 0 /usr/include/linux/errno.h +31 8943586 1770625897000000000 303204c8e8dd5d0b26a8bbfede43c812 0 /usr/include/asm/errno.h +5648 8943542 1770625897000000000 8becdc7faaf464f4f03c90038b9730e0 0 /usr/include/asm-generic/errno.h +1612 8943541 1770625897000000000 9e53730016da2684ae9a8bb2284166de 0 /usr/include/asm-generic/errno-base.h +894 11440897 1770636718000000000 21d9a2571870c420b53485fe487743c5 0 /usr/include/bits/types/error_t.h +12404 15592175 1777923927262426511 ebe2a4724621dc831b6c06e12f74d4d5 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/linux_joystick.c +13793 11441137 1770636718000000000 9f12c6bf198df3a88c2d747996baf030 0 /usr/include/sys/stat.h +2231 11440839 1770636718000000000 eeced79f6a58db284452746e269ed387 0 /usr/include/bits/stat.h +6210 11440860 1770636718000000000 2fe01a59de528f1892df1bc5eef7c7cc 0 /usr/include/bits/struct_stat.h +1400 11440843 1770636718000000000 2002a64c42584c7d184facbe3d81a350 0 /usr/include/bits/statx.h +7838 8944322 1770625897000000000 c0813c1096a17ee5a243bf75dcb7977a 0 /usr/include/linux/stat.h +2409 11440842 1770636718000000000 1ca18c39930458d2b106898c1f1ed517 0 /usr/include/bits/statx-generic.h +1202 11440927 1770636718000000000 adf1f98ff50dc6da3f9c81c1f7718940 0 /usr/include/bits/types/struct_statx_timestamp.h +2248 11440926 1770636718000000000 13e0688c779dbc994826255da64ed106 0 /usr/include/bits/types/struct_statx.h +3901 11441096 1770636718000000000 51573e40baf39611dae19b6b79da6b5a 0 /usr/include/sys/inotify.h +1080 11440757 1770636718000000000 23db2031318a86cc91c8de94ba8271de 0 /usr/include/bits/inotify.h +11458 11440967 1770636718000000000 6761c01cab1e7a637ff70b712787863d 0 /usr/include/fcntl.h +2246 11440740 1770636718000000000 230f6d44354f98fab2643bb2fe61a31c 0 /usr/include/bits/fcntl.h +15826 11440739 1770636718000000000 a89c09049a7837aa75452e239a5650fd 0 /usr/include/bits/fcntl-linux.h +1066 11440911 1770636718000000000 930adb19f5f9cbc3933b958f4a1e5ffa 0 /usr/include/bits/types/struct_iovec.h +4477 8943829 1770625897000000000 cb9419cc89a7af265a184c1f6f002f00 0 /usr/include/linux/falloc.h +1450 8944213 1770625897000000000 dfc953efad59381f85cedbcaf15d1f22 0 /usr/include/linux/openat2.h +2041 11440787 1770636718000000000 7fb288a7769cdc7b7a64bda1f15cccd2 0 /usr/include/bits/openat2.h +12617 11440958 1770636718000000000 f18eaf57a7b514f3b577f9f5a6bc2d33 0 /usr/include/dirent.h +1771 11440724 1770636718000000000 23e0e14a4e8b16a68e0bc2941bc51c70 0 /usr/include/bits/dirent.h +1275 11440725 1770636718000000000 05d55b8f8aff261c558e2bf919c00c3e 0 /usr/include/bits/dirent_ext.h +22943 15592219 1777923927267426501 61daf1865cea794f6fe989a933855d52 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/xkb_unicode.c +29639 15592169 1777923927262426511 1a0561496727613edebd464a7417f6c3 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/egl_context.c +11935 15592187 1777923927264426507 4c3e6494b0bcc0aee47c28a18bda9100 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/osmesa_context.c +70569 15592215 1777923927266426503 95309a7537992a74bb2bc4bf449110d0 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_init.c +7675 11440999 1770636718000000000 f38e3af658cf4e4d245a435a9a10f0a0 0 /usr/include/locale.h +1368 11440769 1770636718000000000 a15e215b176aca549a08eeec063be072 0 /usr/include/bits/locale.h +20136 15592216 1777923927266426503 fb57e4d2291d8c29f447b0cda750a942 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_monitor.c +106419 15592218 1777923927267426501 71a3c2a523df63f5cb929d61fe0824c3 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/x11_window.c +3118 11320738 1770539241000000000 49c18fff52345f9fbca72361b14cde5c 0 /usr/include/X11/cursorfont.h +5236 7769027 1766144024000000000 d1fbdb8a1a35d2391ee2c34805ef3f1e 0 /usr/include/X11/Xmd.h +23690 15592171 1777923927262426511 38704d9b41375b7557c5fe54e0e4eb99 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/src/glx_context.c diff --git a/.zig-cache/h/f485d55388c57b1a6d2bb7ad7bca528a.txt b/.zig-cache/h/f485d55388c57b1a6d2bb7ad7bca528a.txt new file mode 100644 index 0000000..dde9016 --- /dev/null +++ b/.zig-cache/h/f485d55388c57b1a6d2bb7ad7bca528a.txt @@ -0,0 +1,162 @@ +0 +179546 15592265 1777923927288426459 e6c02b151e39c59246cdfe8aeaaa21f4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rcore.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +42963 11024116 1776766428000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +4286 11023803 1776766428000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +19842 11024008 1776766428000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11024007 1776766428000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11023991 1776766428000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11023922 1776766428000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11024112 1776766428000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11024122 1776766428000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11023809 1776766428000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11024025 1776766428000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11024024 1776766428000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +1697 11023984 1776766428000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11023985 1776766428000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +4929 11023783 1776766428000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11023782 1776766428000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +983 11023938 1776766428000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11023929 1776766428000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +5713 11024192 1776766428000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +8806 11023924 1776766428000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11023974 1776766428000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11023920 1776766428000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +143 11023933 1776766428000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +174 11023934 1776766428000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +208 11023971 1776766428000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +159 11023972 1776766428000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +1037 11023883 1776766428000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11024000 1776766428000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +1905 11023768 1776766428000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11023769 1776766428000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +2450 11023759 1776766428000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11023975 1776766428000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11024166 1776766428000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11023849 1776766428000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11023945 1776766428000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +206 11023931 1776766428000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +416 11023969 1776766428000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +877 11023968 1776766428000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +3072 11023843 1776766428000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11023918 1776766428000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11023842 1776766428000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11023758 1776766428000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11023897 1776766428000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11023898 1776766428000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1203 11023745 1776766428000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11023940 1776766428000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11023892 1776766428000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +34258 11024114 1776766428000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +381 11023928 1776766428000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11023930 1776766428000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11023927 1776766428000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11023926 1776766428000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11023925 1776766428000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11023948 1776766428000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11023935 1776766428000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11023890 1776766428000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +21266 11024117 1776766428000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11024118 1776766428000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +15326 11024213 1776766428000000000 dd0cebc61fc90f380c881a1cbd85230a 0 /usr/include/time.h +3331 11023919 1776766428000000000 d088285f55f90486f8680c7de68e427d 0 /usr/include/bits/time.h +6203 11023923 1776766428000000000 ccfa5c0039c1ddbdb09c6db5d1922cc3 0 /usr/include/bits/timex.h +760 11023970 1776766428000000000 3cf515d0336ee94d22cc413b45febc49 0 /usr/include/bits/types/struct_tm.h +288 11023951 1776766428000000000 2de06c14c40bd39deaf2f372dace4ac7 0 /usr/include/bits/types/struct_itimerspec.h +53032 11024040 1776766428000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +5402 11023810 1776766428000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11023804 1776766428000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +1215 11023784 1776766428000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11023786 1776766428000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11023785 1776766428000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11023812 1776766428000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11023811 1776766428000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11023814 1776766428000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11023813 1776766428000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11023802 1776766428000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +258136 15592268 1777923927289426458 36fb30cfa68d76bcc900b4fea38a7157 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rlgl.h +557459 15592112 1777923927256426522 2ee4da35738ca3fd429e246ffcc4e963 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glad.h +27519 15568253 1777922721701272909 1bf965d23c79a082ac103b8d4944724e 1 include/stdint.h +8268 11024113 1776766428000000000 07868a6486476f79d1af8befa09ff966 0 /usr/include/stdint.h +1906 11023987 1776766428000000000 eb31012558f3028fc2c3c0def47ccc8a 0 /usr/include/bits/wchar.h +1049 11023885 1776766428000000000 df8b58b124e95d233ec646186fc72d07 0 /usr/include/bits/stdint-uintn.h +1305 11023884 1776766428000000000 e13a68eb8203cd6be160c31f99d931f7 0 /usr/include/bits/stdint-least.h +90849 15592263 1777923927287426462 db41cf17388962b34436c4fde7782f23 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raymath.h +22533 15592266 1777923927288426459 cbeefe4aa2ae48eebcd037e4f86c02e6 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rgestures.h +22184 15592264 1777923927287426462 cd673acb0eee1d11118f9c543c1b96ed 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/rcamera.h +21703 15592233 1777923927279426477 a147737b6c68b2b89f993a9fe8b5e03b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/sinfl.h +6841 11023755 1776766428000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +28109 15592232 1777923927279426477 9a39a8073b251d465d23f4f98d4d0e0b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/sdefl.h +3794 15568174 1777922721699272917 42f44f0344ca976c19820ae587ff2c10 1 include/limits.h +5839 11024036 1776766428000000000 93606ee9e7d5800ac5b8e3efedd3f157 0 /usr/include/limits.h +5198 11023832 1776766428000000000 a6dd17f359e45199ea5666f65b1113a6 0 /usr/include/bits/posix1_lim.h +3175 11023807 1776766428000000000 b08b1c7bc1b5a70132a5b8b175b8c0db 0 /usr/include/bits/local_lim.h +937 8943972 1770625897000000000 65da8eafce628e0f5da011204e471ee0 0 /usr/include/linux/limits.h +1214 11023840 1776766428000000000 2fe7b4205802733911a5efa9b71bb5e6 0 /usr/include/bits/pthread_stack_min-dynamic.h +2867 11023833 1776766428000000000 7d8aa86701e9a380845c5cd8a669e984 0 /usr/include/bits/posix2_lim.h +3858 11023992 1776766428000000000 6056c22530b9b6e43d3215eee277a553 0 /usr/include/bits/xopen_lim.h +1385 11023977 1776766428000000000 59219f4f906088fd1473df647db44849 0 /usr/include/bits/uio_lim.h +11631 15592231 1777923927279426477 e20f072c356800ba394b5b82e64a3a40 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/rprand.h +45053 11024218 1776766428000000000 61decd3126c9fca1538df8298cac1894 0 /usr/include/unistd.h +5910 11023834 1776766428000000000 3ab8ab6e5779785e032604f1768b415c 0 /usr/include/bits/posix_opt.h +3791 11023770 1776766428000000000 e918da89dc6f1bc95caac7b9e99e3ccc 0 /usr/include/bits/environments.h +23828 11023761 1776766428000000000 9cf65881ab165e5e8e291a2f7fcd0a71 0 /usr/include/bits/confname.h +1810 11023789 1776766428000000000 996cb3fd9509868b01621c74e4a86ade 0 /usr/include/bits/getopt_posix.h +3667 11023787 1776766428000000000 ac9188a8d7cc4aac4ca3ac108e99f032 0 /usr/include/bits/getopt_core.h +2035 11023980 1776766428000000000 0cb61ab97cf5643355f3236fdfb9904c 0 /usr/include/bits/unistd_ext.h +377 8943771 1770625897000000000 7ed06359dec8788b24849d80d4e70c9a 0 /usr/include/linux/close_range.h +13793 11024176 1776766428000000000 9f12c6bf198df3a88c2d747996baf030 0 /usr/include/sys/stat.h +2231 11023878 1776766428000000000 eeced79f6a58db284452746e269ed387 0 /usr/include/bits/stat.h +6210 11023899 1776766428000000000 2fe01a59de528f1892df1bc5eef7c7cc 0 /usr/include/bits/struct_stat.h +1400 11023882 1776766428000000000 2002a64c42584c7d184facbe3d81a350 0 /usr/include/bits/statx.h +7838 8944322 1770625897000000000 c0813c1096a17ee5a243bf75dcb7977a 0 /usr/include/linux/stat.h +1829 8944384 1770625897000000000 64ed48c0a52d7d50d7685f6332d61a80 0 /usr/include/linux/types.h +31 8943632 1770625897000000000 748039e47be584104c75dc853bfee6d8 0 /usr/include/asm/types.h +233 8943572 1770625897000000000 ff35ee9081c54a4556677db7b6ac43bd 0 /usr/include/asm-generic/types.h +864 8943546 1770625897000000000 de8f38f0cdc81bf3a5b301889f3dc586 0 /usr/include/asm-generic/int-ll64.h +321 8943578 1770625897000000000 426fd8fd87f0a7222c2d8dc0b1c11a1e 0 /usr/include/asm/bitsperlong.h +1092 8943539 1770625897000000000 ea09d2bd626e1051f84d4ecee37ba039 0 /usr/include/asm-generic/bitsperlong.h +1098 8944239 1770625897000000000 d50b3f49c69b44a5ecd1f232af677d5e 0 /usr/include/linux/posix_types.h +2135 8944323 1770625897000000000 7f1dcecb733611ba8bc38c8fa69c11bb 0 /usr/include/linux/stddef.h +224 8943606 1770625897000000000 d200bb7a30c7371a4580f935befe5542 0 /usr/include/asm/posix_types.h +609 8943608 1770625897000000000 45284a1e84848c31de23d3bd515534ee 0 /usr/include/asm/posix_types_64.h +2420 8943556 1770625897000000000 27c6e0a2b3849c0a9a5f71c86e17deb5 0 /usr/include/asm-generic/posix_types.h +2409 11023881 1776766428000000000 1ca18c39930458d2b106898c1f1ed517 0 /usr/include/bits/statx-generic.h +1202 11023966 1776766428000000000 adf1f98ff50dc6da3f9c81c1f7718940 0 /usr/include/bits/types/struct_statx_timestamp.h +2248 11023965 1776766428000000000 13e0688c779dbc994826255da64ed106 0 /usr/include/bits/types/struct_statx.h +12617 11023997 1776766428000000000 f18eaf57a7b514f3b577f9f5a6bc2d33 0 /usr/include/dirent.h +1771 11023763 1776766428000000000 23e0e14a4e8b16a68e0bc2941bc51c70 0 /usr/include/bits/dirent.h +1275 11023764 1776766428000000000 05d55b8f8aff261c558e2bf919c00c3e 0 /usr/include/bits/dirent_ext.h +93702 15592247 1777923927284426468 9bce58225fa3dedb03ed4cab5c2b195a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/platforms/rcore_desktop_glfw.c +241826 15592156 1777923927261426513 86501dc510331da26275322e654ec46a 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3.h +417 15568047 1777922721690272950 d2edf43390585163b0f70c6bd1d7e3b7 1 include/__stddef_header_macro.h +717 15568052 1777922721690272950 81288588f2bdd7ac4f213fa113429ef2 1 include/__stddef_ptrdiff_t.h +708 15568051 1777922721690272950 04b70454bf7cdd0c492cfaf134f95be7 1 include/__stddef_offsetof.h +9164 11024185 1776766428000000000 d2e1b3053beaf053af8a55c6a804fde1 0 /usr/include/sys/time.h +21201 15592157 1777923927261426513 368cd78bfbe5e29e658aa2a5326f9063 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/glfw/include/GLFW/glfw3native.h +99801 8947721 1770539241000000000 f2e7c6c90e11927568ff931d109f936c 0 /usr/include/X11/Xlib.h +20137 7769018 1766144024000000000 382791d667a3393547f807899249bfc0 0 /usr/include/X11/X.h +7946 7769025 1766144024000000000 8a5039c8a7aa3a4eab5f7181393ac108 0 /usr/include/X11/Xfuncproto.h +3115 7769030 1766144024000000000 d53b0559a65c0bcdb77ed0459f1b9976 0 /usr/include/X11/Xosdefs.h +17060 8741258 1769439156000000000 1884746db8290f2b31b7f8451b1cf4b3 0 /usr/include/X11/extensions/Xrandr.h +6909 7769087 1766144024000000000 401965d00acc575149fba334f8bc506d 0 /usr/include/X11/extensions/randr.h +33826 96756 1734163523000000000 cd6d26a1a49037b6952f6ad6add5241b 0 /usr/include/X11/extensions/Xrender.h +21355 8947727 1770539241000000000 52ce1ad0b2c8b33c883e4de9cf2e58fc 0 /usr/include/X11/Xutil.h +2769 7769135 1766144024000000000 0d41ae60a19d8f9ba25f1763119261cc 0 /usr/include/X11/keysym.h +186629 7769136 1766144024000000000 bd52d531f256dfa6f7971ce3c84e5d8b 0 /usr/include/X11/keysymdef.h +6933 7769092 1766144024000000000 f3454f10c8ec914bc2cacc67ae344c58 0 /usr/include/X11/extensions/render.h +2401 7769024 1766144024000000000 8c25483e69b3966a7bf02ad71233d30b 0 /usr/include/X11/Xdefs.h +2518 7769023 1766144024000000000 a6ecf58bbcdb259e383e67043e2a7022 0 /usr/include/X11/Xatom.h diff --git a/.zig-cache/h/f938ff02dc2df607be59dbe7fdc20ddc.txt b/.zig-cache/h/f938ff02dc2df607be59dbe7fdc20ddc.txt new file mode 100644 index 0000000..1b42f1f --- /dev/null +++ b/.zig-cache/h/f938ff02dc2df607be59dbe7fdc20ddc.txt @@ -0,0 +1,290 @@ +0 +113824 15592256 1777923927286426463 eaa3ac47a6f370a3247b2e595e877cae 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raudio.c +134582 15592259 1777923927287426462 80dd8140be16a70b92faf9e5c6315cee 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/raylib.h +2497 15568247 1777922721701272909 b2fdb090a7260fd9bb1ee13109f6f95f 1 include/stdarg.h +417 15568043 1777922721690272950 c8f062fa64e6bd8bfcbd2e1bc393ce2a 1 include/__stdarg_header_macro.h +467 15568041 1777922721690272950 0f78a248b04856b5d60755486dcfed37 1 include/__stdarg___gnuc_va_list.h +448 15568046 1777922721690272950 ee803b33be587fcb44ebc540dc1bd5b4 1 include/__stdarg_va_list.h +771 15568044 1777922721690272950 26da59e07c42693242835235ceb88a64 1 include/__stdarg_va_arg.h +445 15568042 1777922721690272950 9c52fce0866e80d935dd268cff80c9c7 1 include/__stdarg___va_copy.h +451 15568045 1777922721690272950 7472f18389b3074d0606de36cb9d29ce 1 include/__stdarg_va_copy.h +1172 15568249 1777922721701272909 69b529ccb10bbb5d826c563cf9b929c1 1 include/stdbool.h +19398 15592091 1777923927249426536 31a1d106c227e308c445431d72f7a2cf 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/config.h +4107565 15592224 1777923927276426483 40a300c8571017a8213fcc665a614206 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/miniaudio.h +5053 15568252 1777922721701272909 65368a9f4cf365969d64bd6a0f1410e6 1 include/stddef.h +417 15568047 1777922721690272950 d2edf43390585163b0f70c6bd1d7e3b7 1 include/__stddef_header_macro.h +717 15568052 1777922721690272950 81288588f2bdd7ac4f213fa113429ef2 1 include/__stddef_ptrdiff_t.h +708 15568054 1777922721690272950 39fb92c68f9106377b154afee9e96194 1 include/__stddef_size_t.h +853 15568056 1777922721690272950 754796f5faa70049051526dc04a0d36b 1 include/__stddef_wchar_t.h +875 15568049 1777922721690272950 f8a94bfcc5c5499d269a5391c5933024 1 include/__stddef_null.h +708 15568051 1777922721690272950 04b70454bf7cdd0c492cfaf134f95be7 1 include/__stddef_offsetof.h +48570 11322576 1770636718000000000 df73001c3d08af59a57b790c20f13f2a 0 /usr/include/pthread.h +19842 11322493 1770636718000000000 5858904437099a8b03a49e096c8fac97 0 /usr/include/features.h +1532 11322492 1770636718000000000 12441e5cf1eed170c82e61ec5f28b5a7 0 /usr/include/features-time64.h +398 11322476 1770636718000000000 d747ec9a0fdba458d49068b678b29de6 0 /usr/include/bits/wordsize.h +1109 11322407 1770636718000000000 eec3772cf273928fc46983426bf40b67 0 /usr/include/bits/timesize.h +2462 11322597 1770636718000000000 f2b16f66423cb88621c15269ce9450d1 0 /usr/include/stdc-predef.h +35168 11322607 1770636718000000000 54096fe1cc153ca7f0f35e0f4645ed5b 0 /usr/include/sys/cdefs.h +970 11322294 1770636718000000000 5192d9840fde3628d91bd8ac065705e6 0 /usr/include/bits/long-double.h +384 11322510 1770636718000000000 bbd76beb33f6f3d22f67335a8823e269 0 /usr/include/gnu/stubs.h +481 11322509 1770636718000000000 13e633d41f2bea1a7912ab01537b2ba8 0 /usr/include/gnu/stubs-64.h +5043 11322584 1770636718000000000 e6a51b852746c12c94ed682ec128431b 0 /usr/include/sched.h +8806 11322409 1770636718000000000 fe90dac507ff30ecec0b9526414b3252 0 /usr/include/bits/types.h +3737 11322459 1770636718000000000 82975833a98fa964845bc2520e9a5883 0 /usr/include/bits/typesizes.h +1340 11322405 1770636718000000000 1f781963f1bf9a2c736d5f3038b6153c 0 /usr/include/bits/time64.h +208 11322456 1770636718000000000 ff79796f7ea46e2118cea69defdb0a47 0 /usr/include/bits/types/time_t.h +877 11322453 1770636718000000000 0940ebd7615d3d4bdac448404c09c9a6 0 /usr/include/bits/types/struct_timespec.h +1905 11322253 1770636718000000000 b9500567009d46b4d74944f0e91746ae 0 /usr/include/bits/endian.h +273 11322254 1770636718000000000 55efac8f8882a8ccfe068e3b4d9c4afb 0 /usr/include/bits/endianness.h +5952 11322332 1770636718000000000 0926186d78c26fdbfea09ab846c93da9 0 /usr/include/bits/sched.h +4558 8944287 1770625897000000000 13cfeea4f632939bde4c2db64ec930ff 0 /usr/include/linux/sched/types.h +1829 8944384 1770625897000000000 64ed48c0a52d7d50d7685f6332d61a80 0 /usr/include/linux/types.h +31 8943632 1770625897000000000 748039e47be584104c75dc853bfee6d8 0 /usr/include/asm/types.h +233 8943572 1770625897000000000 ff35ee9081c54a4556677db7b6ac43bd 0 /usr/include/asm-generic/types.h +864 8943546 1770625897000000000 de8f38f0cdc81bf3a5b301889f3dc586 0 /usr/include/asm-generic/int-ll64.h +321 8943578 1770625897000000000 426fd8fd87f0a7222c2d8dc0b1c11a1e 0 /usr/include/asm/bitsperlong.h +1092 8943539 1770625897000000000 ea09d2bd626e1051f84d4ecee37ba039 0 /usr/include/asm-generic/bitsperlong.h +1098 8944239 1770625897000000000 d50b3f49c69b44a5ecd1f232af677d5e 0 /usr/include/linux/posix_types.h +2135 8944323 1770625897000000000 7f1dcecb733611ba8bc38c8fa69c11bb 0 /usr/include/linux/stddef.h +224 8943606 1770625897000000000 d200bb7a30c7371a4580f935befe5542 0 /usr/include/asm/posix_types.h +609 8943608 1770625897000000000 45284a1e84848c31de23d3bd515534ee 0 /usr/include/asm/posix_types_64.h +2420 8943556 1770625897000000000 27c6e0a2b3849c0a9a5f71c86e17deb5 0 /usr/include/asm-generic/posix_types.h +1073 11322442 1770636718000000000 fd5bfcedcccd0699759e0e9b4b5f31d2 0 /usr/include/bits/types/struct_sched_param.h +4516 11322247 1770636718000000000 eab9f52a0722cf3bd47401680264c9bd 0 /usr/include/bits/cpu-set.h +15326 11322698 1770636718000000000 dd0cebc61fc90f380c881a1cbd85230a 0 /usr/include/time.h +3331 11322404 1770636718000000000 d088285f55f90486f8680c7de68e427d 0 /usr/include/bits/time.h +6203 11322408 1770636718000000000 ccfa5c0039c1ddbdb09c6db5d1922cc3 0 /usr/include/bits/timex.h +416 11322454 1770636718000000000 f8c04579683b95ae3e3c5a07f2c128f1 0 /usr/include/bits/types/struct_timeval.h +143 11322418 1770636718000000000 169119829c9265a2e39cc3d1ec8547f1 0 /usr/include/bits/types/clock_t.h +760 11322455 1770636718000000000 3cf515d0336ee94d22cc413b45febc49 0 /usr/include/bits/types/struct_tm.h +174 11322419 1770636718000000000 08f9ec3d33e7d8f467b398fe5b0c83fd 0 /usr/include/bits/types/clockid_t.h +159 11322457 1770636718000000000 70d3f37b5dc89532de83ed557c1fd656 0 /usr/include/bits/types/timer_t.h +288 11322436 1770636718000000000 2de06c14c40bd39deaf2f372dace4ac7 0 /usr/include/bits/types/struct_itimerspec.h +983 11322423 1770636718000000000 1d5e4317cb7fca64dbe2fd09f77a4162 0 /usr/include/bits/types/locale_t.h +1661 11322414 1770636718000000000 53573444cf6c331757b9cd8e82f1a114 0 /usr/include/bits/types/__locale_t.h +3072 11322328 1770636718000000000 098bbdb01689c4189a53cc4a5cecdb79 0 /usr/include/bits/pthreadtypes.h +3961 11322403 1770636718000000000 b523bea084cde8f73b7b6877bfaf55f2 0 /usr/include/bits/thread-shared-types.h +1838 11322327 1770636718000000000 ba5201327d8ba5abbba997b1c75ab548 0 /usr/include/bits/pthreadtypes-arch.h +1283 11322243 1770636718000000000 44e94a4bec789c935c45a6f1bf217e97 0 /usr/include/bits/atomic_wide_counter.h +1765 11322382 1770636718000000000 bbc0220303ca73125edf18104df91b59 0 /usr/include/bits/struct_mutex.h +1784 11322383 1770636718000000000 a89979ebbd93b74ac786b52b87a2c7fe 0 /usr/include/bits/struct_rwlock.h +1287 11322338 1770636718000000000 81b3c862d757d31fa9585485df82c1f6 0 /usr/include/bits/setjmp.h +206 11322416 1770636718000000000 20b94c68b23053d134191e76fe41da14 0 /usr/include/bits/types/__sigset_t.h +1467 11322434 1770636718000000000 c65b4aa95fccac40bd98fee3ba150e60 0 /usr/include/bits/types/struct___jmp_buf_tag.h +1214 11322325 1770636718000000000 2fe7b4205802733911a5efa9b71bb5e6 0 /usr/include/bits/pthread_stack_min-dynamic.h +6841 11322240 1770636718000000000 206c6abc42a2ddfe98d4ffbf90b211bb 0 /usr/include/assert.h +3794 15568174 1777922721699272917 42f44f0344ca976c19820ae587ff2c10 1 include/limits.h +5839 11322521 1770636718000000000 93606ee9e7d5800ac5b8e3efedd3f157 0 /usr/include/limits.h +4286 11322288 1770636718000000000 4a5233ba11113c27934c6396893a9e0b 0 /usr/include/bits/libc-header-start.h +5198 11322317 1770636718000000000 a6dd17f359e45199ea5666f65b1113a6 0 /usr/include/bits/posix1_lim.h +3175 11322292 1770636718000000000 b08b1c7bc1b5a70132a5b8b175b8c0db 0 /usr/include/bits/local_lim.h +937 8943972 1770625897000000000 65da8eafce628e0f5da011204e471ee0 0 /usr/include/linux/limits.h +2867 11322318 1770636718000000000 7d8aa86701e9a380845c5cd8a669e984 0 /usr/include/bits/posix2_lim.h +3858 11322477 1770636718000000000 6056c22530b9b6e43d3215eee277a553 0 /usr/include/bits/xopen_lim.h +1385 11322462 1770636718000000000 59219f4f906088fd1473df647db44849 0 /usr/include/bits/uio_lim.h +53032 11322525 1770636718000000000 48d73f60668209c137430db3439255cd 0 /usr/include/math.h +5402 11322295 1770636718000000000 cb390e930c39bbc06913192e25cdc179 0 /usr/include/bits/math-vector.h +12800 11322289 1770636718000000000 98e9ad78fc2bc0f208b83e4effbe7a7d 0 /usr/include/bits/libm-simd-decl-stubs.h +4929 11322268 1770636718000000000 d87ba2a140eaa80d6d7b723c8c3e1d75 0 /usr/include/bits/floatn.h +10325 11322267 1770636718000000000 d88432ff21d03745b6d17d4840ae874e 0 /usr/include/bits/floatn-common.h +1215 11322269 1770636718000000000 4e3c30b707c441ac367ecf7000466aad 0 /usr/include/bits/flt-eval-method.h +1012 11322271 1770636718000000000 881dcd13956f9f3be5d9bfef29a3b872 0 /usr/include/bits/fp-logb.h +1216 11322270 1770636718000000000 bd00c52cc18b5d66275273319cfa8968 0 /usr/include/bits/fp-fast.h +2216 11322297 1770636718000000000 0d2758134fa556a888eacffab984c31d 0 /usr/include/bits/mathcalls-macros.h +1863 11322296 1770636718000000000 50e1e79058d7c743cfc97db6d60b655d 0 /usr/include/bits/mathcalls-helper-functions.h +16115 11322299 1770636718000000000 936dc1f45454225b01b637df41636522 0 /usr/include/bits/mathcalls.h +1515 11322298 1770636718000000000 49968cf7b2a06904925a7f35a0b6349b 0 /usr/include/bits/mathcalls-narrow.h +2479 11322287 1770636718000000000 4dac216a2e334ff8721783342e42ca8f 0 /usr/include/bits/iscanonical.h +42963 11322601 1770636718000000000 a30571e92057bcffd973dbcd8df96e22 0 /usr/include/stdlib.h +1697 11322469 1770636718000000000 a921ba5c038385c468a1f9970bcd11cb 0 /usr/include/bits/waitflags.h +2287 11322470 1770636718000000000 704da565f3374d60c15b0319e1923a3b 0 /usr/include/bits/waitstatus.h +5713 11322677 1770636718000000000 6195c468533c8963ca52cc1eda827920 0 /usr/include/sys/types.h +1037 11322368 1770636718000000000 84bc357befb2282ac986b30ea9fde237 0 /usr/include/bits/stdint-intn.h +2299 11322485 1770636718000000000 45fbd1397c0e4aed0f93641b833a8e35 0 /usr/include/endian.h +2450 11322244 1770636718000000000 9b4272d8bfe7bf86c5b102d3e253770b 0 /usr/include/bits/byteswap.h +1542 11322460 1770636718000000000 e90f6ea8a41d6f887848154d9bb24581 0 /usr/include/bits/uintn-identity.h +5049 11322651 1770636718000000000 774152085a730d9ac44883f53d0accad 0 /usr/include/sys/select.h +1505 11322334 1770636718000000000 f8694d43cc0808fba08729f592acd062 0 /usr/include/bits/select.h +195 11322430 1770636718000000000 d1aca2c3f74722a2b49d7fef26c57ef7 0 /usr/include/bits/types/sigset_t.h +1203 11322230 1770636718000000000 0069c76e8fc59c132ab700a919750db9 0 /usr/include/alloca.h +1007 11322425 1770636718000000000 2156557c42390e27ae8869907758fc38 0 /usr/include/bits/types/once_flag.h +1115 11322377 1770636718000000000 7168542679b4d2101abde3f5888137d9 0 /usr/include/bits/stdlib-float.h +21266 11322602 1770636718000000000 84842674d2e08f9dd7aacd227321e6f6 0 /usr/include/string.h +4753 11322603 1770636718000000000 a23e4f9a4f98918b8133db83fe749abe 0 /usr/include/strings.h +34258 11322599 1770636718000000000 f7e00b8ce5fdf0fdad484b2e7608ae36 0 /usr/include/stdio.h +381 11322413 1770636718000000000 9783f797da2fe115f6cbaaa23d69ce2c 0 /usr/include/bits/types/__fpos_t.h +564 11322415 1770636718000000000 81f106423b0a5ce29eed1e15e69a936a 0 /usr/include/bits/types/__mbstate_t.h +410 11322412 1770636718000000000 60d29177b3d1cd05c6b32d864f9c6969 0 /usr/include/bits/types/__fpos64_t.h +110 11322411 1770636718000000000 3c505e39734a67f040aa00448a1fb887 0 /usr/include/bits/types/__FILE.h +180 11322410 1770636718000000000 27d68703c4f91d92c1836cb2e169acac 0 /usr/include/bits/types/FILE.h +4383 11322433 1770636718000000000 0a020c7841a561f188c9708cd5db23e6 0 /usr/include/bits/types/struct_FILE.h +2725 11322420 1770636718000000000 7abd9d2d82499070fd348ab4bcaf7b1b 0 /usr/include/bits/types/cookie_io_functions_t.h +1059 11322375 1770636718000000000 e15b4d1b052fad338fae3e58bdf61748 0 /usr/include/bits/stdio_lim.h +40129 11322709 1770636718000000000 846d60b8884553e61b200835c9192db4 0 /usr/include/wchar.h +1906 11322472 1770636718000000000 eb31012558f3028fc2c3c0def47ccc8a 0 /usr/include/bits/wchar.h +796 11322458 1770636718000000000 eee748e39eee0c3ba0222f7d0a22f5bb 0 /usr/include/bits/types/wint_t.h +135 11322424 1770636718000000000 88a8626270b2c135f6fae239597f3050 0 /usr/include/bits/types/mbstate_t.h +9164 11322670 1770636718000000000 d2e1b3053beaf053af8a55c6a804fde1 0 /usr/include/sys/time.h +45053 11322703 1770636718000000000 61decd3126c9fca1538df8298cac1894 0 /usr/include/unistd.h +5910 11322319 1770636718000000000 3ab8ab6e5779785e032604f1768b415c 0 /usr/include/bits/posix_opt.h +3791 11322255 1770636718000000000 e918da89dc6f1bc95caac7b9e99e3ccc 0 /usr/include/bits/environments.h +23828 11322246 1770636718000000000 9cf65881ab165e5e8e291a2f7fcd0a71 0 /usr/include/bits/confname.h +1810 11322274 1770636718000000000 996cb3fd9509868b01621c74e4a86ade 0 /usr/include/bits/getopt_posix.h +3667 11322272 1770636718000000000 ac9188a8d7cc4aac4ca3ac108e99f032 0 /usr/include/bits/getopt_core.h +2035 11322465 1770636718000000000 0cb61ab97cf5643355f3236fdfb9904c 0 /usr/include/bits/unistd_ext.h +377 8943771 1770625897000000000 7ed06359dec8788b24849d80d4e70c9a 0 /usr/include/linux/close_range.h +13793 11322661 1770636718000000000 9f12c6bf198df3a88c2d747996baf030 0 /usr/include/sys/stat.h +2231 11322363 1770636718000000000 eeced79f6a58db284452746e269ed387 0 /usr/include/bits/stat.h +6210 11322384 1770636718000000000 2fe01a59de528f1892df1bc5eef7c7cc 0 /usr/include/bits/struct_stat.h +1400 11322367 1770636718000000000 2002a64c42584c7d184facbe3d81a350 0 /usr/include/bits/statx.h +7838 8944322 1770625897000000000 c0813c1096a17ee5a243bf75dcb7977a 0 /usr/include/linux/stat.h +2409 11322366 1770636718000000000 1ca18c39930458d2b106898c1f1ed517 0 /usr/include/bits/statx-generic.h +1202 11322451 1770636718000000000 adf1f98ff50dc6da3f9c81c1f7718940 0 /usr/include/bits/types/struct_statx_timestamp.h +2248 11322450 1770636718000000000 13e0688c779dbc994826255da64ed106 0 /usr/include/bits/types/struct_statx.h +16632 15568165 1777922721699272917 70963188f6adf02d47abf0e69307e3ce 1 include/immintrin.h +1727 15568274 1777922721702272906 02224c13847552071474f4b8a67094f2 1 include/x86gprintrin.h +1395 15568160 1777922721699272917 fb46b2d83a3e08fdd2816a60bb34c1f4 1 include/hresetintrin.h +5079 15568259 1777922721701272909 17e8211de80c4aedcb92d94180a78574 1 include/uintrintrin.h +1572 15568261 1777922721701272909 090a143fbece0766fad22b1d0a3d99de 1 include/usermsrintrin.h +3347 15568148 1777922721698272920 fb37aa3848b11ad0dde9222206788fed 1 include/crc32intrin.h +2073 15568223 1777922721700272913 b7662e91645d1456a47a0baff1a8e60b 1 include/prfchiintrin.h +6748 15568227 1777922721700272913 60e92c0f22c6fd0127612d8d4fb33f1a 1 include/raointintrin.h +2383 15568146 1777922721698272920 3d1c9e6b8d2f63d088f4554226dea82d 1 include/cmpccxaddintrin.h +60004 15568188 1777922721700272913 9d96163416d339553543c8056304615f 1 include/mmintrin.h +120340 15568276 1777922721702272906 8e35d00e3ce60714ef2dd6312b645f5d 1 include/xmmintrin.h +1929 15568187 1777922721700272913 b6b5caf8039b8eeb1a472434df3e6037 1 include/mm_malloc.h +201616 15568149 1777922721698272920 c59721a008a14bf4245225c8d6dd981f 1 include/emmintrin.h +11390 15568207 1777922721700272913 af3b468e9f028463cda1ea1862bdd32f 1 include/pmmintrin.h +31927 15568257 1777922721701272909 a94b62300284d904ddd77a8612722040 1 include/tmmintrin.h +101720 15568245 1777922721701272909 65d276eda8a6b7f54badd06b69b605d7 1 include/smmintrin.h +1948 15568208 1777922721700272913 0d0dc43525f7392cd17b908e07c520a2 1 include/popcntintrin.h +659 15568273 1777922721702272906 88839041dd2d933a1ceb26cde857faea 1 include/wmmintrin.h +5269 15568058 1777922721690272950 73101524ee05bfb36c066bf9bb6e60d7 1 include/__wmmintrin_aes.h +2036 15568059 1777922721690272950 679b048994ef6e3eb20b4627ae70bbf3 1 include/__wmmintrin_pclmul.h +1193 15568143 1777922721698272920 0a42c930a770c0836dbe4a3703bb4512 1 include/clflushoptintrin.h +1229 15568144 1777922721698272920 c053e392024dcadcb1da23c409ffb040 1 include/clwbintrin.h +201849 15568132 1777922721698272920 b4ccac975fdcf069bc879ccf03d0b80f 1 include/avxintrin.h +192637 15568104 1777922721697272924 215b76cd9cf97075404f4c97c36c24f0 1 include/avx2intrin.h +5524 15568151 1777922721698272920 a8307854b76c9de85b83d9befd78477f 1 include/f16cintrin.h +20350 15568138 1777922721698272920 52d5562b0fcd60ad86d13264e78f569d 1 include/bmiintrin.h +7546 15568137 1777922721698272920 e3a2aaeac7ef1aaf72d32c13e79fabf8 1 include/bmi2intrin.h +3659 15568185 1777922721700272913 da624bb823db719405e0df2f497fd83e 1 include/lzcntintrin.h +29337 15568154 1777922721699272917 37368c2b3ac26685c39d619149a048a5 1 include/fmaintrin.h +392651 15568110 1777922721697272924 417c1f0ac26fce36e4bf57569e3ae768 1 include/avx512fintrin.h +330339 15568123 1777922721698272920 49a5250ddc213c5fcbbde5cef04535e8 1 include/avx512vlintrin.h +77845 15568107 1777922721697272924 52fdf0987ae18302e0e01534ef877cc2 1 include/avx512bwintrin.h +2626 15568106 1777922721697272924 4c8c0fd807ad9e5271cdd15d2977f9d0 1 include/avx512bitalgintrin.h +4327 15568108 1777922721697272924 d60cce9efd3cf6e1817c5b6437e4be3d 1 include/avx512cdintrin.h +2357 15568129 1777922721698272920 6f8315696bf9a22f42ec05d59da5d065 1 include/avx512vpopcntdqintrin.h +3957 15568130 1777922721698272920 abb99a6c6070cfc30e96f19e82cc0bbb 1 include/avx512vpopcntdqvlintrin.h +4428 15568127 1777922721698272920 d65f32b0b2809f1f45646161d119f357 1 include/avx512vnniintrin.h +13736 15568125 1777922721698272920 f0bad1557e9b86244734e891fe49a319 1 include/avx512vlvnniintrin.h +10690 15568136 1777922721698272920 3cc87c685806872776354f4a0b5d2155 1 include/avxvnniintrin.h +60287 15568109 1777922721697272924 b9a24e2c100dbc7ee399c43d96773394 1 include/avx512dqintrin.h +4629 15568118 1777922721697272924 312bc5534b5826436e11de728e563806 1 include/avx512vlbitalgintrin.h +124474 15568119 1777922721697272924 9c4b311057a3d5598fd23dc67c776400 1 include/avx512vlbwintrin.h +8141 15568120 1777922721697272924 d74858c8ea47f20ff9c4092d113ea41c 1 include/avx512vlcdintrin.h +47827 15568121 1777922721697272924 3c73b81ef4b33ba6bcb6714431e09354 1 include/avx512vldqintrin.h +2660 15568112 1777922721697272924 6400d05d435160c1d6d346c344a76086 1 include/avx512ifmaintrin.h +4712 15568113 1777922721697272924 fa03ebe74dbaca356d64dbe640460035 1 include/avx512ifmavlintrin.h +5886 15568131 1777922721698272920 0e78550e483532f19c0908b38276ec64 1 include/avxifmaintrin.h +3920 15568115 1777922721697272924 5700f088b6969618471ef25f630669d0 1 include/avx512vbmiintrin.h +7402 15568116 1777922721697272924 16d47f57484ed296b3e6e1368e704595 1 include/avx512vbmivlintrin.h +13493 15568114 1777922721697272924 b105a7215373b26faee90ebcf9611298 1 include/avx512vbmi2intrin.h +26633 15568124 1777922721698272920 3e9303ac0a4faf37b84922e7f0c7fbac 1 include/avx512vlvbmi2intrin.h +160735 15568111 1777922721697272924 74efdcbf12d39f136d48990ed6247ae4 1 include/avx512fp16intrin.h +87561 15568122 1777922721697272924 f6fd101ffd8ecd06bab96e21091b3f55 1 include/avx512vlfp16intrin.h +10832 15568105 1777922721697272924 f328f474b8b2f7ecd99fc38496b8ba0c 1 include/avx512bf16intrin.h +19922 15568117 1777922721697272924 ae2035290c3da7e9ee66b53aa998e2e8 1 include/avx512vlbf16intrin.h +934 15568206 1777922721700272913 9eec7d1953339f7017502cf78723950d 1 include/pkuintrin.h +1086 15568269 1777922721702272906 637855aacd197db9868d139d6fafe450 1 include/vpclmulqdqintrin.h +2671 15568263 1777922721701272909 57f64f1aed9ee8ed6eca03464494e60c 1 include/vaesintrin.h +9822 15568156 1777922721699272917 220fde0fd70770eba04dde846bdbbef7 1 include/gfniintrin.h +17431 15568135 1777922721698272920 a7d4a6dc8f028f8c7ace573ef994a4d1 1 include/avxvnniint8intrin.h +14432 15568133 1777922721698272920 72cc1449016b76cd7ab84c886811a3e2 1 include/avxneconvertintrin.h +6088 15568239 1777922721701272909 0f30b3a47ff82ec3699c8cd0e40cbc92 1 include/sha512intrin.h +7470 15568242 1777922721701272909 bc67c183035f74d21e316c8ab20ae2f0 1 include/sm3intrin.h +8401 15568244 1777922721701272909 6ab760098261dfe1782c73be8e138705 1 include/sm4intrin.h +16222 15568134 1777922721698272920 682df57b668a75daebe49e56a2f1c645 1 include/avxvnniint16intrin.h +1280 15568235 1777922721701272909 6eab1c6b32be874b9c82a3ff1d2772e6 1 include/rtmintrin.h +873 15568282 1777922721702272906 dcac3c4fb2d9e8fc2e32c099cc2f4a7c 1 include/xtestintrin.h +7660 15568240 1777922721701272909 3ce15406906216d7b4f3b25709fd0765 1 include/shaintrin.h +2890 15568155 1777922721699272917 72e559c6284e7b3e59ece194e6e3e2f1 1 include/fxsrintrin.h +1678 15568279 1777922721702272906 adc179a954bd6419ecb3679e88e76d89 1 include/xsaveintrin.h +1026 15568280 1777922721702272906 5e941b1ef68d3e6e9aa207d5d00dba2f 1 include/xsaveoptintrin.h +2574 15568278 1777922721702272906 83e5e79720328dd0054ce7660005acd2 1 include/xsavecintrin.h +1268 15568281 1777922721702272906 51ebe3f93e82afad00bcea35da340569 1 include/xsavesintrin.h +3351 15568141 1777922721698272920 940fdc9a595824a3546eb2d73c351f8f 1 include/cetintrin.h +5565 15568060 1777922721690272950 c17718c6485c7659e7890a4cbab75219 1 include/adcintrin.h +3447 15568061 1777922721690272950 a7ca4b601933a32c4855f0ec1ceb8b73 1 include/adxintrin.h +2919 15568229 1777922721701272909 9ba44bec7d615d70d29c2cf49efd2fd9 1 include/rdseedintrin.h +749 15568272 1777922721702272906 ab03b0b2ec3b24b5c381d040fbd5d3f3 1 include/wbnoinvdintrin.h +1207 15568142 1777922721698272920 faf0346a1135a650caebf7c0fa660e06 1 include/cldemoteintrin.h +1357 15568270 1777922721702272906 c29665f4ae7d08f40fdba4bdf3c59fcb 1 include/waitpkgintrin.h +1612 15568190 1777922721700272913 361388a1deda89bbc5200844d0aec7a4 1 include/movdirintrin.h +2025 15568193 1777922721700272913 0f19f76e900e332d57533e05989a2a0c 1 include/movrsintrin.h +7036 15568192 1777922721700272913 2c6fb76c226fac69586d6e93c0fd3908 1 include/movrs_avx10_2intrin.h +3973 15568191 1777922721700272913 19680bd74186f6c0adedde41e57f21e1 1 include/movrs_avx10_2_512intrin.h +1216 15568205 1777922721700272913 b3205c333672913fc7c8acc26dfb5304 1 include/pconfigintrin.h +1816 15568238 1777922721701272909 4814b5f568d79fe0a3ff9a01056fa17b 1 include/sgxintrin.h +1076 15568226 1777922721700272913 3fae1e12e188144704082b5c0de48a7f 1 include/ptwriteintrin.h +764 15568169 1777922721699272917 c4f35c928a775df7195a03f0d5411aff 1 include/invpcidintrin.h +17973 15568171 1777922721699272917 0b48ddfbbe168ffd50b79789be908d2a 1 include/keylockerintrin.h +20304 15568071 1777922721691272946 3381fed3b944ecfc74f30d27ff094bca 1 include/amxintrin.h +3327 15568068 1777922721691272946 f1e5420b9d7fe9febe794a24e96e4ce9 1 include/amxfp16intrin.h +6933 15568066 1777922721691272946 78b4f2aa1cf1c0239e304a1f474331d0 1 include/amxcomplexintrin.h +8839 15568070 1777922721691272946 5ccf1e3f33ad6379d2a262f4438cd502 1 include/amxfp8intrin.h +10853 15568076 1777922721691272946 7921f0f126779340730c078d6b3c9997 1 include/amxtransposeintrin.h +2290 15568072 1777922721691272946 5f7e30d92bb23f379ce740ff06bde41f 1 include/amxmovrsintrin.h +9402 15568073 1777922721691272946 6fa922cc643f704d9fa08f0cce57fd0b 1 include/amxmovrstransposeintrin.h +12986 15568064 1777922721691272946 107cbdc06513520aa9e4e158e3f6c491 1 include/amxavx512intrin.h +3562 15568074 1777922721691272946 fd05d9e0127721d899581134b681ca3c 1 include/amxtf32intrin.h +3643 15568075 1777922721691272946 55a73f65dcb801b11b24e97984ccedb0 1 include/amxtf32transposeintrin.h +3525 15568065 1777922721691272946 52d2749a270864e796b43cc5ee738a7f 1 include/amxbf16transposeintrin.h +3525 15568069 1777922721691272946 42f3593c062932dfe44c29ecf4283afb 1 include/amxfp16transposeintrin.h +12061 15568067 1777922721691272946 3ac118b8b4568263387fa6cc9c6d757d 1 include/amxcomplextransposeintrin.h +3102 15568128 1777922721698272920 731bbd34cb220f83027d2d1b60e5b916 1 include/avx512vp2intersectintrin.h +4782 15568126 1777922721698272920 380ed65ce4ea2eb042a085a39a69d79e 1 include/avx512vlvp2intersectintrin.h +44658 15568097 1777922721696272928 faca47b99e2b7dd009773fe525926cad 1 include/avx10_2bf16intrin.h +108821 15568098 1777922721696272928 fb976c4700d15c22d82fec385805cc26 1 include/avx10_2convertintrin.h +2410 15568099 1777922721696272928 10419d2bc12d8a9878d0e2866a79b6ed 1 include/avx10_2copyintrin.h +13680 15568100 1777922721696272928 3b54fb6f688ef31b5b288d68add52055 1 include/avx10_2minmaxintrin.h +17003 15568101 1777922721696272928 21161b694449a0ad9ec0ff4fd45c5338 1 include/avx10_2niintrin.h +15253 15568102 1777922721696272928 b54db7027b0759bf2c6e98812c65825d 1 include/avx10_2satcvtdsintrin.h +18140 15568103 1777922721696272928 90423834c7a102028a91b8ed880457bd 1 include/avx10_2satcvtintrin.h +23410 15568091 1777922721696272928 95bee4d483b52e84460e33e248d24b78 1 include/avx10_2_512bf16intrin.h +13192 15568092 1777922721696272928 b29bf6fb9e659842d31f4be78f82b58a 1 include/avx10_2_512convertintrin.h +7526 15568093 1777922721696272928 e922b6ff2d475a67b2edd396292f7078 1 include/avx10_2_512minmaxintrin.h +14039 15568094 1777922721696272928 706c14e292a7064003c3a9554b34d98d 1 include/avx10_2_512niintrin.h +13799 15568095 1777922721696272928 9a37b5547f48ae1333e9109ba36c0502 1 include/avx10_2_512satcvtdsintrin.h +16999 15568096 1777922721696272928 cc3b16d0b0f0630231d148f1376082d1 1 include/avx10_2_512satcvtintrin.h +1195 15568243 1777922721701272909 415f4786cb23f5ee37699dc6b7eff360 1 include/sm4evexintrin.h +2167 15568150 1777922721698272920 6e887392f50e32d2c4bc3eb4ca4e4def 1 include/enqcmdintrin.h +881 15568237 1777922721701272909 de461f45e00eb8aa42c96123bef0f9a0 1 include/serializeintrin.h +2015 15568258 1777922721701272909 d9bd2435957a5e62c538d80aea562772 1 include/tsxldtrkintrin.h +1679 11322488 1770636718000000000 abb7aa3ce3560985cdcc5222002abe0a 0 /usr/include/errno.h +1426 11322258 1770636718000000000 f5901b3b5db0a666bc76fe7ac755756b 0 /usr/include/bits/errno.h +23 8943817 1770625897000000000 0e9514526df5411989c0921d62c34bb0 0 /usr/include/linux/errno.h +31 8943586 1770625897000000000 303204c8e8dd5d0b26a8bbfede43c812 0 /usr/include/asm/errno.h +5648 8943542 1770625897000000000 8becdc7faaf464f4f03c90038b9730e0 0 /usr/include/asm-generic/errno.h +1612 8943541 1770625897000000000 9e53730016da2684ae9a8bb2284166de 0 /usr/include/asm-generic/errno-base.h +894 11322421 1770636718000000000 21d9a2571870c420b53485fe487743c5 0 /usr/include/bits/types/error_t.h +8794 11322483 1770636718000000000 1e941a0fcec84e68e593320606a258d5 0 /usr/include/dlfcn.h +2521 11322251 1770636718000000000 ce423e8702be28530185e4b09b199fdf 0 /usr/include/bits/dlfcn.h +1119 11322250 1770636718000000000 212bcf73af743c3898fdc9ef533a0cbf 0 /usr/include/bits/dl_find_object.h +22 11322569 1770636718000000000 0ea58fcbabea8c4434197b25c0da0032 0 /usr/include/poll.h +3030 11322636 1770636718000000000 fdfc712b78cbcaa0020d4464fb281b64 0 /usr/include/sys/poll.h +2076 11322315 1770636718000000000 d4de1743efaa71a7637fb37b349b20f7 0 /usr/include/bits/poll.h +1400 11322613 1770636718000000000 2f0c7eff02f27ac2b7f317551e29ec48 0 /usr/include/sys/eventfd.h +27519 15568253 1777922721701272909 1bf965d23c79a082ac103b8d4944724e 1 include/stdint.h +8268 11322598 1770636718000000000 07868a6486476f79d1af8befa09ff966 0 /usr/include/stdint.h +1049 11322370 1770636718000000000 df8b58b124e95d233ec646186fc72d07 0 /usr/include/bits/stdint-uintn.h +1305 11322369 1770636718000000000 e13a68eb8203cd6be160c31f99d931f7 0 /usr/include/bits/stdint-least.h +1129 11322261 1770636718000000000 1529b91466df4e72721b7951edd4ed3e 0 /usr/include/bits/eventfd.h +364560 15592110 1777923927256426522 aa3f7a4e5ed2aea4a1ec6c90429905d4 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/dr_wav.h +192790 15592240 1777923927283426469 890c281f1c8cc1ed210397614a0eb43c 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/stb_vorbis.c +206600 15592109 1777923927255426525 8a111acae971c169c181fb95f0bbb828 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/dr_mp3.h +23845 15592226 1777923927278426479 f136d45fb944c980c3798c30d5d3d443 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoa.h +10241 15592227 1777923927278426479 737b9fb56af4b423417c98b7fd85a98b 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/qoaplay.c +102215 15592222 1777923927267426501 87feda682bd5df29026e59540130ea22 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/jar_xm.h +51996 15592221 1777923927267426501 7826726113566a1ac41845859112fa61 0 /home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/src/external/jar_mod.h diff --git a/.zig-cache/h/timestamp b/.zig-cache/h/timestamp new file mode 100644 index 0000000..e69de29 diff --git a/.zig-cache/o/0cb472c14c1ac56695fea882facb905b/raygui.h b/.zig-cache/o/0cb472c14c1ac56695fea882facb905b/raygui.h new file mode 100644 index 0000000..72f7108 --- /dev/null +++ b/.zig-cache/o/0cb472c14c1ac56695fea882facb905b/raygui.h @@ -0,0 +1,6052 @@ +/******************************************************************************************* +* +* raygui v5.0 - A simple and easy-to-use immediate-mode gui library +* +* DESCRIPTION: +* raygui is a tools-dev-focused immediate-mode-gui library based on raylib but also +* available as a standalone library, as long as input and drawing functions are provided +* +* FEATURES: +* - Immediate-mode gui, minimal retained data +* - +25 controls provided (basic and advanced) +* - Styling system for colors, font and metrics +* - Icons supported, embedded as a 1-bit icons pack +* - Standalone mode option (custom input/graphics backend) +* - Multiple support tools provided for raygui development +* +* POSSIBLE IMPROVEMENTS: +* - Better standalone mode API for easy plug of custom backends +* - Externalize required inputs, allow user easier customization +* +* LIMITATIONS: +* - No editable multi-line word-wraped text box supported +* - No auto-layout mechanism, up to the user to define controls position and size +* - Standalone mode requires library modification and some user work to plug another backend +* +* NOTES: +* - WARNING: GuiLoadStyle() and GuiLoadStyle{Custom}() functions, allocate memory for +* font atlas recs and glyphs, freeing that memory is (usually) up to the user, +* no unload function is explicitly provided... but note that GuiLoadStyleDefault() unloads +* by default any previously loaded font (texture, recs, glyphs) +* - Global UI alpha (guiAlpha) is applied inside GuiDrawRectangle() and GuiDrawText() functions +* +* CONTROLS PROVIDED: +* # Container/separators Controls +* - WindowBox --> StatusBar, Panel +* - GroupBox --> Line +* - Line +* - Panel --> StatusBar +* - ScrollPanel --> StatusBar +* - TabBar --> Button +* +* # Basic Controls +* - Label +* - LabelButton --> Label +* - Button +* - Toggle +* - ToggleGroup --> Toggle +* - ToggleSlider +* - CheckBox +* - ComboBox +* - DropdownBox +* - TextBox +* - ValueBox --> TextBox +* - Spinner --> Button, ValueBox +* - Slider +* - SliderBar --> Slider +* - ProgressBar +* - StatusBar +* - DummyRec +* - Grid +* +* # Advance Controls +* - ListView +* - ColorPicker --> ColorPanel, ColorBarHue +* - MessageBox --> Window, Label, Button +* - TextInputBox --> Window, Label, TextBox, Button +* +* It also provides a set of functions for styling the controls based on its properties (size, color) +* +* +* RAYGUI STYLE (guiStyle): +* raygui uses a global data array for all gui style properties (allocated on data segment by default), +* when a new style is loaded, it is loaded over the global style... but a default gui style could always be +* recovered with GuiLoadStyleDefault() function, that overwrites the current style to the default one +* +* The global style array size is fixed and depends on the number of controls and properties: +* +* static unsigned int guiStyle[RAYGUI_MAX_CONTROLS*(RAYGUI_MAX_PROPS_BASE + RAYGUI_MAX_PROPS_EXTENDED)]; +* +* guiStyle size is by default: 16*(16 + 8) = 384 int = 384*4 bytes = 1536 bytes = 1.5 KB +* +* Note that the first set of BASE properties (by default guiStyle[0..15]) belong to the generic style +* used for all controls, when any of those base values is set, it is automatically populated to all +* controls, so, specific control values overwriting generic style should be set after base values +* +* After the first BASE properties set, the EXTENDED properties set is defined (by default guiStyle[16..23]), +* those properties are actually common to all controls and can not be overwritten individually (like BASE ones) +* Some of those properties are: TEXT_SIZE, TEXT_SPACING, LINE_COLOR, BACKGROUND_COLOR +* +* Custom control properties can be defined using the EXTENDED properties for each independent control. +* +* TOOL: rGuiStyler is a visual tool to customize raygui style: github.com/raysan5/rguistyler +* +* +* RAYGUI ICONS (guiIcons): +* raygui could use a global array containing icons data (allocated on data segment by default), +* a custom icons set could be loaded over this array using GuiLoadIcons(), but loaded icons set +* must be same RAYGUI_ICON_SIZE and no more than RAYGUI_ICON_MAX_ICONS will be loaded +* +* Every icon is codified in binary form, using 1 bit per pixel, so, every 16x16 icon +* requires 8 integers (16*16/32) to be stored in memory. +* +* When the icon is draw, actually one quad per pixel is drawn if the bit for that pixel is set +* +* The global icons array size is fixed and depends on the number of icons and size: +* +* static unsigned int guiIcons[RAYGUI_ICON_MAX_ICONS*RAYGUI_ICON_DATA_ELEMENTS]; +* +* guiIcons size is by default: 256*(16*16/32) = 2048*4 = 8192 bytes = 8 KB +* +* TOOL: rGuiIcons is a visual tool to customize/create raygui icons: github.com/raysan5/rguiicons +* +* RAYGUI LAYOUT: +* raygui currently does not provide an auto-layout mechanism like other libraries, +* layouts must be defined manually on controls drawing, providing the right bounds Rectangle for it +* +* TOOL: rGuiLayout is a visual tool to create raygui layouts: github.com/raysan5/rguilayout +* +* CONFIGURATION: +* #define RAYGUI_IMPLEMENTATION +* Generates the implementation of the library into the included file +* If not defined, the library is in header only mode and can be included in other headers +* or source files without problems. But only ONE file should hold the implementation +* +* #define RAYGUI_STANDALONE +* Avoid raylib.h header inclusion in this file. Data types defined on raylib are defined +* internally in the library and input management and drawing functions must be provided by +* the user (check library implementation for further details) +* +* #define RAYGUI_NO_ICONS +* Avoid including embedded ricons data (256 icons, 16x16 pixels, 1-bit per pixel, 2KB) +* +* #define RAYGUI_CUSTOM_ICONS +* Includes custom ricons.h header defining a set of custom icons, +* this file can be generated using rGuiIcons tool +* +* #define RAYGUI_DEBUG_RECS_BOUNDS +* Draw control bounds rectangles for debug +* +* #define RAYGUI_DEBUG_TEXT_BOUNDS +* Draw text bounds rectangles for debug +* +* VERSIONS HISTORY: +* 5.0 (xx-Mar-2026) ADDED: Support up to 32 controls (v500) +* ADDED: guiControlExclusiveMode and guiControlExclusiveRec for exclusive modes +* ADDED: GuiValueBoxFloat() +* ADDED: GuiDropdonwBox() properties: DROPDOWN_ARROW_HIDDEN, DROPDOWN_ROLL_UP +* ADDED: GuiListView() property: LIST_ITEMS_BORDER_WIDTH +* ADDED: GuiLoadIconsFromMemory() +* ADDED: Multiple new icons +* ADDED: Macros for inputs customization, raylib decoupling +* REMOVED: GuiSpinner() from controls list, using BUTTON + VALUEBOX properties +* REMOVED: GuiSliderPro(), functionality was redundant +* REVIEWED: Controls using text labels to use LABEL properties +* REVIEWED: Replaced sprintf() by snprintf() for more safety +* REVIEWED: GuiTabBar(), close tab with mouse middle button +* REVIEWED: GuiScrollPanel(), scroll speed proportional to content +* REVIEWED: GuiDropdownBox(), support roll up and hidden arrow +* REVIEWED: GuiTextBox(), cursor position initialization +* REVIEWED: GuiSliderPro(), control value change check +* REVIEWED: GuiGrid(), simplified implementation +* REVIEWED: GuiIconText(), increase buffer size and reviewed padding +* REVIEWED: GuiDrawText(), improved wrap mode drawing +* REVIEWED: GuiScrollBar(), minor tweaks +* REVIEWED: GuiProgressBar(), improved borders computing +* REVIEWED: GuiTextBox(), multiple improvements: autocursor and more +* REVIEWED: Functions descriptions, removed wrong return value reference +* REDESIGNED: GuiColorPanel(), improved HSV <-> RGBA convertion +* REDESIGNED: WARNING: TEXT_LINE_SPACING does not consider text height, only lines spacing +* +* 4.0 (12-Sep-2023) ADDED: GuiToggleSlider() +* ADDED: GuiColorPickerHSV() and GuiColorPanelHSV() +* ADDED: Multiple new icons, mostly compiler related +* ADDED: New DEFAULT properties: TEXT_LINE_SPACING, TEXT_ALIGNMENT_VERTICAL, TEXT_WRAP_MODE +* ADDED: New enum values: GuiTextAlignment, GuiTextAlignmentVertical, GuiTextWrapMode +* ADDED: Support loading styles with custom font charset from external file +* REDESIGNED: GuiTextBox(), support mouse cursor positioning +* REDESIGNED: GuiDrawText(), support multiline and word-wrap modes (read only) +* REDESIGNED: GuiProgressBar() to be more visual, progress affects border color +* REDESIGNED: Global alpha consideration moved to GuiDrawRectangle() and GuiDrawText() +* REDESIGNED: GuiScrollPanel(), get parameters by reference and return result value +* REDESIGNED: GuiToggleGroup(), get parameters by reference and return result value +* REDESIGNED: GuiComboBox(), get parameters by reference and return result value +* REDESIGNED: GuiCheckBox(), get parameters by reference and return result value +* REDESIGNED: GuiSlider(), get parameters by reference and return result value +* REDESIGNED: GuiSliderBar(), get parameters by reference and return result value +* REDESIGNED: GuiProgressBar(), get parameters by reference and return result value +* REDESIGNED: GuiListView(), get parameters by reference and return result value +* REDESIGNED: GuiColorPicker(), get parameters by reference and return result value +* REDESIGNED: GuiColorPanel(), get parameters by reference and return result value +* REDESIGNED: GuiColorBarAlpha(), get parameters by reference and return result value +* REDESIGNED: GuiColorBarHue(), get parameters by reference and return result value +* REDESIGNED: GuiGrid(), get parameters by reference and return result value +* REDESIGNED: GuiGrid(), added extra parameter +* REDESIGNED: GuiListViewEx(), change parameters order +* REDESIGNED: All controls return result as int value +* REVIEWED: GuiScrollPanel() to avoid smallish scroll-bars +* REVIEWED: All examples and specially controls_test_suite +* RENAMED: gui_file_dialog module to gui_window_file_dialog +* UPDATED: All styles to include ISO-8859-15 charset (as much as possible) +* +* 3.6 (10-May-2023) ADDED: New icon: SAND_TIMER +* ADDED: GuiLoadStyleFromMemory() (binary only) +* REVIEWED: GuiScrollBar() horizontal movement key +* REVIEWED: GuiTextBox() crash on cursor movement +* REVIEWED: GuiTextBox(), additional inputs support +* REVIEWED: GuiLabelButton(), avoid text cut +* REVIEWED: GuiTextInputBox(), password input +* REVIEWED: Local GetCodepointNext(), aligned with raylib +* REDESIGNED: GuiSlider*()/GuiScrollBar() to support out-of-bounds +* +* 3.5 (20-Apr-2023) ADDED: GuiTabBar(), based on GuiToggle() +* ADDED: Helper functions to split text in separate lines +* ADDED: Multiple new icons, useful for code editing tools +* REMOVED: Unneeded icon editing functions +* REMOVED: GuiTextBoxMulti(), very limited and broken +* REMOVED: MeasureTextEx() dependency, logic directly implemented +* REMOVED: DrawTextEx() dependency, logic directly implemented +* REVIEWED: GuiScrollBar(), improve mouse-click behaviour +* REVIEWED: Library header info, more info, better organized +* REDESIGNED: GuiTextBox() to support cursor movement +* REDESIGNED: GuiDrawText() to divide drawing by lines +* +* 3.2 (22-May-2022) RENAMED: Some enum values, for unification, avoiding prefixes +* REMOVED: GuiScrollBar(), only internal +* REDESIGNED: GuiPanel() to support text parameter +* REDESIGNED: GuiScrollPanel() to support text parameter +* REDESIGNED: GuiColorPicker() to support text parameter +* REDESIGNED: GuiColorPanel() to support text parameter +* REDESIGNED: GuiColorBarAlpha() to support text parameter +* REDESIGNED: GuiColorBarHue() to support text parameter +* REDESIGNED: GuiTextInputBox() to support password +* +* 3.1 (12-Jan-2022) REVIEWED: Default style for consistency (aligned with rGuiLayout v2.5 tool) +* REVIEWED: GuiLoadStyle() to support compressed font atlas image data and unload previous textures +* REVIEWED: External icons usage logic +* REVIEWED: GuiLine() for centered alignment when including text +* RENAMED: Multiple controls properties definitions to prepend RAYGUI_ +* RENAMED: RICON_ references to RAYGUI_ICON_ for library consistency +* Projects updated and multiple tweaks +* +* 3.0 (04-Nov-2021) Integrated ricons data to avoid external file +* REDESIGNED: GuiTextBoxMulti() +* REMOVED: GuiImageButton*() +* Multiple minor tweaks and bugs corrected +* +* 2.9 (17-Mar-2021) REMOVED: Tooltip API +* 2.8 (03-May-2020) Centralized rectangles drawing to GuiDrawRectangle() +* 2.7 (20-Feb-2020) ADDED: Possible tooltips API +* 2.6 (09-Sep-2019) ADDED: GuiTextInputBox() +* REDESIGNED: GuiListView*(), GuiDropdownBox(), GuiSlider*(), GuiProgressBar(), GuiMessageBox() +* REVIEWED: GuiTextBox(), GuiSpinner(), GuiValueBox(), GuiLoadStyle() +* Replaced property INNER_PADDING by TEXT_PADDING, renamed some properties +* ADDED: 8 new custom styles ready to use +* Multiple minor tweaks and bugs corrected +* +* 2.5 (28-May-2019) Implemented extended GuiTextBox(), GuiValueBox(), GuiSpinner() +* 2.3 (29-Apr-2019) ADDED: rIcons auxiliar library and support for it, multiple controls reviewed +* Refactor all controls drawing mechanism to use control state +* 2.2 (05-Feb-2019) ADDED: GuiScrollBar(), GuiScrollPanel(), reviewed GuiListView(), removed Gui*Ex() controls +* 2.1 (26-Dec-2018) REDESIGNED: GuiCheckBox(), GuiComboBox(), GuiDropdownBox(), GuiToggleGroup() > Use combined text string +* REDESIGNED: Style system (breaking change) +* 2.0 (08-Nov-2018) ADDED: Support controls guiLock and custom fonts +* REVIEWED: GuiComboBox(), GuiListView()... +* 1.9 (09-Oct-2018) REVIEWED: GuiGrid(), GuiTextBox(), GuiTextBoxMulti(), GuiValueBox()... +* 1.8 (01-May-2018) Lot of rework and redesign to align with rGuiStyler and rGuiLayout +* 1.5 (21-Jun-2017) Working in an improved styles system +* 1.4 (15-Jun-2017) Rewritten all GUI functions (removed useless ones) +* 1.3 (12-Jun-2017) Complete redesign of style system +* 1.1 (01-Jun-2017) Complete review of the library +* 1.0 (07-Jun-2016) Converted to header-only by Ramon Santamaria +* 0.9 (07-Mar-2016) Reviewed and tested by Albert Martos, Ian Eito, Sergio Martinez and Ramon Santamaria +* 0.8 (27-Aug-2015) Initial release. Implemented by Kevin Gato, Daniel Nicolás and Ramon Santamaria +* +* DEPENDENCIES: +* raylib 5.6-dev - Inputs reading (keyboard/mouse), shapes drawing, font loading and text drawing +* +* STANDALONE MODE: +* By default raygui depends on raylib mostly for the inputs and the drawing functionality but that dependency can be disabled +* with the config flag RAYGUI_STANDALONE. In that case is up to the user to provide another backend to cover library needs +* +* The following functions should be redefined for a custom backend: +* +* - Vector2 GetMousePosition(void); +* - float GetMouseWheelMove(void); +* - bool IsMouseButtonDown(int button); +* - bool IsMouseButtonPressed(int button); +* - bool IsMouseButtonReleased(int button); +* - bool IsKeyDown(int key); +* - bool IsKeyPressed(int key); +* - int GetCharPressed(void); // -- GuiTextBox(), GuiValueBox() +* +* - void DrawRectangle(int x, int y, int width, int height, Color color); // -- GuiDrawRectangle() +* - void DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color col3, Color col4); // -- GuiColorPicker() +* +* - Font GetFontDefault(void); // -- GuiLoadStyleDefault() +* - Font LoadFontEx(const char *fileName, int fontSize, int *codepoints, int codepointCount); // -- GuiLoadStyle() +* - Texture2D LoadTextureFromImage(Image image); // -- GuiLoadStyle(), required to load texture from embedded font atlas image +* - void SetShapesTexture(Texture2D tex, Rectangle rec); // -- GuiLoadStyle(), required to set shapes rec to font white rec (optimization) +* - char *LoadFileText(const char *fileName); // -- GuiLoadStyle(), required to load charset data +* - void UnloadFileText(char *text); // -- GuiLoadStyle(), required to unload charset data +* - const char *GetDirectoryPath(const char *filePath); // -- GuiLoadStyle(), required to find charset/font file from text .rgs +* - int *LoadCodepoints(const char *text, int *count); // -- GuiLoadStyle(), required to load required font codepoints list +* - void UnloadCodepoints(int *codepoints); // -- GuiLoadStyle(), required to unload codepoints list +* - unsigned char *DecompressData(const unsigned char *compData, int compDataSize, int *dataSize); // -- GuiLoadStyle() +* +* CONTRIBUTORS: +* Ramon Santamaria: Supervision, review, redesign, update and maintenance +* Vlad Adrian: Complete rewrite of GuiTextBox() to support extended features (2019) +* Sergio Martinez: Review, testing (2015) and redesign of multiple controls (2018) +* Adria Arranz: Testing and implementation of additional controls (2018) +* Jordi Jorba: Testing and implementation of additional controls (2018) +* Albert Martos: Review and testing of the library (2015) +* Ian Eito: Review and testing of the library (2015) +* Kevin Gato: Initial implementation of basic components (2014) +* Daniel Nicolas: Initial implementation of basic components (2014) +* +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2014-2026 Ramon Santamaria (@raysan5) +* +* This software is provided "as-is", without any express or implied warranty. In no event +* will the authors be held liable for any damages arising from the use of this software. +* +* Permission is granted to anyone to use this software for any purpose, including commercial +* applications, and to alter it and redistribute it freely, subject to the following restrictions: +* +* 1. The origin of this software must not be misrepresented; you must not claim that you +* wrote the original software. If you use this software in a product, an acknowledgment +* in the product documentation would be appreciated but is not required. +* +* 2. Altered source versions must be plainly marked as such, and must not be misrepresented +* as being the original software. +* +* 3. This notice may not be removed or altered from any source distribution. +* +**********************************************************************************************/ + +#ifndef RAYGUI_H +#define RAYGUI_H + +#define RAYGUI_VERSION_MAJOR 4 +#define RAYGUI_VERSION_MINOR 5 +#define RAYGUI_VERSION_PATCH 0 +#define RAYGUI_VERSION "5.0-dev" + +#if !defined(RAYGUI_STANDALONE) + #include "raylib.h" +#endif + +// Function specifiers in case library is build/used as a shared library (Windows) +// NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll +#if defined(_WIN32) + #if defined(BUILD_LIBTYPE_SHARED) + #define RAYGUIAPI __declspec(dllexport) // Building the library as a Win32 shared library (.dll) + #elif defined(USE_LIBTYPE_SHARED) + #define RAYGUIAPI __declspec(dllimport) // Using the library as a Win32 shared library (.dll) + #endif + #if !defined(_CRT_SECURE_NO_WARNINGS) + #define _CRT_SECURE_NO_WARNINGS // Disable unsafe warnings on scanf() functions in MSVC + #endif +#endif + +// Function specifiers definition +#ifndef RAYGUIAPI + #define RAYGUIAPI // Functions defined as 'extern' by default (implicit specifiers) +#endif + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- +// Simple log system to avoid printf() calls if required +// NOTE: Avoiding those calls, also avoids const strings memory usage +#define RAYGUI_SUPPORT_LOG_INFO +#if defined(RAYGUI_SUPPORT_LOG_INFO) + #define RAYGUI_LOG(...) printf(__VA_ARGS__) +#else + #define RAYGUI_LOG(...) +#endif + +// Macros to define required UI inputs, including mapping to gamepad controls +// TODO: Define additionally required macros for missing inputs +#if !defined(GUI_BUTTON_DOWN) + #define GUI_BUTTON_DOWN (IsMouseButtonDown(MOUSE_LEFT_BUTTON) || IsGamepadButtonDown(0, GAMEPAD_BUTTON_RIGHT_FACE_DOWN)) +#endif +#if !defined(GUI_BUTTON_DOWN_ALT) + // Mapping to alternative button down pressed + #define GUI_BUTTON_DOWN_ALT (IsMouseButtonDown(MOUSE_RIGHT_BUTTON) || IsGamepadButtonDown(0, GAMEPAD_BUTTON_RIGHT_FACE_RIGHT)) +#endif +#if !defined(GUI_BUTTON_PRESSED) + #define GUI_BUTTON_PRESSED (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) || IsGamepadButtonPressed(0, GAMEPAD_BUTTON_RIGHT_FACE_DOWN)) +#endif +// TODO: WARNING: GuiTabBar() still requires IsMouseButtonPressed(MOUSE_MIDDLE_BUTTON) +#if !defined(GUI_BUTTON_RELEASED) + #define GUI_BUTTON_RELEASED (IsMouseButtonReleased(MOUSE_LEFT_BUTTON) || IsGamepadButtonReleased(0, GAMEPAD_BUTTON_RIGHT_FACE_DOWN)) +#endif +#if !defined(GUI_SCROLL_DELTA) + // Mapping to scroll delta changes + // TODO: Review inconsistencies between platforms + #if defined(PLATFORM_WEB) + // NOTE: Gamepad axis triggers not detected on web platform + #define GUI_SCROLL_DELTA ((float)IsGamepadButtonDown(0, GAMEPAD_BUTTON_RIGHT_TRIGGER_2) - (float)IsGamepadButtonDown(0, GAMEPAD_BUTTON_LEFT_TRIGGER_2)) + #else + #define GUI_SCROLL_DELTA (GetMouseWheelMove() + (GetGamepadAxisMovement(0, GAMEPAD_AXIS_RIGHT_TRIGGER) + 1) - (GetGamepadAxisMovement(0, GAMEPAD_AXIS_LEFT_TRIGGER) + 1)) + #endif +#endif +#if !defined(GUI_POINTER_POSITION) + #define GUI_POINTER_POSITION GetMousePosition() +#endif +#if !defined(GUI_KEY_DOWN) + #define GUI_KEY_DOWN(key) IsKeyDown(key) +#endif +#if !defined(GUI_KEY_PRESSED) + #define GUI_KEY_PRESSED(key) IsKeyPressed(key) +#endif +#if !defined(GUI_INPUT_KEY) + #define GUI_INPUT_KEY GetCharPressed() +#endif + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +// NOTE: Some types are required for RAYGUI_STANDALONE usage +//---------------------------------------------------------------------------------- +#if defined(RAYGUI_STANDALONE) + #ifndef __cplusplus + // Boolean type + #ifndef true + typedef enum { false, true } bool; + #endif + #endif + + // Vector2 type + typedef struct Vector2 { + float x; + float y; + } Vector2; + + // Vector3 type // -- ConvertHSVtoRGB(), ConvertRGBtoHSV() + typedef struct Vector3 { + float x; + float y; + float z; + } Vector3; + + // Color type, RGBA (32bit) + typedef struct Color { + unsigned char r; + unsigned char g; + unsigned char b; + unsigned char a; + } Color; + + // Rectangle type + typedef struct Rectangle { + float x; + float y; + float width; + float height; + } Rectangle; + + // TODO: Texture2D type is very coupled to raylib, required by Font type + // It should be redesigned to be provided by user + typedef struct Texture { + unsigned int id; // OpenGL texture id + int width; // Texture base width + int height; // Texture base height + int mipmaps; // Mipmap levels, 1 by default + int format; // Data format (PixelFormat type) + } Texture; + + // Texture2D, same as Texture + typedef Texture Texture2D; + + // Image, pixel data stored in CPU memory (RAM) + typedef struct Image { + void *data; // Image raw data + int width; // Image base width + int height; // Image base height + int mipmaps; // Mipmap levels, 1 by default + int format; // Data format (PixelFormat type) + } Image; + + // GlyphInfo, font characters glyphs info + typedef struct GlyphInfo { + int value; // Character value (Unicode) + int offsetX; // Character offset X when drawing + int offsetY; // Character offset Y when drawing + int advanceX; // Character advance position X + Image image; // Character image data + } GlyphInfo; + + // TODO: Font type is very coupled to raylib, mostly required by GuiLoadStyle() + // It should be redesigned to be provided by user + typedef struct Font { + int baseSize; // Base size (default chars height) + int glyphCount; // Number of glyph characters + int glyphPadding; // Padding around the glyph characters + Texture2D texture; // Texture atlas containing the glyphs + Rectangle *recs; // Rectangles in texture for the glyphs + GlyphInfo *glyphs; // Glyphs info data + } Font; +#endif + +// Style property +// NOTE: Used when exporting style as code for convenience +typedef struct GuiStyleProp { + unsigned short controlId; // Control identifier + unsigned short propertyId; // Property identifier + int propertyValue; // Property value +} GuiStyleProp; + +/* +// Controls text style -NOT USED- +// NOTE: Text style is defined by control +typedef struct GuiTextStyle { + unsigned int size; + int charSpacing; + int lineSpacing; + int alignmentH; + int alignmentV; + int padding; +} GuiTextStyle; +*/ + +// Gui control state +typedef enum { + STATE_NORMAL = 0, + STATE_FOCUSED, + STATE_PRESSED, + STATE_DISABLED +} GuiState; + +// Gui control text alignment +typedef enum { + TEXT_ALIGN_LEFT = 0, + TEXT_ALIGN_CENTER, + TEXT_ALIGN_RIGHT +} GuiTextAlignment; + +// Gui control text alignment vertical +// NOTE: Text vertical position inside the text bounds +typedef enum { + TEXT_ALIGN_TOP = 0, + TEXT_ALIGN_MIDDLE, + TEXT_ALIGN_BOTTOM +} GuiTextAlignmentVertical; + +// Gui control text wrap mode +// NOTE: Useful for multiline text +typedef enum { + TEXT_WRAP_NONE = 0, + TEXT_WRAP_CHAR, + TEXT_WRAP_WORD +} GuiTextWrapMode; + +// Gui controls +typedef enum { + // Default -> populates to all controls when set + DEFAULT = 0, + + // Basic controls + LABEL, // Used also for: LABELBUTTON + BUTTON, + TOGGLE, // Used also for: TOGGLEGROUP + SLIDER, // Used also for: SLIDERBAR, TOGGLESLIDER + PROGRESSBAR, + CHECKBOX, + COMBOBOX, + DROPDOWNBOX, + TEXTBOX, // Used also for: TEXTBOXMULTI + VALUEBOX, + CONTROL11, + LISTVIEW, + COLORPICKER, + SCROLLBAR, + STATUSBAR +} GuiControl; + +// Gui base properties for every control +// NOTE: RAYGUI_MAX_PROPS_BASE properties (by default 16 properties) +typedef enum { + BORDER_COLOR_NORMAL = 0, // Control border color in STATE_NORMAL + BASE_COLOR_NORMAL, // Control base color in STATE_NORMAL + TEXT_COLOR_NORMAL, // Control text color in STATE_NORMAL + BORDER_COLOR_FOCUSED, // Control border color in STATE_FOCUSED + BASE_COLOR_FOCUSED, // Control base color in STATE_FOCUSED + TEXT_COLOR_FOCUSED, // Control text color in STATE_FOCUSED + BORDER_COLOR_PRESSED, // Control border color in STATE_PRESSED + BASE_COLOR_PRESSED, // Control base color in STATE_PRESSED + TEXT_COLOR_PRESSED, // Control text color in STATE_PRESSED + BORDER_COLOR_DISABLED, // Control border color in STATE_DISABLED + BASE_COLOR_DISABLED, // Control base color in STATE_DISABLED + TEXT_COLOR_DISABLED, // Control text color in STATE_DISABLED + BORDER_WIDTH = 12, // Control border size, 0 for no border + //TEXT_SIZE, // Control text size (glyphs max height) -> GLOBAL for all controls + //TEXT_SPACING, // Control text spacing between glyphs -> GLOBAL for all controls + //TEXT_LINE_SPACING, // Control text spacing between lines -> GLOBAL for all controls + TEXT_PADDING = 13, // Control text padding, not considering border + TEXT_ALIGNMENT = 14, // Control text horizontal alignment inside control text bound (after border and padding) + //TEXT_WRAP_MODE // Control text wrap-mode inside text bounds -> GLOBAL for all controls +} GuiControlProperty; + +// TODO: Which text styling properties should be global or per-control? +// At this moment TEXT_PADDING and TEXT_ALIGNMENT is configured and saved per control while +// TEXT_SIZE, TEXT_SPACING, TEXT_LINE_SPACING, TEXT_ALIGNMENT_VERTICAL, TEXT_WRAP_MODE are global and +// should be configured by user as needed while defining the UI layout + +// Gui extended properties depend on control +// NOTE: RAYGUI_MAX_PROPS_EXTENDED properties (by default, max 8 properties) +//---------------------------------------------------------------------------------- +// DEFAULT extended properties +// NOTE: Those properties are common to all controls or global +// WARNING: Only 8 slots vailable for those properties by default +typedef enum { + TEXT_SIZE = 16, // Text size (glyphs max height) + TEXT_SPACING, // Text spacing between glyphs + LINE_COLOR, // Line control color + BACKGROUND_COLOR, // Background color + TEXT_LINE_SPACING, // Text spacing between lines + TEXT_ALIGNMENT_VERTICAL, // Text vertical alignment inside text bounds (after border and padding) + TEXT_WRAP_MODE // Text wrap-mode inside text bounds + //TEXT_DECORATION // Text decoration: 0-None, 1-Underline, 2-Line-through, 3-Overline + //TEXT_DECORATION_THICK // Text decoration line thickness +} GuiDefaultProperty; + +// Other possible text properties: +// TEXT_WEIGHT // Normal, Italic, Bold -> Requires specific font change +// TEXT_INDENT // Text indentation -> Now using TEXT_PADDING... + +// Label +//typedef enum { } GuiLabelProperty; + +// Button/Spinner +//typedef enum { } GuiButtonProperty; + +// Toggle/ToggleGroup +typedef enum { + GROUP_PADDING = 16, // ToggleGroup separation between toggles +} GuiToggleProperty; + +// Slider/SliderBar +typedef enum { + SLIDER_WIDTH = 16, // Slider size of internal bar + SLIDER_PADDING // Slider/SliderBar internal bar padding +} GuiSliderProperty; + +// ProgressBar +typedef enum { + PROGRESS_PADDING = 16, // ProgressBar internal padding + PROGRESS_SIDE, // ProgressBar increment side: 0-left->right, 1-right-left +} GuiProgressBarProperty; + +// ScrollBar +typedef enum { + ARROWS_SIZE = 16, // ScrollBar arrows size + ARROWS_VISIBLE, // ScrollBar arrows visible + SCROLL_SLIDER_PADDING, // ScrollBar slider internal padding + SCROLL_SLIDER_SIZE, // ScrollBar slider size + SCROLL_PADDING, // ScrollBar scroll padding from arrows + SCROLL_SPEED, // ScrollBar scrolling speed +} GuiScrollBarProperty; + +// CheckBox +typedef enum { + CHECK_PADDING = 16 // CheckBox internal check padding +} GuiCheckBoxProperty; + +// ComboBox +typedef enum { + COMBO_BUTTON_WIDTH = 16, // ComboBox right button width + COMBO_BUTTON_SPACING // ComboBox button separation +} GuiComboBoxProperty; + +// DropdownBox +typedef enum { + ARROW_PADDING = 16, // DropdownBox arrow separation from border and items + DROPDOWN_ITEMS_SPACING, // DropdownBox items separation + DROPDOWN_ARROW_HIDDEN, // DropdownBox arrow hidden + DROPDOWN_ROLL_UP // DropdownBox roll up flag (default rolls down) +} GuiDropdownBoxProperty; + +// TextBox/TextBoxMulti/ValueBox/Spinner +typedef enum { + TEXT_READONLY = 16, // TextBox in read-only mode: 0-text editable, 1-text no-editable +} GuiTextBoxProperty; + +// ValueBox/Spinner +typedef enum { + SPINNER_BUTTON_WIDTH = 16, // Spinner left/right buttons width + SPINNER_BUTTON_SPACING, // Spinner buttons separation +} GuiValueBoxProperty; + +// Control11 +//typedef enum { } GuiControl11Property; + +// ListView +typedef enum { + LIST_ITEMS_HEIGHT = 16, // ListView items height + LIST_ITEMS_SPACING, // ListView items separation + SCROLLBAR_WIDTH, // ListView scrollbar size (usually width) + SCROLLBAR_SIDE, // ListView scrollbar side (0-SCROLLBAR_LEFT_SIDE, 1-SCROLLBAR_RIGHT_SIDE) + LIST_ITEMS_BORDER_NORMAL, // ListView items border enabled in normal state + LIST_ITEMS_BORDER_WIDTH // ListView items border width +} GuiListViewProperty; + +// ColorPicker +typedef enum { + COLOR_SELECTOR_SIZE = 16, + HUEBAR_WIDTH, // ColorPicker right hue bar width + HUEBAR_PADDING, // ColorPicker right hue bar separation from panel + HUEBAR_SELECTOR_HEIGHT, // ColorPicker right hue bar selector height + HUEBAR_SELECTOR_OVERFLOW // ColorPicker right hue bar selector overflow +} GuiColorPickerProperty; + +#define SCROLLBAR_LEFT_SIDE 0 +#define SCROLLBAR_RIGHT_SIDE 1 + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +// ... + +//---------------------------------------------------------------------------------- +// Module Functions Declaration +//---------------------------------------------------------------------------------- + +#if defined(__cplusplus) +extern "C" { // Prevents name mangling of functions +#endif + +// Global gui state control functions +RAYGUIAPI void GuiEnable(void); // Enable gui controls (global state) +RAYGUIAPI void GuiDisable(void); // Disable gui controls (global state) +RAYGUIAPI void GuiLock(void); // Lock gui controls (global state) +RAYGUIAPI void GuiUnlock(void); // Unlock gui controls (global state) +RAYGUIAPI bool GuiIsLocked(void); // Check if gui is locked (global state) +RAYGUIAPI void GuiSetAlpha(float alpha); // Set gui controls alpha (global state), alpha goes from 0.0f to 1.0f +RAYGUIAPI void GuiSetState(int state); // Set gui state (global state) +RAYGUIAPI int GuiGetState(void); // Get gui state (global state) + +// Font set/get functions +RAYGUIAPI void GuiSetFont(Font font); // Set gui custom font (global state) +RAYGUIAPI Font GuiGetFont(void); // Get gui custom font (global state) + +// Style set/get functions +RAYGUIAPI void GuiSetStyle(int control, int property, int value); // Set one style property +RAYGUIAPI int GuiGetStyle(int control, int property); // Get one style property + +// Styles loading functions +RAYGUIAPI void GuiLoadStyle(const char *fileName); // Load style file over global style variable (.rgs) +RAYGUIAPI void GuiLoadStyleDefault(void); // Load style default over global style + +// Tooltips management functions +RAYGUIAPI void GuiEnableTooltip(void); // Enable gui tooltips (global state) +RAYGUIAPI void GuiDisableTooltip(void); // Disable gui tooltips (global state) +RAYGUIAPI void GuiSetTooltip(const char *tooltip); // Set tooltip string + +// Icons functionality +RAYGUIAPI const char *GuiIconText(int iconId, const char *text); // Get text with icon id prepended (if supported) +#if !defined(RAYGUI_NO_ICONS) +RAYGUIAPI void GuiSetIconScale(int scale); // Set default icon drawing size +RAYGUIAPI unsigned int *GuiGetIcons(void); // Get raygui icons data pointer +RAYGUIAPI char **GuiLoadIcons(const char *fileName, bool loadIconsName); // Load raygui icons file (.rgi) into internal icons data +RAYGUIAPI void GuiDrawIcon(int iconId, int posX, int posY, int pixelSize, Color color); // Draw icon using pixel size at specified position +#endif + +// Utility functions +RAYGUIAPI int GuiGetTextWidth(const char *text); // Get text width considering gui style and icon size (if required) + +// Controls +//---------------------------------------------------------------------------------------------------------- +// Container/separator controls, useful for controls organization +RAYGUIAPI int GuiWindowBox(Rectangle bounds, const char *title); // Window Box control, shows a window that can be closed +RAYGUIAPI int GuiGroupBox(Rectangle bounds, const char *text); // Group Box control with text name +RAYGUIAPI int GuiLine(Rectangle bounds, const char *text); // Line separator control, could contain text +RAYGUIAPI int GuiPanel(Rectangle bounds, const char *text); // Panel control, useful to group controls +RAYGUIAPI int GuiTabBar(Rectangle bounds, char **text, int count, int *active); // Tab Bar control, returns TAB to be closed or -1 +RAYGUIAPI int GuiScrollPanel(Rectangle bounds, const char *text, Rectangle content, Vector2 *scroll, Rectangle *view); // Scroll Panel control + +// Basic controls set +RAYGUIAPI int GuiLabel(Rectangle bounds, const char *text); // Label control +RAYGUIAPI int GuiButton(Rectangle bounds, const char *text); // Button control, returns true when clicked +RAYGUIAPI int GuiLabelButton(Rectangle bounds, const char *text); // Label button control, returns true when clicked +RAYGUIAPI int GuiToggle(Rectangle bounds, const char *text, bool *active); // Toggle Button control +RAYGUIAPI int GuiToggleGroup(Rectangle bounds, const char *text, int *active); // Toggle Group control +RAYGUIAPI int GuiToggleSlider(Rectangle bounds, const char *text, int *active); // Toggle Slider control +RAYGUIAPI int GuiCheckBox(Rectangle bounds, const char *text, bool *checked); // Check Box control, returns true when active +RAYGUIAPI int GuiComboBox(Rectangle bounds, const char *text, int *active); // Combo Box control + +RAYGUIAPI int GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMode); // Dropdown Box control +RAYGUIAPI int GuiSpinner(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode); // Spinner control +RAYGUIAPI int GuiValueBox(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode); // Value Box control, updates input text with numbers +RAYGUIAPI int GuiValueBoxFloat(Rectangle bounds, const char *text, char *textValue, float *value, bool editMode); // Value box control for float values +RAYGUIAPI int GuiTextBox(Rectangle bounds, char *text, int textSize, bool editMode); // Text Box control, updates input text + +RAYGUIAPI int GuiSlider(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue); // Slider control +RAYGUIAPI int GuiSliderBar(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue); // Slider Bar control +RAYGUIAPI int GuiProgressBar(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue); // Progress Bar control +RAYGUIAPI int GuiStatusBar(Rectangle bounds, const char *text); // Status Bar control, shows info text +RAYGUIAPI int GuiDummyRec(Rectangle bounds, const char *text); // Dummy control for placeholders +RAYGUIAPI int GuiGrid(Rectangle bounds, const char *text, float spacing, int subdivs, Vector2 *mouseCell); // Grid control + +// Advance controls set +RAYGUIAPI int GuiListView(Rectangle bounds, const char *text, int *scrollIndex, int *active); // List View control +RAYGUIAPI int GuiListViewEx(Rectangle bounds, char **text, int count, int *scrollIndex, int *active, int *focus); // List View with extended parameters +RAYGUIAPI int GuiMessageBox(Rectangle bounds, const char *title, const char *message, const char *buttons); // Message Box control, displays a message +RAYGUIAPI int GuiTextInputBox(Rectangle bounds, const char *title, const char *message, const char *buttons, char *text, int textMaxSize, bool *secretViewActive); // Text Input Box control, ask for text, supports secret +RAYGUIAPI int GuiColorPicker(Rectangle bounds, const char *text, Color *color); // Color Picker control (multiple color controls) +RAYGUIAPI int GuiColorPanel(Rectangle bounds, const char *text, Color *color); // Color Panel control +RAYGUIAPI int GuiColorBarAlpha(Rectangle bounds, const char *text, float *alpha); // Color Bar Alpha control +RAYGUIAPI int GuiColorBarHue(Rectangle bounds, const char *text, float *value); // Color Bar Hue control +RAYGUIAPI int GuiColorPickerHSV(Rectangle bounds, const char *text, Vector3 *colorHsv); // Color Picker control that avoids conversion to RGB on each call (multiple color controls) +RAYGUIAPI int GuiColorPanelHSV(Rectangle bounds, const char *text, Vector3 *colorHsv); // Color Panel control that updates Hue-Saturation-Value color value, used by GuiColorPickerHSV() +//---------------------------------------------------------------------------------------------------------- + +#if !defined(RAYGUI_NO_ICONS) + +#if !defined(RAYGUI_CUSTOM_ICONS) +//---------------------------------------------------------------------------------- +// Icons enumeration +//---------------------------------------------------------------------------------- +typedef enum { + ICON_NONE = 0, + ICON_FOLDER_FILE_OPEN = 1, + ICON_FILE_SAVE_CLASSIC = 2, + ICON_FOLDER_OPEN = 3, + ICON_FOLDER_SAVE = 4, + ICON_FILE_OPEN = 5, + ICON_FILE_SAVE = 6, + ICON_FILE_EXPORT = 7, + ICON_FILE_ADD = 8, + ICON_FILE_DELETE = 9, + ICON_FILETYPE_TEXT = 10, + ICON_FILETYPE_AUDIO = 11, + ICON_FILETYPE_IMAGE = 12, + ICON_FILETYPE_PLAY = 13, + ICON_FILETYPE_VIDEO = 14, + ICON_FILETYPE_INFO = 15, + ICON_FILE_COPY = 16, + ICON_FILE_CUT = 17, + ICON_FILE_PASTE = 18, + ICON_CURSOR_HAND = 19, + ICON_CURSOR_POINTER = 20, + ICON_CURSOR_CLASSIC = 21, + ICON_PENCIL = 22, + ICON_PENCIL_BIG = 23, + ICON_BRUSH_CLASSIC = 24, + ICON_BRUSH_PAINTER = 25, + ICON_WATER_DROP = 26, + ICON_COLOR_PICKER = 27, + ICON_RUBBER = 28, + ICON_COLOR_BUCKET = 29, + ICON_TEXT_T = 30, + ICON_TEXT_A = 31, + ICON_SCALE = 32, + ICON_RESIZE = 33, + ICON_FILTER_POINT = 34, + ICON_FILTER_BILINEAR = 35, + ICON_CROP = 36, + ICON_CROP_ALPHA = 37, + ICON_SQUARE_TOGGLE = 38, + ICON_SYMMETRY = 39, + ICON_SYMMETRY_HORIZONTAL = 40, + ICON_SYMMETRY_VERTICAL = 41, + ICON_LENS = 42, + ICON_LENS_BIG = 43, + ICON_EYE_ON = 44, + ICON_EYE_OFF = 45, + ICON_FILTER_TOP = 46, + ICON_FILTER = 47, + ICON_TARGET_POINT = 48, + ICON_TARGET_SMALL = 49, + ICON_TARGET_BIG = 50, + ICON_TARGET_MOVE = 51, + ICON_CURSOR_MOVE = 52, + ICON_CURSOR_SCALE = 53, + ICON_CURSOR_SCALE_RIGHT = 54, + ICON_CURSOR_SCALE_LEFT = 55, + ICON_UNDO = 56, + ICON_REDO = 57, + ICON_REREDO = 58, + ICON_MUTATE = 59, + ICON_ROTATE = 60, + ICON_REPEAT = 61, + ICON_SHUFFLE = 62, + ICON_EMPTYBOX = 63, + ICON_TARGET = 64, + ICON_TARGET_SMALL_FILL = 65, + ICON_TARGET_BIG_FILL = 66, + ICON_TARGET_MOVE_FILL = 67, + ICON_CURSOR_MOVE_FILL = 68, + ICON_CURSOR_SCALE_FILL = 69, + ICON_CURSOR_SCALE_RIGHT_FILL = 70, + ICON_CURSOR_SCALE_LEFT_FILL = 71, + ICON_UNDO_FILL = 72, + ICON_REDO_FILL = 73, + ICON_REREDO_FILL = 74, + ICON_MUTATE_FILL = 75, + ICON_ROTATE_FILL = 76, + ICON_REPEAT_FILL = 77, + ICON_SHUFFLE_FILL = 78, + ICON_EMPTYBOX_SMALL = 79, + ICON_BOX = 80, + ICON_BOX_TOP = 81, + ICON_BOX_TOP_RIGHT = 82, + ICON_BOX_RIGHT = 83, + ICON_BOX_BOTTOM_RIGHT = 84, + ICON_BOX_BOTTOM = 85, + ICON_BOX_BOTTOM_LEFT = 86, + ICON_BOX_LEFT = 87, + ICON_BOX_TOP_LEFT = 88, + ICON_BOX_CENTER = 89, + ICON_BOX_CIRCLE_MASK = 90, + ICON_POT = 91, + ICON_ALPHA_MULTIPLY = 92, + ICON_ALPHA_CLEAR = 93, + ICON_DITHERING = 94, + ICON_MIPMAPS = 95, + ICON_BOX_GRID = 96, + ICON_GRID = 97, + ICON_BOX_CORNERS_SMALL = 98, + ICON_BOX_CORNERS_BIG = 99, + ICON_FOUR_BOXES = 100, + ICON_GRID_FILL = 101, + ICON_BOX_MULTISIZE = 102, + ICON_ZOOM_SMALL = 103, + ICON_ZOOM_MEDIUM = 104, + ICON_ZOOM_BIG = 105, + ICON_ZOOM_ALL = 106, + ICON_ZOOM_CENTER = 107, + ICON_BOX_DOTS_SMALL = 108, + ICON_BOX_DOTS_BIG = 109, + ICON_BOX_CONCENTRIC = 110, + ICON_BOX_GRID_BIG = 111, + ICON_OK_TICK = 112, + ICON_CROSS = 113, + ICON_ARROW_LEFT = 114, + ICON_ARROW_RIGHT = 115, + ICON_ARROW_DOWN = 116, + ICON_ARROW_UP = 117, + ICON_ARROW_LEFT_FILL = 118, + ICON_ARROW_RIGHT_FILL = 119, + ICON_ARROW_DOWN_FILL = 120, + ICON_ARROW_UP_FILL = 121, + ICON_AUDIO = 122, + ICON_FX = 123, + ICON_WAVE = 124, + ICON_WAVE_SINUS = 125, + ICON_WAVE_SQUARE = 126, + ICON_WAVE_TRIANGULAR = 127, + ICON_CROSS_SMALL = 128, + ICON_PLAYER_PREVIOUS = 129, + ICON_PLAYER_PLAY_BACK = 130, + ICON_PLAYER_PLAY = 131, + ICON_PLAYER_PAUSE = 132, + ICON_PLAYER_STOP = 133, + ICON_PLAYER_NEXT = 134, + ICON_PLAYER_RECORD = 135, + ICON_MAGNET = 136, + ICON_LOCK_CLOSE = 137, + ICON_LOCK_OPEN = 138, + ICON_CLOCK = 139, + ICON_TOOLS = 140, + ICON_GEAR = 141, + ICON_GEAR_BIG = 142, + ICON_BIN = 143, + ICON_HAND_POINTER = 144, + ICON_LASER = 145, + ICON_COIN = 146, + ICON_EXPLOSION = 147, + ICON_1UP = 148, + ICON_PLAYER = 149, + ICON_PLAYER_JUMP = 150, + ICON_KEY = 151, + ICON_DEMON = 152, + ICON_TEXT_POPUP = 153, + ICON_GEAR_EX = 154, + ICON_CRACK = 155, + ICON_CRACK_POINTS = 156, + ICON_STAR = 157, + ICON_DOOR = 158, + ICON_EXIT = 159, + ICON_MODE_2D = 160, + ICON_MODE_3D = 161, + ICON_CUBE = 162, + ICON_CUBE_FACE_TOP = 163, + ICON_CUBE_FACE_LEFT = 164, + ICON_CUBE_FACE_FRONT = 165, + ICON_CUBE_FACE_BOTTOM = 166, + ICON_CUBE_FACE_RIGHT = 167, + ICON_CUBE_FACE_BACK = 168, + ICON_CAMERA = 169, + ICON_SPECIAL = 170, + ICON_LINK_NET = 171, + ICON_LINK_BOXES = 172, + ICON_LINK_MULTI = 173, + ICON_LINK = 174, + ICON_LINK_BROKE = 175, + ICON_TEXT_NOTES = 176, + ICON_NOTEBOOK = 177, + ICON_SUITCASE = 178, + ICON_SUITCASE_ZIP = 179, + ICON_MAILBOX = 180, + ICON_MONITOR = 181, + ICON_PRINTER = 182, + ICON_PHOTO_CAMERA = 183, + ICON_PHOTO_CAMERA_FLASH = 184, + ICON_HOUSE = 185, + ICON_HEART = 186, + ICON_CORNER = 187, + ICON_VERTICAL_BARS = 188, + ICON_VERTICAL_BARS_FILL = 189, + ICON_LIFE_BARS = 190, + ICON_INFO = 191, + ICON_CROSSLINE = 192, + ICON_HELP = 193, + ICON_FILETYPE_ALPHA = 194, + ICON_FILETYPE_HOME = 195, + ICON_LAYERS_VISIBLE = 196, + ICON_LAYERS = 197, + ICON_WINDOW = 198, + ICON_HIDPI = 199, + ICON_FILETYPE_BINARY = 200, + ICON_HEX = 201, + ICON_SHIELD = 202, + ICON_FILE_NEW = 203, + ICON_FOLDER_ADD = 204, + ICON_ALARM = 205, + ICON_CPU = 206, + ICON_ROM = 207, + ICON_STEP_OVER = 208, + ICON_STEP_INTO = 209, + ICON_STEP_OUT = 210, + ICON_RESTART = 211, + ICON_BREAKPOINT_ON = 212, + ICON_BREAKPOINT_OFF = 213, + ICON_BURGER_MENU = 214, + ICON_CASE_SENSITIVE = 215, + ICON_REG_EXP = 216, + ICON_FOLDER = 217, + ICON_FILE = 218, + ICON_SAND_TIMER = 219, + ICON_WARNING = 220, + ICON_HELP_BOX = 221, + ICON_INFO_BOX = 222, + ICON_PRIORITY = 223, + ICON_LAYERS_ISO = 224, + ICON_LAYERS2 = 225, + ICON_MLAYERS = 226, + ICON_MAPS = 227, + ICON_HOT = 228, + ICON_LABEL = 229, + ICON_NAME_ID = 230, + ICON_SLICING = 231, + ICON_MANUAL_CONTROL = 232, + ICON_COLLISION = 233, + ICON_CIRCLE_ADD = 234, + ICON_CIRCLE_ADD_FILL = 235, + ICON_CIRCLE_WARNING = 236, + ICON_CIRCLE_WARNING_FILL = 237, + ICON_BOX_MORE = 238, + ICON_BOX_MORE_FILL = 239, + ICON_BOX_MINUS = 240, + ICON_BOX_MINUS_FILL = 241, + ICON_UNION = 242, + ICON_INTERSECTION = 243, + ICON_DIFFERENCE = 244, + ICON_SPHERE = 245, + ICON_CYLINDER = 246, + ICON_CONE = 247, + ICON_ELLIPSOID = 248, + ICON_CAPSULE = 249, + ICON_250 = 250, + ICON_251 = 251, + ICON_252 = 252, + ICON_253 = 253, + ICON_254 = 254, + ICON_255 = 255 +} GuiIconName; +#endif + +#endif + +#if defined(__cplusplus) +} // Prevents name mangling of functions +#endif + +#endif // RAYGUI_H + +/*********************************************************************************** +* +* RAYGUI IMPLEMENTATION +* +************************************************************************************/ + +#if defined(RAYGUI_IMPLEMENTATION) + +#include // Required for: FILE, fopen(), fclose(), fprintf(), feof(), fscanf(), snprintf(), vsprintf() [GuiLoadStyle(), GuiLoadIcons()] +#include // Required for: strlen() [GuiTextBox(), GuiValueBox()], memset(), memcpy() +#include // Required for: va_list, va_start(), vfprintf(), va_end() [TextFormat()] +#include // Required for: roundf() [GuiColorPicker()] +#include // Required for: isspace() [GuiTextBox()] + +// Allow custom memory allocators +#if defined(RAYGUI_MALLOC) || defined(RAYGUI_CALLOC) || defined(RAYGUI_FREE) + #if !defined(RAYGUI_MALLOC) || !defined(RAYGUI_CALLOC) || !defined(RAYGUI_FREE) + #error "RAYGUI: if RAYGUI_MALLOC, RAYGUI_CALLOC, or RAYGUI_FREE is customized, all three must be customized" + #endif +#else + #include // Required for: malloc(), calloc(), free() [GuiLoadStyle(), GuiLoadIcons()] + + #define RAYGUI_MALLOC(sz) malloc(sz) + #define RAYGUI_CALLOC(n,sz) calloc(n,sz) + #define RAYGUI_FREE(p) free(p) +#endif + +#ifdef __cplusplus + #define RAYGUI_CLITERAL(name) name +#else + #define RAYGUI_CLITERAL(name) (name) +#endif + +// Check if two rectangles are equal, used to validate a slider bounds as an id +#ifndef CHECK_BOUNDS_ID + #define CHECK_BOUNDS_ID(src, dst) (((int)src.x == (int)dst.x) && ((int)src.y == (int)dst.y) && ((int)src.width == (int)dst.width) && ((int)src.height == (int)dst.height)) +#endif + +#if !defined(RAYGUI_NO_ICONS) && !defined(RAYGUI_CUSTOM_ICONS) + +// Embedded icons, no external file provided +#define RAYGUI_ICON_SIZE 16 // Size of icons in pixels (squared) +#define RAYGUI_ICON_MAX_ICONS 256 // Maximum number of icons +#define RAYGUI_ICON_MAX_NAME_LENGTH 32 // Maximum length of icon name id + +// Icons data is defined by bit array (every bit represents one pixel) +// Those arrays are stored as unsigned int data arrays, so, +// every array element defines 32 pixels (bits) of information +// One icon is defined by 8 int, (8 int*32 bit = 256 bit = 16*16 pixels) +// NOTE: Number of elemens depend on RAYGUI_ICON_SIZE (by default 16x16 pixels) +#define RAYGUI_ICON_DATA_ELEMENTS (RAYGUI_ICON_SIZE*RAYGUI_ICON_SIZE/32) + +//---------------------------------------------------------------------------------- +// Icons data for all gui possible icons (allocated on data segment by default) +// +// NOTE 1: Every icon is codified in binary form, using 1 bit per pixel, so, +// every 16x16 icon requires 8 integers (16*16/32) to be stored +// +// NOTE 2: A different icon set could be loaded over this array using GuiLoadIcons(), +// but loaded icons set must be same RAYGUI_ICON_SIZE and no more than RAYGUI_ICON_MAX_ICONS +// +// guiIcons size is by default: 256*(16*16/32) = 2048*4 = 8192 bytes = 8 KB +//---------------------------------------------------------------------------------- +static unsigned int guiIcons[RAYGUI_ICON_MAX_ICONS*RAYGUI_ICON_DATA_ELEMENTS] = { + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_NONE + 0x3ff80000, 0x2f082008, 0x2042207e, 0x40027fc2, 0x40024002, 0x40024002, 0x40024002, 0x00007ffe, // ICON_FOLDER_FILE_OPEN + 0x3ffe0000, 0x44226422, 0x400247e2, 0x5ffa4002, 0x57ea500a, 0x500a500a, 0x40025ffa, 0x00007ffe, // ICON_FILE_SAVE_CLASSIC + 0x00000000, 0x0042007e, 0x40027fc2, 0x40024002, 0x41024002, 0x44424282, 0x793e4102, 0x00000100, // ICON_FOLDER_OPEN + 0x00000000, 0x0042007e, 0x40027fc2, 0x40024002, 0x41024102, 0x44424102, 0x793e4282, 0x00000000, // ICON_FOLDER_SAVE + 0x3ff00000, 0x201c2010, 0x20042004, 0x21042004, 0x24442284, 0x21042104, 0x20042104, 0x00003ffc, // ICON_FILE_OPEN + 0x3ff00000, 0x201c2010, 0x20042004, 0x21042004, 0x21042104, 0x22842444, 0x20042104, 0x00003ffc, // ICON_FILE_SAVE + 0x3ff00000, 0x201c2010, 0x00042004, 0x20041004, 0x20844784, 0x00841384, 0x20042784, 0x00003ffc, // ICON_FILE_EXPORT + 0x3ff00000, 0x201c2010, 0x20042004, 0x20042004, 0x22042204, 0x22042f84, 0x20042204, 0x00003ffc, // ICON_FILE_ADD + 0x3ff00000, 0x201c2010, 0x20042004, 0x20042004, 0x25042884, 0x25042204, 0x20042884, 0x00003ffc, // ICON_FILE_DELETE + 0x3ff00000, 0x201c2010, 0x20042004, 0x20042ff4, 0x20042ff4, 0x20042ff4, 0x20042004, 0x00003ffc, // ICON_FILETYPE_TEXT + 0x3ff00000, 0x201c2010, 0x27042004, 0x244424c4, 0x26442444, 0x20642664, 0x20042004, 0x00003ffc, // ICON_FILETYPE_AUDIO + 0x3ff00000, 0x201c2010, 0x26042604, 0x20042004, 0x35442884, 0x2414222c, 0x20042004, 0x00003ffc, // ICON_FILETYPE_IMAGE + 0x3ff00000, 0x201c2010, 0x20c42004, 0x22442144, 0x22442444, 0x20c42144, 0x20042004, 0x00003ffc, // ICON_FILETYPE_PLAY + 0x3ff00000, 0x3ffc2ff0, 0x3f3c2ff4, 0x3dbc2eb4, 0x3dbc2bb4, 0x3f3c2eb4, 0x3ffc2ff4, 0x00002ff4, // ICON_FILETYPE_VIDEO + 0x3ff00000, 0x201c2010, 0x21842184, 0x21842004, 0x21842184, 0x21842184, 0x20042184, 0x00003ffc, // ICON_FILETYPE_INFO + 0x0ff00000, 0x381c0810, 0x28042804, 0x28042804, 0x28042804, 0x28042804, 0x20102ffc, 0x00003ff0, // ICON_FILE_COPY + 0x00000000, 0x701c0000, 0x079c1e14, 0x55a000f0, 0x079c00f0, 0x701c1e14, 0x00000000, 0x00000000, // ICON_FILE_CUT + 0x01c00000, 0x13e41bec, 0x3f841004, 0x204420c4, 0x20442044, 0x20442044, 0x207c2044, 0x00003fc0, // ICON_FILE_PASTE + 0x00000000, 0x3aa00fe0, 0x2abc2aa0, 0x2aa42aa4, 0x20042aa4, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_CURSOR_HAND + 0x00000000, 0x003c000c, 0x030800c8, 0x30100c10, 0x10202020, 0x04400840, 0x01800280, 0x00000000, // ICON_CURSOR_POINTER + 0x00000000, 0x00180000, 0x01f00078, 0x03e007f0, 0x07c003e0, 0x04000e40, 0x00000000, 0x00000000, // ICON_CURSOR_CLASSIC + 0x00000000, 0x04000000, 0x11000a00, 0x04400a80, 0x01100220, 0x00580088, 0x00000038, 0x00000000, // ICON_PENCIL + 0x04000000, 0x15000a00, 0x50402880, 0x14102820, 0x05040a08, 0x015c028c, 0x007c00bc, 0x00000000, // ICON_PENCIL_BIG + 0x01c00000, 0x01400140, 0x01400140, 0x0ff80140, 0x0ff80808, 0x0aa80808, 0x0aa80aa8, 0x00000ff8, // ICON_BRUSH_CLASSIC + 0x1ffc0000, 0x5ffc7ffe, 0x40004000, 0x00807f80, 0x01c001c0, 0x01c001c0, 0x01c001c0, 0x00000080, // ICON_BRUSH_PAINTER + 0x00000000, 0x00800000, 0x01c00080, 0x03e001c0, 0x07f003e0, 0x036006f0, 0x000001c0, 0x00000000, // ICON_WATER_DROP + 0x00000000, 0x3e003800, 0x1f803f80, 0x0c201e40, 0x02080c10, 0x00840104, 0x00380044, 0x00000000, // ICON_COLOR_PICKER + 0x00000000, 0x07800300, 0x1fe00fc0, 0x3f883fd0, 0x0e021f04, 0x02040402, 0x00f00108, 0x00000000, // ICON_RUBBER + 0x00c00000, 0x02800140, 0x08200440, 0x20081010, 0x2ffe3004, 0x03f807fc, 0x00e001f0, 0x00000040, // ICON_COLOR_BUCKET + 0x00000000, 0x21843ffc, 0x01800180, 0x01800180, 0x01800180, 0x01800180, 0x03c00180, 0x00000000, // ICON_TEXT_T + 0x00800000, 0x01400180, 0x06200340, 0x0c100620, 0x1ff80c10, 0x380c1808, 0x70067004, 0x0000f80f, // ICON_TEXT_A + 0x78000000, 0x50004000, 0x00004800, 0x03c003c0, 0x03c003c0, 0x00100000, 0x0002000a, 0x0000000e, // ICON_SCALE + 0x75560000, 0x5e004002, 0x54001002, 0x41001202, 0x408200fe, 0x40820082, 0x40820082, 0x00006afe, // ICON_RESIZE + 0x00000000, 0x3f003f00, 0x3f003f00, 0x3f003f00, 0x00400080, 0x001c0020, 0x001c001c, 0x00000000, // ICON_FILTER_POINT + 0x6d800000, 0x00004080, 0x40804080, 0x40800000, 0x00406d80, 0x001c0020, 0x001c001c, 0x00000000, // ICON_FILTER_BILINEAR + 0x40080000, 0x1ffe2008, 0x14081008, 0x11081208, 0x10481088, 0x10081028, 0x10047ff8, 0x00001002, // ICON_CROP + 0x00100000, 0x3ffc0010, 0x2ab03550, 0x22b02550, 0x20b02150, 0x20302050, 0x2000fff0, 0x00002000, // ICON_CROP_ALPHA + 0x40000000, 0x1ff82000, 0x04082808, 0x01082208, 0x00482088, 0x00182028, 0x35542008, 0x00000002, // ICON_SQUARE_TOGGLE + 0x00000000, 0x02800280, 0x06c006c0, 0x0ea00ee0, 0x1e901eb0, 0x3e883e98, 0x7efc7e8c, 0x00000000, // ICON_SYMMETRY + 0x01000000, 0x05600100, 0x1d480d50, 0x7d423d44, 0x3d447d42, 0x0d501d48, 0x01000560, 0x00000100, // ICON_SYMMETRY_HORIZONTAL + 0x01800000, 0x04200240, 0x10080810, 0x00001ff8, 0x00007ffe, 0x0ff01ff8, 0x03c007e0, 0x00000180, // ICON_SYMMETRY_VERTICAL + 0x00000000, 0x010800f0, 0x02040204, 0x02040204, 0x07f00308, 0x1c000e00, 0x30003800, 0x00000000, // ICON_LENS + 0x00000000, 0x061803f0, 0x08240c0c, 0x08040814, 0x0c0c0804, 0x23f01618, 0x18002400, 0x00000000, // ICON_LENS_BIG + 0x00000000, 0x00000000, 0x1c7007c0, 0x638e3398, 0x1c703398, 0x000007c0, 0x00000000, 0x00000000, // ICON_EYE_ON + 0x00000000, 0x10002000, 0x04700fc0, 0x610e3218, 0x1c703098, 0x001007a0, 0x00000008, 0x00000000, // ICON_EYE_OFF + 0x00000000, 0x00007ffc, 0x40047ffc, 0x10102008, 0x04400820, 0x02800280, 0x02800280, 0x00000100, // ICON_FILTER_TOP + 0x00000000, 0x40027ffe, 0x10082004, 0x04200810, 0x02400240, 0x02400240, 0x01400240, 0x000000c0, // ICON_FILTER + 0x00800000, 0x00800080, 0x00000080, 0x3c9e0000, 0x00000000, 0x00800080, 0x00800080, 0x00000000, // ICON_TARGET_POINT + 0x00800000, 0x00800080, 0x00800080, 0x3f7e01c0, 0x008001c0, 0x00800080, 0x00800080, 0x00000000, // ICON_TARGET_SMALL + 0x00800000, 0x00800080, 0x03e00080, 0x3e3e0220, 0x03e00220, 0x00800080, 0x00800080, 0x00000000, // ICON_TARGET_BIG + 0x01000000, 0x04400280, 0x01000100, 0x43842008, 0x43849ab2, 0x01002008, 0x04400100, 0x01000280, // ICON_TARGET_MOVE + 0x01000000, 0x04400280, 0x01000100, 0x41042108, 0x41049ff2, 0x01002108, 0x04400100, 0x01000280, // ICON_CURSOR_MOVE + 0x781e0000, 0x500a4002, 0x04204812, 0x00000240, 0x02400000, 0x48120420, 0x4002500a, 0x0000781e, // ICON_CURSOR_SCALE + 0x00000000, 0x20003c00, 0x24002800, 0x01000200, 0x00400080, 0x00140024, 0x003c0004, 0x00000000, // ICON_CURSOR_SCALE_RIGHT + 0x00000000, 0x0004003c, 0x00240014, 0x00800040, 0x02000100, 0x28002400, 0x3c002000, 0x00000000, // ICON_CURSOR_SCALE_LEFT + 0x00000000, 0x00100020, 0x10101fc8, 0x10001020, 0x10001000, 0x10001000, 0x00001fc0, 0x00000000, // ICON_UNDO + 0x00000000, 0x08000400, 0x080813f8, 0x00080408, 0x00080008, 0x00080008, 0x000003f8, 0x00000000, // ICON_REDO + 0x00000000, 0x3ffc0000, 0x20042004, 0x20002000, 0x20402000, 0x3f902020, 0x00400020, 0x00000000, // ICON_REREDO + 0x00000000, 0x3ffc0000, 0x20042004, 0x27fc2004, 0x20202000, 0x3fc82010, 0x00200010, 0x00000000, // ICON_MUTATE + 0x00000000, 0x0ff00000, 0x10081818, 0x11801008, 0x10001180, 0x18101020, 0x00100fc8, 0x00000020, // ICON_ROTATE + 0x00000000, 0x04000200, 0x240429fc, 0x20042204, 0x20442004, 0x3f942024, 0x00400020, 0x00000000, // ICON_REPEAT + 0x00000000, 0x20001000, 0x22104c0e, 0x00801120, 0x11200040, 0x4c0e2210, 0x10002000, 0x00000000, // ICON_SHUFFLE + 0x7ffe0000, 0x50024002, 0x44024802, 0x41024202, 0x40424082, 0x40124022, 0x4002400a, 0x00007ffe, // ICON_EMPTYBOX + 0x00800000, 0x03e00080, 0x08080490, 0x3c9e0808, 0x08080808, 0x03e00490, 0x00800080, 0x00000000, // ICON_TARGET + 0x00800000, 0x00800080, 0x00800080, 0x3ffe01c0, 0x008001c0, 0x00800080, 0x00800080, 0x00000000, // ICON_TARGET_SMALL_FILL + 0x00800000, 0x00800080, 0x03e00080, 0x3ffe03e0, 0x03e003e0, 0x00800080, 0x00800080, 0x00000000, // ICON_TARGET_BIG_FILL + 0x01000000, 0x07c00380, 0x01000100, 0x638c2008, 0x638cfbbe, 0x01002008, 0x07c00100, 0x01000380, // ICON_TARGET_MOVE_FILL + 0x01000000, 0x07c00380, 0x01000100, 0x610c2108, 0x610cfffe, 0x01002108, 0x07c00100, 0x01000380, // ICON_CURSOR_MOVE_FILL + 0x781e0000, 0x6006700e, 0x04204812, 0x00000240, 0x02400000, 0x48120420, 0x700e6006, 0x0000781e, // ICON_CURSOR_SCALE_FILL + 0x00000000, 0x38003c00, 0x24003000, 0x01000200, 0x00400080, 0x000c0024, 0x003c001c, 0x00000000, // ICON_CURSOR_SCALE_RIGHT_FILL + 0x00000000, 0x001c003c, 0x0024000c, 0x00800040, 0x02000100, 0x30002400, 0x3c003800, 0x00000000, // ICON_CURSOR_SCALE_LEFT_FILL + 0x00000000, 0x00300020, 0x10301ff8, 0x10001020, 0x10001000, 0x10001000, 0x00001fc0, 0x00000000, // ICON_UNDO_FILL + 0x00000000, 0x0c000400, 0x0c081ff8, 0x00080408, 0x00080008, 0x00080008, 0x000003f8, 0x00000000, // ICON_REDO_FILL + 0x00000000, 0x3ffc0000, 0x20042004, 0x20002000, 0x20402000, 0x3ff02060, 0x00400060, 0x00000000, // ICON_REREDO_FILL + 0x00000000, 0x3ffc0000, 0x20042004, 0x27fc2004, 0x20202000, 0x3ff82030, 0x00200030, 0x00000000, // ICON_MUTATE_FILL + 0x00000000, 0x0ff00000, 0x10081818, 0x11801008, 0x10001180, 0x18301020, 0x00300ff8, 0x00000020, // ICON_ROTATE_FILL + 0x00000000, 0x06000200, 0x26042ffc, 0x20042204, 0x20442004, 0x3ff42064, 0x00400060, 0x00000000, // ICON_REPEAT_FILL + 0x00000000, 0x30001000, 0x32107c0e, 0x00801120, 0x11200040, 0x7c0e3210, 0x10003000, 0x00000000, // ICON_SHUFFLE_FILL + 0x00000000, 0x30043ffc, 0x24042804, 0x21042204, 0x20442084, 0x20142024, 0x3ffc200c, 0x00000000, // ICON_EMPTYBOX_SMALL + 0x00000000, 0x20043ffc, 0x20042004, 0x20042004, 0x20042004, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX + 0x00000000, 0x23c43ffc, 0x23c423c4, 0x200423c4, 0x20042004, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX_TOP + 0x00000000, 0x3e043ffc, 0x3e043e04, 0x20043e04, 0x20042004, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX_TOP_RIGHT + 0x00000000, 0x20043ffc, 0x20042004, 0x3e043e04, 0x3e043e04, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX_RIGHT + 0x00000000, 0x20043ffc, 0x20042004, 0x20042004, 0x3e042004, 0x3e043e04, 0x3ffc3e04, 0x00000000, // ICON_BOX_BOTTOM_RIGHT + 0x00000000, 0x20043ffc, 0x20042004, 0x20042004, 0x23c42004, 0x23c423c4, 0x3ffc23c4, 0x00000000, // ICON_BOX_BOTTOM + 0x00000000, 0x20043ffc, 0x20042004, 0x20042004, 0x207c2004, 0x207c207c, 0x3ffc207c, 0x00000000, // ICON_BOX_BOTTOM_LEFT + 0x00000000, 0x20043ffc, 0x20042004, 0x207c207c, 0x207c207c, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX_LEFT + 0x00000000, 0x207c3ffc, 0x207c207c, 0x2004207c, 0x20042004, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX_TOP_LEFT + 0x00000000, 0x20043ffc, 0x20042004, 0x23c423c4, 0x23c423c4, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX_CENTER + 0x7ffe0000, 0x40024002, 0x47e24182, 0x4ff247e2, 0x47e24ff2, 0x418247e2, 0x40024002, 0x00007ffe, // ICON_BOX_CIRCLE_MASK + 0x7fff0000, 0x40014001, 0x40014001, 0x49555ddd, 0x4945495d, 0x400149c5, 0x40014001, 0x00007fff, // ICON_POT + 0x7ffe0000, 0x53327332, 0x44ce4cce, 0x41324332, 0x404e40ce, 0x48125432, 0x4006540e, 0x00007ffe, // ICON_ALPHA_MULTIPLY + 0x7ffe0000, 0x53327332, 0x44ce4cce, 0x41324332, 0x5c4e40ce, 0x44124432, 0x40065c0e, 0x00007ffe, // ICON_ALPHA_CLEAR + 0x7ffe0000, 0x42fe417e, 0x42fe417e, 0x42fe417e, 0x42fe417e, 0x42fe417e, 0x42fe417e, 0x00007ffe, // ICON_DITHERING + 0x07fe0000, 0x1ffa0002, 0x7fea000a, 0x402a402a, 0x5b2a512a, 0x5128552a, 0x40205128, 0x00007fe0, // ICON_MIPMAPS + 0x00000000, 0x1ff80000, 0x12481248, 0x12481ff8, 0x1ff81248, 0x12481248, 0x00001ff8, 0x00000000, // ICON_BOX_GRID + 0x12480000, 0x7ffe1248, 0x12481248, 0x12487ffe, 0x7ffe1248, 0x12481248, 0x12487ffe, 0x00001248, // ICON_GRID + 0x00000000, 0x1c380000, 0x1c3817e8, 0x08100810, 0x08100810, 0x17e81c38, 0x00001c38, 0x00000000, // ICON_BOX_CORNERS_SMALL + 0x700e0000, 0x700e5ffa, 0x20042004, 0x20042004, 0x20042004, 0x20042004, 0x5ffa700e, 0x0000700e, // ICON_BOX_CORNERS_BIG + 0x3f7e0000, 0x21422142, 0x21422142, 0x00003f7e, 0x21423f7e, 0x21422142, 0x3f7e2142, 0x00000000, // ICON_FOUR_BOXES + 0x00000000, 0x3bb80000, 0x3bb83bb8, 0x3bb80000, 0x3bb83bb8, 0x3bb80000, 0x3bb83bb8, 0x00000000, // ICON_GRID_FILL + 0x7ffe0000, 0x7ffe7ffe, 0x77fe7000, 0x77fe77fe, 0x777e7700, 0x777e777e, 0x777e777e, 0x0000777e, // ICON_BOX_MULTISIZE + 0x781e0000, 0x40024002, 0x00004002, 0x01800000, 0x00000180, 0x40020000, 0x40024002, 0x0000781e, // ICON_ZOOM_SMALL + 0x781e0000, 0x40024002, 0x00004002, 0x03c003c0, 0x03c003c0, 0x40020000, 0x40024002, 0x0000781e, // ICON_ZOOM_MEDIUM + 0x781e0000, 0x40024002, 0x07e04002, 0x07e007e0, 0x07e007e0, 0x400207e0, 0x40024002, 0x0000781e, // ICON_ZOOM_BIG + 0x781e0000, 0x5ffa4002, 0x1ff85ffa, 0x1ff81ff8, 0x1ff81ff8, 0x5ffa1ff8, 0x40025ffa, 0x0000781e, // ICON_ZOOM_ALL + 0x00000000, 0x2004381c, 0x00002004, 0x00000000, 0x00000000, 0x20040000, 0x381c2004, 0x00000000, // ICON_ZOOM_CENTER + 0x00000000, 0x1db80000, 0x10081008, 0x10080000, 0x00001008, 0x10081008, 0x00001db8, 0x00000000, // ICON_BOX_DOTS_SMALL + 0x35560000, 0x00002002, 0x00002002, 0x00002002, 0x00002002, 0x00002002, 0x35562002, 0x00000000, // ICON_BOX_DOTS_BIG + 0x7ffe0000, 0x40024002, 0x48124ff2, 0x49924812, 0x48124992, 0x4ff24812, 0x40024002, 0x00007ffe, // ICON_BOX_CONCENTRIC + 0x00000000, 0x10841ffc, 0x10841084, 0x1ffc1084, 0x10841084, 0x10841084, 0x00001ffc, 0x00000000, // ICON_BOX_GRID_BIG + 0x00000000, 0x00000000, 0x10000000, 0x04000800, 0x01040200, 0x00500088, 0x00000020, 0x00000000, // ICON_OK_TICK + 0x00000000, 0x10080000, 0x04200810, 0x01800240, 0x02400180, 0x08100420, 0x00001008, 0x00000000, // ICON_CROSS + 0x00000000, 0x02000000, 0x00800100, 0x00200040, 0x00200010, 0x00800040, 0x02000100, 0x00000000, // ICON_ARROW_LEFT + 0x00000000, 0x00400000, 0x01000080, 0x04000200, 0x04000800, 0x01000200, 0x00400080, 0x00000000, // ICON_ARROW_RIGHT + 0x00000000, 0x00000000, 0x00000000, 0x08081004, 0x02200410, 0x00800140, 0x00000000, 0x00000000, // ICON_ARROW_DOWN + 0x00000000, 0x00000000, 0x01400080, 0x04100220, 0x10040808, 0x00000000, 0x00000000, 0x00000000, // ICON_ARROW_UP + 0x00000000, 0x02000000, 0x03800300, 0x03e003c0, 0x03e003f0, 0x038003c0, 0x02000300, 0x00000000, // ICON_ARROW_LEFT_FILL + 0x00000000, 0x00400000, 0x01c000c0, 0x07c003c0, 0x07c00fc0, 0x01c003c0, 0x004000c0, 0x00000000, // ICON_ARROW_RIGHT_FILL + 0x00000000, 0x00000000, 0x00000000, 0x0ff81ffc, 0x03e007f0, 0x008001c0, 0x00000000, 0x00000000, // ICON_ARROW_DOWN_FILL + 0x00000000, 0x00000000, 0x01c00080, 0x07f003e0, 0x1ffc0ff8, 0x00000000, 0x00000000, 0x00000000, // ICON_ARROW_UP_FILL + 0x00000000, 0x18a008c0, 0x32881290, 0x24822686, 0x26862482, 0x12903288, 0x08c018a0, 0x00000000, // ICON_AUDIO + 0x00000000, 0x04800780, 0x004000c0, 0x662000f0, 0x08103c30, 0x130a0e18, 0x0000318e, 0x00000000, // ICON_FX + 0x00000000, 0x00800000, 0x08880888, 0x2aaa0a8a, 0x0a8a2aaa, 0x08880888, 0x00000080, 0x00000000, // ICON_WAVE + 0x00000000, 0x00600000, 0x01080090, 0x02040108, 0x42044204, 0x24022402, 0x00001800, 0x00000000, // ICON_WAVE_SINUS + 0x00000000, 0x07f80000, 0x04080408, 0x04080408, 0x04080408, 0x7c0e0408, 0x00000000, 0x00000000, // ICON_WAVE_SQUARE + 0x00000000, 0x00000000, 0x00a00040, 0x22084110, 0x08021404, 0x00000000, 0x00000000, 0x00000000, // ICON_WAVE_TRIANGULAR + 0x00000000, 0x00000000, 0x04200000, 0x01800240, 0x02400180, 0x00000420, 0x00000000, 0x00000000, // ICON_CROSS_SMALL + 0x00000000, 0x18380000, 0x12281428, 0x10a81128, 0x112810a8, 0x14281228, 0x00001838, 0x00000000, // ICON_PLAYER_PREVIOUS + 0x00000000, 0x18000000, 0x11801600, 0x10181060, 0x10601018, 0x16001180, 0x00001800, 0x00000000, // ICON_PLAYER_PLAY_BACK + 0x00000000, 0x00180000, 0x01880068, 0x18080608, 0x06081808, 0x00680188, 0x00000018, 0x00000000, // ICON_PLAYER_PLAY + 0x00000000, 0x1e780000, 0x12481248, 0x12481248, 0x12481248, 0x12481248, 0x00001e78, 0x00000000, // ICON_PLAYER_PAUSE + 0x00000000, 0x1ff80000, 0x10081008, 0x10081008, 0x10081008, 0x10081008, 0x00001ff8, 0x00000000, // ICON_PLAYER_STOP + 0x00000000, 0x1c180000, 0x14481428, 0x15081488, 0x14881508, 0x14281448, 0x00001c18, 0x00000000, // ICON_PLAYER_NEXT + 0x00000000, 0x03c00000, 0x08100420, 0x10081008, 0x10081008, 0x04200810, 0x000003c0, 0x00000000, // ICON_PLAYER_RECORD + 0x00000000, 0x0c3007e0, 0x13c81818, 0x14281668, 0x14281428, 0x1c381c38, 0x08102244, 0x00000000, // ICON_MAGNET + 0x07c00000, 0x08200820, 0x3ff80820, 0x23882008, 0x21082388, 0x20082108, 0x1ff02008, 0x00000000, // ICON_LOCK_CLOSE + 0x07c00000, 0x08000800, 0x3ff80800, 0x23882008, 0x21082388, 0x20082108, 0x1ff02008, 0x00000000, // ICON_LOCK_OPEN + 0x01c00000, 0x0c180770, 0x3086188c, 0x60832082, 0x60034781, 0x30062002, 0x0c18180c, 0x01c00770, // ICON_CLOCK + 0x0a200000, 0x1b201b20, 0x04200e20, 0x04200420, 0x04700420, 0x0e700e70, 0x0e700e70, 0x04200e70, // ICON_TOOLS + 0x01800000, 0x3bdc318c, 0x0ff01ff8, 0x7c3e1e78, 0x1e787c3e, 0x1ff80ff0, 0x318c3bdc, 0x00000180, // ICON_GEAR + 0x01800000, 0x3ffc318c, 0x1c381ff8, 0x781e1818, 0x1818781e, 0x1ff81c38, 0x318c3ffc, 0x00000180, // ICON_GEAR_BIG + 0x00000000, 0x08080ff8, 0x08081ffc, 0x0aa80aa8, 0x0aa80aa8, 0x0aa80aa8, 0x08080aa8, 0x00000ff8, // ICON_BIN + 0x00000000, 0x00000000, 0x20043ffc, 0x08043f84, 0x04040f84, 0x04040784, 0x000007fc, 0x00000000, // ICON_HAND_POINTER + 0x00000000, 0x24400400, 0x00001480, 0x6efe0e00, 0x00000e00, 0x24401480, 0x00000400, 0x00000000, // ICON_LASER + 0x00000000, 0x03c00000, 0x08300460, 0x11181118, 0x11181118, 0x04600830, 0x000003c0, 0x00000000, // ICON_COIN + 0x00000000, 0x10880080, 0x06c00810, 0x366c07e0, 0x07e00240, 0x00001768, 0x04200240, 0x00000000, // ICON_EXPLOSION + 0x00000000, 0x3d280000, 0x2528252c, 0x3d282528, 0x05280528, 0x05e80528, 0x00000000, 0x00000000, // ICON_1UP + 0x01800000, 0x03c003c0, 0x018003c0, 0x0ff007e0, 0x0bd00bd0, 0x0a500bd0, 0x02400240, 0x02400240, // ICON_PLAYER + 0x01800000, 0x03c003c0, 0x118013c0, 0x03c81ff8, 0x07c003c8, 0x04400440, 0x0c080478, 0x00000000, // ICON_PLAYER_JUMP + 0x3ff80000, 0x30183ff8, 0x30183018, 0x3ff83ff8, 0x03000300, 0x03c003c0, 0x03e00300, 0x000003e0, // ICON_KEY + 0x3ff80000, 0x3ff83ff8, 0x33983ff8, 0x3ff83398, 0x3ff83ff8, 0x00000540, 0x0fe00aa0, 0x00000fe0, // ICON_DEMON + 0x00000000, 0x0ff00000, 0x20041008, 0x25442004, 0x10082004, 0x06000bf0, 0x00000300, 0x00000000, // ICON_TEXT_POPUP + 0x00000000, 0x11440000, 0x07f00be8, 0x1c1c0e38, 0x1c1c0c18, 0x07f00e38, 0x11440be8, 0x00000000, // ICON_GEAR_EX + 0x00000000, 0x20080000, 0x0c601010, 0x07c00fe0, 0x07c007c0, 0x0c600fe0, 0x20081010, 0x00000000, // ICON_CRACK + 0x00000000, 0x20080000, 0x0c601010, 0x04400fe0, 0x04405554, 0x0c600fe0, 0x20081010, 0x00000000, // ICON_CRACK_POINTS + 0x00000000, 0x00800080, 0x01c001c0, 0x1ffc3ffe, 0x03e007f0, 0x07f003e0, 0x0c180770, 0x00000808, // ICON_STAR + 0x0ff00000, 0x08180810, 0x08100818, 0x0a100810, 0x08180810, 0x08100818, 0x08100810, 0x00001ff8, // ICON_DOOR + 0x0ff00000, 0x08100810, 0x08100810, 0x10100010, 0x4f902010, 0x10102010, 0x08100010, 0x00000ff0, // ICON_EXIT + 0x00040000, 0x001f000e, 0x0ef40004, 0x12f41284, 0x0ef41214, 0x10040004, 0x7ffc3004, 0x10003000, // ICON_MODE_2D + 0x78040000, 0x501f600e, 0x0ef44004, 0x12f41284, 0x0ef41284, 0x10140004, 0x7ffc300c, 0x10003000, // ICON_MODE_3D + 0x7fe00000, 0x50286030, 0x47fe4804, 0x44224402, 0x44224422, 0x241275e2, 0x0c06140a, 0x000007fe, // ICON_CUBE + 0x7fe00000, 0x5ff87ff0, 0x47fe4ffc, 0x44224402, 0x44224422, 0x241275e2, 0x0c06140a, 0x000007fe, // ICON_CUBE_FACE_TOP + 0x7fe00000, 0x50386030, 0x47c2483c, 0x443e443e, 0x443e443e, 0x241e75fe, 0x0c06140e, 0x000007fe, // ICON_CUBE_FACE_LEFT + 0x7fe00000, 0x50286030, 0x47fe4804, 0x47fe47fe, 0x47fe47fe, 0x27fe77fe, 0x0ffe17fe, 0x000007fe, // ICON_CUBE_FACE_FRONT + 0x7fe00000, 0x50286030, 0x47fe4804, 0x44224402, 0x44224422, 0x3bf27be2, 0x0bfe1bfa, 0x000007fe, // ICON_CUBE_FACE_BOTTOM + 0x7fe00000, 0x70286030, 0x7ffe7804, 0x7c227c02, 0x7c227c22, 0x3c127de2, 0x0c061c0a, 0x000007fe, // ICON_CUBE_FACE_RIGHT + 0x7fe00000, 0x6fe85ff0, 0x781e77e4, 0x7be27be2, 0x7be27be2, 0x24127be2, 0x0c06140a, 0x000007fe, // ICON_CUBE_FACE_BACK + 0x00000000, 0x2a0233fe, 0x22022602, 0x22022202, 0x2a022602, 0x00a033fe, 0x02080110, 0x00000000, // ICON_CAMERA + 0x00000000, 0x200c3ffc, 0x000c000c, 0x3ffc000c, 0x30003000, 0x30003000, 0x3ffc3004, 0x00000000, // ICON_SPECIAL + 0x00000000, 0x0022003e, 0x012201e2, 0x0100013e, 0x01000100, 0x79000100, 0x4f004900, 0x00007800, // ICON_LINK_NET + 0x00000000, 0x44007c00, 0x45004600, 0x00627cbe, 0x00620022, 0x45007cbe, 0x44004600, 0x00007c00, // ICON_LINK_BOXES + 0x00000000, 0x0044007c, 0x0010007c, 0x3f100010, 0x3f1021f0, 0x3f100010, 0x3f0021f0, 0x00000000, // ICON_LINK_MULTI + 0x00000000, 0x0044007c, 0x00440044, 0x0010007c, 0x00100010, 0x44107c10, 0x440047f0, 0x00007c00, // ICON_LINK + 0x00000000, 0x0044007c, 0x00440044, 0x0000007c, 0x00000010, 0x44007c10, 0x44004550, 0x00007c00, // ICON_LINK_BROKE + 0x02a00000, 0x22a43ffc, 0x20042004, 0x20042ff4, 0x20042ff4, 0x20042ff4, 0x20042004, 0x00003ffc, // ICON_TEXT_NOTES + 0x3ffc0000, 0x20042004, 0x245e27c4, 0x27c42444, 0x2004201e, 0x201e2004, 0x20042004, 0x00003ffc, // ICON_NOTEBOOK + 0x00000000, 0x07e00000, 0x04200420, 0x24243ffc, 0x24242424, 0x24242424, 0x3ffc2424, 0x00000000, // ICON_SUITCASE + 0x00000000, 0x0fe00000, 0x08200820, 0x40047ffc, 0x7ffc5554, 0x40045554, 0x7ffc4004, 0x00000000, // ICON_SUITCASE_ZIP + 0x00000000, 0x20043ffc, 0x3ffc2004, 0x13c81008, 0x100813c8, 0x10081008, 0x1ff81008, 0x00000000, // ICON_MAILBOX + 0x00000000, 0x40027ffe, 0x5ffa5ffa, 0x5ffa5ffa, 0x40025ffa, 0x03c07ffe, 0x1ff81ff8, 0x00000000, // ICON_MONITOR + 0x0ff00000, 0x6bfe7ffe, 0x7ffe7ffe, 0x68167ffe, 0x08106816, 0x08100810, 0x0ff00810, 0x00000000, // ICON_PRINTER + 0x3ff80000, 0xfffe2008, 0x870a8002, 0x904a888a, 0x904a904a, 0x870a888a, 0xfffe8002, 0x00000000, // ICON_PHOTO_CAMERA + 0x0fc00000, 0xfcfe0cd8, 0x8002fffe, 0x84428382, 0x84428442, 0x80028382, 0xfffe8002, 0x00000000, // ICON_PHOTO_CAMERA_FLASH + 0x00000000, 0x02400180, 0x08100420, 0x20041008, 0x23c42004, 0x22442244, 0x3ffc2244, 0x00000000, // ICON_HOUSE + 0x00000000, 0x1c700000, 0x3ff83ef8, 0x3ff83ff8, 0x0fe01ff0, 0x038007c0, 0x00000100, 0x00000000, // ICON_HEART + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80000000, 0xe000c000, // ICON_CORNER + 0x00000000, 0x14001c00, 0x15c01400, 0x15401540, 0x155c1540, 0x15541554, 0x1ddc1554, 0x00000000, // ICON_VERTICAL_BARS + 0x00000000, 0x03000300, 0x1b001b00, 0x1b601b60, 0x1b6c1b60, 0x1b6c1b6c, 0x1b6c1b6c, 0x00000000, // ICON_VERTICAL_BARS_FILL + 0x00000000, 0x00000000, 0x403e7ffe, 0x7ffe403e, 0x7ffe0000, 0x43fe43fe, 0x00007ffe, 0x00000000, // ICON_LIFE_BARS + 0x7ffc0000, 0x43844004, 0x43844284, 0x43844004, 0x42844284, 0x42844284, 0x40044384, 0x00007ffc, // ICON_INFO + 0x40008000, 0x10002000, 0x04000800, 0x01000200, 0x00400080, 0x00100020, 0x00040008, 0x00010002, // ICON_CROSSLINE + 0x00000000, 0x1ff01ff0, 0x18301830, 0x1f001830, 0x03001f00, 0x00000300, 0x03000300, 0x00000000, // ICON_HELP + 0x3ff00000, 0x2abc3550, 0x2aac3554, 0x2aac3554, 0x2aac3554, 0x2aac3554, 0x2aac3554, 0x00003ffc, // ICON_FILETYPE_ALPHA + 0x3ff00000, 0x201c2010, 0x22442184, 0x28142424, 0x29942814, 0x2ff42994, 0x20042004, 0x00003ffc, // ICON_FILETYPE_HOME + 0x07fe0000, 0x04020402, 0x7fe20402, 0x44224422, 0x44224422, 0x402047fe, 0x40204020, 0x00007fe0, // ICON_LAYERS_VISIBLE + 0x07fe0000, 0x04020402, 0x7c020402, 0x44024402, 0x44024402, 0x402047fe, 0x40204020, 0x00007fe0, // ICON_LAYERS + 0x00000000, 0x40027ffe, 0x7ffe4002, 0x40024002, 0x40024002, 0x40024002, 0x7ffe4002, 0x00000000, // ICON_WINDOW + 0x09100000, 0x09f00910, 0x09100910, 0x00000910, 0x24a2779e, 0x27a224a2, 0x709e20a2, 0x00000000, // ICON_HIDPI + 0x3ff00000, 0x201c2010, 0x2a842e84, 0x2e842a84, 0x2ba42004, 0x2aa42aa4, 0x20042ba4, 0x00003ffc, // ICON_FILETYPE_BINARY + 0x00000000, 0x00000000, 0x00120012, 0x4a5e4bd2, 0x485233d2, 0x00004bd2, 0x00000000, 0x00000000, // ICON_HEX + 0x01800000, 0x381c0660, 0x23c42004, 0x23c42044, 0x13c82204, 0x08101008, 0x02400420, 0x00000180, // ICON_SHIELD + 0x007e0000, 0x20023fc2, 0x40227fe2, 0x400a403a, 0x400a400a, 0x400a400a, 0x4008400e, 0x00007ff8, // ICON_FILE_NEW + 0x00000000, 0x0042007e, 0x40027fc2, 0x44024002, 0x5f024402, 0x44024402, 0x7ffe4002, 0x00000000, // ICON_FOLDER_ADD + 0x44220000, 0x12482244, 0xf3cf0000, 0x14280420, 0x48122424, 0x08100810, 0x1ff81008, 0x03c00420, // ICON_ALARM + 0x0aa00000, 0x1ff80aa0, 0x1068700e, 0x1008706e, 0x1008700e, 0x1008700e, 0x0aa01ff8, 0x00000aa0, // ICON_CPU + 0x07e00000, 0x04201db8, 0x04a01c38, 0x04a01d38, 0x04a01d38, 0x04a01d38, 0x04201d38, 0x000007e0, // ICON_ROM + 0x00000000, 0x03c00000, 0x3c382ff0, 0x3c04380c, 0x01800000, 0x03c003c0, 0x00000180, 0x00000000, // ICON_STEP_OVER + 0x01800000, 0x01800180, 0x01800180, 0x03c007e0, 0x00000180, 0x01800000, 0x03c003c0, 0x00000180, // ICON_STEP_INTO + 0x01800000, 0x07e003c0, 0x01800180, 0x01800180, 0x00000180, 0x01800000, 0x03c003c0, 0x00000180, // ICON_STEP_OUT + 0x00000000, 0x0ff003c0, 0x181c1c34, 0x303c301c, 0x30003000, 0x1c301800, 0x03c00ff0, 0x00000000, // ICON_RESTART + 0x00000000, 0x00000000, 0x07e003c0, 0x0ff00ff0, 0x0ff00ff0, 0x03c007e0, 0x00000000, 0x00000000, // ICON_BREAKPOINT_ON + 0x00000000, 0x00000000, 0x042003c0, 0x08100810, 0x08100810, 0x03c00420, 0x00000000, 0x00000000, // ICON_BREAKPOINT_OFF + 0x00000000, 0x00000000, 0x1ff81ff8, 0x1ff80000, 0x00001ff8, 0x1ff81ff8, 0x00000000, 0x00000000, // ICON_BURGER_MENU + 0x00000000, 0x00000000, 0x00880070, 0x0c880088, 0x1e8810f8, 0x3e881288, 0x00000000, 0x00000000, // ICON_CASE_SENSITIVE + 0x00000000, 0x02000000, 0x07000a80, 0x07001fc0, 0x02000a80, 0x00300030, 0x00000000, 0x00000000, // ICON_REG_EXP + 0x00000000, 0x0042007e, 0x40027fc2, 0x40024002, 0x40024002, 0x40024002, 0x7ffe4002, 0x00000000, // ICON_FOLDER + 0x3ff00000, 0x201c2010, 0x20042004, 0x20042004, 0x20042004, 0x20042004, 0x20042004, 0x00003ffc, // ICON_FILE + 0x1ff00000, 0x20082008, 0x17d02fe8, 0x05400ba0, 0x09200540, 0x23881010, 0x2fe827c8, 0x00001ff0, // ICON_SAND_TIMER + 0x01800000, 0x02400240, 0x05a00420, 0x09900990, 0x11881188, 0x21842004, 0x40024182, 0x00003ffc, // ICON_WARNING + 0x7ffe0000, 0x4ff24002, 0x4c324ff2, 0x4f824c02, 0x41824f82, 0x41824002, 0x40024182, 0x00007ffe, // ICON_HELP_BOX + 0x7ffe0000, 0x41824002, 0x40024182, 0x41824182, 0x41824182, 0x41824182, 0x40024182, 0x00007ffe, // ICON_INFO_BOX + 0x01800000, 0x04200240, 0x10080810, 0x7bde2004, 0x0a500a50, 0x08500bd0, 0x08100850, 0x00000ff0, // ICON_PRIORITY + 0x01800000, 0x18180660, 0x80016006, 0x98196006, 0x99996666, 0x19986666, 0x01800660, 0x00000000, // ICON_LAYERS_ISO + 0x07fe0000, 0x1c020402, 0x74021402, 0x54025402, 0x54025402, 0x500857fe, 0x40205ff8, 0x00007fe0, // ICON_LAYERS2 + 0x0ffe0000, 0x3ffa0802, 0x7fea200a, 0x402a402a, 0x422a422a, 0x422e422a, 0x40384e28, 0x00007fe0, // ICON_MLAYERS + 0x0ffe0000, 0x3ffa0802, 0x7fea200a, 0x402a402a, 0x5b2a512a, 0x512e552a, 0x40385128, 0x00007fe0, // ICON_MAPS + 0x04200000, 0x1cf00c60, 0x11f019f0, 0x0f3807b8, 0x1e3c0f3c, 0x1c1c1e1c, 0x1e3c1c1c, 0x00000f70, // ICON_HOT + 0x00000000, 0x20803f00, 0x2a202e40, 0x20082e10, 0x08021004, 0x02040402, 0x00900108, 0x00000060, // ICON_LABEL + 0x00000000, 0x042007e0, 0x47e27c3e, 0x4ffa4002, 0x47fa4002, 0x4ffa4002, 0x7ffe4002, 0x00000000, // ICON_NAME_ID + 0x7fe00000, 0x402e4020, 0x43ce5e0a, 0x40504078, 0x438e4078, 0x402e5e0a, 0x7fe04020, 0x00000000, // ICON_SLICING + 0x00000000, 0x40027ffe, 0x47c24002, 0x55425d42, 0x55725542, 0x50125552, 0x10105016, 0x00001ff0, // ICON_MANUAL_CONTROL + 0x7ffe0000, 0x43c24002, 0x48124422, 0x500a500a, 0x500a500a, 0x44224812, 0x400243c2, 0x00007ffe, // ICON_COLLISION + 0x03c00000, 0x10080c30, 0x21842184, 0x4ff24182, 0x41824ff2, 0x21842184, 0x0c301008, 0x000003c0, // ICON_CIRCLE_ADD + 0x03c00000, 0x1ff80ff0, 0x3e7c3e7c, 0x700e7e7e, 0x7e7e700e, 0x3e7c3e7c, 0x0ff01ff8, 0x000003c0, // ICON_CIRCLE_ADD_FILL + 0x03c00000, 0x10080c30, 0x21842184, 0x41824182, 0x40024182, 0x21842184, 0x0c301008, 0x000003c0, // ICON_CIRCLE_WARNING + 0x03c00000, 0x1ff80ff0, 0x3e7c3e7c, 0x7e7e7e7e, 0x7ffe7e7e, 0x3e7c3e7c, 0x0ff01ff8, 0x000003c0, // ICON_CIRCLE_WARNING_FILL + 0x00000000, 0x10041ffc, 0x10841004, 0x13e41084, 0x10841084, 0x10041004, 0x00001ffc, 0x00000000, // ICON_BOX_MORE + 0x00000000, 0x1ffc1ffc, 0x1f7c1ffc, 0x1c1c1f7c, 0x1f7c1f7c, 0x1ffc1ffc, 0x00001ffc, 0x00000000, // ICON_BOX_MORE_FILL + 0x00000000, 0x1ffc1ffc, 0x1ffc1ffc, 0x1c1c1ffc, 0x1ffc1ffc, 0x1ffc1ffc, 0x00001ffc, 0x00000000, // ICON_BOX_MINUS + 0x00000000, 0x10041ffc, 0x10041004, 0x13e41004, 0x10041004, 0x10041004, 0x00001ffc, 0x00000000, // ICON_BOX_MINUS_FILL + 0x07fe0000, 0x055606aa, 0x7ff606aa, 0x55766eba, 0x55766eaa, 0x55606ffe, 0x55606aa0, 0x00007fe0, // ICON_UNION + 0x07fe0000, 0x04020402, 0x7fe20402, 0x456246a2, 0x456246a2, 0x402047fe, 0x40204020, 0x00007fe0, // ICON_INTERSECTION + 0x07fe0000, 0x055606aa, 0x7ff606aa, 0x4436442a, 0x4436442a, 0x402047fe, 0x40204020, 0x00007fe0, // ICON_DIFFERENCE + 0x03c00000, 0x10080c30, 0x20042004, 0x60064002, 0x47e2581a, 0x20042004, 0x0c301008, 0x000003c0, // ICON_SPHERE + 0x03e00000, 0x08080410, 0x0c180808, 0x08080be8, 0x08080808, 0x08080808, 0x04100808, 0x000003e0, // ICON_CYLINDER + 0x00800000, 0x01400140, 0x02200220, 0x04100410, 0x08080808, 0x1c1c13e4, 0x08081004, 0x000007f0, // ICON_CONE + 0x00000000, 0x07e00000, 0x20841918, 0x40824082, 0x40824082, 0x19182084, 0x000007e0, 0x00000000, // ICON_ELLIPSOID + 0x00000000, 0x00000000, 0x20041ff8, 0x40024002, 0x40024002, 0x1ff82004, 0x00000000, 0x00000000, // ICON_CAPSULE + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_250 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_251 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_252 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_253 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_254 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_255 +}; + +// NOTE: A pointer to current icons array should be defined +static unsigned int *guiIconsPtr = guiIcons; + +#endif // !RAYGUI_NO_ICONS && !RAYGUI_CUSTOM_ICONS + +#ifndef RAYGUI_ICON_SIZE + #define RAYGUI_ICON_SIZE 0 +#endif + +// WARNING: Those values define the total size of the style data array, +// if changed, previous saved styles could become incompatible +#define RAYGUI_MAX_CONTROLS 16 // Maximum number of controls +#define RAYGUI_MAX_PROPS_BASE 16 // Maximum number of base properties +#define RAYGUI_MAX_PROPS_EXTENDED 8 // Maximum number of extended properties + +//---------------------------------------------------------------------------------- +// Module Types and Structures Definition +//---------------------------------------------------------------------------------- +// Gui control property style color element +typedef enum { BORDER = 0, BASE, TEXT, OTHER } GuiPropertyElement; + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +static GuiState guiState = STATE_NORMAL; // Gui global state, if !STATE_NORMAL, forces defined state + +static Font guiFont = { 0 }; // Gui current font (WARNING: highly coupled to raylib) +static bool guiLocked = false; // Gui lock state (no inputs processed) +static float guiAlpha = 1.0f; // Gui controls transparency + +static unsigned int guiIconScale = 1; // Gui icon default scale (if icons enabled) + +static bool guiTooltip = false; // Tooltip enabled/disabled +static const char *guiTooltipPtr = NULL; // Tooltip string pointer (string provided by user) + +static bool guiControlExclusiveMode = false; // Gui control exclusive mode (no inputs processed except current control) +static Rectangle guiControlExclusiveRec = { 0 }; // Gui control exclusive bounds rectangle, used as an unique identifier + +static int textBoxCursorIndex = 0; // Cursor index, shared by all GuiTextBox*() +//static int blinkCursorFrameCounter = 0; // Frame counter for cursor blinking +static int autoCursorCounter = 0; // Frame counter for automatic repeated cursor movement on key-down (cooldown and delay) + +//---------------------------------------------------------------------------------- +// Style data array for all gui style properties (allocated on data segment by default) +// +// NOTE 1: First set of BASE properties are generic to all controls but could be individually +// overwritten per control, first set of EXTENDED properties are generic to all controls and +// can not be overwritten individually but custom EXTENDED properties can be used by control +// +// NOTE 2: A new style set could be loaded over this array using GuiLoadStyle(), +// but default gui style could always be recovered with GuiLoadStyleDefault() +// +// guiStyle size is by default: 16*(16 + 8) = 384*4 = 1536 bytes = 1.5 KB +//---------------------------------------------------------------------------------- +static unsigned int guiStyle[RAYGUI_MAX_CONTROLS*(RAYGUI_MAX_PROPS_BASE + RAYGUI_MAX_PROPS_EXTENDED)] = { 0 }; + +static bool guiStyleLoaded = false; // Style loaded flag for lazy style initialization + +//---------------------------------------------------------------------------------- +// Standalone Mode Functions Declaration +// +// NOTE: raygui depend on some raylib input and drawing functions +// To use raygui as standalone library, below functions must be defined by the user +//---------------------------------------------------------------------------------- +#if defined(RAYGUI_STANDALONE) + +#define KEY_RIGHT 262 +#define KEY_LEFT 263 +#define KEY_DOWN 264 +#define KEY_UP 265 +#define KEY_BACKSPACE 259 +#define KEY_ENTER 257 + +#define MOUSE_LEFT_BUTTON 0 + +// Input required functions +//------------------------------------------------------------------------------- +static Vector2 GetMousePosition(void); +static float GetMouseWheelMove(void); +static bool IsMouseButtonDown(int button); +static bool IsMouseButtonPressed(int button); +static bool IsMouseButtonReleased(int button); + +static bool IsKeyDown(int key); +static bool IsKeyPressed(int key); +static int GetCharPressed(void); // -- GuiTextBox(), GuiValueBox() +//------------------------------------------------------------------------------- + +// Drawing required functions +//------------------------------------------------------------------------------- +static void DrawRectangle(int x, int y, int width, int height, Color color); // -- GuiDrawRectangle() +static void DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color col3, Color col4); // -- GuiColorPicker() +//------------------------------------------------------------------------------- + +// Text required functions +//------------------------------------------------------------------------------- +static Font GetFontDefault(void); // -- GuiLoadStyleDefault() +static Font LoadFontEx(const char *fileName, int fontSize, int *codepoints, int codepointCount); // -- GuiLoadStyle(), load font + +static Texture2D LoadTextureFromImage(Image image); // -- GuiLoadStyle(), required to load texture from embedded font atlas image +static void SetShapesTexture(Texture2D tex, Rectangle rec); // -- GuiLoadStyle(), required to set shapes rec to font white rec (optimization) + +static char *LoadFileText(const char *fileName); // -- GuiLoadStyle(), required to load charset data +static void UnloadFileText(char *text); // -- GuiLoadStyle(), required to unload charset data + +static const char *GetDirectoryPath(const char *filePath); // -- GuiLoadStyle(), required to find charset/font file from text .rgs + +static int *LoadCodepoints(const char *text, int *count); // -- GuiLoadStyle(), required to load required font codepoints list +static void UnloadCodepoints(int *codepoints); // -- GuiLoadStyle(), required to unload codepoints list + +static unsigned char *DecompressData(const unsigned char *compData, int compDataSize, int *dataSize); // -- GuiLoadStyle() +//------------------------------------------------------------------------------- + +// raylib functions already implemented in raygui +//------------------------------------------------------------------------------- +static Color GetColor(int hexValue); // Returns a Color struct from hexadecimal value +static int ColorToInt(Color color); // Returns hexadecimal value for a Color +static bool CheckCollisionPointRec(Vector2 point, Rectangle rec); // Check if point is inside rectangle +static const char *TextFormat(const char *text, ...); // Formatting of text with variables to 'embed' +static char **TextSplit(const char *text, char delimiter, int *count); // Split text into multiple strings +static int TextToInteger(const char *text); // Get integer value from text +static float TextToFloat(const char *text); // Get float value from text + +static int GetCodepointNext(const char *text, int *codepointSize); // Get next codepoint in a UTF-8 encoded text +static const char *CodepointToUTF8(int codepoint, int *byteSize); // Encode codepoint into UTF-8 text (char array size returned as parameter) + +static void DrawRectangleGradientV(int posX, int posY, int width, int height, Color color1, Color color2); // Draw rectangle vertical gradient +//------------------------------------------------------------------------------- + +#endif // RAYGUI_STANDALONE + +//---------------------------------------------------------------------------------- +// Module Internal Functions Declaration +//---------------------------------------------------------------------------------- +static void GuiLoadStyleFromMemory(const unsigned char *fileData, int dataSize); // Load style from memory (binary only) + +static Rectangle GetTextBounds(int control, Rectangle bounds); // Get text bounds considering control bounds +static const char *GetTextIcon(const char *text, int *iconId); // Get text icon if provided and move text cursor + +static void GuiDrawText(const char *text, Rectangle textBounds, int alignment, Color tint); // Gui draw text using default font +static void GuiDrawRectangle(Rectangle rec, int borderWidth, Color borderColor, Color color); // Gui draw rectangle using default raygui style + +static char **GuiTextSplit(const char *text, char delimiter, int *count, int *textRow); // Split controls text into multiple strings +static Vector3 ConvertHSVtoRGB(Vector3 hsv); // Convert color data from HSV to RGB +static Vector3 ConvertRGBtoHSV(Vector3 rgb); // Convert color data from RGB to HSV + +static int GuiScrollBar(Rectangle bounds, int value, int minValue, int maxValue); // Scroll bar control, used by GuiScrollPanel() +static void GuiTooltip(Rectangle controlRec); // Draw tooltip using control rec position + +static Color GuiFade(Color color, float alpha); // Fade color by an alpha factor + +//---------------------------------------------------------------------------------- +// Gui Setup Functions Definition +//---------------------------------------------------------------------------------- +// Enable gui global state +// NOTE: Checking for STATE_DISABLED to avoid messing custom global state setups +void GuiEnable(void) { if (guiState == STATE_DISABLED) guiState = STATE_NORMAL; } + +// Disable gui global state +// NOTE: Checking for STATE_NORMAL to avoid messing custom global state setups +void GuiDisable(void) { if (guiState == STATE_NORMAL) guiState = STATE_DISABLED; } + +// Lock gui global state +void GuiLock(void) { guiLocked = true; } + +// Unlock gui global state +void GuiUnlock(void) { guiLocked = false; } + +// Check if gui is locked (global state) +bool GuiIsLocked(void) { return guiLocked; } + +// Set gui controls alpha global state +void GuiSetAlpha(float alpha) +{ + if (alpha < 0.0f) alpha = 0.0f; + else if (alpha > 1.0f) alpha = 1.0f; + + guiAlpha = alpha; +} + +// Set gui state (global state) +void GuiSetState(int state) { guiState = (GuiState)state; } + +// Get gui state (global state) +int GuiGetState(void) { return guiState; } + +// Set custom gui font +// NOTE: Font loading/unloading is external to raygui +void GuiSetFont(Font font) +{ + if (font.texture.id > 0) + { + // NOTE: If a font is tried to be set but default style has not been lazily loaded first, + // it will be overwritten, so default style loading needs to be forced first + if (!guiStyleLoaded) GuiLoadStyleDefault(); + + guiFont = font; + } +} + +// Get custom gui font +Font GuiGetFont(void) +{ + return guiFont; +} + +// Set control style property value +void GuiSetStyle(int control, int property, int value) +{ + if (!guiStyleLoaded) GuiLoadStyleDefault(); + guiStyle[control*(RAYGUI_MAX_PROPS_BASE + RAYGUI_MAX_PROPS_EXTENDED) + property] = value; + + // Default properties are propagated to all controls + if ((control == 0) && (property < RAYGUI_MAX_PROPS_BASE)) + { + for (int i = 1; i < RAYGUI_MAX_CONTROLS; i++) guiStyle[i*(RAYGUI_MAX_PROPS_BASE + RAYGUI_MAX_PROPS_EXTENDED) + property] = value; + } +} + +// Get control style property value +int GuiGetStyle(int control, int property) +{ + if (!guiStyleLoaded) GuiLoadStyleDefault(); + return guiStyle[control*(RAYGUI_MAX_PROPS_BASE + RAYGUI_MAX_PROPS_EXTENDED) + property]; +} + +//---------------------------------------------------------------------------------- +// Gui Controls Functions Definition +//---------------------------------------------------------------------------------- + +// Window Box control +int GuiWindowBox(Rectangle bounds, const char *title) +{ + // Window title bar height (including borders) + // NOTE: This define is also used by GuiMessageBox() and GuiTextInputBox() + #if !defined(RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT) + #define RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT 24 + #endif + + #if !defined(RAYGUI_WINDOWBOX_CLOSEBUTTON_HEIGHT) + #define RAYGUI_WINDOWBOX_CLOSEBUTTON_HEIGHT 18 + #endif + + int result = 0; + //GuiState state = guiState; + + int statusBarHeight = RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT; + int statusBorderWidth = GuiGetStyle(STATUSBAR, BORDER_WIDTH); + + Rectangle statusBar = { bounds.x, bounds.y, bounds.width, (float)statusBarHeight }; + if (bounds.height < statusBarHeight*2.0f) bounds.height = statusBarHeight*2.0f; + + const float vPadding = statusBarHeight/2.0f - RAYGUI_WINDOWBOX_CLOSEBUTTON_HEIGHT/2.0f; + Rectangle windowPanel = { bounds.x, bounds.y + (float)statusBarHeight - (float)statusBorderWidth, bounds.width, bounds.height - (float)statusBarHeight + (float)statusBorderWidth }; + Rectangle closeButtonRec = { statusBar.x + statusBar.width - (float)statusBorderWidth - RAYGUI_WINDOWBOX_CLOSEBUTTON_HEIGHT - vPadding, + statusBar.y + vPadding, RAYGUI_WINDOWBOX_CLOSEBUTTON_HEIGHT, RAYGUI_WINDOWBOX_CLOSEBUTTON_HEIGHT }; + + // Update control + //-------------------------------------------------------------------- + // NOTE: Logic is directly managed by button + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + GuiPanel(windowPanel, NULL); // Draw window base + GuiStatusBar(statusBar, title); // Draw window header as status bar + + // Draw window close button + int tempBorderWidth = GuiGetStyle(BUTTON, BORDER_WIDTH); + int tempTextAlignment = GuiGetStyle(BUTTON, TEXT_ALIGNMENT); + GuiSetStyle(BUTTON, BORDER_WIDTH, 1); + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); +#if defined(RAYGUI_NO_ICONS) + result = GuiButton(closeButtonRec, "x"); +#else + result = GuiButton(closeButtonRec, GuiIconText(ICON_CROSS_SMALL, NULL)); +#endif + GuiSetStyle(BUTTON, BORDER_WIDTH, tempBorderWidth); + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, tempTextAlignment); + //-------------------------------------------------------------------- + + return result; // Window close button clicked: result = 1 +} + +// Group Box control with text name +int GuiGroupBox(Rectangle bounds, const char *text) +{ + #if !defined(RAYGUI_GROUPBOX_LINE_THICK) + #define RAYGUI_GROUPBOX_LINE_THICK 1 + #endif + + int result = 0; + GuiState state = guiState; + + // Draw control + //-------------------------------------------------------------------- + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y, RAYGUI_GROUPBOX_LINE_THICK, bounds.height }, 0, BLANK, GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? (int)BORDER_COLOR_DISABLED : (int)LINE_COLOR))); + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y + bounds.height - 1, bounds.width, RAYGUI_GROUPBOX_LINE_THICK }, 0, BLANK, GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? (int)BORDER_COLOR_DISABLED : (int)LINE_COLOR))); + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + bounds.width - 1, bounds.y, RAYGUI_GROUPBOX_LINE_THICK, bounds.height }, 0, BLANK, GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? (int)BORDER_COLOR_DISABLED : (int)LINE_COLOR))); + + GuiLine(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y - GuiGetStyle(DEFAULT, TEXT_SIZE)/2, bounds.width, (float)GuiGetStyle(DEFAULT, TEXT_SIZE) }, text); + //-------------------------------------------------------------------- + + return result; +} + +// Line control +int GuiLine(Rectangle bounds, const char *text) +{ + #if !defined(RAYGUI_LINE_MARGIN_TEXT) + #define RAYGUI_LINE_MARGIN_TEXT 12 + #endif + #if !defined(RAYGUI_LINE_TEXT_PADDING) + #define RAYGUI_LINE_TEXT_PADDING 4 + #endif + + int result = 0; + GuiState state = guiState; + + Color color = GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? (int)BORDER_COLOR_DISABLED : (int)LINE_COLOR)); + + // Draw control + //-------------------------------------------------------------------- + if (text == NULL) GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y + bounds.height/2, bounds.width, 1 }, 0, BLANK, color); + else + { + Rectangle textBounds = { 0 }; + textBounds.width = (float)GuiGetTextWidth(text) + 2; + textBounds.height = bounds.height; + textBounds.x = bounds.x + RAYGUI_LINE_MARGIN_TEXT; + textBounds.y = bounds.y; + + // Draw line with embedded text label: "--- text --------------" + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y + bounds.height/2, RAYGUI_LINE_MARGIN_TEXT - RAYGUI_LINE_TEXT_PADDING, 1 }, 0, BLANK, color); + GuiDrawText(text, textBounds, TEXT_ALIGN_LEFT, color); + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + 12 + textBounds.width + 4, bounds.y + bounds.height/2, bounds.width - textBounds.width - RAYGUI_LINE_MARGIN_TEXT - RAYGUI_LINE_TEXT_PADDING, 1 }, 0, BLANK, color); + } + //-------------------------------------------------------------------- + + return result; +} + +// Panel control +int GuiPanel(Rectangle bounds, const char *text) +{ + #if !defined(RAYGUI_PANEL_BORDER_WIDTH) + #define RAYGUI_PANEL_BORDER_WIDTH 1 + #endif + + int result = 0; + GuiState state = guiState; + + // Text will be drawn as a header bar (if provided) + Rectangle statusBar = { bounds.x, bounds.y, bounds.width, (float)RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT }; + if ((text != NULL) && (bounds.height < RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT*2.0f)) bounds.height = RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT*2.0f; + + if (text != NULL) + { + // Move panel bounds after the header bar + bounds.y += (float)RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT - 1; + bounds.height -= (float)RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT - 1; + } + + // Draw control + //-------------------------------------------------------------------- + if (text != NULL) GuiStatusBar(statusBar, text); // Draw panel header as status bar + + GuiDrawRectangle(bounds, RAYGUI_PANEL_BORDER_WIDTH, GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? (int)BORDER_COLOR_DISABLED : (int)LINE_COLOR)), + GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? (int)BASE_COLOR_DISABLED : (int)BACKGROUND_COLOR))); + //-------------------------------------------------------------------- + + return result; +} + +// Tab Bar control +// NOTE: Using GuiToggle() for the TABS +int GuiTabBar(Rectangle bounds, char **text, int count, int *active) +{ + #define RAYGUI_TABBAR_ITEM_WIDTH 148 + + int result = -1; + //GuiState state = guiState; + + Rectangle tabBounds = { bounds.x, bounds.y, RAYGUI_TABBAR_ITEM_WIDTH, bounds.height }; + + if (*active < 0) *active = 0; + else if (*active > count - 1) *active = count - 1; + + int offsetX = 0; // Required in case tabs go out of screen + offsetX = (*active + 2)*RAYGUI_TABBAR_ITEM_WIDTH - GetScreenWidth(); + if (offsetX < 0) offsetX = 0; + + bool toggle = false; // Required for individual toggles + + // Draw control + //-------------------------------------------------------------------- + for (int i = 0; i < count; i++) + { + tabBounds.x = bounds.x + (RAYGUI_TABBAR_ITEM_WIDTH + 4)*i - offsetX; + + if (tabBounds.x < GetScreenWidth()) + { + // Draw tabs as toggle controls + int textAlignment = GuiGetStyle(TOGGLE, TEXT_ALIGNMENT); + int textPadding = GuiGetStyle(TOGGLE, TEXT_PADDING); + GuiSetStyle(TOGGLE, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); + GuiSetStyle(TOGGLE, TEXT_PADDING, 8); + + if (i == (*active)) + { + toggle = true; + GuiToggle(tabBounds, text[i], &toggle); + } + else + { + toggle = false; + GuiToggle(tabBounds, text[i], &toggle); + if (toggle) *active = i; + } + + // Close tab with middle mouse button pressed + if (CheckCollisionPointRec(GUI_POINTER_POSITION, tabBounds) && IsMouseButtonPressed(MOUSE_MIDDLE_BUTTON)) result = i; + + GuiSetStyle(TOGGLE, TEXT_PADDING, textPadding); + GuiSetStyle(TOGGLE, TEXT_ALIGNMENT, textAlignment); + + // Draw tab close button + // NOTE: Only draw close button for current tab: if (CheckCollisionPointRec(mousePosition, tabBounds)) + int tempBorderWidth = GuiGetStyle(BUTTON, BORDER_WIDTH); + int tempTextAlignment = GuiGetStyle(BUTTON, TEXT_ALIGNMENT); + GuiSetStyle(BUTTON, BORDER_WIDTH, 1); + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); +#if defined(RAYGUI_NO_ICONS) + if (GuiButton(RAYGUI_CLITERAL(Rectangle){ tabBounds.x + tabBounds.width - 14 - 5, tabBounds.y + 5, 14, 14 }, "x")) result = i; +#else + if (GuiButton(RAYGUI_CLITERAL(Rectangle){ tabBounds.x + tabBounds.width - 14 - 5, tabBounds.y + 5, 14, 14 }, GuiIconText(ICON_CROSS_SMALL, NULL))) result = i; +#endif + GuiSetStyle(BUTTON, BORDER_WIDTH, tempBorderWidth); + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, tempTextAlignment); + } + } + + // Draw tab-bar bottom line + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y + bounds.height - 1, bounds.width, 1 }, 0, BLANK, GetColor(GuiGetStyle(TOGGLE, BORDER_COLOR_NORMAL))); + //-------------------------------------------------------------------- + + return result; // Return as result the current TAB closing requested +} + +// Scroll Panel control +int GuiScrollPanel(Rectangle bounds, const char *text, Rectangle content, Vector2 *scroll, Rectangle *view) +{ + #define RAYGUI_MIN_SCROLLBAR_WIDTH 40 + #define RAYGUI_MIN_SCROLLBAR_HEIGHT 40 + #define RAYGUI_MIN_MOUSE_WHEEL_SPEED 20 + + int result = 0; + GuiState state = guiState; + + Rectangle temp = { 0 }; + if (view == NULL) view = &temp; + + Vector2 scrollPos = { 0.0f, 0.0f }; + if (scroll != NULL) scrollPos = *scroll; + + // Text will be drawn as a header bar (if provided) + Rectangle statusBar = { bounds.x, bounds.y, bounds.width, (float)RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT }; + if (bounds.height < RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT*2.0f) bounds.height = RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT*2.0f; + + if (text != NULL) + { + // Move panel bounds after the header bar + bounds.y += (float)RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT - 1; + bounds.height -= (float)RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT + 1; + } + + bool hasHorizontalScrollBar = (content.width > bounds.width - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH))? true : false; + bool hasVerticalScrollBar = (content.height > bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH))? true : false; + + // Recheck to account for the other scrollbar being visible + if (!hasHorizontalScrollBar) hasHorizontalScrollBar = (hasVerticalScrollBar && (content.width > (bounds.width - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH))))? true : false; + if (!hasVerticalScrollBar) hasVerticalScrollBar = (hasHorizontalScrollBar && (content.height > (bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH))))? true : false; + + int horizontalScrollBarWidth = hasHorizontalScrollBar? GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH) : 0; + int verticalScrollBarWidth = hasVerticalScrollBar? GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH) : 0; + Rectangle horizontalScrollBar = { + (float)((GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (float)bounds.x + verticalScrollBarWidth : (float)bounds.x) + GuiGetStyle(DEFAULT, BORDER_WIDTH), + (float)bounds.y + bounds.height - horizontalScrollBarWidth - GuiGetStyle(DEFAULT, BORDER_WIDTH), + (float)bounds.width - verticalScrollBarWidth - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH), + (float)horizontalScrollBarWidth + }; + Rectangle verticalScrollBar = { + (float)((GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (float)bounds.x + GuiGetStyle(DEFAULT, BORDER_WIDTH) : (float)bounds.x + bounds.width - verticalScrollBarWidth - GuiGetStyle(DEFAULT, BORDER_WIDTH)), + (float)bounds.y + GuiGetStyle(DEFAULT, BORDER_WIDTH), + (float)verticalScrollBarWidth, + (float)bounds.height - horizontalScrollBarWidth - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) + }; + + // Make sure scroll bars have a minimum width/height + if (horizontalScrollBar.width < RAYGUI_MIN_SCROLLBAR_WIDTH) horizontalScrollBar.width = RAYGUI_MIN_SCROLLBAR_WIDTH; + if (verticalScrollBar.height < RAYGUI_MIN_SCROLLBAR_HEIGHT) verticalScrollBar.height = RAYGUI_MIN_SCROLLBAR_HEIGHT; + + // Calculate view area (area without the scrollbars) + *view = (GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? + RAYGUI_CLITERAL(Rectangle){ bounds.x + verticalScrollBarWidth + GuiGetStyle(DEFAULT, BORDER_WIDTH), bounds.y + GuiGetStyle(DEFAULT, BORDER_WIDTH), bounds.width - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - verticalScrollBarWidth, bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - horizontalScrollBarWidth } : + RAYGUI_CLITERAL(Rectangle){ bounds.x + GuiGetStyle(DEFAULT, BORDER_WIDTH), bounds.y + GuiGetStyle(DEFAULT, BORDER_WIDTH), bounds.width - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - verticalScrollBarWidth, bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - horizontalScrollBarWidth }; + + // Clip view area to the actual content size + if (view->width > content.width) view->width = content.width; + if (view->height > content.height) view->height = content.height; + + float horizontalMin = hasHorizontalScrollBar? ((GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (float)-verticalScrollBarWidth : 0) - (float)GuiGetStyle(DEFAULT, BORDER_WIDTH) : (((float)GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (float)-verticalScrollBarWidth : 0) - (float)GuiGetStyle(DEFAULT, BORDER_WIDTH); + float horizontalMax = hasHorizontalScrollBar? content.width - bounds.width + (float)verticalScrollBarWidth + GuiGetStyle(DEFAULT, BORDER_WIDTH) - (((float)GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (float)verticalScrollBarWidth : 0) : (float)-GuiGetStyle(DEFAULT, BORDER_WIDTH); + float verticalMin = hasVerticalScrollBar? 0.0f : -1.0f; + float verticalMax = hasVerticalScrollBar? content.height - bounds.height + (float)horizontalScrollBarWidth + (float)GuiGetStyle(DEFAULT, BORDER_WIDTH) : (float)-GuiGetStyle(DEFAULT, BORDER_WIDTH); + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + // Check button state + if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (GUI_BUTTON_DOWN) state = STATE_PRESSED; + else state = STATE_FOCUSED; + +#if defined(SUPPORT_SCROLLBAR_KEY_INPUT) + if (hasHorizontalScrollBar) + { + if (GUI_KEY_DOWN(KEY_RIGHT)) scrollPos.x -= GuiGetStyle(SCROLLBAR, SCROLL_SPEED); + if (GUI_KEY_DOWN(KEY_LEFT)) scrollPos.x += GuiGetStyle(SCROLLBAR, SCROLL_SPEED); + } + + if (hasVerticalScrollBar) + { + if (GUI_KEY_DOWN(KEY_DOWN)) scrollPos.y -= GuiGetStyle(SCROLLBAR, SCROLL_SPEED); + if (GUI_KEY_DOWN(KEY_UP)) scrollPos.y += GuiGetStyle(SCROLLBAR, SCROLL_SPEED); + } +#endif + float scrollDelta = GUI_SCROLL_DELTA; + + // Set scrolling speed with mouse wheel based on ratio between bounds and content + Vector2 scrollSpeed = { content.width/bounds.width, content.height/bounds.height }; + if (scrollSpeed.x < RAYGUI_MIN_MOUSE_WHEEL_SPEED) scrollSpeed.x = RAYGUI_MIN_MOUSE_WHEEL_SPEED; + if (scrollSpeed.y < RAYGUI_MIN_MOUSE_WHEEL_SPEED) scrollSpeed.y = RAYGUI_MIN_MOUSE_WHEEL_SPEED; + + // Horizontal and vertical scrolling with mouse wheel + if (hasHorizontalScrollBar && (GUI_KEY_DOWN(KEY_LEFT_CONTROL) || GUI_KEY_DOWN(KEY_LEFT_SHIFT))) scrollPos.x += scrollDelta*scrollSpeed.x; + else scrollPos.y += scrollDelta*scrollSpeed.y; // Vertical scroll + } + } + + // Normalize scroll values + if (scrollPos.x > -horizontalMin) scrollPos.x = -horizontalMin; + if (scrollPos.x < -horizontalMax) scrollPos.x = -horizontalMax; + if (scrollPos.y > -verticalMin) scrollPos.y = -verticalMin; + if (scrollPos.y < -verticalMax) scrollPos.y = -verticalMax; + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + if (text != NULL) GuiStatusBar(statusBar, text); // Draw panel header as status bar + + GuiDrawRectangle(bounds, 0, BLANK, GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); // Draw background + + // Save size of the scrollbar slider + const int slider = GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE); + + // Draw horizontal scrollbar if visible + if (hasHorizontalScrollBar) + { + // Change scrollbar slider size to show the diff in size between the content width and the widget width + GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE, (int)(((bounds.width - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - verticalScrollBarWidth)/(int)content.width)*((int)bounds.width - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - verticalScrollBarWidth))); + scrollPos.x = (float)-GuiScrollBar(horizontalScrollBar, (int)-scrollPos.x, (int)horizontalMin, (int)horizontalMax); + } + else scrollPos.x = 0.0f; + + // Draw vertical scrollbar if visible + if (hasVerticalScrollBar) + { + // Change scrollbar slider size to show the diff in size between the content height and the widget height + GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE, (int)(((bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - horizontalScrollBarWidth)/(int)content.height)*((int)bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - horizontalScrollBarWidth))); + scrollPos.y = (float)-GuiScrollBar(verticalScrollBar, (int)-scrollPos.y, (int)verticalMin, (int)verticalMax); + } + else scrollPos.y = 0.0f; + + // Draw detail corner rectangle if both scroll bars are visible + if (hasHorizontalScrollBar && hasVerticalScrollBar) + { + Rectangle corner = { (GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (bounds.x + GuiGetStyle(DEFAULT, BORDER_WIDTH) + 2) : (horizontalScrollBar.x + horizontalScrollBar.width + 2), verticalScrollBar.y + verticalScrollBar.height + 2, (float)horizontalScrollBarWidth - 4, (float)verticalScrollBarWidth - 4 }; + GuiDrawRectangle(corner, 0, BLANK, GetColor(GuiGetStyle(LISTVIEW, TEXT + (state*3)))); + } + + // Draw scrollbar lines depending on current state + GuiDrawRectangle(bounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER + (state*3))), BLANK); + + // Set scrollbar slider size back to the way it was before + GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE, slider); + //-------------------------------------------------------------------- + + if (scroll != NULL) *scroll = scrollPos; + + return result; +} + +// Label control +int GuiLabel(Rectangle bounds, const char *text) +{ + int result = 0; + GuiState state = guiState; + + // Update control + //-------------------------------------------------------------------- + //... + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + GuiDrawText(text, GetTextBounds(LABEL, bounds), GuiGetStyle(LABEL, TEXT_ALIGNMENT), GetColor(GuiGetStyle(LABEL, TEXT + (state*3)))); + //-------------------------------------------------------------------- + + return result; +} + +// Button control, returns true when clicked +int GuiButton(Rectangle bounds, const char *text) +{ + int result = 0; + GuiState state = guiState; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked && !guiControlExclusiveMode) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + // Check button state + if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (GUI_BUTTON_DOWN) state = STATE_PRESSED; + else state = STATE_FOCUSED; + + if (GUI_BUTTON_RELEASED) result = 1; + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + GuiDrawRectangle(bounds, GuiGetStyle(BUTTON, BORDER_WIDTH), GetColor(GuiGetStyle(BUTTON, BORDER + (state*3))), GetColor(GuiGetStyle(BUTTON, BASE + (state*3)))); + GuiDrawText(text, GetTextBounds(BUTTON, bounds), GuiGetStyle(BUTTON, TEXT_ALIGNMENT), GetColor(GuiGetStyle(BUTTON, TEXT + (state*3)))); + + if (state == STATE_FOCUSED) GuiTooltip(bounds); + //------------------------------------------------------------------ + + return result; // Button pressed: result = 1 +} + +// Label button control +int GuiLabelButton(Rectangle bounds, const char *text) +{ + GuiState state = guiState; + bool pressed = false; + + // NOTE: Force bounds.width to be all text + float textWidth = (float)GuiGetTextWidth(text); + if ((bounds.width - 2*GuiGetStyle(LABEL, BORDER_WIDTH) - 2*GuiGetStyle(LABEL, TEXT_PADDING)) < textWidth) bounds.width = textWidth + 2*GuiGetStyle(LABEL, BORDER_WIDTH) + 2*GuiGetStyle(LABEL, TEXT_PADDING) + 2; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked && !guiControlExclusiveMode) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + // Check checkbox state + if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (GUI_BUTTON_DOWN) state = STATE_PRESSED; + else state = STATE_FOCUSED; + + if (GUI_BUTTON_RELEASED) pressed = true; + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + GuiDrawText(text, GetTextBounds(LABEL, bounds), GuiGetStyle(LABEL, TEXT_ALIGNMENT), GetColor(GuiGetStyle(LABEL, TEXT + (state*3)))); + //-------------------------------------------------------------------- + + return pressed; +} + +// Toggle Button control +int GuiToggle(Rectangle bounds, const char *text, bool *active) +{ + int result = 0; + GuiState state = guiState; + + bool temp = false; + if (active == NULL) active = &temp; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked && !guiControlExclusiveMode) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + // Check toggle button state + if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (GUI_BUTTON_DOWN) state = STATE_PRESSED; + else if (GUI_BUTTON_RELEASED) + { + state = STATE_NORMAL; + *active = !(*active); + } + else state = STATE_FOCUSED; + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + if (state == STATE_NORMAL) + { + GuiDrawRectangle(bounds, GuiGetStyle(TOGGLE, BORDER_WIDTH), GetColor(GuiGetStyle(TOGGLE, ((*active)? BORDER_COLOR_PRESSED : (BORDER + state*3)))), GetColor(GuiGetStyle(TOGGLE, ((*active)? BASE_COLOR_PRESSED : (BASE + state*3))))); + GuiDrawText(text, GetTextBounds(TOGGLE, bounds), GuiGetStyle(TOGGLE, TEXT_ALIGNMENT), GetColor(GuiGetStyle(TOGGLE, ((*active)? TEXT_COLOR_PRESSED : (TEXT + state*3))))); + } + else + { + GuiDrawRectangle(bounds, GuiGetStyle(TOGGLE, BORDER_WIDTH), GetColor(GuiGetStyle(TOGGLE, BORDER + state*3)), GetColor(GuiGetStyle(TOGGLE, BASE + state*3))); + GuiDrawText(text, GetTextBounds(TOGGLE, bounds), GuiGetStyle(TOGGLE, TEXT_ALIGNMENT), GetColor(GuiGetStyle(TOGGLE, TEXT + state*3))); + } + + if (state == STATE_FOCUSED) GuiTooltip(bounds); + //-------------------------------------------------------------------- + + return result; +} + +// Toggle Group control +int GuiToggleGroup(Rectangle bounds, const char *text, int *active) +{ + #if !defined(RAYGUI_TOGGLEGROUP_MAX_ITEMS) + #define RAYGUI_TOGGLEGROUP_MAX_ITEMS 32 + #endif + + int result = 0; + float initBoundsX = bounds.x; + + int temp = 0; + if (active == NULL) active = &temp; + + bool toggle = false; // Required for individual toggles + + // Get substrings items from text (items pointers) + int rows[RAYGUI_TOGGLEGROUP_MAX_ITEMS] = { 0 }; + int itemCount = 0; + char **items = GuiTextSplit(text, ';', &itemCount, rows); + + int prevRow = rows[0]; + + for (int i = 0; i < itemCount; i++) + { + if (prevRow != rows[i]) + { + bounds.x = initBoundsX; + bounds.y += (bounds.height + GuiGetStyle(TOGGLE, GROUP_PADDING)); + prevRow = rows[i]; + } + + if (i == (*active)) + { + toggle = true; + GuiToggle(bounds, items[i], &toggle); + } + else + { + toggle = false; + GuiToggle(bounds, items[i], &toggle); + if (toggle) *active = i; + } + + bounds.x += (bounds.width + GuiGetStyle(TOGGLE, GROUP_PADDING)); + } + + return result; +} + +// Toggle Slider control extended +int GuiToggleSlider(Rectangle bounds, const char *text, int *active) +{ + int result = 0; + GuiState state = guiState; + + int temp = 0; + if (active == NULL) active = &temp; + + //bool toggle = false; // Required for individual toggles + + // Get substrings items from text (items pointers) + int itemCount = 0; + char **items = NULL; + + if (text != NULL) items = GuiTextSplit(text, ';', &itemCount, NULL); + + Rectangle slider = { + 0, // Calculated later depending on the active toggle + bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH) + GuiGetStyle(SLIDER, SLIDER_PADDING), + (bounds.width - 2*GuiGetStyle(SLIDER, BORDER_WIDTH) - (itemCount + 1)*GuiGetStyle(SLIDER, SLIDER_PADDING))/itemCount, + bounds.height - 2*GuiGetStyle(SLIDER, BORDER_WIDTH) - 2*GuiGetStyle(SLIDER, SLIDER_PADDING) }; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (GUI_BUTTON_DOWN) state = STATE_PRESSED; + else if (GUI_BUTTON_RELEASED) + { + state = STATE_PRESSED; + (*active)++; + result = 1; + } + else state = STATE_FOCUSED; + } + + if ((*active) && (state != STATE_FOCUSED)) state = STATE_PRESSED; + } + + if (*active >= itemCount) *active = 0; + slider.x = bounds.x + GuiGetStyle(SLIDER, BORDER_WIDTH) + (*active + 1)*GuiGetStyle(SLIDER, SLIDER_PADDING) + (*active)*slider.width; + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + GuiDrawRectangle(bounds, GuiGetStyle(SLIDER, BORDER_WIDTH), GetColor(GuiGetStyle(TOGGLE, BORDER + (state*3))), + GetColor(GuiGetStyle(TOGGLE, BASE_COLOR_NORMAL))); + + // Draw internal slider + if (state == STATE_NORMAL) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, BASE_COLOR_PRESSED))); + else if (state == STATE_FOCUSED) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, BASE_COLOR_FOCUSED))); + else if (state == STATE_PRESSED) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, BASE_COLOR_PRESSED))); + + // Draw text in slider + if (text != NULL) + { + Rectangle textBounds = { 0 }; + textBounds.width = (float)GuiGetTextWidth(text); + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = slider.x + slider.width/2 - textBounds.width/2; + textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; + + GuiDrawText(items[*active], textBounds, GuiGetStyle(TOGGLE, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(TOGGLE, TEXT + (state*3))), guiAlpha)); + } + //-------------------------------------------------------------------- + + return result; +} + +// Check Box control, returns 1 when state changed +int GuiCheckBox(Rectangle bounds, const char *text, bool *checked) +{ + int result = 0; + GuiState state = guiState; + + bool temp = false; + if (checked == NULL) checked = &temp; + + Rectangle textBounds = { 0 }; + + if (text != NULL) + { + textBounds.width = (float)GuiGetTextWidth(text) + 2; + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = bounds.x + bounds.width + GuiGetStyle(CHECKBOX, TEXT_PADDING); + textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; + if (GuiGetStyle(CHECKBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_LEFT) textBounds.x = bounds.x - textBounds.width - GuiGetStyle(CHECKBOX, TEXT_PADDING); + } + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked && !guiControlExclusiveMode) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + Rectangle totalBounds = { + (GuiGetStyle(CHECKBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_LEFT)? textBounds.x : bounds.x, + bounds.y, + bounds.width + textBounds.width + GuiGetStyle(CHECKBOX, TEXT_PADDING), + bounds.height, + }; + + // Check checkbox state + if (CheckCollisionPointRec(mousePoint, totalBounds)) + { + if (GUI_BUTTON_DOWN) state = STATE_PRESSED; + else state = STATE_FOCUSED; + + if (GUI_BUTTON_RELEASED) + { + *checked = !(*checked); + result = 1; + } + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + GuiDrawRectangle(bounds, GuiGetStyle(CHECKBOX, BORDER_WIDTH), GetColor(GuiGetStyle(CHECKBOX, BORDER + (state*3))), BLANK); + + if (*checked) + { + Rectangle check = { bounds.x + GuiGetStyle(CHECKBOX, BORDER_WIDTH) + GuiGetStyle(CHECKBOX, CHECK_PADDING), + bounds.y + GuiGetStyle(CHECKBOX, BORDER_WIDTH) + GuiGetStyle(CHECKBOX, CHECK_PADDING), + bounds.width - 2*(GuiGetStyle(CHECKBOX, BORDER_WIDTH) + GuiGetStyle(CHECKBOX, CHECK_PADDING)), + bounds.height - 2*(GuiGetStyle(CHECKBOX, BORDER_WIDTH) + GuiGetStyle(CHECKBOX, CHECK_PADDING)) }; + GuiDrawRectangle(check, 0, BLANK, GetColor(GuiGetStyle(CHECKBOX, TEXT + state*3))); + } + + GuiDrawText(text, textBounds, (GuiGetStyle(CHECKBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT)? TEXT_ALIGN_LEFT : TEXT_ALIGN_RIGHT, GetColor(GuiGetStyle(LABEL, TEXT + (state*3)))); + //-------------------------------------------------------------------- + + return result; +} + +// Combo Box control +int GuiComboBox(Rectangle bounds, const char *text, int *active) +{ + int result = 0; + GuiState state = guiState; + + int temp = 0; + if (active == NULL) active = &temp; + + bounds.width -= (GuiGetStyle(COMBOBOX, COMBO_BUTTON_WIDTH) + GuiGetStyle(COMBOBOX, COMBO_BUTTON_SPACING)); + + Rectangle selector = { (float)bounds.x + bounds.width + GuiGetStyle(COMBOBOX, COMBO_BUTTON_SPACING), + (float)bounds.y, (float)GuiGetStyle(COMBOBOX, COMBO_BUTTON_WIDTH), (float)bounds.height }; + + // Get substrings items from text (items pointers, lengths and count) + int itemCount = 0; + char **items = GuiTextSplit(text, ';', &itemCount, NULL); + + if (*active < 0) *active = 0; + else if (*active > (itemCount - 1)) *active = itemCount - 1; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked && (itemCount > 1) && !guiControlExclusiveMode) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + if (CheckCollisionPointRec(mousePoint, bounds) || + CheckCollisionPointRec(mousePoint, selector)) + { + if (GUI_BUTTON_PRESSED) + { + *active += 1; + if (*active >= itemCount) *active = 0; // Cyclic combobox + } + + if (GUI_BUTTON_DOWN) state = STATE_PRESSED; + else state = STATE_FOCUSED; + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + // Draw combo box main + GuiDrawRectangle(bounds, GuiGetStyle(COMBOBOX, BORDER_WIDTH), GetColor(GuiGetStyle(COMBOBOX, BORDER + (state*3))), GetColor(GuiGetStyle(COMBOBOX, BASE + (state*3)))); + GuiDrawText(items[*active], GetTextBounds(COMBOBOX, bounds), GuiGetStyle(COMBOBOX, TEXT_ALIGNMENT), GetColor(GuiGetStyle(COMBOBOX, TEXT + (state*3)))); + + // Draw selector using a custom button + // NOTE: BORDER_WIDTH and TEXT_ALIGNMENT forced values + int tempBorderWidth = GuiGetStyle(BUTTON, BORDER_WIDTH); + int tempTextAlign = GuiGetStyle(BUTTON, TEXT_ALIGNMENT); + GuiSetStyle(BUTTON, BORDER_WIDTH, 1); + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + + GuiButton(selector, TextFormat("%i/%i", *active + 1, itemCount)); + + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, tempTextAlign); + GuiSetStyle(BUTTON, BORDER_WIDTH, tempBorderWidth); + //-------------------------------------------------------------------- + + return result; +} + +// Dropdown Box control +// NOTE: Returns mouse click +int GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMode) +{ + int result = 0; + GuiState state = guiState; + + int temp = 0; + if (active == NULL) active = &temp; + + int itemSelected = *active; + int itemFocused = -1; + + int direction = 0; // Dropdown box open direction: down (default) + if (GuiGetStyle(DROPDOWNBOX, DROPDOWN_ROLL_UP) == 1) direction = 1; // Up + + // Get substrings items from text (items pointers, lengths and count) + int itemCount = 0; + char **items = GuiTextSplit(text, ';', &itemCount, NULL); + + Rectangle boundsOpen = bounds; + boundsOpen.height = (itemCount + 1)*(bounds.height + GuiGetStyle(DROPDOWNBOX, DROPDOWN_ITEMS_SPACING)); + if (direction == 1) boundsOpen.y -= itemCount*(bounds.height + GuiGetStyle(DROPDOWNBOX, DROPDOWN_ITEMS_SPACING)) + GuiGetStyle(DROPDOWNBOX, DROPDOWN_ITEMS_SPACING); + + Rectangle itemBounds = bounds; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && (editMode || !guiLocked) && (itemCount > 1) && !guiControlExclusiveMode) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + if (editMode) + { + state = STATE_PRESSED; + + // Check if mouse has been pressed or released outside limits + if (!CheckCollisionPointRec(mousePoint, boundsOpen)) + { + if (GUI_BUTTON_PRESSED || GUI_BUTTON_RELEASED) result = 1; + } + + // Check if already selected item has been pressed again + if (CheckCollisionPointRec(mousePoint, bounds) && GUI_BUTTON_PRESSED) result = 1; + + // Check focused and selected item + for (int i = 0; i < itemCount; i++) + { + // Update item rectangle y position for next item + if (direction == 0) itemBounds.y += (bounds.height + GuiGetStyle(DROPDOWNBOX, DROPDOWN_ITEMS_SPACING)); + else itemBounds.y -= (bounds.height + GuiGetStyle(DROPDOWNBOX, DROPDOWN_ITEMS_SPACING)); + + if (CheckCollisionPointRec(mousePoint, itemBounds)) + { + itemFocused = i; + if (GUI_BUTTON_RELEASED) + { + itemSelected = i; + result = 1; // Item selected + } + break; + } + } + + itemBounds = bounds; + } + else + { + if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (GUI_BUTTON_PRESSED) + { + result = 1; + state = STATE_PRESSED; + } + else state = STATE_FOCUSED; + } + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + if (editMode) GuiPanel(boundsOpen, NULL); + + GuiDrawRectangle(bounds, GuiGetStyle(DROPDOWNBOX, BORDER_WIDTH), GetColor(GuiGetStyle(DROPDOWNBOX, BORDER + state*3)), GetColor(GuiGetStyle(DROPDOWNBOX, BASE + state*3))); + GuiDrawText(items[itemSelected], GetTextBounds(DROPDOWNBOX, bounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + state*3))); + + if (editMode) + { + // Draw visible items + for (int i = 0; i < itemCount; i++) + { + // Update item rectangle y position for next item + if (direction == 0) itemBounds.y += (bounds.height + GuiGetStyle(DROPDOWNBOX, DROPDOWN_ITEMS_SPACING)); + else itemBounds.y -= (bounds.height + GuiGetStyle(DROPDOWNBOX, DROPDOWN_ITEMS_SPACING)); + + if (i == itemSelected) + { + GuiDrawRectangle(itemBounds, GuiGetStyle(DROPDOWNBOX, BORDER_WIDTH), GetColor(GuiGetStyle(DROPDOWNBOX, BORDER_COLOR_PRESSED)), GetColor(GuiGetStyle(DROPDOWNBOX, BASE_COLOR_PRESSED))); + GuiDrawText(items[i], GetTextBounds(DROPDOWNBOX, itemBounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), GetColor(GuiGetStyle(DROPDOWNBOX, TEXT_COLOR_PRESSED))); + } + else if (i == itemFocused) + { + GuiDrawRectangle(itemBounds, GuiGetStyle(DROPDOWNBOX, BORDER_WIDTH), GetColor(GuiGetStyle(DROPDOWNBOX, BORDER_COLOR_FOCUSED)), GetColor(GuiGetStyle(DROPDOWNBOX, BASE_COLOR_FOCUSED))); + GuiDrawText(items[i], GetTextBounds(DROPDOWNBOX, itemBounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), GetColor(GuiGetStyle(DROPDOWNBOX, TEXT_COLOR_FOCUSED))); + } + else GuiDrawText(items[i], GetTextBounds(DROPDOWNBOX, itemBounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), GetColor(GuiGetStyle(DROPDOWNBOX, TEXT_COLOR_NORMAL))); + } + } + + if (!GuiGetStyle(DROPDOWNBOX, DROPDOWN_ARROW_HIDDEN)) + { + // Draw arrows (using icon if available) +#if defined(RAYGUI_NO_ICONS) + GuiDrawText("v", RAYGUI_CLITERAL(Rectangle){ bounds.x + bounds.width - GuiGetStyle(DROPDOWNBOX, ARROW_PADDING), bounds.y + bounds.height/2 - 2, 10, 10 }, + TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3)))); +#else + GuiDrawText(direction? "#121#" : "#120#", RAYGUI_CLITERAL(Rectangle){ bounds.x + bounds.width - GuiGetStyle(DROPDOWNBOX, ARROW_PADDING), bounds.y + bounds.height/2 - 6, 10, 10 }, + TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3)))); // ICON_ARROW_DOWN_FILL +#endif + } + //-------------------------------------------------------------------- + + *active = itemSelected; + + // TODO: Use result to return more internal states: mouse-press out-of-bounds, mouse-press over selected-item... + return result; // Mouse click: result = 1 +} + +// Text Box control +// NOTE: Returns true on ENTER pressed (useful for data validation) +int GuiTextBox(Rectangle bounds, char *text, int textSize, bool editMode) +{ + #if !defined(RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN) + #define RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN 20 // Frames to wait for autocursor movement + #endif + #if !defined(RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY) + #define RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY 1 // Frames delay for autocursor movement + #endif + + int result = 0; + GuiState state = guiState; + + bool multiline = false; // TODO: Consider multiline text input + int wrapMode = GuiGetStyle(DEFAULT, TEXT_WRAP_MODE); + + Rectangle textBounds = GetTextBounds(TEXTBOX, bounds); + int textLength = (text != NULL)? (int)strlen(text) : 0; // Get current text length + int thisCursorIndex = textBoxCursorIndex; + if (thisCursorIndex > textLength) thisCursorIndex = textLength; + int textWidth = GuiGetTextWidth(text) - GuiGetTextWidth(text + thisCursorIndex); + int textIndexOffset = 0; // Text index offset to start drawing in the box + + // Cursor rectangle + // NOTE: Position X value should be updated + Rectangle cursor = { + textBounds.x + textWidth + GuiGetStyle(DEFAULT, TEXT_SPACING), + textBounds.y + textBounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE), + 2, + (float)GuiGetStyle(DEFAULT, TEXT_SIZE)*2 + }; + + if (cursor.height >= bounds.height) cursor.height = bounds.height - GuiGetStyle(TEXTBOX, BORDER_WIDTH)*2; + if (cursor.y < (bounds.y + GuiGetStyle(TEXTBOX, BORDER_WIDTH))) cursor.y = bounds.y + GuiGetStyle(TEXTBOX, BORDER_WIDTH); + + // Mouse cursor rectangle + // NOTE: Initialized outside of screen + Rectangle mouseCursor = cursor; + mouseCursor.x = -1; + mouseCursor.width = 1; + + // Blink-cursor frame counter + //if (!autoCursorMode) blinkCursorFrameCounter++; + //else blinkCursorFrameCounter = 0; + + // Update control + //-------------------------------------------------------------------- + // WARNING: Text editing is only supported under certain conditions: + if ((state != STATE_DISABLED) && // Control not disabled + !GuiGetStyle(TEXTBOX, TEXT_READONLY) && // TextBox not on read-only mode + !guiLocked && // Gui not locked + !guiControlExclusiveMode && // No gui slider on dragging + (wrapMode == TEXT_WRAP_NONE)) // No wrap mode + { + Vector2 mousePosition = GUI_POINTER_POSITION; + + if (editMode) + { + // GLOBAL: Auto-cursor movement logic + // NOTE: Keystrokes are handled repeatedly when button is held down for some time + if (GUI_KEY_DOWN(KEY_LEFT) || GUI_KEY_DOWN(KEY_RIGHT) || GUI_KEY_DOWN(KEY_UP) || GUI_KEY_DOWN(KEY_DOWN) || GUI_KEY_DOWN(KEY_BACKSPACE) || GUI_KEY_DOWN(KEY_DELETE)) autoCursorCounter++; + else autoCursorCounter = 0; + + bool autoCursorShouldTrigger = (autoCursorCounter > RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN) && ((autoCursorCounter % RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY) == 0); + + state = STATE_PRESSED; + + if (textBoxCursorIndex > textLength) textBoxCursorIndex = textLength; + + // If text does not fit in the textbox and current cursor position is out of bounds, + // adding an index offset to text for drawing only what requires depending on cursor + while (textWidth >= textBounds.width) + { + int nextCodepointSize = 0; + GetCodepointNext(text + textIndexOffset, &nextCodepointSize); + + textIndexOffset += nextCodepointSize; + + textWidth = GuiGetTextWidth(text + textIndexOffset) - GuiGetTextWidth(text + textBoxCursorIndex); + } + + int codepoint = GUI_INPUT_KEY; // Get Unicode codepoint + if (multiline && GUI_KEY_PRESSED(KEY_ENTER)) codepoint = (int)'\n'; + + // Encode codepoint as UTF-8 + int codepointSize = 0; + const char *charEncoded = CodepointToUTF8(codepoint, &codepointSize); + + // Handle text paste action + if (GUI_KEY_PRESSED(KEY_V) && (GUI_KEY_DOWN(KEY_LEFT_CONTROL) || GUI_KEY_DOWN(KEY_RIGHT_CONTROL))) + { + const char *pasteText = GetClipboardText(); + if (pasteText != NULL) + { + int pasteLength = 0; + int pasteCodepoint; + int pasteCodepointSize; + + // Count how many codepoints to copy, stopping at the first unwanted control character + while (true) + { + pasteCodepoint = GetCodepointNext(pasteText + pasteLength, &pasteCodepointSize); + if (textLength + pasteLength + pasteCodepointSize >= textSize) break; + if (!(multiline && (pasteCodepoint == (int)'\n')) && !(pasteCodepoint >= 32)) break; + pasteLength += pasteCodepointSize; + } + + if (pasteLength > 0) + { + // Move forward data from cursor position + for (int i = textLength + pasteLength; i > textBoxCursorIndex; i--) text[i] = text[i - pasteLength]; + + // Paste data in at cursor + for (int i = 0; i < pasteLength; i++) text[textBoxCursorIndex + i] = pasteText[i]; + + textBoxCursorIndex += pasteLength; + textLength += pasteLength; + text[textLength] = '\0'; + } + } + } + else if (((multiline && (codepoint == (int)'\n')) || (codepoint >= 32)) && ((textLength + codepointSize) < textSize)) + { + // Adding codepoint to text, at current cursor position + + // Move forward data from cursor position + for (int i = (textLength + codepointSize); i > textBoxCursorIndex; i--) text[i] = text[i - codepointSize]; + + // Add new codepoint in current cursor position + for (int i = 0; i < codepointSize; i++) text[textBoxCursorIndex + i] = charEncoded[i]; + + textBoxCursorIndex += codepointSize; + textLength += codepointSize; + + // Make sure text last character is EOL + text[textLength] = '\0'; + } + + // Move cursor to start + if ((textLength > 0) && GUI_KEY_PRESSED(KEY_HOME)) textBoxCursorIndex = 0; + + // Move cursor to end + if ((textLength > textBoxCursorIndex) && GUI_KEY_PRESSED(KEY_END)) textBoxCursorIndex = textLength; + + // Delete related codepoints from text, after current cursor position + if ((textLength > textBoxCursorIndex) && GUI_KEY_PRESSED(KEY_DELETE) && (GUI_KEY_DOWN(KEY_LEFT_CONTROL) || GUI_KEY_DOWN(KEY_RIGHT_CONTROL))) + { + int offset = textBoxCursorIndex; + int accCodepointSize = 0; + int nextCodepointSize; + int nextCodepoint; + + // Check characters of the same type to delete (either ASCII punctuation or anything non-whitespace) + // Not using isalnum() since it only works on ASCII characters + nextCodepoint = GetCodepointNext(text + offset, &nextCodepointSize); + bool puctuation = ispunct(nextCodepoint & 0xff); + while (offset < textLength) + { + if ((puctuation && !ispunct(nextCodepoint & 0xff)) || (!puctuation && (isspace(nextCodepoint & 0xff) || ispunct(nextCodepoint & 0xff)))) + break; + offset += nextCodepointSize; + accCodepointSize += nextCodepointSize; + nextCodepoint = GetCodepointNext(text + offset, &nextCodepointSize); + } + + // Check whitespace to delete (ASCII only) + while (offset < textLength) + { + if (!isspace(nextCodepoint & 0xff)) break; + + offset += nextCodepointSize; + accCodepointSize += nextCodepointSize; + nextCodepoint = GetCodepointNext(text + offset, &nextCodepointSize); + } + + // Move text after cursor forward (including final null terminator) + for (int i = offset; i <= textLength; i++) text[i - accCodepointSize] = text[i]; + + textLength -= accCodepointSize; + } + else if ((textLength > textBoxCursorIndex) && (GUI_KEY_PRESSED(KEY_DELETE) || (GUI_KEY_DOWN(KEY_DELETE) && autoCursorShouldTrigger))) + { + // Delete single codepoint from text, after current cursor position + + int nextCodepointSize = 0; + GetCodepointNext(text + textBoxCursorIndex, &nextCodepointSize); + + // Move text after cursor forward (including final null terminator) + for (int i = textBoxCursorIndex + nextCodepointSize; i <= textLength; i++) text[i - nextCodepointSize] = text[i]; + + textLength -= nextCodepointSize; + } + + // Delete related codepoints from text, before current cursor position + if ((textBoxCursorIndex > 0) && GUI_KEY_PRESSED(KEY_BACKSPACE) && (GUI_KEY_DOWN(KEY_LEFT_CONTROL) || GUI_KEY_DOWN(KEY_RIGHT_CONTROL))) + { + int offset = textBoxCursorIndex; + int accCodepointSize = 0; + int prevCodepointSize = 0; + int prevCodepoint = 0; + + // Check whitespace to delete (ASCII only) + while (offset > 0) + { + prevCodepoint = GetCodepointPrevious(text + offset, &prevCodepointSize); + if (!isspace(prevCodepoint & 0xff)) break; + + offset -= prevCodepointSize; + accCodepointSize += prevCodepointSize; + } + + // Check characters of the same type to delete (either ASCII punctuation or anything non-whitespace) + // Not using isalnum() since it only works on ASCII characters + bool puctuation = ispunct(prevCodepoint & 0xff); + while (offset > 0) + { + prevCodepoint = GetCodepointPrevious(text + offset, &prevCodepointSize); + if ((puctuation && !ispunct(prevCodepoint & 0xff)) || (!puctuation && (isspace(prevCodepoint & 0xff) || ispunct(prevCodepoint & 0xff)))) break; + + offset -= prevCodepointSize; + accCodepointSize += prevCodepointSize; + } + + // Move text after cursor forward (including final null terminator) + for (int i = textBoxCursorIndex; i <= textLength; i++) text[i - accCodepointSize] = text[i]; + + textLength -= accCodepointSize; + textBoxCursorIndex -= accCodepointSize; + } + else if ((textBoxCursorIndex > 0) && (GUI_KEY_PRESSED(KEY_BACKSPACE) || (GUI_KEY_DOWN(KEY_BACKSPACE) && autoCursorShouldTrigger))) + { + // Delete single codepoint from text, before current cursor position + + int prevCodepointSize = 0; + + GetCodepointPrevious(text + textBoxCursorIndex, &prevCodepointSize); + + // Move text after cursor forward (including final null terminator) + for (int i = textBoxCursorIndex; i <= textLength; i++) text[i - prevCodepointSize] = text[i]; + + textLength -= prevCodepointSize; + textBoxCursorIndex -= prevCodepointSize; + } + + // Move cursor position with keys + if ((textBoxCursorIndex > 0) && GUI_KEY_PRESSED(KEY_LEFT) && (GUI_KEY_DOWN(KEY_LEFT_CONTROL) || GUI_KEY_DOWN(KEY_RIGHT_CONTROL))) + { + int offset = textBoxCursorIndex; + //int accCodepointSize = 0; + int prevCodepointSize = 0; + int prevCodepoint = 0; + + // Check whitespace to skip (ASCII only) + while (offset > 0) + { + prevCodepoint = GetCodepointPrevious(text + offset, &prevCodepointSize); + if (!isspace(prevCodepoint & 0xff)) break; + + offset -= prevCodepointSize; + //accCodepointSize += prevCodepointSize; + } + + // Check characters of the same type to skip (either ASCII punctuation or anything non-whitespace) + // Not using isalnum() since it only works on ASCII characters + bool puctuation = ispunct(prevCodepoint & 0xff); + while (offset > 0) + { + prevCodepoint = GetCodepointPrevious(text + offset, &prevCodepointSize); + if ((puctuation && !ispunct(prevCodepoint & 0xff)) || (!puctuation && (isspace(prevCodepoint & 0xff) || ispunct(prevCodepoint & 0xff)))) break; + + offset -= prevCodepointSize; + //accCodepointSize += prevCodepointSize; + } + + textBoxCursorIndex = offset; + } + else if ((textBoxCursorIndex > 0) && (GUI_KEY_PRESSED(KEY_LEFT) || (GUI_KEY_DOWN(KEY_LEFT) && autoCursorShouldTrigger))) + { + int prevCodepointSize = 0; + GetCodepointPrevious(text + textBoxCursorIndex, &prevCodepointSize); + + textBoxCursorIndex -= prevCodepointSize; + } + else if ((textLength > textBoxCursorIndex) && GUI_KEY_PRESSED(KEY_RIGHT) && (GUI_KEY_DOWN(KEY_LEFT_CONTROL) || GUI_KEY_DOWN(KEY_RIGHT_CONTROL))) + { + int offset = textBoxCursorIndex; + //int accCodepointSize = 0; + int nextCodepointSize; + int nextCodepoint; + + // Check characters of the same type to skip (either ASCII punctuation or anything non-whitespace) + // Not using isalnum() since it only works on ASCII characters + nextCodepoint = GetCodepointNext(text + offset, &nextCodepointSize); + bool puctuation = ispunct(nextCodepoint & 0xff); + while (offset < textLength) + { + if ((puctuation && !ispunct(nextCodepoint & 0xff)) || (!puctuation && (isspace(nextCodepoint & 0xff) || ispunct(nextCodepoint & 0xff)))) break; + + offset += nextCodepointSize; + //accCodepointSize += nextCodepointSize; + nextCodepoint = GetCodepointNext(text + offset, &nextCodepointSize); + } + + // Check whitespace to skip (ASCII only) + while (offset < textLength) + { + if (!isspace(nextCodepoint & 0xff)) break; + + offset += nextCodepointSize; + //accCodepointSize += nextCodepointSize; + nextCodepoint = GetCodepointNext(text + offset, &nextCodepointSize); + } + + textBoxCursorIndex = offset; + } + else if ((textLength > textBoxCursorIndex) && (GUI_KEY_PRESSED(KEY_RIGHT) || (GUI_KEY_DOWN(KEY_RIGHT) && autoCursorShouldTrigger))) + { + int nextCodepointSize = 0; + GetCodepointNext(text + textBoxCursorIndex, &nextCodepointSize); + + textBoxCursorIndex += nextCodepointSize; + } + + // Move cursor position with mouse + if (CheckCollisionPointRec(mousePosition, textBounds)) // Mouse hover text + { + float scaleFactor = (float)GuiGetStyle(DEFAULT, TEXT_SIZE)/(float)guiFont.baseSize; + int codepointIndex = 0; + float glyphWidth = 0.0f; + float widthToMouseX = 0; + int mouseCursorIndex = 0; + + for (int i = textIndexOffset; i < textLength; i += codepointSize) + { + codepoint = GetCodepointNext(&text[i], &codepointSize); + codepointIndex = GetGlyphIndex(guiFont, codepoint); + + if (guiFont.glyphs[codepointIndex].advanceX == 0) glyphWidth = ((float)guiFont.recs[codepointIndex].width*scaleFactor); + else glyphWidth = ((float)guiFont.glyphs[codepointIndex].advanceX*scaleFactor); + + if (mousePosition.x <= (textBounds.x + (widthToMouseX + glyphWidth/2))) + { + mouseCursor.x = textBounds.x + widthToMouseX; + mouseCursorIndex = i; + break; + } + + widthToMouseX += (glyphWidth + (float)GuiGetStyle(DEFAULT, TEXT_SPACING)); + } + + // Check if mouse cursor is at the last position + int textEndWidth = GuiGetTextWidth(text + textIndexOffset); + if (GUI_POINTER_POSITION.x >= (textBounds.x + textEndWidth - glyphWidth/2)) + { + mouseCursor.x = textBounds.x + textEndWidth; + mouseCursorIndex = textLength; + } + + // Place cursor at required index on mouse click + if ((mouseCursor.x >= 0) && GUI_BUTTON_PRESSED) + { + cursor.x = mouseCursor.x; + textBoxCursorIndex = mouseCursorIndex; + } + } + else mouseCursor.x = -1; + + // Recalculate cursor position.y depending on textBoxCursorIndex + cursor.x = bounds.x + GuiGetStyle(TEXTBOX, TEXT_PADDING) + GuiGetTextWidth(text + textIndexOffset) - GuiGetTextWidth(text + textBoxCursorIndex) + GuiGetStyle(DEFAULT, TEXT_SPACING); + //if (multiline) cursor.y = GetTextLines() + + // Finish text editing on ENTER or mouse click outside bounds + if ((!multiline && GUI_KEY_PRESSED(KEY_ENTER)) || + (!CheckCollisionPointRec(mousePosition, bounds) && GUI_BUTTON_PRESSED)) + { + textBoxCursorIndex = 0; // GLOBAL: Reset the shared cursor index + autoCursorCounter = 0; // GLOBAL: Reset counter for repeated keystrokes + result = 1; + } + } + else + { + if (CheckCollisionPointRec(mousePosition, bounds)) + { + state = STATE_FOCUSED; + + if (GUI_BUTTON_PRESSED) + { + textBoxCursorIndex = textLength; // GLOBAL: Place cursor index to the end of current text + autoCursorCounter = 0; // GLOBAL: Reset counter for repeated keystrokes + result = 1; + } + } + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + if (state == STATE_PRESSED) + { + GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), GetColor(GuiGetStyle(TEXTBOX, BORDER + (state*3))), GetColor(GuiGetStyle(TEXTBOX, BASE_COLOR_PRESSED))); + } + else if (state == STATE_DISABLED) + { + GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), GetColor(GuiGetStyle(TEXTBOX, BORDER + (state*3))), GetColor(GuiGetStyle(TEXTBOX, BASE_COLOR_DISABLED))); + } + else GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), GetColor(GuiGetStyle(TEXTBOX, BORDER + (state*3))), BLANK); + + // Draw text considering index offset if required + // NOTE: Text index offset depends on cursor position + GuiDrawText(text + textIndexOffset, textBounds, GuiGetStyle(TEXTBOX, TEXT_ALIGNMENT), GetColor(GuiGetStyle(TEXTBOX, TEXT + (state*3)))); + + // Draw cursor + if (editMode && !GuiGetStyle(TEXTBOX, TEXT_READONLY)) + { + //if (autoCursorMode || ((blinkCursorFrameCounter/40)%2 == 0)) + GuiDrawRectangle(cursor, 0, BLANK, GetColor(GuiGetStyle(TEXTBOX, BORDER_COLOR_PRESSED))); + + // Draw mouse position cursor (if required) + if (mouseCursor.x >= 0) GuiDrawRectangle(mouseCursor, 0, BLANK, GetColor(GuiGetStyle(TEXTBOX, BORDER_COLOR_PRESSED))); + } + else if (state == STATE_FOCUSED) GuiTooltip(bounds); + //-------------------------------------------------------------------- + + return result; // Mouse button pressed: result = 1 +} + +/* +// Text Box control with multiple lines and word-wrap +// NOTE: This text-box is readonly, no editing supported by default +bool GuiTextBoxMulti(Rectangle bounds, char *text, int textSize, bool editMode) +{ + bool pressed = false; + + GuiSetStyle(TEXTBOX, TEXT_READONLY, 1); + GuiSetStyle(DEFAULT, TEXT_WRAP_MODE, TEXT_WRAP_WORD); // WARNING: If wrap mode enabled, text editing is not supported + GuiSetStyle(DEFAULT, TEXT_ALIGNMENT_VERTICAL, TEXT_ALIGN_TOP); + + // TODO: Implement methods to calculate cursor position properly + pressed = GuiTextBox(bounds, text, textSize, editMode); + + GuiSetStyle(DEFAULT, TEXT_ALIGNMENT_VERTICAL, TEXT_ALIGN_MIDDLE); + GuiSetStyle(DEFAULT, TEXT_WRAP_MODE, TEXT_WRAP_NONE); + GuiSetStyle(TEXTBOX, TEXT_READONLY, 0); + + return pressed; +} +*/ + +// Spinner control, returns selected value +int GuiSpinner(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode) +{ + int result = 1; + GuiState state = guiState; + + int tempValue = *value; + + Rectangle valueBoxBounds = { + bounds.x + GuiGetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH) + GuiGetStyle(VALUEBOX, SPINNER_BUTTON_SPACING), + bounds.y, + bounds.width - 2*(GuiGetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH) + GuiGetStyle(VALUEBOX, SPINNER_BUTTON_SPACING)), bounds.height }; + Rectangle leftButtonBound = { (float)bounds.x, (float)bounds.y, (float)GuiGetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH), (float)bounds.height }; + Rectangle rightButtonBound = { (float)bounds.x + bounds.width - GuiGetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH), (float)bounds.y, + (float)GuiGetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH), (float)bounds.height }; + + Rectangle textBounds = { 0 }; + if (text != NULL) + { + textBounds.width = (float)GuiGetTextWidth(text) + 2; + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = bounds.x + bounds.width + GuiGetStyle(VALUEBOX, TEXT_PADDING); + textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; + if (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_LEFT) textBounds.x = bounds.x - textBounds.width - GuiGetStyle(VALUEBOX, TEXT_PADDING); + } + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked && !guiControlExclusiveMode) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + // Check spinner state + if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (GUI_BUTTON_DOWN) state = STATE_PRESSED; + else state = STATE_FOCUSED; + } + } + +#if defined(RAYGUI_NO_ICONS) + if (GuiButton(leftButtonBound, "<")) tempValue--; + if (GuiButton(rightButtonBound, ">")) tempValue++; +#else + if (GuiButton(leftButtonBound, GuiIconText(ICON_ARROW_LEFT_FILL, NULL))) tempValue--; + if (GuiButton(rightButtonBound, GuiIconText(ICON_ARROW_RIGHT_FILL, NULL))) tempValue++; +#endif + + if (!editMode) + { + if (tempValue < minValue) tempValue = minValue; + if (tempValue > maxValue) tempValue = maxValue; + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + result = GuiValueBox(valueBoxBounds, NULL, &tempValue, minValue, maxValue, editMode); + + // Draw value selector custom buttons + // NOTE: BORDER_WIDTH and TEXT_ALIGNMENT forced values + int tempBorderWidth = GuiGetStyle(BUTTON, BORDER_WIDTH); + int tempTextAlign = GuiGetStyle(BUTTON, TEXT_ALIGNMENT); + GuiSetStyle(BUTTON, BORDER_WIDTH, GuiGetStyle(VALUEBOX, BORDER_WIDTH)); + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, tempTextAlign); + GuiSetStyle(BUTTON, BORDER_WIDTH, tempBorderWidth); + + // Draw text label if provided + GuiDrawText(text, textBounds, (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT)? TEXT_ALIGN_LEFT : TEXT_ALIGN_RIGHT, GetColor(GuiGetStyle(LABEL, TEXT + (state*3)))); + //-------------------------------------------------------------------- + + *value = tempValue; + return result; +} + +// Value Box control, updates input text with numbers +// NOTE: Requires static variables: frameCounter +int GuiValueBox(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode) +{ + #if !defined(RAYGUI_VALUEBOX_MAX_CHARS) + #define RAYGUI_VALUEBOX_MAX_CHARS 32 + #endif + + int result = 0; + GuiState state = guiState; + + char textValue[RAYGUI_VALUEBOX_MAX_CHARS + 1] = { 0 }; + snprintf(textValue, RAYGUI_VALUEBOX_MAX_CHARS + 1, "%i", *value); + + Rectangle textBounds = { 0 }; + if (text != NULL) + { + textBounds.width = (float)GuiGetTextWidth(text) + 2; + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = bounds.x + bounds.width + GuiGetStyle(VALUEBOX, TEXT_PADDING); + textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; + if (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_LEFT) textBounds.x = bounds.x - textBounds.width - GuiGetStyle(VALUEBOX, TEXT_PADDING); + } + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked && !guiControlExclusiveMode) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + bool valueHasChanged = false; + + if (editMode) + { + state = STATE_PRESSED; + + int keyCount = (int)strlen(textValue); + + // Add or remove minus symbol + if (GUI_KEY_PRESSED(KEY_MINUS)) + { + if (textValue[0] == '-') + { + for (int i = 0 ; i < keyCount; i++) textValue[i] = textValue[i + 1]; + + keyCount--; + valueHasChanged = true; + } + else if (keyCount < RAYGUI_VALUEBOX_MAX_CHARS) + { + if (keyCount == 0) + { + textValue[0] = '0'; + textValue[1] = '\0'; + keyCount++; + } + + for (int i = keyCount ; i > -1; i--) textValue[i + 1] = textValue[i]; + + textValue[0] = '-'; + keyCount++; + valueHasChanged = true; + } + } + + // Add new digit to text value + if ((keyCount >= 0) && (keyCount < RAYGUI_VALUEBOX_MAX_CHARS) && (GuiGetTextWidth(textValue) < bounds.width)) + { + int key = GUI_INPUT_KEY; + + // Only allow keys in range [48..57] + if ((key >= 48) && (key <= 57)) + { + textValue[keyCount] = (char)key; + keyCount++; + valueHasChanged = true; + } + } + + // Delete text + if ((keyCount > 0) && GUI_KEY_PRESSED(KEY_BACKSPACE)) + { + keyCount--; + textValue[keyCount] = '\0'; + valueHasChanged = true; + } + + if (valueHasChanged) *value = TextToInteger(textValue); + + // NOTE: Values are not clamped until user input finishes + //if (*value > maxValue) *value = maxValue; + //else if (*value < minValue) *value = minValue; + + if ((GUI_KEY_PRESSED(KEY_ENTER) || GUI_KEY_PRESSED(KEY_KP_ENTER)) || (!CheckCollisionPointRec(mousePoint, bounds) && GUI_BUTTON_PRESSED)) + { + if (*value > maxValue) *value = maxValue; + else if (*value < minValue) *value = minValue; + + result = 1; + } + } + else + { + if (*value > maxValue) *value = maxValue; + else if (*value < minValue) *value = minValue; + + if (CheckCollisionPointRec(mousePoint, bounds)) + { + state = STATE_FOCUSED; + if (GUI_BUTTON_PRESSED) result = 1; + } + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + Color baseColor = BLANK; + if (state == STATE_PRESSED) baseColor = GetColor(GuiGetStyle(VALUEBOX, BASE_COLOR_PRESSED)); + else if (state == STATE_DISABLED) baseColor = GetColor(GuiGetStyle(VALUEBOX, BASE_COLOR_DISABLED)); + + GuiDrawRectangle(bounds, GuiGetStyle(VALUEBOX, BORDER_WIDTH), GetColor(GuiGetStyle(VALUEBOX, BORDER + (state*3))), baseColor); + GuiDrawText(textValue, GetTextBounds(VALUEBOX, bounds), TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(VALUEBOX, TEXT + (state*3)))); + + // Draw cursor rectangle + if (editMode) + { + // NOTE: ValueBox internal text is always centered + Rectangle cursor = { bounds.x + GuiGetTextWidth(textValue)/2 + bounds.width/2 + 1, + bounds.y + GuiGetStyle(TEXTBOX, BORDER_WIDTH) + 2, + 2, bounds.height - GuiGetStyle(TEXTBOX, BORDER_WIDTH)*2 - 4 }; + if (cursor.height > bounds.height) cursor.height = bounds.height - GuiGetStyle(TEXTBOX, BORDER_WIDTH)*2; + GuiDrawRectangle(cursor, 0, BLANK, GetColor(GuiGetStyle(VALUEBOX, BORDER_COLOR_PRESSED))); + } + + // Draw text label if provided + GuiDrawText(text, textBounds, (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT)? TEXT_ALIGN_LEFT : TEXT_ALIGN_RIGHT, GetColor(GuiGetStyle(LABEL, TEXT + (state*3)))); + //-------------------------------------------------------------------- + + return result; +} + +// Floating point Value Box control, updates input val_str with numbers +// NOTE: Requires static variables: frameCounter +int GuiValueBoxFloat(Rectangle bounds, const char *text, char *textValue, float *value, bool editMode) +{ + #if !defined(RAYGUI_VALUEBOX_MAX_CHARS) + #define RAYGUI_VALUEBOX_MAX_CHARS 32 + #endif + + int result = 0; + GuiState state = guiState; + + //char textValue[RAYGUI_VALUEBOX_MAX_CHARS + 1] = "\0"; + //snprintf(textValue, sizeof(textValue), "%2.2f", *value); + + Rectangle textBounds = { 0 }; + if (text != NULL) + { + textBounds.width = (float)GuiGetTextWidth(text) + 2; + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = bounds.x + bounds.width + GuiGetStyle(VALUEBOX, TEXT_PADDING); + textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; + if (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_LEFT) textBounds.x = bounds.x - textBounds.width - GuiGetStyle(VALUEBOX, TEXT_PADDING); + } + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked && !guiControlExclusiveMode) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + bool valueHasChanged = false; + + if (editMode) + { + state = STATE_PRESSED; + + int keyCount = (int)strlen(textValue); + + // Add or remove minus symbol + if (GUI_KEY_PRESSED(KEY_MINUS)) + { + if (textValue[0] == '-') + { + for (int i = 0; i < keyCount; i++) textValue[i] = textValue[i + 1]; + + keyCount--; + valueHasChanged = true; + } + else if (keyCount < (RAYGUI_VALUEBOX_MAX_CHARS - 1)) + { + if (keyCount == 0) + { + textValue[0] = '0'; + textValue[1] = '\0'; + keyCount++; + } + + for (int i = keyCount; i > -1; i--) textValue[i + 1] = textValue[i]; + + textValue[0] = '-'; + keyCount++; + valueHasChanged = true; + } + } + + // Only allow keys in range [48..57] + if (keyCount < RAYGUI_VALUEBOX_MAX_CHARS) + { + if (GuiGetTextWidth(textValue) < bounds.width) + { + int key = GUI_INPUT_KEY; + if (((key >= 48) && (key <= 57)) || + (key == '.') || + ((keyCount == 0) && (key == '+')) || // NOTE: Sign can only be in first position + ((keyCount == 0) && (key == '-'))) + { + textValue[keyCount] = (char)key; + keyCount++; + + valueHasChanged = true; + } + } + } + + // Pressed backspace + if (GUI_KEY_PRESSED(KEY_BACKSPACE)) + { + if (keyCount > 0) + { + keyCount--; + textValue[keyCount] = '\0'; + valueHasChanged = true; + } + } + + if (valueHasChanged) *value = TextToFloat(textValue); + + if ((GUI_KEY_PRESSED(KEY_ENTER) || GUI_KEY_PRESSED(KEY_KP_ENTER)) || (!CheckCollisionPointRec(mousePoint, bounds) && GUI_BUTTON_PRESSED)) result = 1; + } + else + { + if (CheckCollisionPointRec(mousePoint, bounds)) + { + state = STATE_FOCUSED; + if (GUI_BUTTON_PRESSED) result = 1; + } + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + Color baseColor = BLANK; + if (state == STATE_PRESSED) baseColor = GetColor(GuiGetStyle(VALUEBOX, BASE_COLOR_PRESSED)); + else if (state == STATE_DISABLED) baseColor = GetColor(GuiGetStyle(VALUEBOX, BASE_COLOR_DISABLED)); + + GuiDrawRectangle(bounds, GuiGetStyle(VALUEBOX, BORDER_WIDTH), GetColor(GuiGetStyle(VALUEBOX, BORDER + (state*3))), baseColor); + GuiDrawText(textValue, GetTextBounds(VALUEBOX, bounds), TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(VALUEBOX, TEXT + (state*3)))); + + // Draw cursor + if (editMode) + { + // NOTE: ValueBox internal text is always centered + Rectangle cursor = {bounds.x + GuiGetTextWidth(textValue)/2 + bounds.width/2 + 1, + bounds.y + 2*GuiGetStyle(VALUEBOX, BORDER_WIDTH), 4, + bounds.height - 4*GuiGetStyle(VALUEBOX, BORDER_WIDTH)}; + GuiDrawRectangle(cursor, 0, BLANK, GetColor(GuiGetStyle(VALUEBOX, BORDER_COLOR_PRESSED))); + } + + // Draw text label if provided + GuiDrawText(text, textBounds, + (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT)? TEXT_ALIGN_LEFT : TEXT_ALIGN_RIGHT, + GetColor(GuiGetStyle(LABEL, TEXT + (state*3)))); + //-------------------------------------------------------------------- + + return result; +} + +// Slider control with pro parameters +// NOTE: Other GuiSlider*() controls use this one +int GuiSlider(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue) +{ + int result = 0; + GuiState state = guiState; + + float temp = (maxValue - minValue)/2.0f; + if (value == NULL) value = &temp; + float oldValue = *value; + + int sliderWidth = GuiGetStyle(SLIDER, SLIDER_WIDTH); + + Rectangle slider = { bounds.x, bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH) + GuiGetStyle(SLIDER, SLIDER_PADDING), + 0, bounds.height - 2*GuiGetStyle(SLIDER, BORDER_WIDTH) - 2*GuiGetStyle(SLIDER, SLIDER_PADDING) }; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + if (guiControlExclusiveMode) // Allows to keep dragging outside of bounds + { + if (GUI_BUTTON_DOWN) + { + if (CHECK_BOUNDS_ID(bounds, guiControlExclusiveRec)) + { + state = STATE_PRESSED; + // Get equivalent value and slider position from mousePosition.x + *value = (maxValue - minValue)*((mousePoint.x - bounds.x - sliderWidth/2)/(bounds.width - sliderWidth)) + minValue; + } + } + else + { + guiControlExclusiveMode = false; + guiControlExclusiveRec = RAYGUI_CLITERAL(Rectangle){ 0, 0, 0, 0 }; + } + } + else if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (GUI_BUTTON_DOWN) + { + state = STATE_PRESSED; + guiControlExclusiveMode = true; + guiControlExclusiveRec = bounds; // Store bounds as an identifier when dragging starts + + if (!CheckCollisionPointRec(mousePoint, slider)) + { + // Get equivalent value and slider position from mousePosition.x + *value = (maxValue - minValue)*((mousePoint.x - bounds.x - sliderWidth/2)/(bounds.width - sliderWidth)) + minValue; + } + } + else state = STATE_FOCUSED; + } + + if (*value > maxValue) *value = maxValue; + else if (*value < minValue) *value = minValue; + } + + // Control value change check + if (oldValue == *value) result = 0; + else result = 1; + + // Slider bar limits check + float sliderValue = (((*value - minValue)/(maxValue - minValue))*(bounds.width - sliderWidth - 2*GuiGetStyle(SLIDER, BORDER_WIDTH))); + if (sliderWidth > 0) // Slider + { + slider.x += sliderValue; + slider.width = (float)sliderWidth; + if (slider.x <= (bounds.x + GuiGetStyle(SLIDER, BORDER_WIDTH))) slider.x = bounds.x + GuiGetStyle(SLIDER, BORDER_WIDTH); + else if ((slider.x + slider.width) >= (bounds.x + bounds.width)) slider.x = bounds.x + bounds.width - slider.width - GuiGetStyle(SLIDER, BORDER_WIDTH); + } + else if (sliderWidth == 0) // SliderBar + { + slider.x += GuiGetStyle(SLIDER, BORDER_WIDTH); + slider.width = sliderValue; + if (slider.width > bounds.width) slider.width = bounds.width - 2*GuiGetStyle(SLIDER, BORDER_WIDTH); + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + GuiDrawRectangle(bounds, GuiGetStyle(SLIDER, BORDER_WIDTH), GetColor(GuiGetStyle(SLIDER, BORDER + (state*3))), GetColor(GuiGetStyle(SLIDER, (state != STATE_DISABLED)? BASE_COLOR_NORMAL : BASE_COLOR_DISABLED))); + + // Draw slider internal bar (depends on state) + if (state == STATE_NORMAL) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, BASE_COLOR_PRESSED))); + else if (state == STATE_FOCUSED) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, TEXT_COLOR_FOCUSED))); + else if (state == STATE_PRESSED) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, TEXT_COLOR_PRESSED))); + else if (state == STATE_DISABLED) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, TEXT_COLOR_DISABLED))); + + // Draw left/right text if provided + if (textLeft != NULL) + { + Rectangle textBounds = { 0 }; + textBounds.width = (float)GuiGetTextWidth(textLeft); + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = bounds.x - textBounds.width - GuiGetStyle(SLIDER, TEXT_PADDING); + textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; + + GuiDrawText(textLeft, textBounds, TEXT_ALIGN_RIGHT, GetColor(GuiGetStyle(LABEL, TEXT + (state*3)))); + } + + if (textRight != NULL) + { + Rectangle textBounds = { 0 }; + textBounds.width = (float)GuiGetTextWidth(textRight); + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = bounds.x + bounds.width + GuiGetStyle(SLIDER, TEXT_PADDING); + textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; + + GuiDrawText(textRight, textBounds, TEXT_ALIGN_LEFT, GetColor(GuiGetStyle(LABEL, TEXT + (state*3)))); + } + //-------------------------------------------------------------------- + + return result; +} + +// Slider Bar control extended, returns selected value +int GuiSliderBar(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue) +{ + int result = 0; + int preSliderWidth = GuiGetStyle(SLIDER, SLIDER_WIDTH); + GuiSetStyle(SLIDER, SLIDER_WIDTH, 0); + result = GuiSlider(bounds, textLeft, textRight, value, minValue, maxValue); + GuiSetStyle(SLIDER, SLIDER_WIDTH, preSliderWidth); + + return result; +} + +// Progress Bar control extended, shows current progress value +int GuiProgressBar(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue) +{ + int result = 0; + GuiState state = guiState; + + float temp = (maxValue - minValue)/2.0f; + if (value == NULL) value = &temp; + + // Progress bar + Rectangle progress = { bounds.x + GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), + bounds.y + GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) + GuiGetStyle(PROGRESSBAR, PROGRESS_PADDING), 0, + bounds.height - GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) - 2*GuiGetStyle(PROGRESSBAR, PROGRESS_PADDING) -1 }; + + // Update control + //-------------------------------------------------------------------- + if (*value > maxValue) *value = maxValue; + + // WARNING: Working with floats could lead to rounding issues + if ((state != STATE_DISABLED)) progress.width = ((float)*value/(maxValue - minValue))*(bounds.width - 2*GuiGetStyle(PROGRESSBAR, BORDER_WIDTH)); + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + if (state == STATE_DISABLED) + { + GuiDrawRectangle(bounds, GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), GetColor(GuiGetStyle(PROGRESSBAR, BORDER + (state*3))), BLANK); + } + else + { + if (*value > minValue) + { + // Draw progress bar with colored border, more visual + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y, (int)progress.width + (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_FOCUSED))); + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y + 1, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.height - 2 }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_FOCUSED))); + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y + bounds.height - 1, (int)progress.width + (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_FOCUSED))); + } + else GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.height+GuiGetStyle(PROGRESSBAR, BORDER_WIDTH)-1 }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_NORMAL))); + + if (*value >= maxValue) GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + progress.width + (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.y, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.height+GuiGetStyle(PROGRESSBAR, BORDER_WIDTH)-1}, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_FOCUSED))); + else + { + // Draw borders not yet reached by value + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + (int)progress.width + (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.y, bounds.width - (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) - (int)progress.width - 1, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_NORMAL))); + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + (int)progress.width + (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.y + bounds.height - 1, bounds.width - (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) - (int)progress.width - 1, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_NORMAL))); + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + bounds.width - (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.y, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.height+GuiGetStyle(PROGRESSBAR, BORDER_WIDTH)-1 }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_NORMAL))); + } + + // Draw slider internal progress bar (depends on state) + if (GuiGetStyle(PROGRESSBAR, PROGRESS_SIDE) == 0) // Left-->Right + { + GuiDrawRectangle(progress, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BASE_COLOR_PRESSED))); + } + else // Right-->Left + { + progress.x = bounds.x + bounds.width - progress.width - GuiGetStyle(PROGRESSBAR, BORDER_WIDTH); + GuiDrawRectangle(progress, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BASE_COLOR_PRESSED))); + } + } + + // Draw left/right text if provided + if (textLeft != NULL) + { + Rectangle textBounds = { 0 }; + textBounds.width = (float)GuiGetTextWidth(textLeft); + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = bounds.x - textBounds.width - GuiGetStyle(PROGRESSBAR, TEXT_PADDING); + textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; + + GuiDrawText(textLeft, textBounds, TEXT_ALIGN_RIGHT, GetColor(GuiGetStyle(LABEL, TEXT + (state*3)))); + } + + if (textRight != NULL) + { + Rectangle textBounds = { 0 }; + textBounds.width = (float)GuiGetTextWidth(textRight); + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = bounds.x + bounds.width + GuiGetStyle(PROGRESSBAR, TEXT_PADDING); + textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; + + GuiDrawText(textRight, textBounds, TEXT_ALIGN_LEFT, GetColor(GuiGetStyle(LABEL, TEXT + (state*3)))); + } + //-------------------------------------------------------------------- + + return result; +} + +// Status Bar control +int GuiStatusBar(Rectangle bounds, const char *text) +{ + int result = 0; + GuiState state = guiState; + + // Draw control + //-------------------------------------------------------------------- + GuiDrawRectangle(bounds, GuiGetStyle(STATUSBAR, BORDER_WIDTH), GetColor(GuiGetStyle(STATUSBAR, BORDER + (state*3))), GetColor(GuiGetStyle(STATUSBAR, BASE + (state*3)))); + GuiDrawText(text, GetTextBounds(STATUSBAR, bounds), GuiGetStyle(STATUSBAR, TEXT_ALIGNMENT), GetColor(GuiGetStyle(STATUSBAR, TEXT + (state*3)))); + //-------------------------------------------------------------------- + + return result; +} + +// Dummy rectangle control, intended for placeholding +int GuiDummyRec(Rectangle bounds, const char *text) +{ + int result = 0; + GuiState state = guiState; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked && !guiControlExclusiveMode) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + // Check button state + if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (GUI_BUTTON_DOWN) state = STATE_PRESSED; + else state = STATE_FOCUSED; + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + GuiDrawRectangle(bounds, 0, BLANK, GetColor(GuiGetStyle(DEFAULT, (state != STATE_DISABLED)? BASE_COLOR_NORMAL : BASE_COLOR_DISABLED))); + GuiDrawText(text, GetTextBounds(DEFAULT, bounds), TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(BUTTON, (state != STATE_DISABLED)? TEXT_COLOR_NORMAL : TEXT_COLOR_DISABLED))); + //------------------------------------------------------------------ + + return result; +} + +// List View control +int GuiListView(Rectangle bounds, const char *text, int *scrollIndex, int *active) +{ + int result = 0; + int itemCount = 0; + char **items = NULL; + + if (text != NULL) items = GuiTextSplit(text, ';', &itemCount, NULL); + + result = GuiListViewEx(bounds, items, itemCount, scrollIndex, active, NULL); + + return result; +} + +// List View control with extended parameters +int GuiListViewEx(Rectangle bounds, char **text, int count, int *scrollIndex, int *active, int *focus) +{ + int result = 0; + GuiState state = guiState; + + int itemFocused = (focus == NULL)? -1 : *focus; + int itemSelected = (active == NULL)? -1 : *active; + + // Check if scroll bar is needed + bool useScrollBar = false; + if ((GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) + GuiGetStyle(LISTVIEW, LIST_ITEMS_SPACING))*count > bounds.height) useScrollBar = true; + + // Define base item rectangle [0] + Rectangle itemBounds = { 0 }; + itemBounds.x = bounds.x + GuiGetStyle(LISTVIEW, LIST_ITEMS_SPACING); + itemBounds.y = bounds.y + GuiGetStyle(LISTVIEW, LIST_ITEMS_SPACING) + GuiGetStyle(DEFAULT, BORDER_WIDTH); + itemBounds.width = bounds.width - 2*GuiGetStyle(LISTVIEW, LIST_ITEMS_SPACING) - GuiGetStyle(DEFAULT, BORDER_WIDTH); + itemBounds.height = (float)GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT); + if (useScrollBar) itemBounds.width -= GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH); + + // Get items on the list + int visibleItems = (int)bounds.height/(GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) + GuiGetStyle(LISTVIEW, LIST_ITEMS_SPACING)); + if (visibleItems > count) visibleItems = count; + + int startIndex = (scrollIndex == NULL)? 0 : *scrollIndex; + if ((startIndex < 0) || (startIndex > (count - visibleItems))) startIndex = 0; + int endIndex = startIndex + visibleItems; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked && !guiControlExclusiveMode) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + // Check mouse inside list view + if (CheckCollisionPointRec(mousePoint, bounds)) + { + state = STATE_FOCUSED; + + // Check focused and selected item + for (int i = 0; i < visibleItems; i++) + { + if (CheckCollisionPointRec(mousePoint, itemBounds)) + { + itemFocused = startIndex + i; + if (GUI_BUTTON_PRESSED) + { + if (itemSelected == (startIndex + i)) itemSelected = -1; + else itemSelected = startIndex + i; + } + break; + } + + // Update item rectangle y position for next item + itemBounds.y += (GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) + GuiGetStyle(LISTVIEW, LIST_ITEMS_SPACING)); + } + + if (useScrollBar) + { + float scrollDelta = GUI_SCROLL_DELTA; + startIndex -= (int)scrollDelta; + + if (startIndex < 0) startIndex = 0; + else if (startIndex > (count - visibleItems)) startIndex = count - visibleItems; + + endIndex = startIndex + visibleItems; + if (endIndex > count) endIndex = count; + } + } + else itemFocused = -1; + + // Reset item rectangle y to [0] + itemBounds.y = bounds.y + GuiGetStyle(LISTVIEW, LIST_ITEMS_SPACING) + GuiGetStyle(DEFAULT, BORDER_WIDTH); + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + GuiDrawRectangle(bounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER + state*3)), GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); // Draw background + + // Draw visible items + for (int i = 0; ((i < visibleItems) && (text != NULL)); i++) + { + if (GuiGetStyle(LISTVIEW, LIST_ITEMS_BORDER_NORMAL)) GuiDrawRectangle(itemBounds, GuiGetStyle(LISTVIEW, LIST_ITEMS_BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_NORMAL)), BLANK); + + if (state == STATE_DISABLED) + { + if ((startIndex + i) == itemSelected) GuiDrawRectangle(itemBounds, GuiGetStyle(LISTVIEW, LIST_ITEMS_BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_DISABLED)), GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_DISABLED))); + + GuiDrawText(text[startIndex + i], GetTextBounds(LISTVIEW, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_DISABLED))); + } + else + { + if (((startIndex + i) == itemSelected) && (active != NULL)) + { + // Draw item selected + GuiDrawRectangle(itemBounds, GuiGetStyle(LISTVIEW, LIST_ITEMS_BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_PRESSED)), GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_PRESSED))); + GuiDrawText(text[startIndex + i], GetTextBounds(LISTVIEW, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_PRESSED))); + } + else if (((startIndex + i) == itemFocused)) // && (focus != NULL)) // NOTE: Items focused, despite not returned + { + // Draw item focused + GuiDrawRectangle(itemBounds, GuiGetStyle(LISTVIEW, LIST_ITEMS_BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_FOCUSED)), GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_FOCUSED))); + GuiDrawText(text[startIndex + i], GetTextBounds(LISTVIEW, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_FOCUSED))); + } + else + { + // Draw item normal (no rectangle) + GuiDrawText(text[startIndex + i], GetTextBounds(LISTVIEW, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_NORMAL))); + } + } + + // Update item rectangle y position for next item + itemBounds.y += (GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) + GuiGetStyle(LISTVIEW, LIST_ITEMS_SPACING)); + } + + if (useScrollBar) + { + Rectangle scrollBarBounds = { + bounds.x + bounds.width - GuiGetStyle(LISTVIEW, BORDER_WIDTH) - GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH), + bounds.y + GuiGetStyle(LISTVIEW, BORDER_WIDTH), (float)GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH), + bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) + }; + + // Calculate percentage of visible items and apply same percentage to scrollbar + float percentVisible = (float)(endIndex - startIndex)/count; + float sliderSize = bounds.height*percentVisible; + + int prevSliderSize = GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE); // Save default slider size + int prevScrollSpeed = GuiGetStyle(SCROLLBAR, SCROLL_SPEED); // Save default scroll speed + GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE, (int)sliderSize); // Change slider size + GuiSetStyle(SCROLLBAR, SCROLL_SPEED, count - visibleItems); // Change scroll speed + + startIndex = GuiScrollBar(scrollBarBounds, startIndex, 0, count - visibleItems); + + GuiSetStyle(SCROLLBAR, SCROLL_SPEED, prevScrollSpeed); // Reset scroll speed to default + GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE, prevSliderSize); // Reset slider size to default + } + //-------------------------------------------------------------------- + + if (active != NULL) *active = itemSelected; + if (focus != NULL) *focus = itemFocused; + if (scrollIndex != NULL) *scrollIndex = startIndex; + + return result; +} + +// Color Panel control - Color (RGBA) variant +int GuiColorPanel(Rectangle bounds, const char *text, Color *color) +{ + int result = 0; + + Vector3 vcolor = { (float)color->r/255.0f, (float)color->g/255.0f, (float)color->b/255.0f }; + Vector3 hsv = ConvertRGBtoHSV(vcolor); + Vector3 prevHsv = hsv; // workaround to see if GuiColorPanelHSV modifies the hsv + + GuiColorPanelHSV(bounds, text, &hsv); + + // Check if the hsv was changed, only then change the color + // This is required, because the Color->HSV->Color conversion has precision errors + // Thus the assignment from HSV to Color should only be made, if the HSV has a new user-entered value + // Otherwise GuiColorPanel would often modify it's color without user input + // TODO: GuiColorPanelHSV could return 1 if the slider was dragged, to simplify this check + if (hsv.x != prevHsv.x || hsv.y != prevHsv.y || hsv.z != prevHsv.z) + { + Vector3 rgb = ConvertHSVtoRGB(hsv); + + // NOTE: Vector3ToColor() only available on raylib 1.8.1 + *color = RAYGUI_CLITERAL(Color){ (unsigned char)(255.0f*rgb.x), + (unsigned char)(255.0f*rgb.y), + (unsigned char)(255.0f*rgb.z), + color->a }; + } + return result; +} + +// Color Bar Alpha control +// NOTE: Returns alpha value normalized [0..1] +int GuiColorBarAlpha(Rectangle bounds, const char *text, float *alpha) +{ + #if !defined(RAYGUI_COLORBARALPHA_CHECKED_SIZE) + #define RAYGUI_COLORBARALPHA_CHECKED_SIZE 10 + #endif + + int result = 0; + GuiState state = guiState; + Rectangle selector = { (float)bounds.x + (*alpha)*bounds.width - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT)/2, + (float)bounds.y - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW), + (float)GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT), + (float)bounds.height + GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)*2 }; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + if (guiControlExclusiveMode) // Allows to keep dragging outside of bounds + { + if (GUI_BUTTON_DOWN) + { + if (CHECK_BOUNDS_ID(bounds, guiControlExclusiveRec)) + { + state = STATE_PRESSED; + + *alpha = (mousePoint.x - bounds.x)/bounds.width; + if (*alpha <= 0.0f) *alpha = 0.0f; + if (*alpha >= 1.0f) *alpha = 1.0f; + } + } + else + { + guiControlExclusiveMode = false; + guiControlExclusiveRec = RAYGUI_CLITERAL(Rectangle){ 0, 0, 0, 0 }; + } + } + else if (CheckCollisionPointRec(mousePoint, bounds) || CheckCollisionPointRec(mousePoint, selector)) + { + if (GUI_BUTTON_DOWN) + { + state = STATE_PRESSED; + guiControlExclusiveMode = true; + guiControlExclusiveRec = bounds; // Store bounds as an identifier when dragging starts + + *alpha = (mousePoint.x - bounds.x)/bounds.width; + if (*alpha <= 0.0f) *alpha = 0.0f; + if (*alpha >= 1.0f) *alpha = 1.0f; + //selector.x = bounds.x + (int)(((alpha - 0)/(100 - 0))*(bounds.width - 2*GuiGetStyle(SLIDER, BORDER_WIDTH))) - selector.width/2; + } + else state = STATE_FOCUSED; + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + // Draw alpha bar: checked background + if (state != STATE_DISABLED) + { + int checksX = (int)bounds.width/RAYGUI_COLORBARALPHA_CHECKED_SIZE; + int checksY = (int)bounds.height/RAYGUI_COLORBARALPHA_CHECKED_SIZE; + + for (int x = 0; x < checksX; x++) + { + for (int y = 0; y < checksY; y++) + { + Rectangle check = { bounds.x + x*RAYGUI_COLORBARALPHA_CHECKED_SIZE, bounds.y + y*RAYGUI_COLORBARALPHA_CHECKED_SIZE, RAYGUI_COLORBARALPHA_CHECKED_SIZE, RAYGUI_COLORBARALPHA_CHECKED_SIZE }; + GuiDrawRectangle(check, 0, BLANK, ((x + y)%2)? Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED)), 0.4f) : Fade(GetColor(GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED)), 0.4f)); + } + } + + DrawRectangleGradientEx(bounds, RAYGUI_CLITERAL(Color){ 255, 255, 255, 0 }, RAYGUI_CLITERAL(Color){ 255, 255, 255, 0 }, Fade(RAYGUI_CLITERAL(Color){ 0, 0, 0, 255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 0, 0, 0, 255 }, guiAlpha)); + } + else DrawRectangleGradientEx(bounds, Fade(GetColor(GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED)), 0.1f), Fade(GetColor(GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED)), 0.1f), Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED)), guiAlpha), Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED)), guiAlpha)); + + GuiDrawRectangle(bounds, GuiGetStyle(COLORPICKER, BORDER_WIDTH), GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), BLANK); + + // Draw alpha bar: selector + GuiDrawRectangle(selector, 0, BLANK, GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3))); + //-------------------------------------------------------------------- + + return result; +} + +// Color Bar Hue control +// Returns hue value normalized [0..1] +// NOTE: Other similar bars (for reference): +// Color GuiColorBarSat() [WHITE->color] +// Color GuiColorBarValue() [BLACK->color], HSV/HSL +// float GuiColorBarLuminance() [BLACK->WHITE] +int GuiColorBarHue(Rectangle bounds, const char *text, float *hue) +{ + int result = 0; + GuiState state = guiState; + Rectangle selector = { (float)bounds.x - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW), (float)bounds.y + (*hue)/360.0f*bounds.height - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT)/2, (float)bounds.width + GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)*2, (float)GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT) }; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + if (guiControlExclusiveMode) // Allows to keep dragging outside of bounds + { + if (GUI_BUTTON_DOWN) + { + if (CHECK_BOUNDS_ID(bounds, guiControlExclusiveRec)) + { + state = STATE_PRESSED; + + *hue = (mousePoint.y - bounds.y)*360/bounds.height; + if (*hue <= 0.0f) *hue = 0.0f; + if (*hue >= 359.0f) *hue = 359.0f; + } + } + else + { + guiControlExclusiveMode = false; + guiControlExclusiveRec = RAYGUI_CLITERAL(Rectangle){ 0, 0, 0, 0 }; + } + } + else if (CheckCollisionPointRec(mousePoint, bounds) || CheckCollisionPointRec(mousePoint, selector)) + { + if (GUI_BUTTON_DOWN) + { + state = STATE_PRESSED; + guiControlExclusiveMode = true; + guiControlExclusiveRec = bounds; // Store bounds as an identifier when dragging starts + + *hue = (mousePoint.y - bounds.y)*360/bounds.height; + if (*hue <= 0.0f) *hue = 0.0f; + if (*hue >= 359.0f) *hue = 359.0f; + + } + else state = STATE_FOCUSED; + + /*if (GUI_KEY_DOWN(KEY_UP)) + { + hue -= 2.0f; + if (hue <= 0.0f) hue = 0.0f; + } + else if (GUI_KEY_DOWN(KEY_DOWN)) + { + hue += 2.0f; + if (hue >= 360.0f) hue = 360.0f; + }*/ + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + if (state != STATE_DISABLED) + { + // Draw hue bar:color bars + // TODO: Use directly DrawRectangleGradientEx(bounds, color1, color2, color2, color1); + DrawRectangleGradientV((int)bounds.x, (int)(bounds.y), (int)bounds.width, (int)ceilf(bounds.height/6), Fade(RAYGUI_CLITERAL(Color){ 255, 0, 0, 255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 255, 255, 0, 255 }, guiAlpha)); + DrawRectangleGradientV((int)bounds.x, (int)(bounds.y + bounds.height/6), (int)bounds.width, (int)ceilf(bounds.height/6), Fade(RAYGUI_CLITERAL(Color){ 255, 255, 0, 255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 0, 255, 0, 255 }, guiAlpha)); + DrawRectangleGradientV((int)bounds.x, (int)(bounds.y + 2*(bounds.height/6)), (int)bounds.width, (int)ceilf(bounds.height/6), Fade(RAYGUI_CLITERAL(Color){ 0, 255, 0, 255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 0, 255, 255, 255 }, guiAlpha)); + DrawRectangleGradientV((int)bounds.x, (int)(bounds.y + 3*(bounds.height/6)), (int)bounds.width, (int)ceilf(bounds.height/6), Fade(RAYGUI_CLITERAL(Color){ 0, 255, 255, 255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 0, 0, 255, 255 }, guiAlpha)); + DrawRectangleGradientV((int)bounds.x, (int)(bounds.y + 4*(bounds.height/6)), (int)bounds.width, (int)ceilf(bounds.height/6), Fade(RAYGUI_CLITERAL(Color){ 0, 0, 255, 255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 255, 0, 255, 255 }, guiAlpha)); + DrawRectangleGradientV((int)bounds.x, (int)(bounds.y + 5*(bounds.height/6)), (int)bounds.width, (int)(bounds.height/6), Fade(RAYGUI_CLITERAL(Color){ 255, 0, 255, 255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 255, 0, 0, 255 }, guiAlpha)); + } + else DrawRectangleGradientV((int)bounds.x, (int)bounds.y, (int)bounds.width, (int)bounds.height, Fade(Fade(GetColor(GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED)), 0.1f), guiAlpha), Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED)), guiAlpha)); + + GuiDrawRectangle(bounds, GuiGetStyle(COLORPICKER, BORDER_WIDTH), GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), BLANK); + + // Draw hue bar: selector + GuiDrawRectangle(selector, 0, BLANK, GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3))); + //-------------------------------------------------------------------- + + return result; +} + +// Color Picker control +// NOTE: It's divided in multiple controls: +// Color GuiColorPanel(Rectangle bounds, Color color) +// float GuiColorBarAlpha(Rectangle bounds, float alpha) +// float GuiColorBarHue(Rectangle bounds, float value) +// NOTE: bounds define GuiColorPanel() size +// NOTE: this picker converts RGB to HSV, which can cause the Hue control to jump. If you have this problem, consider using the HSV variant instead +int GuiColorPicker(Rectangle bounds, const char *text, Color *color) +{ + int result = 0; + + Color temp = { 200, 0, 0, 255 }; + if (color == NULL) color = &temp; + + GuiColorPanel(bounds, NULL, color); + + Rectangle boundsHue = { (float)bounds.x + bounds.width + GuiGetStyle(COLORPICKER, HUEBAR_PADDING), (float)bounds.y, (float)GuiGetStyle(COLORPICKER, HUEBAR_WIDTH), (float)bounds.height }; + //Rectangle boundsAlpha = { bounds.x, bounds.y + bounds.height + GuiGetStyle(COLORPICKER, BARS_PADDING), bounds.width, GuiGetStyle(COLORPICKER, BARS_THICK) }; + + // NOTE: this conversion can cause low hue-resolution, if the r, g and b value are very similar, which causes the hue bar to shift around when only the GuiColorPanel is used + Vector3 hsv = ConvertRGBtoHSV(RAYGUI_CLITERAL(Vector3){ (*color).r/255.0f, (*color).g/255.0f, (*color).b/255.0f }); + + GuiColorBarHue(boundsHue, NULL, &hsv.x); + + //color.a = (unsigned char)(GuiColorBarAlpha(boundsAlpha, (float)color.a/255.0f)*255.0f); + Vector3 rgb = ConvertHSVtoRGB(hsv); + + *color = RAYGUI_CLITERAL(Color){ (unsigned char)roundf(rgb.x*255.0f), (unsigned char)roundf(rgb.y*255.0f), (unsigned char)roundf(rgb.z*255.0f), (*color).a }; + + return result; +} + +// Color Picker control that avoids conversion to RGB and back to HSV on each call, thus avoiding jittering +// The user can call ConvertHSVtoRGB() to convert *colorHsv value to RGB +// NOTE: It's divided in multiple controls: +// int GuiColorPanelHSV(Rectangle bounds, const char *text, Vector3 *colorHsv) +// int GuiColorBarAlpha(Rectangle bounds, const char *text, float *alpha) +// float GuiColorBarHue(Rectangle bounds, float value) +// NOTE: bounds define GuiColorPanelHSV() size +int GuiColorPickerHSV(Rectangle bounds, const char *text, Vector3 *colorHsv) +{ + int result = 0; + + Vector3 tempHsv = { 0 }; + + if (colorHsv == NULL) + { + const Vector3 tempColor = { 200.0f/255.0f, 0.0f, 0.0f }; + tempHsv = ConvertRGBtoHSV(tempColor); + colorHsv = &tempHsv; + } + + GuiColorPanelHSV(bounds, NULL, colorHsv); + + const Rectangle boundsHue = { (float)bounds.x + bounds.width + GuiGetStyle(COLORPICKER, HUEBAR_PADDING), (float)bounds.y, (float)GuiGetStyle(COLORPICKER, HUEBAR_WIDTH), (float)bounds.height }; + + GuiColorBarHue(boundsHue, NULL, &colorHsv->x); + + return result; +} + +// Color Panel control - HSV variant +int GuiColorPanelHSV(Rectangle bounds, const char *text, Vector3 *colorHsv) +{ + int result = 0; + GuiState state = guiState; + Vector2 pickerSelector = { 0 }; + + const Color colWhite = { 255, 255, 255, 255 }; + const Color colBlack = { 0, 0, 0, 255 }; + + pickerSelector.x = bounds.x + (float)colorHsv->y*bounds.width; // HSV: Saturation + pickerSelector.y = bounds.y + (1.0f - (float)colorHsv->z)*bounds.height; // HSV: Value + + Vector3 maxHue = { colorHsv->x, 1.0f, 1.0f }; + Vector3 rgbHue = ConvertHSVtoRGB(maxHue); + Color maxHueCol = { (unsigned char)(255.0f*rgbHue.x), + (unsigned char)(255.0f*rgbHue.y), + (unsigned char)(255.0f*rgbHue.z), 255 }; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + if (guiControlExclusiveMode) // Allows to keep dragging outside of bounds + { + if (GUI_BUTTON_DOWN) + { + if (CHECK_BOUNDS_ID(bounds, guiControlExclusiveRec)) + { + pickerSelector = mousePoint; + + if (pickerSelector.x < bounds.x) pickerSelector.x = bounds.x; + if (pickerSelector.x > bounds.x + bounds.width) pickerSelector.x = bounds.x + bounds.width; + if (pickerSelector.y < bounds.y) pickerSelector.y = bounds.y; + if (pickerSelector.y > bounds.y + bounds.height) pickerSelector.y = bounds.y + bounds.height; + + // Calculate color from picker + Vector2 colorPick = { pickerSelector.x - bounds.x, pickerSelector.y - bounds.y }; + + colorPick.x /= (float)bounds.width; // Get normalized value on x + colorPick.y /= (float)bounds.height; // Get normalized value on y + + colorHsv->y = colorPick.x; + colorHsv->z = 1.0f - colorPick.y; + + } + } + else + { + guiControlExclusiveMode = false; + guiControlExclusiveRec = RAYGUI_CLITERAL(Rectangle){ 0, 0, 0, 0 }; + } + } + else if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (GUI_BUTTON_DOWN) + { + state = STATE_PRESSED; + guiControlExclusiveMode = true; + guiControlExclusiveRec = bounds; + pickerSelector = mousePoint; + + // Calculate color from picker + Vector2 colorPick = { pickerSelector.x - bounds.x, pickerSelector.y - bounds.y }; + + colorPick.x /= (float)bounds.width; // Get normalized value on x + colorPick.y /= (float)bounds.height; // Get normalized value on y + + colorHsv->y = colorPick.x; + colorHsv->z = 1.0f - colorPick.y; + } + else state = STATE_FOCUSED; + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + if (state != STATE_DISABLED) + { + DrawRectangleGradientEx(bounds, Fade(colWhite, guiAlpha), Fade(colWhite, guiAlpha), Fade(maxHueCol, guiAlpha), Fade(maxHueCol, guiAlpha)); + DrawRectangleGradientEx(bounds, Fade(colBlack, 0), Fade(colBlack, guiAlpha), Fade(colBlack, guiAlpha), Fade(colBlack, 0)); + + // Draw color picker: selector + Rectangle selector = { pickerSelector.x - GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE)/2, pickerSelector.y - GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE)/2, (float)GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE), (float)GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE) }; + GuiDrawRectangle(selector, 0, BLANK, colWhite); + } + else + { + DrawRectangleGradientEx(bounds, Fade(Fade(GetColor(GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED)), 0.1f), guiAlpha), Fade(Fade(colBlack, 0.6f), guiAlpha), Fade(Fade(colBlack, 0.6f), guiAlpha), Fade(Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED)), 0.6f), guiAlpha)); + } + + GuiDrawRectangle(bounds, GuiGetStyle(COLORPICKER, BORDER_WIDTH), GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), BLANK); + //-------------------------------------------------------------------- + + return result; +} + +// Message Box control +int GuiMessageBox(Rectangle bounds, const char *title, const char *message, const char *buttons) +{ + #if !defined(RAYGUI_MESSAGEBOX_BUTTON_HEIGHT) + #define RAYGUI_MESSAGEBOX_BUTTON_HEIGHT 24 + #endif + #if !defined(RAYGUI_MESSAGEBOX_BUTTON_PADDING) + #define RAYGUI_MESSAGEBOX_BUTTON_PADDING 12 + #endif + + int result = -1; // Returns clicked button from buttons list, 0 refers to closed window button + + int buttonCount = 0; + char **buttonsText = GuiTextSplit(buttons, ';', &buttonCount, NULL); + Rectangle buttonBounds = { 0 }; + buttonBounds.x = bounds.x + RAYGUI_MESSAGEBOX_BUTTON_PADDING; + buttonBounds.y = bounds.y + bounds.height - RAYGUI_MESSAGEBOX_BUTTON_HEIGHT - RAYGUI_MESSAGEBOX_BUTTON_PADDING; + buttonBounds.width = (bounds.width - RAYGUI_MESSAGEBOX_BUTTON_PADDING*(buttonCount + 1))/buttonCount; + buttonBounds.height = RAYGUI_MESSAGEBOX_BUTTON_HEIGHT; + + //int textWidth = GuiGetTextWidth(message) + 2; + + Rectangle textBounds = { 0 }; + textBounds.x = bounds.x + RAYGUI_MESSAGEBOX_BUTTON_PADDING; + textBounds.y = bounds.y + RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT + RAYGUI_MESSAGEBOX_BUTTON_PADDING; + textBounds.width = bounds.width - RAYGUI_MESSAGEBOX_BUTTON_PADDING*2; + textBounds.height = bounds.height - RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT - 3*RAYGUI_MESSAGEBOX_BUTTON_PADDING - RAYGUI_MESSAGEBOX_BUTTON_HEIGHT; + + // Draw control + //-------------------------------------------------------------------- + if (GuiWindowBox(bounds, title)) result = 0; + + int prevTextAlignment = GuiGetStyle(LABEL, TEXT_ALIGNMENT); + GuiSetStyle(LABEL, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + GuiLabel(textBounds, message); + GuiSetStyle(LABEL, TEXT_ALIGNMENT, prevTextAlignment); + + prevTextAlignment = GuiGetStyle(BUTTON, TEXT_ALIGNMENT); + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + + for (int i = 0; i < buttonCount; i++) + { + if (GuiButton(buttonBounds, buttonsText[i])) result = i + 1; + buttonBounds.x += (buttonBounds.width + RAYGUI_MESSAGEBOX_BUTTON_PADDING); + } + + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, prevTextAlignment); + //-------------------------------------------------------------------- + + return result; +} + +// Text Input Box control, ask for text +int GuiTextInputBox(Rectangle bounds, const char *title, const char *message, const char *buttons, char *text, int textMaxSize, bool *secretViewActive) +{ + #if !defined(RAYGUI_TEXTINPUTBOX_BUTTON_HEIGHT) + #define RAYGUI_TEXTINPUTBOX_BUTTON_HEIGHT 24 + #endif + #if !defined(RAYGUI_TEXTINPUTBOX_BUTTON_PADDING) + #define RAYGUI_TEXTINPUTBOX_BUTTON_PADDING 12 + #endif + #if !defined(RAYGUI_TEXTINPUTBOX_HEIGHT) + #define RAYGUI_TEXTINPUTBOX_HEIGHT 26 + #endif + + // Used to enable text edit mode + // WARNING: No more than one GuiTextInputBox() should be open at the same time + static bool textEditMode = false; + + int result = -1; + + int buttonCount = 0; + char **buttonsText = GuiTextSplit(buttons, ';', &buttonCount, NULL); + Rectangle buttonBounds = { 0 }; + buttonBounds.x = bounds.x + RAYGUI_TEXTINPUTBOX_BUTTON_PADDING; + buttonBounds.y = bounds.y + bounds.height - RAYGUI_TEXTINPUTBOX_BUTTON_HEIGHT - RAYGUI_TEXTINPUTBOX_BUTTON_PADDING; + buttonBounds.width = (bounds.width - RAYGUI_TEXTINPUTBOX_BUTTON_PADDING*(buttonCount + 1))/buttonCount; + buttonBounds.height = RAYGUI_TEXTINPUTBOX_BUTTON_HEIGHT; + + int messageInputHeight = (int)bounds.height - RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT - GuiGetStyle(STATUSBAR, BORDER_WIDTH) - RAYGUI_TEXTINPUTBOX_BUTTON_HEIGHT - 2*RAYGUI_TEXTINPUTBOX_BUTTON_PADDING; + + Rectangle textBounds = { 0 }; + if (message != NULL) + { + int textSize = GuiGetTextWidth(message) + 2; + + textBounds.x = bounds.x + bounds.width/2 - textSize/2; + textBounds.y = bounds.y + RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT + messageInputHeight/4 - (float)GuiGetStyle(DEFAULT, TEXT_SIZE)/2; + textBounds.width = (float)textSize; + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + } + + Rectangle textBoxBounds = { 0 }; + textBoxBounds.x = bounds.x + RAYGUI_TEXTINPUTBOX_BUTTON_PADDING; + textBoxBounds.y = bounds.y + RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT - RAYGUI_TEXTINPUTBOX_HEIGHT/2; + if (message == NULL) textBoxBounds.y = bounds.y + 24 + RAYGUI_TEXTINPUTBOX_BUTTON_PADDING; + else textBoxBounds.y += (messageInputHeight/2 + messageInputHeight/4); + textBoxBounds.width = bounds.width - RAYGUI_TEXTINPUTBOX_BUTTON_PADDING*2; + textBoxBounds.height = RAYGUI_TEXTINPUTBOX_HEIGHT; + + // Draw control + //-------------------------------------------------------------------- + if (GuiWindowBox(bounds, title)) result = 0; + + // Draw message if available + if (message != NULL) + { + int prevTextAlignment = GuiGetStyle(LABEL, TEXT_ALIGNMENT); + GuiSetStyle(LABEL, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + GuiLabel(textBounds, message); + GuiSetStyle(LABEL, TEXT_ALIGNMENT, prevTextAlignment); + } + + int prevTextBoxAlignment = GuiGetStyle(TEXTBOX, TEXT_ALIGNMENT); + GuiSetStyle(TEXTBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); + + if (secretViewActive != NULL) + { + static char stars[] = "****************"; + if (GuiTextBox(RAYGUI_CLITERAL(Rectangle){ textBoxBounds.x, textBoxBounds.y, textBoxBounds.width - 4 - RAYGUI_TEXTINPUTBOX_HEIGHT, textBoxBounds.height }, + ((*secretViewActive == 1) || textEditMode)? text : stars, textMaxSize, textEditMode)) textEditMode = !textEditMode; + + GuiToggle(RAYGUI_CLITERAL(Rectangle){ textBoxBounds.x + textBoxBounds.width - RAYGUI_TEXTINPUTBOX_HEIGHT, textBoxBounds.y, RAYGUI_TEXTINPUTBOX_HEIGHT, RAYGUI_TEXTINPUTBOX_HEIGHT }, (*secretViewActive == 1)? "#44#" : "#45#", secretViewActive); + } + else + { + if (GuiTextBox(textBoxBounds, text, textMaxSize, textEditMode)) textEditMode = !textEditMode; + } + + GuiSetStyle(TEXTBOX, TEXT_ALIGNMENT, prevTextBoxAlignment); + + int prevBtnTextAlignment = GuiGetStyle(BUTTON, TEXT_ALIGNMENT); + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + + for (int i = 0; i < buttonCount; i++) + { + if (GuiButton(buttonBounds, buttonsText[i])) result = i + 1; + buttonBounds.x += (buttonBounds.width + RAYGUI_MESSAGEBOX_BUTTON_PADDING); + } + + if (result >= 0) textEditMode = false; + + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, prevBtnTextAlignment); + //-------------------------------------------------------------------- + + return result; // Result is the pressed button index +} + +// Grid control +// NOTE: Returns grid mouse-hover selected cell +// About drawing lines at subpixel spacing, simple put, not easy solution: +// REF: https://stackoverflow.com/questions/4435450/2d-opengl-drawing-lines-that-dont-exactly-fit-pixel-raster +int GuiGrid(Rectangle bounds, const char *text, float spacing, int subdivs, Vector2 *mouseCell) +{ + // Grid lines alpha amount + #if !defined(RAYGUI_GRID_ALPHA) + #define RAYGUI_GRID_ALPHA 0.15f + #endif + + int result = 0; + GuiState state = guiState; + + Vector2 mousePoint = GUI_POINTER_POSITION; + Vector2 currentMouseCell = { -1, -1 }; + + float spaceWidth = spacing/(float)subdivs; + int linesV = (int)(bounds.width/spaceWidth) + 1; + int linesH = (int)(bounds.height/spaceWidth) + 1; + + int color = GuiGetStyle(DEFAULT, LINE_COLOR); + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked && !guiControlExclusiveMode) + { + if (CheckCollisionPointRec(mousePoint, bounds)) + { + // NOTE: Cell values must be the upper left of the cell the mouse is in + currentMouseCell.x = floorf((mousePoint.x - bounds.x)/spacing); + currentMouseCell.y = floorf((mousePoint.y - bounds.y)/spacing); + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + if (state == STATE_DISABLED) color = GuiGetStyle(DEFAULT, BORDER_COLOR_DISABLED); + + if (subdivs > 0) + { + // Draw vertical grid lines + for (int i = 0; i < linesV; i++) + { + Rectangle lineV = { bounds.x + spacing*i/subdivs, bounds.y, 1, bounds.height + 1 }; + GuiDrawRectangle(lineV, 0, BLANK, ((i%subdivs) == 0)? GuiFade(GetColor(color), RAYGUI_GRID_ALPHA*4) : GuiFade(GetColor(color), RAYGUI_GRID_ALPHA)); + } + + // Draw horizontal grid lines + for (int i = 0; i < linesH; i++) + { + Rectangle lineH = { bounds.x, bounds.y + spacing*i/subdivs, bounds.width + 1, 1 }; + GuiDrawRectangle(lineH, 0, BLANK, ((i%subdivs) == 0)? GuiFade(GetColor(color), RAYGUI_GRID_ALPHA*4) : GuiFade(GetColor(color), RAYGUI_GRID_ALPHA)); + } + } + + if (mouseCell != NULL) *mouseCell = currentMouseCell; + return result; +} + +//---------------------------------------------------------------------------------- +// Tooltip management functions +// NOTE: Tooltips requires some global variables: tooltipPtr +//---------------------------------------------------------------------------------- +// Enable gui tooltips (global state) +void GuiEnableTooltip(void) { guiTooltip = true; } + +// Disable gui tooltips (global state) +void GuiDisableTooltip(void) { guiTooltip = false; } + +// Set tooltip string +void GuiSetTooltip(const char *tooltip) { guiTooltipPtr = tooltip; } + +//---------------------------------------------------------------------------------- +// Styles loading functions +//---------------------------------------------------------------------------------- + +// Load raygui style file (.rgs) +// NOTE: By default a binary file is expected, that file could contain a custom font, +// in that case, custom font image atlas is GRAY+ALPHA and pixel data can be compressed (DEFLATE) +void GuiLoadStyle(const char *fileName) +{ + #define MAX_LINE_BUFFER_SIZE 256 + + bool tryBinary = false; + if (!guiStyleLoaded) GuiLoadStyleDefault(); + + // Try reading the files as text file first + FILE *rgsFile = fopen(fileName, "rt"); + + if (rgsFile != NULL) + { + char buffer[MAX_LINE_BUFFER_SIZE] = { 0 }; + fgets(buffer, MAX_LINE_BUFFER_SIZE, rgsFile); + + if (buffer[0] == '#') + { + int controlId = 0; + int propertyId = 0; + unsigned int propertyValue = 0; + + while (!feof(rgsFile)) + { + switch (buffer[0]) + { + case 'p': + { + // Style property: p + + sscanf(buffer, "p %d %d 0x%x", &controlId, &propertyId, &propertyValue); + GuiSetStyle(controlId, propertyId, (int)propertyValue); + + } break; + case 'f': + { + // Style font: f + + int fontSize = 0; + char charmapFileName[256] = { 0 }; + char fontFileName[256] = { 0 }; + sscanf(buffer, "f %d %s %[^\r\n]s", &fontSize, charmapFileName, fontFileName); + + Font font = { 0 }; + int *codepoints = NULL; + int codepointCount = 0; + + if (charmapFileName[0] != '0') + { + // Load text data from file + // NOTE: Expected an UTF-8 array of codepoints, no separation + char *textData = LoadFileText(TextFormat("%s/%s", GetDirectoryPath(fileName), charmapFileName)); + codepoints = LoadCodepoints(textData, &codepointCount); + UnloadFileText(textData); + } + + if (fontFileName[0] != '\0') + { + // In case a font is already loaded and it is not default internal font, unload it + if (font.texture.id != GetFontDefault().texture.id) UnloadTexture(font.texture); + + if (codepointCount > 0) font = LoadFontEx(TextFormat("%s/%s", GetDirectoryPath(fileName), fontFileName), fontSize, codepoints, codepointCount); + else font = LoadFontEx(TextFormat("%s/%s", GetDirectoryPath(fileName), fontFileName), fontSize, NULL, 0); // Default to 95 standard codepoints + } + + // If font texture not properly loaded, revert to default font and size/spacing + if (font.texture.id == 0) + { + font = GetFontDefault(); + GuiSetStyle(DEFAULT, TEXT_SIZE, 10); + GuiSetStyle(DEFAULT, TEXT_SPACING, 1); + } + + UnloadCodepoints(codepoints); + + if ((font.texture.id > 0) && (font.glyphCount > 0)) GuiSetFont(font); + + } break; + default: break; + } + + fgets(buffer, MAX_LINE_BUFFER_SIZE, rgsFile); + } + } + else tryBinary = true; + + fclose(rgsFile); + } + + if (tryBinary) + { + rgsFile = fopen(fileName, "rb"); + + if (rgsFile != NULL) + { + fseek(rgsFile, 0, SEEK_END); + int fileDataSize = ftell(rgsFile); + fseek(rgsFile, 0, SEEK_SET); + + if (fileDataSize > 0) + { + unsigned char *fileData = (unsigned char *)RAYGUI_CALLOC(fileDataSize, sizeof(unsigned char)); + if (fileData != NULL) + { + fread(fileData, sizeof(unsigned char), fileDataSize, rgsFile); + + GuiLoadStyleFromMemory(fileData, fileDataSize); + + RAYGUI_FREE(fileData); + } + } + + fclose(rgsFile); + } + } +} + +// Load style default over global style +void GuiLoadStyleDefault(void) +{ + // Setting this flag first to avoid cyclic function calls + // when calling GuiSetStyle() and GuiGetStyle() + guiStyleLoaded = true; + + // Initialize default LIGHT style property values + // WARNING: Default value are applied to all controls on set but + // they can be overwritten later on for every custom control + GuiSetStyle(DEFAULT, BORDER_COLOR_NORMAL, 0x838383ff); + GuiSetStyle(DEFAULT, BASE_COLOR_NORMAL, 0xc9c9c9ff); + GuiSetStyle(DEFAULT, TEXT_COLOR_NORMAL, 0x686868ff); + GuiSetStyle(DEFAULT, BORDER_COLOR_FOCUSED, 0x5bb2d9ff); + GuiSetStyle(DEFAULT, BASE_COLOR_FOCUSED, 0xc9effeff); + GuiSetStyle(DEFAULT, TEXT_COLOR_FOCUSED, 0x6c9bbcff); + GuiSetStyle(DEFAULT, BORDER_COLOR_PRESSED, 0x0492c7ff); + GuiSetStyle(DEFAULT, BASE_COLOR_PRESSED, 0x97e8ffff); + GuiSetStyle(DEFAULT, TEXT_COLOR_PRESSED, 0x368bafff); + GuiSetStyle(DEFAULT, BORDER_COLOR_DISABLED, 0xb5c1c2ff); + GuiSetStyle(DEFAULT, BASE_COLOR_DISABLED, 0xe6e9e9ff); + GuiSetStyle(DEFAULT, TEXT_COLOR_DISABLED, 0xaeb7b8ff); + GuiSetStyle(DEFAULT, BORDER_WIDTH, 1); + GuiSetStyle(DEFAULT, TEXT_PADDING, 0); + GuiSetStyle(DEFAULT, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + + // Initialize default extended property values + // NOTE: By default, extended property values are initialized to 0 + GuiSetStyle(DEFAULT, TEXT_SIZE, 10); // DEFAULT, shared by all controls + GuiSetStyle(DEFAULT, TEXT_SPACING, 1); // DEFAULT, shared by all controls + GuiSetStyle(DEFAULT, LINE_COLOR, 0x90abb5ff); // DEFAULT specific property + GuiSetStyle(DEFAULT, BACKGROUND_COLOR, 0xf5f5f5ff); // DEFAULT specific property + GuiSetStyle(DEFAULT, TEXT_LINE_SPACING, 5); // DEFAULT, pixels between lines, from bottom of first line to top of second + GuiSetStyle(DEFAULT, TEXT_ALIGNMENT_VERTICAL, TEXT_ALIGN_MIDDLE); // DEFAULT, text aligned vertically to middle of text-bounds + + // Initialize control-specific property values + // NOTE: Those properties are in default list but require specific values by control type + GuiSetStyle(LABEL, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); + GuiSetStyle(BUTTON, BORDER_WIDTH, 2); + GuiSetStyle(SLIDER, TEXT_PADDING, 4); + GuiSetStyle(PROGRESSBAR, TEXT_PADDING, 4); + GuiSetStyle(CHECKBOX, TEXT_PADDING, 4); + GuiSetStyle(CHECKBOX, TEXT_ALIGNMENT, TEXT_ALIGN_RIGHT); + GuiSetStyle(DROPDOWNBOX, TEXT_PADDING, 0); + GuiSetStyle(DROPDOWNBOX, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + GuiSetStyle(TEXTBOX, TEXT_PADDING, 4); + GuiSetStyle(TEXTBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); + GuiSetStyle(VALUEBOX, TEXT_PADDING, 0); + GuiSetStyle(VALUEBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); + GuiSetStyle(STATUSBAR, TEXT_PADDING, 8); + GuiSetStyle(STATUSBAR, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); + + // Initialize extended property values + // NOTE: By default, extended property values are initialized to 0 + GuiSetStyle(TOGGLE, GROUP_PADDING, 2); + GuiSetStyle(SLIDER, SLIDER_WIDTH, 16); + GuiSetStyle(SLIDER, SLIDER_PADDING, 1); + GuiSetStyle(PROGRESSBAR, PROGRESS_PADDING, 1); + GuiSetStyle(CHECKBOX, CHECK_PADDING, 1); + GuiSetStyle(COMBOBOX, COMBO_BUTTON_WIDTH, 32); + GuiSetStyle(COMBOBOX, COMBO_BUTTON_SPACING, 2); + GuiSetStyle(DROPDOWNBOX, ARROW_PADDING, 16); + GuiSetStyle(DROPDOWNBOX, DROPDOWN_ITEMS_SPACING, 2); + GuiSetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH, 24); + GuiSetStyle(VALUEBOX, SPINNER_BUTTON_SPACING, 2); + GuiSetStyle(SCROLLBAR, BORDER_WIDTH, 0); + GuiSetStyle(SCROLLBAR, ARROWS_VISIBLE, 0); + GuiSetStyle(SCROLLBAR, ARROWS_SIZE, 6); + GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING, 0); + GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE, 16); + GuiSetStyle(SCROLLBAR, SCROLL_PADDING, 0); + GuiSetStyle(SCROLLBAR, SCROLL_SPEED, 12); + GuiSetStyle(LISTVIEW, LIST_ITEMS_HEIGHT, 28); + GuiSetStyle(LISTVIEW, LIST_ITEMS_SPACING, 2); + GuiSetStyle(LISTVIEW, LIST_ITEMS_BORDER_WIDTH, 1); + GuiSetStyle(LISTVIEW, SCROLLBAR_WIDTH, 12); + GuiSetStyle(LISTVIEW, SCROLLBAR_SIDE, SCROLLBAR_RIGHT_SIDE); + GuiSetStyle(COLORPICKER, COLOR_SELECTOR_SIZE, 8); + GuiSetStyle(COLORPICKER, HUEBAR_WIDTH, 16); + GuiSetStyle(COLORPICKER, HUEBAR_PADDING, 8); + GuiSetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT, 8); + GuiSetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW, 2); + + if (guiFont.texture.id != GetFontDefault().texture.id) + { + // Unload previous font texture + UnloadTexture(guiFont.texture); + RAYGUI_FREE(guiFont.recs); + RAYGUI_FREE(guiFont.glyphs); + guiFont.recs = NULL; + guiFont.glyphs = NULL; + + // Setup default raylib font + guiFont = GetFontDefault(); + + // NOTE: Default raylib font character 95 is a white square + Rectangle whiteChar = guiFont.recs[95]; + + // NOTE: Setting up a 1px padding on char rectangle to avoid pixel bleeding on MSAA filtering + SetShapesTexture(guiFont.texture, RAYGUI_CLITERAL(Rectangle){ whiteChar.x + 1, whiteChar.y + 1, whiteChar.width - 2, whiteChar.height - 2 }); + } +} + +// Get text with icon id prepended +// NOTE: Useful to add icons by name id (enum) instead of +// a number that can change between ricon versions +const char *GuiIconText(int iconId, const char *text) +{ +#if defined(RAYGUI_NO_ICONS) + return NULL; +#else + static char buffer[1024] = { 0 }; + static char iconBuffer[16] = { 0 }; + + if (text != NULL) + { + memset(buffer, 0, 1024); + snprintf(buffer, 1024, "#%03i#", iconId); + + for (int i = 5; i < 1024; i++) + { + buffer[i] = text[i - 5]; + if (text[i - 5] == '\0') break; + } + + return buffer; + } + else + { + snprintf(iconBuffer, 16, "#%03i#", iconId); + + return iconBuffer; + } +#endif +} + +#if !defined(RAYGUI_NO_ICONS) +// Get full icons data pointer +unsigned int *GuiGetIcons(void) { return guiIconsPtr; } + +// Load raygui icons file (.rgi) +// NOTE: In case nameIds are required, they can be requested with loadIconsName, +// they are returned as a guiIconsName[iconCount][RAYGUI_ICON_MAX_NAME_LENGTH], +// WARNING: guiIconsName[]][] memory should be manually freed! +char **GuiLoadIcons(const char *fileName, bool loadIconsName) +{ + // Style File Structure (.rgi) + // ------------------------------------------------------ + // Offset | Size | Type | Description + // ------------------------------------------------------ + // 0 | 4 | char | Signature: "rGI " + // 4 | 2 | short | Version: 100 + // 6 | 2 | short | reserved + + // 8 | 2 | short | Num icons (N) + // 10 | 2 | short | Icons size (Options: 16, 32, 64) (S) + + // Icons name id (32 bytes per name id) + // foreach (icon) + // { + // 12+32*i | 32 | char | Icon NameId + // } + + // Icons data: One bit per pixel, stored as unsigned int array (depends on icon size) + // S*S pixels/32bit per unsigned int = K unsigned int per icon + // foreach (icon) + // { + // ... | K | unsigned int | Icon Data + // } + + FILE *rgiFile = fopen(fileName, "rb"); + + char **guiIconsName = NULL; + + if (rgiFile != NULL) + { + char signature[5] = { 0 }; + short version = 0; + short reserved = 0; + short iconCount = 0; + short iconSize = 0; + + fread(signature, 1, 4, rgiFile); + fread(&version, sizeof(short), 1, rgiFile); + fread(&reserved, sizeof(short), 1, rgiFile); + fread(&iconCount, sizeof(short), 1, rgiFile); + fread(&iconSize, sizeof(short), 1, rgiFile); + + if ((signature[0] == 'r') && + (signature[1] == 'G') && + (signature[2] == 'I') && + (signature[3] == ' ')) + { + if (loadIconsName) + { + guiIconsName = (char **)RAYGUI_CALLOC(iconCount, sizeof(char *)); + for (int i = 0; i < iconCount; i++) + { + guiIconsName[i] = (char *)RAYGUI_CALLOC(RAYGUI_ICON_MAX_NAME_LENGTH, sizeof(char)); + fread(guiIconsName[i], 1, RAYGUI_ICON_MAX_NAME_LENGTH, rgiFile); + } + } + else fseek(rgiFile, iconCount*RAYGUI_ICON_MAX_NAME_LENGTH, SEEK_CUR); + + // Read icons data directly over internal icons array + fread(guiIconsPtr, sizeof(unsigned int), (int)iconCount*((int)iconSize*(int)iconSize/32), rgiFile); + } + + fclose(rgiFile); + } + + return guiIconsName; +} + +// Load icons from memory +// WARNING: Binary files only +char **GuiLoadIconsFromMemory(const unsigned char *fileData, int dataSize, bool loadIconsName) +{ + unsigned char *fileDataPtr = (unsigned char *)fileData; + char **guiIconsName = NULL; + + char signature[5] = { 0 }; + short version = 0; + short reserved = 0; + short iconCount = 0; + short iconSize = 0; + + memcpy(signature, fileDataPtr, 4); + memcpy(&version, fileDataPtr + 4, sizeof(short)); + memcpy(&reserved, fileDataPtr + 4 + 2, sizeof(short)); + memcpy(&iconCount, fileDataPtr + 4 + 2 + 2, sizeof(short)); + memcpy(&iconSize, fileDataPtr + 4 + 2 + 2 + 2, sizeof(short)); + fileDataPtr += 12; + + if ((signature[0] == 'r') && + (signature[1] == 'G') && + (signature[2] == 'I') && + (signature[3] == ' ')) + { + if (loadIconsName) + { + guiIconsName = (char **)RAYGUI_CALLOC(iconCount, sizeof(char *)); + for (int i = 0; i < iconCount; i++) + { + guiIconsName[i] = (char *)RAYGUI_CALLOC(RAYGUI_ICON_MAX_NAME_LENGTH, sizeof(char)); + memcpy(guiIconsName[i], fileDataPtr, RAYGUI_ICON_MAX_NAME_LENGTH); + fileDataPtr += RAYGUI_ICON_MAX_NAME_LENGTH; + } + } + else + { + // Skip icon name data if not required + fileDataPtr += iconCount*RAYGUI_ICON_MAX_NAME_LENGTH; + } + + int iconDataSize = iconCount*((int)iconSize*(int)iconSize/32)*(int)sizeof(unsigned int); + guiIconsPtr = (unsigned int *)RAYGUI_CALLOC(iconDataSize, 1); + + memcpy(guiIconsPtr, fileDataPtr, iconDataSize); + } + + return guiIconsName; +} + +// Draw selected icon using rectangles pixel-by-pixel +void GuiDrawIcon(int iconId, int posX, int posY, int pixelSize, Color color) +{ + #define BIT_CHECK(a,b) ((a) & (1u<<(b))) + + for (int i = 0, y = 0; i < RAYGUI_ICON_SIZE*RAYGUI_ICON_SIZE/32; i++) + { + for (int k = 0; k < 32; k++) + { + if (BIT_CHECK(guiIconsPtr[iconId*RAYGUI_ICON_DATA_ELEMENTS + i], k)) + { + #if !defined(RAYGUI_STANDALONE) + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ (float)posX + (k%RAYGUI_ICON_SIZE)*pixelSize, (float)posY + y*pixelSize, (float)pixelSize, (float)pixelSize }, 0, BLANK, color); + #endif + } + + if ((k == 15) || (k == 31)) y++; + } + } +} + +// Set icon drawing size +void GuiSetIconScale(int scale) +{ + if (scale >= 1) guiIconScale = scale; +} + +// Get text width considering gui style and icon size (if required) +int GuiGetTextWidth(const char *text) +{ + #if !defined(ICON_TEXT_PADDING) + #define ICON_TEXT_PADDING 4 + #endif + + Vector2 textSize = { 0 }; + int textIconOffset = 0; + + if ((text != NULL) && (text[0] != '\0')) + { + if (text[0] == '#') + { + for (int i = 1; (i < 5) && (text[i] != '\0'); i++) + { + if (text[i] == '#') + { + textIconOffset = i; + break; + } + } + } + + text += textIconOffset; + + // Make sure guiFont is set, GuiGetStyle() initializes it lazynessly + float fontSize = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + + // Custom MeasureText() implementation + if ((guiFont.texture.id > 0) && (text != NULL)) + { + // Get size in bytes of text, considering end of line and line break + int size = 0; + for (int i = 0; i < MAX_LINE_BUFFER_SIZE; i++) + { + if ((text[i] != '\0') && (text[i] != '\n')) size++; + else break; + } + + float scaleFactor = fontSize/(float)guiFont.baseSize; + textSize.y = (float)guiFont.baseSize*scaleFactor; + float glyphWidth = 0.0f; + + for (int i = 0, codepointSize = 0; i < size; i += codepointSize) + { + int codepoint = GetCodepointNext(&text[i], &codepointSize); + int codepointIndex = GetGlyphIndex(guiFont, codepoint); + + if (guiFont.glyphs[codepointIndex].advanceX == 0) glyphWidth = ((float)guiFont.recs[codepointIndex].width*scaleFactor); + else glyphWidth = ((float)guiFont.glyphs[codepointIndex].advanceX*scaleFactor); + + textSize.x += (glyphWidth + (float)GuiGetStyle(DEFAULT, TEXT_SPACING)); + } + } + + if (textIconOffset > 0) textSize.x += (RAYGUI_ICON_SIZE + ICON_TEXT_PADDING); + } + + return (int)textSize.x; +} + +#endif // !RAYGUI_NO_ICONS + +//---------------------------------------------------------------------------------- +// Module Internal Functions Definition +//---------------------------------------------------------------------------------- +// Load style from memory +// WARNING: Binary files only +static void GuiLoadStyleFromMemory(const unsigned char *fileData, int dataSize) +{ + unsigned char *fileDataPtr = (unsigned char *)fileData; + + char signature[5] = { 0 }; + short version = 0; + short reserved = 0; + int propertyCount = 0; + + memcpy(signature, fileDataPtr, 4); + memcpy(&version, fileDataPtr + 4, sizeof(short)); + memcpy(&reserved, fileDataPtr + 4 + 2, sizeof(short)); + memcpy(&propertyCount, fileDataPtr + 4 + 2 + 2, sizeof(int)); + fileDataPtr += 12; + + if ((signature[0] == 'r') && + (signature[1] == 'G') && + (signature[2] == 'S') && + (signature[3] == ' ')) + { + short controlId = 0; + short propertyId = 0; + unsigned int propertyValue = 0; + + for (int i = 0; i < propertyCount; i++) + { + memcpy(&controlId, fileDataPtr, sizeof(short)); + memcpy(&propertyId, fileDataPtr + 2, sizeof(short)); + memcpy(&propertyValue, fileDataPtr + 2 + 2, sizeof(unsigned int)); + fileDataPtr += 8; + + if (controlId == 0) // DEFAULT control + { + // If a DEFAULT property is loaded, it is propagated to all controls + // NOTE: All DEFAULT properties should be defined first in the file + GuiSetStyle(0, (int)propertyId, propertyValue); + + if (propertyId < RAYGUI_MAX_PROPS_BASE) for (int j = 1; j < RAYGUI_MAX_CONTROLS; j++) GuiSetStyle(j, (int)propertyId, propertyValue); + } + else GuiSetStyle((int)controlId, (int)propertyId, propertyValue); + } + + // Font loading is highly dependant on raylib API to load font data and image + +#if !defined(RAYGUI_STANDALONE) + // Load custom font if available + int fontDataSize = 0; + memcpy(&fontDataSize, fileDataPtr, sizeof(int)); + fileDataPtr += 4; + + if (fontDataSize > 0) + { + Font font = { 0 }; + int fontType = 0; // 0-Normal, 1-SDF + + memcpy(&font.baseSize, fileDataPtr, sizeof(int)); + memcpy(&font.glyphCount, fileDataPtr + 4, sizeof(int)); + memcpy(&fontType, fileDataPtr + 4 + 4, sizeof(int)); + fileDataPtr += 12; + + // Load font white rectangle + Rectangle fontWhiteRec = { 0 }; + memcpy(&fontWhiteRec, fileDataPtr, sizeof(Rectangle)); + fileDataPtr += 16; + + // Load font image parameters + int fontImageUncompSize = 0; + int fontImageCompSize = 0; + memcpy(&fontImageUncompSize, fileDataPtr, sizeof(int)); + memcpy(&fontImageCompSize, fileDataPtr + 4, sizeof(int)); + fileDataPtr += 8; + + Image imFont = { 0 }; + imFont.mipmaps = 1; + memcpy(&imFont.width, fileDataPtr, sizeof(int)); + memcpy(&imFont.height, fileDataPtr + 4, sizeof(int)); + memcpy(&imFont.format, fileDataPtr + 4 + 4, sizeof(int)); + fileDataPtr += 12; + + if ((fontImageCompSize > 0) && (fontImageCompSize != fontImageUncompSize)) + { + // Compressed font atlas image data (DEFLATE), it requires DecompressData() + int dataUncompSize = 0; + unsigned char *compData = (unsigned char *)RAYGUI_CALLOC(fontImageCompSize, sizeof(unsigned char)); + memcpy(compData, fileDataPtr, fontImageCompSize); + fileDataPtr += fontImageCompSize; + + imFont.data = DecompressData(compData, fontImageCompSize, &dataUncompSize); + + // Security check, dataUncompSize must match the provided fontImageUncompSize + if (dataUncompSize != fontImageUncompSize) RAYGUI_LOG("WARNING: Uncompressed font atlas image data could be corrupted"); + + RAYGUI_FREE(compData); + } + else + { + // Font atlas image data is not compressed + imFont.data = (unsigned char *)RAYGUI_CALLOC(fontImageUncompSize, sizeof(unsigned char)); + memcpy(imFont.data, fileDataPtr, fontImageUncompSize); + fileDataPtr += fontImageUncompSize; + } + + if (font.texture.id != GetFontDefault().texture.id) UnloadTexture(font.texture); + font.texture = LoadTextureFromImage(imFont); + + RAYGUI_FREE(imFont.data); + + // Validate font atlas texture was loaded correctly + if (font.texture.id != 0) + { + // Load font recs data + int recsDataSize = font.glyphCount*sizeof(Rectangle); + int recsDataCompressedSize = 0; + + // WARNING: Version 400 adds the compression size parameter + if (version >= 400) + { + // RGS files version 400 support compressed recs data + memcpy(&recsDataCompressedSize, fileDataPtr, sizeof(int)); + fileDataPtr += sizeof(int); + } + + if ((recsDataCompressedSize > 0) && (recsDataCompressedSize != recsDataSize)) + { + // Recs data is compressed, uncompress it + unsigned char *recsDataCompressed = (unsigned char *)RAYGUI_CALLOC(recsDataCompressedSize, sizeof(unsigned char)); + + memcpy(recsDataCompressed, fileDataPtr, recsDataCompressedSize); + fileDataPtr += recsDataCompressedSize; + + int recsDataUncompSize = 0; + font.recs = (Rectangle *)DecompressData(recsDataCompressed, recsDataCompressedSize, &recsDataUncompSize); + + // Security check, data uncompressed size must match the expected original data size + if (recsDataUncompSize != recsDataSize) RAYGUI_LOG("WARNING: Uncompressed font recs data could be corrupted"); + + RAYGUI_FREE(recsDataCompressed); + } + else + { + // Recs data is uncompressed + font.recs = (Rectangle *)RAYGUI_CALLOC(font.glyphCount, sizeof(Rectangle)); + for (int i = 0; i < font.glyphCount; i++) + { + memcpy(&font.recs[i], fileDataPtr, sizeof(Rectangle)); + fileDataPtr += sizeof(Rectangle); + } + } + + // Load font glyphs info data + int glyphsDataSize = font.glyphCount*16; // 16 bytes data per glyph + int glyphsDataCompressedSize = 0; + + // WARNING: Version 400 adds the compression size parameter + if (version >= 400) + { + // RGS files version 400 support compressed glyphs data + memcpy(&glyphsDataCompressedSize, fileDataPtr, sizeof(int)); + fileDataPtr += sizeof(int); + } + + // Allocate required glyphs space to fill with data + font.glyphs = (GlyphInfo *)RAYGUI_CALLOC(font.glyphCount, sizeof(GlyphInfo)); + + if ((glyphsDataCompressedSize > 0) && (glyphsDataCompressedSize != glyphsDataSize)) + { + // Glyphs data is compressed, uncompress it + unsigned char *glypsDataCompressed = (unsigned char *)RAYGUI_CALLOC(glyphsDataCompressedSize, sizeof(unsigned char)); + + memcpy(glypsDataCompressed, fileDataPtr, glyphsDataCompressedSize); + fileDataPtr += glyphsDataCompressedSize; + + int glyphsDataUncompSize = 0; + unsigned char *glyphsDataUncomp = DecompressData(glypsDataCompressed, glyphsDataCompressedSize, &glyphsDataUncompSize); + + // Security check, data uncompressed size must match the expected original data size + if (glyphsDataUncompSize != glyphsDataSize) RAYGUI_LOG("WARNING: Uncompressed font glyphs data could be corrupted"); + + unsigned char *glyphsDataUncompPtr = glyphsDataUncomp; + + for (int i = 0; i < font.glyphCount; i++) + { + memcpy(&font.glyphs[i].value, glyphsDataUncompPtr, sizeof(int)); + memcpy(&font.glyphs[i].offsetX, glyphsDataUncompPtr + 4, sizeof(int)); + memcpy(&font.glyphs[i].offsetY, glyphsDataUncompPtr + 8, sizeof(int)); + memcpy(&font.glyphs[i].advanceX, glyphsDataUncompPtr + 12, sizeof(int)); + glyphsDataUncompPtr += 16; + } + + RAYGUI_FREE(glypsDataCompressed); + RAYGUI_FREE(glyphsDataUncomp); + } + else + { + // Glyphs data is uncompressed + for (int i = 0; i < font.glyphCount; i++) + { + memcpy(&font.glyphs[i].value, fileDataPtr, sizeof(int)); + memcpy(&font.glyphs[i].offsetX, fileDataPtr + 4, sizeof(int)); + memcpy(&font.glyphs[i].offsetY, fileDataPtr + 8, sizeof(int)); + memcpy(&font.glyphs[i].advanceX, fileDataPtr + 12, sizeof(int)); + fileDataPtr += 16; + } + } + } + else font = GetFontDefault(); // Fallback in case of errors loading font atlas texture + + GuiSetFont(font); + + // Set font texture source rectangle to be used as white texture to draw shapes + // NOTE: It makes possible to draw shapes and text (full UI) in a single draw call + if ((fontWhiteRec.x > 0) && + (fontWhiteRec.y > 0) && + (fontWhiteRec.width > 0) && + (fontWhiteRec.height > 0)) SetShapesTexture(font.texture, fontWhiteRec); + } +#endif + } +} + +// Get text bounds considering control bounds +static Rectangle GetTextBounds(int control, Rectangle bounds) +{ + Rectangle textBounds = bounds; + + textBounds.x = bounds.x + GuiGetStyle(control, BORDER_WIDTH); + textBounds.y = bounds.y + GuiGetStyle(control, BORDER_WIDTH) + GuiGetStyle(control, TEXT_PADDING); + textBounds.width = bounds.width - 2*GuiGetStyle(control, BORDER_WIDTH) - 2*GuiGetStyle(control, TEXT_PADDING); + textBounds.height = bounds.height - 2*GuiGetStyle(control, BORDER_WIDTH) - 2*GuiGetStyle(control, TEXT_PADDING); // NOTE: Text is processed line per line! + + // Depending on control, TEXT_PADDING and TEXT_ALIGNMENT properties could affect the text-bounds + switch (control) + { + case COMBOBOX: + case DROPDOWNBOX: + case LISTVIEW: + // TODO: Special cases (no label): COMBOBOX, DROPDOWNBOX, LISTVIEW + case SLIDER: + case CHECKBOX: + case VALUEBOX: + case CONTROL11: + // TODO: More special cases (label on side): SLIDER, CHECKBOX, VALUEBOX, SPINNER + default: + { + // TODO: WARNING: TEXT_ALIGNMENT is already considered in GuiDrawText() + if (GuiGetStyle(control, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT) textBounds.x -= GuiGetStyle(control, TEXT_PADDING); + else textBounds.x += GuiGetStyle(control, TEXT_PADDING); + } + break; + } + + return textBounds; +} + +// Get text icon if provided and move text cursor +// NOTE: Up to #999# values supported for iconId +static const char *GetTextIcon(const char *text, int *iconId) +{ +#if !defined(RAYGUI_NO_ICONS) + *iconId = -1; + if (text[0] == '#') // Maybe it is stars with an icon, ending # must be found + { + char iconValue[4] = { 0 }; // Maximum length for icon value: 3 digits + '\0' + + int pos = 1; + while ((pos < 4) && (text[pos] >= '0') && (text[pos] <= '9')) + { + iconValue[pos - 1] = text[pos]; + pos++; + } + + if (text[pos] == '#') + { + *iconId = TextToInteger(iconValue); + + // Move text pointer after icon + // WARNING: If only icon provided, it could point to EOL character: '\0' + if (*iconId >= 0) text += (pos + 1); + } + } +#endif + + return text; +} + +// Get text divided into lines (by line-breaks '\n') +// WARNING: It returns pointers to new lines but it does not add NULL ('\0') terminator! +static const char **GetTextLines(const char *text, int *count) +{ + #define RAYGUI_MAX_TEXT_LINES 128 + + static const char *lines[RAYGUI_MAX_TEXT_LINES] = { 0 }; + for (int i = 0; i < RAYGUI_MAX_TEXT_LINES; i++) lines[i] = NULL; // Init NULL pointers to substrings + + int textLength = (int)strlen(text); + + lines[0] = text; + *count = 1; + + for (int i = 0; (i < textLength) && (*count < RAYGUI_MAX_TEXT_LINES); i++) + { + if ((text[i] == '\n') && ((i + 1) < textLength)) + { + lines[*count] = &text[i + 1]; + *count += 1; + } + } + + return lines; +} + +// Get text width to next space for provided string +static float GetNextSpaceWidth(const char *text, int *nextSpaceIndex) +{ + float width = 0; + int codepointByteCount = 0; + int codepoint = 0; + int index = 0; + float glyphWidth = 0; + float scaleFactor = (float)GuiGetStyle(DEFAULT, TEXT_SIZE)/guiFont.baseSize; + + for (int i = 0; text[i] != '\0'; i++) + { + if (text[i] != ' ') + { + codepoint = GetCodepoint(&text[i], &codepointByteCount); + index = GetGlyphIndex(guiFont, codepoint); + glyphWidth = (guiFont.glyphs[index].advanceX == 0)? guiFont.recs[index].width*scaleFactor : guiFont.glyphs[index].advanceX*scaleFactor; + width += (glyphWidth + (float)GuiGetStyle(DEFAULT, TEXT_SPACING)); + } + else + { + *nextSpaceIndex = i; + break; + } + } + + return width; +} + +// Gui draw text using default font +static void GuiDrawText(const char *text, Rectangle textBounds, int alignment, Color tint) +{ + #define TEXT_VALIGN_PIXEL_OFFSET(h) ((int)h%2) // Vertical alignment for pixel perfect + + #if !defined(ICON_TEXT_PADDING) + #define ICON_TEXT_PADDING 4 + #endif + + if ((text == NULL) || (text[0] == '\0')) return; // Security check + + // PROCEDURE: + // - Text is processed line per line + // - For every line, horizontal alignment is defined + // - For all text, vertical alignment is defined (multiline text only) + // - For every line, wordwrap mode is checked (useful for GuitextBox(), read-only) + + // Get text lines (using '\n' as delimiter) to be processed individually + // WARNING: GuiTextSplit() function can't be used now because it can have already been used + // before the GuiDrawText() call and its buffer is static, it would be overriden :( + int lineCount = 0; + const char **lines = GetTextLines(text, &lineCount); + + // Text style variables + //int alignment = GuiGetStyle(DEFAULT, TEXT_ALIGNMENT); + int alignmentVertical = GuiGetStyle(DEFAULT, TEXT_ALIGNMENT_VERTICAL); + int wrapMode = GuiGetStyle(DEFAULT, TEXT_WRAP_MODE); // Wrap-mode only available in read-only mode, no for text editing + + // TODO: WARNING: This totalHeight is not valid for vertical alignment in case of word-wrap + float totalHeight = (float)(lineCount*GuiGetStyle(DEFAULT, TEXT_SIZE) + (lineCount - 1)*GuiGetStyle(DEFAULT, TEXT_LINE_SPACING)); + float posOffsetY = 0.0f; + + for (int i = 0; i < lineCount; i++) + { + int iconId = 0; + lines[i] = GetTextIcon(lines[i], &iconId); // Check text for icon and move cursor + + // Get text position depending on alignment and iconId + //--------------------------------------------------------------------------------- + Vector2 textBoundsPosition = { textBounds.x, textBounds.y }; + float textBoundsWidthOffset = 0.0f; + + // NOTE: Get text size after icon has been processed + // WARNING: GuiGetTextWidth() also processes text icon to get width! -> Really needed? + int textSizeX = GuiGetTextWidth(lines[i]); + + // If text requires an icon, add size to measure + if (iconId >= 0) + { + textSizeX += RAYGUI_ICON_SIZE*guiIconScale; + + // WARNING: If only icon provided, text could be pointing to EOF character: '\0' +#if !defined(RAYGUI_NO_ICONS) + if ((lines[i] != NULL) && (lines[i][0] != '\0')) textSizeX += ICON_TEXT_PADDING; +#endif + } + + // Check guiTextAlign global variables + switch (alignment) + { + case TEXT_ALIGN_LEFT: textBoundsPosition.x = textBounds.x; break; + case TEXT_ALIGN_CENTER: textBoundsPosition.x = textBounds.x + textBounds.width/2 - textSizeX/2; break; + case TEXT_ALIGN_RIGHT: textBoundsPosition.x = textBounds.x + textBounds.width - textSizeX; break; + default: break; + } + + if (textSizeX > textBounds.width && (lines[i] != NULL) && (lines[i][0] != '\0')) textBoundsPosition.x = textBounds.x; + + switch (alignmentVertical) + { + // Only valid in case of wordWrap = 0; + case TEXT_ALIGN_TOP: textBoundsPosition.y = textBounds.y + posOffsetY; break; + case TEXT_ALIGN_MIDDLE: textBoundsPosition.y = textBounds.y + posOffsetY + textBounds.height/2 - totalHeight/2 + TEXT_VALIGN_PIXEL_OFFSET(textBounds.height); break; + case TEXT_ALIGN_BOTTOM: textBoundsPosition.y = textBounds.y + posOffsetY + textBounds.height - totalHeight + TEXT_VALIGN_PIXEL_OFFSET(textBounds.height); break; + default: break; + } + + // NOTE: Make sure getting pixel-perfect coordinates, + // In case of decimals, it could result in text positioning artifacts + textBoundsPosition.x = (float)((int)textBoundsPosition.x); + textBoundsPosition.y = (float)((int)textBoundsPosition.y); + //--------------------------------------------------------------------------------- + + // Draw text (with icon if available) + //--------------------------------------------------------------------------------- +#if !defined(RAYGUI_NO_ICONS) + if (iconId >= 0) + { + // NOTE: Considering icon height, probably different than text size + GuiDrawIcon(iconId, (int)textBoundsPosition.x, (int)(textBounds.y + textBounds.height/2 - RAYGUI_ICON_SIZE*guiIconScale/2 + TEXT_VALIGN_PIXEL_OFFSET(textBounds.height)), guiIconScale, tint); + textBoundsPosition.x += (float)(RAYGUI_ICON_SIZE*guiIconScale + ICON_TEXT_PADDING); + textBoundsWidthOffset = (float)(RAYGUI_ICON_SIZE*guiIconScale + ICON_TEXT_PADDING); + } +#endif + // Get size in bytes of text, + // considering end of line and line break + int lineSize = 0; + for (int c = 0; (lines[i][c] != '\0') && (lines[i][c] != '\n') && (lines[i][c] != '\r'); c++, lineSize++){ } + float scaleFactor = (float)GuiGetStyle(DEFAULT, TEXT_SIZE)/guiFont.baseSize; + + int lastSpaceIndex = 0; + bool tempWrapCharMode = false; + + int textOffsetY = 0; + float textOffsetX = 0.0f; + float glyphWidth = 0; + + int ellipsisWidth = GuiGetTextWidth("..."); + bool textOverflow = false; + for (int c = 0, codepointSize = 0; c < lineSize; c += codepointSize) + { + int codepoint = GetCodepointNext(&lines[i][c], &codepointSize); + int index = GetGlyphIndex(guiFont, codepoint); + + // NOTE: Normally, exiting the decoding sequence as soon as a bad byte is found (and return 0x3f) + // but all of the bad bytes need to be drawn using the '?' symbol, moving one byte + if (codepoint == 0x3f) codepointSize = 1; // TODO: Review not recognized codepoints size + + // Get glyph width to check if it goes out of bounds + if (guiFont.glyphs[index].advanceX == 0) glyphWidth = ((float)guiFont.recs[index].width*scaleFactor); + else glyphWidth = (float)guiFont.glyphs[index].advanceX*scaleFactor; + + // Wrap mode text measuring, to validate if + // it can be drawn or a new line is required + if (wrapMode == TEXT_WRAP_CHAR) + { + // Jump to next line if current character reach end of the box limits + if ((textOffsetX + glyphWidth) > textBounds.width - textBoundsWidthOffset) + { + textOffsetX = 0.0f; + textOffsetY += (GuiGetStyle(DEFAULT, TEXT_SIZE) + GuiGetStyle(DEFAULT, TEXT_LINE_SPACING)); + + if (tempWrapCharMode) // Wrap at char level when too long words + { + wrapMode = TEXT_WRAP_WORD; + tempWrapCharMode = false; + } + } + } + else if (wrapMode == TEXT_WRAP_WORD) + { + if (codepoint == 32) lastSpaceIndex = c; + + // Get width to next space in line + int nextSpaceIndex = 0; + float nextSpaceWidth = GetNextSpaceWidth(lines[i] + c, &nextSpaceIndex); + + int nextSpaceIndex2 = 0; + float nextWordSize = GetNextSpaceWidth(lines[i] + lastSpaceIndex + 1, &nextSpaceIndex2); + + if (nextWordSize > textBounds.width - textBoundsWidthOffset) + { + // Considering the case the next word is longer than bounds + tempWrapCharMode = true; + wrapMode = TEXT_WRAP_CHAR; + } + else if ((textOffsetX + nextSpaceWidth) > textBounds.width - textBoundsWidthOffset) + { + textOffsetX = 0.0f; + textOffsetY += (GuiGetStyle(DEFAULT, TEXT_SIZE) + GuiGetStyle(DEFAULT, TEXT_LINE_SPACING)); + } + } + + if (codepoint == '\n') break; // WARNING: Lines are already processed manually, no need to keep drawing after this codepoint + else + { + // TODO: There are multiple types of spaces in Unicode, + // maybe it's a good idea to add support for more: http://jkorpela.fi/chars/spaces.html + if ((codepoint != ' ') && (codepoint != '\t')) // Do not draw codepoints with no glyph + { + if (wrapMode == TEXT_WRAP_NONE) + { + // Draw only required text glyphs fitting the textBounds.width + if (textSizeX > textBounds.width) + { + if (textOffsetX <= (textBounds.width - glyphWidth - textBoundsWidthOffset - ellipsisWidth)) + { + DrawTextCodepoint(guiFont, codepoint, RAYGUI_CLITERAL(Vector2){ textBoundsPosition.x + textOffsetX, textBoundsPosition.y + textOffsetY }, (float)GuiGetStyle(DEFAULT, TEXT_SIZE), GuiFade(tint, guiAlpha)); + } + else if (!textOverflow) + { + textOverflow = true; + + for (int j = 0; j < ellipsisWidth; j += ellipsisWidth/3) + { + DrawTextCodepoint(guiFont, '.', RAYGUI_CLITERAL(Vector2){ textBoundsPosition.x + textOffsetX + j, textBoundsPosition.y + textOffsetY }, (float)GuiGetStyle(DEFAULT, TEXT_SIZE), GuiFade(tint, guiAlpha)); + } + } + } + else + { + DrawTextCodepoint(guiFont, codepoint, RAYGUI_CLITERAL(Vector2){ textBoundsPosition.x + textOffsetX, textBoundsPosition.y + textOffsetY }, (float)GuiGetStyle(DEFAULT, TEXT_SIZE), GuiFade(tint, guiAlpha)); + } + } + else if ((wrapMode == TEXT_WRAP_CHAR) || (wrapMode == TEXT_WRAP_WORD)) + { + // Draw only glyphs inside the bounds + if ((textBoundsPosition.y + textOffsetY) <= (textBounds.y + textBounds.height - GuiGetStyle(DEFAULT, TEXT_SIZE))) + { + DrawTextCodepoint(guiFont, codepoint, RAYGUI_CLITERAL(Vector2){ textBoundsPosition.x + textOffsetX, textBoundsPosition.y + textOffsetY }, (float)GuiGetStyle(DEFAULT, TEXT_SIZE), GuiFade(tint, guiAlpha)); + } + } + } + + if (guiFont.glyphs[index].advanceX == 0) textOffsetX += ((float)guiFont.recs[index].width*scaleFactor + (float)GuiGetStyle(DEFAULT, TEXT_SPACING)); + else textOffsetX += ((float)guiFont.glyphs[index].advanceX*scaleFactor + (float)GuiGetStyle(DEFAULT, TEXT_SPACING)); + } + } + + if (wrapMode == TEXT_WRAP_NONE) posOffsetY += (float)(GuiGetStyle(DEFAULT, TEXT_SIZE) + GuiGetStyle(DEFAULT, TEXT_LINE_SPACING)); + else if ((wrapMode == TEXT_WRAP_CHAR) || (wrapMode == TEXT_WRAP_WORD)) + posOffsetY += (textOffsetY + GuiGetStyle(DEFAULT, TEXT_SIZE)); + //--------------------------------------------------------------------------------- + } + +#if defined(RAYGUI_DEBUG_TEXT_BOUNDS) + GuiDrawRectangle(textBounds, 0, WHITE, Fade(BLUE, 0.4f)); +#endif +} + +// Gui draw rectangle using default raygui plain style with borders +static void GuiDrawRectangle(Rectangle rec, int borderWidth, Color borderColor, Color color) +{ + if (color.a > 0) + { + // Draw rectangle filled with color + DrawRectangle((int)rec.x, (int)rec.y, (int)rec.width, (int)rec.height, GuiFade(color, guiAlpha)); + } + + if (borderWidth > 0) + { + // Draw rectangle border lines with color + DrawRectangle((int)rec.x, (int)rec.y, (int)rec.width, borderWidth, GuiFade(borderColor, guiAlpha)); + DrawRectangle((int)rec.x, (int)rec.y + borderWidth, borderWidth, (int)rec.height - 2*borderWidth, GuiFade(borderColor, guiAlpha)); + DrawRectangle((int)rec.x + (int)rec.width - borderWidth, (int)rec.y + borderWidth, borderWidth, (int)rec.height - 2*borderWidth, GuiFade(borderColor, guiAlpha)); + DrawRectangle((int)rec.x, (int)rec.y + (int)rec.height - borderWidth, (int)rec.width, borderWidth, GuiFade(borderColor, guiAlpha)); + } + +#if defined(RAYGUI_DEBUG_RECS_BOUNDS) + DrawRectangle((int)rec.x, (int)rec.y, (int)rec.width, (int)rec.height, Fade(RED, 0.4f)); +#endif +} + +// Draw tooltip using control bounds +static void GuiTooltip(Rectangle controlRec) +{ + if (!guiLocked && guiTooltip && (guiTooltipPtr != NULL) && !guiControlExclusiveMode) + { + Vector2 textSize = MeasureTextEx(GuiGetFont(), guiTooltipPtr, (float)GuiGetStyle(DEFAULT, TEXT_SIZE), (float)GuiGetStyle(DEFAULT, TEXT_SPACING)); + + if ((controlRec.x + textSize.x + 16) > GetScreenWidth()) controlRec.x -= (textSize.x + 16 - controlRec.width); + + int lineCount = 0; + GetTextLines(guiTooltipPtr, &lineCount); // Only using the line count + if ((controlRec.y + controlRec.height + textSize.y + 4 + 8*lineCount) > GetScreenHeight()) + controlRec.y -= (controlRec.height + textSize.y + 4 + 8*lineCount); + + // TODO: Probably TEXT_LINE_SPACING should be considered on panel size instead of hardcoding 8.0f + GuiPanel(RAYGUI_CLITERAL(Rectangle){ controlRec.x, controlRec.y + controlRec.height + 4, textSize.x + 16, textSize.y + 8.0f*lineCount }, NULL); + + int textPadding = GuiGetStyle(LABEL, TEXT_PADDING); + int textAlignment = GuiGetStyle(LABEL, TEXT_ALIGNMENT); + GuiSetStyle(LABEL, TEXT_PADDING, 0); + GuiSetStyle(LABEL, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + GuiLabel(RAYGUI_CLITERAL(Rectangle){ controlRec.x, controlRec.y + controlRec.height + 4, textSize.x + 16, textSize.y + 8.0f*lineCount }, guiTooltipPtr); + GuiSetStyle(LABEL, TEXT_ALIGNMENT, textAlignment); + GuiSetStyle(LABEL, TEXT_PADDING, textPadding); + } +} + +// Split controls text into multiple strings +// Also check for multiple columns (required by GuiToggleGroup()) +static char **GuiTextSplit(const char *text, char delimiter, int *count, int *textRow) +{ + // NOTE: Current implementation returns a copy of the provided string with '\0' (string end delimiter) + // inserted between strings defined by "delimiter" parameter. No memory is dynamically allocated, + // all used memory is static... it has some limitations: + // 1. Maximum number of possible split strings is set by RAYGUI_TEXTSPLIT_MAX_ITEMS + // 2. Maximum size of text to split is RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE + // NOTE: Those definitions could be externally provided if required + + // TODO: HACK: GuiTextSplit() - Review how textRows are returned to user + // textRow is an externally provided array of integers that stores row number for every splitted string + + #if !defined(RAYGUI_TEXTSPLIT_MAX_ITEMS) + #define RAYGUI_TEXTSPLIT_MAX_ITEMS 128 + #endif + #if !defined(RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE) + #define RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE 1024 + #endif + + static char *result[RAYGUI_TEXTSPLIT_MAX_ITEMS] = { NULL }; // String pointers array (points to buffer data) + static char buffer[RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE] = { 0 }; // Buffer data (text input copy with '\0' added) + memset(buffer, 0, RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE); + + result[0] = buffer; + int counter = 1; + + if (textRow != NULL) textRow[0] = 0; + + // Count how many substrings text contains and point to every one of them + for (int i = 0; i < RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE; i++) + { + buffer[i] = text[i]; + if (buffer[i] == '\0') break; + else if ((buffer[i] == delimiter) || (buffer[i] == '\n')) + { + result[counter] = buffer + i + 1; + + if (textRow != NULL) + { + if (buffer[i] == '\n') textRow[counter] = textRow[counter - 1] + 1; + else textRow[counter] = textRow[counter - 1]; + } + + buffer[i] = '\0'; // Set an end of string at this point + + counter++; + if (counter >= RAYGUI_TEXTSPLIT_MAX_ITEMS) break; + } + } + + *count = counter; + + return result; +} + +// Convert color data from RGB to HSV +// NOTE: Color data should be passed normalized +static Vector3 ConvertRGBtoHSV(Vector3 rgb) +{ + Vector3 hsv = { 0 }; + float min = 0.0f; + float max = 0.0f; + float delta = 0.0f; + + min = (rgb.x < rgb.y)? rgb.x : rgb.y; + min = (min < rgb.z)? min : rgb.z; + + max = (rgb.x > rgb.y)? rgb.x : rgb.y; + max = (max > rgb.z)? max : rgb.z; + + hsv.z = max; // Value + delta = max - min; + + if (delta < 0.00001f) + { + hsv.y = 0.0f; + hsv.x = 0.0f; // Undefined, maybe NAN? + return hsv; + } + + if (max > 0.0f) + { + // NOTE: If max is 0, this divide would cause a crash + hsv.y = (delta/max); // Saturation + } + else + { + // NOTE: If max is 0, then r = g = b = 0, s = 0, h is undefined + hsv.y = 0.0f; + hsv.x = 0.0f; // Undefined, maybe NAN? + return hsv; + } + + // NOTE: Comparing float values could not work properly + if (rgb.x >= max) hsv.x = (rgb.y - rgb.z)/delta; // Between yellow & magenta + else + { + if (rgb.y >= max) hsv.x = 2.0f + (rgb.z - rgb.x)/delta; // Between cyan & yellow + else hsv.x = 4.0f + (rgb.x - rgb.y)/delta; // Between magenta & cyan + } + + hsv.x *= 60.0f; // Convert to degrees + + if (hsv.x < 0.0f) hsv.x += 360.0f; + + return hsv; +} + +// Convert color data from HSV to RGB +// NOTE: Color data should be passed normalized +static Vector3 ConvertHSVtoRGB(Vector3 hsv) +{ + Vector3 rgb = { 0 }; + float hh = 0.0f, p = 0.0f, q = 0.0f, t = 0.0f, ff = 0.0f; + long i = 0; + + // NOTE: Comparing float values could not work properly + if (hsv.y <= 0.0f) + { + rgb.x = hsv.z; + rgb.y = hsv.z; + rgb.z = hsv.z; + return rgb; + } + + hh = hsv.x; + if (hh >= 360.0f) hh = 0.0f; + hh /= 60.0f; + + i = (long)hh; + ff = hh - i; + p = hsv.z*(1.0f - hsv.y); + q = hsv.z*(1.0f - (hsv.y*ff)); + t = hsv.z*(1.0f - (hsv.y*(1.0f - ff))); + + switch (i) + { + case 0: + { + rgb.x = hsv.z; + rgb.y = t; + rgb.z = p; + } break; + case 1: + { + rgb.x = q; + rgb.y = hsv.z; + rgb.z = p; + } break; + case 2: + { + rgb.x = p; + rgb.y = hsv.z; + rgb.z = t; + } break; + case 3: + { + rgb.x = p; + rgb.y = q; + rgb.z = hsv.z; + } break; + case 4: + { + rgb.x = t; + rgb.y = p; + rgb.z = hsv.z; + } break; + case 5: + default: + { + rgb.x = hsv.z; + rgb.y = p; + rgb.z = q; + } break; + } + + return rgb; +} + +// Scroll bar control (used by GuiScrollPanel()) +static int GuiScrollBar(Rectangle bounds, int value, int minValue, int maxValue) +{ + GuiState state = guiState; + + // Is the scrollbar horizontal or vertical? + bool isVertical = (bounds.width > bounds.height)? false : true; + + // The size (width or height depending on scrollbar type) of the spinner buttons + const int spinnerSize = GuiGetStyle(SCROLLBAR, ARROWS_VISIBLE)? + (isVertical? (int)bounds.width - 2*GuiGetStyle(SCROLLBAR, BORDER_WIDTH) : + (int)bounds.height - 2*GuiGetStyle(SCROLLBAR, BORDER_WIDTH)) : 0; + + // Arrow buttons [<] [>] [∧] [∨] + Rectangle arrowUpLeft = { 0 }; + Rectangle arrowDownRight = { 0 }; + + // Actual area of the scrollbar excluding the arrow buttons + Rectangle scrollbar = { 0 }; + + // Slider bar that moves --[///]----- + Rectangle slider = { 0 }; + + // Normalize value + if (value > maxValue) value = maxValue; + if (value < minValue) value = minValue; + + int valueRange = maxValue - minValue; + if (valueRange <= 0) valueRange = 1; + + int sliderSize = GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE); + if (sliderSize < 1) sliderSize = 1; // TODO: Consider a minimum slider size + + // Calculate rectangles for all of the components + arrowUpLeft = RAYGUI_CLITERAL(Rectangle){ + (float)bounds.x + GuiGetStyle(SCROLLBAR, BORDER_WIDTH), + (float)bounds.y + GuiGetStyle(SCROLLBAR, BORDER_WIDTH), + (float)spinnerSize, (float)spinnerSize }; + + if (isVertical) + { + arrowDownRight = RAYGUI_CLITERAL(Rectangle){ (float)bounds.x + GuiGetStyle(SCROLLBAR, BORDER_WIDTH), (float)bounds.y + bounds.height - spinnerSize - GuiGetStyle(SCROLLBAR, BORDER_WIDTH), (float)spinnerSize, (float)spinnerSize }; + scrollbar = RAYGUI_CLITERAL(Rectangle){ bounds.x + GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_PADDING), arrowUpLeft.y + arrowUpLeft.height, bounds.width - 2*(GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_PADDING)), bounds.height - arrowUpLeft.height - arrowDownRight.height - 2*GuiGetStyle(SCROLLBAR, BORDER_WIDTH) }; + + // Make sure the slider won't get outside of the scrollbar + sliderSize = (sliderSize >= scrollbar.height)? ((int)scrollbar.height - 2) : sliderSize; + slider = RAYGUI_CLITERAL(Rectangle){ + bounds.x + GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING), + scrollbar.y + (int)(((float)(value - minValue)/valueRange)*(scrollbar.height - sliderSize)), + bounds.width - 2*(GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING)), + (float)sliderSize }; + } + else // horizontal + { + arrowDownRight = RAYGUI_CLITERAL(Rectangle){ (float)bounds.x + bounds.width - spinnerSize - GuiGetStyle(SCROLLBAR, BORDER_WIDTH), (float)bounds.y + GuiGetStyle(SCROLLBAR, BORDER_WIDTH), (float)spinnerSize, (float)spinnerSize }; + scrollbar = RAYGUI_CLITERAL(Rectangle){ arrowUpLeft.x + arrowUpLeft.width, bounds.y + GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_PADDING), bounds.width - arrowUpLeft.width - arrowDownRight.width - 2*GuiGetStyle(SCROLLBAR, BORDER_WIDTH), bounds.height - 2*(GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_PADDING)) }; + + // Make sure the slider won't get outside of the scrollbar + sliderSize = (sliderSize >= scrollbar.width)? ((int)scrollbar.width - 2) : sliderSize; + slider = RAYGUI_CLITERAL(Rectangle){ + scrollbar.x + (int)(((float)(value - minValue)/valueRange)*(scrollbar.width - sliderSize)), + bounds.y + GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING), + (float)sliderSize, + bounds.height - 2*(GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING)) }; + } + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + if (guiControlExclusiveMode) // Allows to keep dragging outside of bounds + { + if (GUI_BUTTON_DOWN && + !CheckCollisionPointRec(mousePoint, arrowUpLeft) && + !CheckCollisionPointRec(mousePoint, arrowDownRight)) + { + if (CHECK_BOUNDS_ID(bounds, guiControlExclusiveRec)) + { + state = STATE_PRESSED; + + if (isVertical) value = (int)(((float)(mousePoint.y - scrollbar.y - slider.height/2)*valueRange)/(scrollbar.height - slider.height) + minValue); + else value = (int)(((float)(mousePoint.x - scrollbar.x - slider.width/2)*valueRange)/(scrollbar.width - slider.width) + minValue); + } + } + else + { + guiControlExclusiveMode = false; + guiControlExclusiveRec = RAYGUI_CLITERAL(Rectangle){ 0, 0, 0, 0 }; + } + } + else if (CheckCollisionPointRec(mousePoint, bounds)) + { + state = STATE_FOCUSED; + + // Handle mouse wheel + float scrollDelta = GUI_SCROLL_DELTA; + if (scrollDelta != 0) value += (int)scrollDelta; + + // Handle mouse button down + if (GUI_BUTTON_PRESSED) + { + guiControlExclusiveMode = true; + guiControlExclusiveRec = bounds; // Store bounds as an identifier when dragging starts + + // Check arrows click + if (CheckCollisionPointRec(mousePoint, arrowUpLeft)) value -= valueRange/GuiGetStyle(SCROLLBAR, SCROLL_SPEED); + else if (CheckCollisionPointRec(mousePoint, arrowDownRight)) value += valueRange/GuiGetStyle(SCROLLBAR, SCROLL_SPEED); + else if (!CheckCollisionPointRec(mousePoint, slider)) + { + // If click on scrollbar position but not on slider, place slider directly on that position + if (isVertical) value = (int)(((float)(mousePoint.y - scrollbar.y - slider.height/2)*valueRange)/(scrollbar.height - slider.height) + minValue); + else value = (int)(((float)(mousePoint.x - scrollbar.x - slider.width/2)*valueRange)/(scrollbar.width - slider.width) + minValue); + } + + state = STATE_PRESSED; + } + + // Keyboard control on mouse hover scrollbar + /* + if (isVertical) + { + if (GUI_KEY_DOWN(KEY_DOWN)) value += 5; + else if (GUI_KEY_DOWN(KEY_UP)) value -= 5; + } + else + { + if (GUI_KEY_DOWN(KEY_RIGHT)) value += 5; + else if (GUI_KEY_DOWN(KEY_LEFT)) value -= 5; + } + */ + } + + // Normalize value + if (value > maxValue) value = maxValue; + if (value < minValue) value = minValue; + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + GuiDrawRectangle(bounds, GuiGetStyle(SCROLLBAR, BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER + state*3)), GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_DISABLED))); // Draw the background + + GuiDrawRectangle(scrollbar, 0, BLANK, GetColor(GuiGetStyle(BUTTON, BASE_COLOR_NORMAL))); // Draw the scrollbar active area background + GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, BORDER + state*3))); // Draw the slider bar + + // Draw arrows (using icon if available) + if (GuiGetStyle(SCROLLBAR, ARROWS_VISIBLE)) + { +#if defined(RAYGUI_NO_ICONS) + GuiDrawText(isVertical? "^" : "<", + RAYGUI_CLITERAL(Rectangle){ arrowUpLeft.x, arrowUpLeft.y, isVertical? bounds.width : bounds.height, isVertical? bounds.width : bounds.height }, + TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3)))); + GuiDrawText(isVertical? "v" : ">", + RAYGUI_CLITERAL(Rectangle){ arrowDownRight.x, arrowDownRight.y, isVertical? bounds.width : bounds.height, isVertical? bounds.width : bounds.height }, + TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3)))); +#else + GuiDrawText(isVertical? "#121#" : "#118#", + RAYGUI_CLITERAL(Rectangle){ arrowUpLeft.x, arrowUpLeft.y, isVertical? bounds.width : bounds.height, isVertical? bounds.width : bounds.height }, + TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(SCROLLBAR, TEXT + state*3))); // ICON_ARROW_UP_FILL / ICON_ARROW_LEFT_FILL + GuiDrawText(isVertical? "#120#" : "#119#", + RAYGUI_CLITERAL(Rectangle){ arrowDownRight.x, arrowDownRight.y, isVertical? bounds.width : bounds.height, isVertical? bounds.width : bounds.height }, + TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(SCROLLBAR, TEXT + state*3))); // ICON_ARROW_DOWN_FILL / ICON_ARROW_RIGHT_FILL +#endif + } + //-------------------------------------------------------------------- + + return value; +} + +// Color fade-in or fade-out, alpha goes from 0.0f to 1.0f +// WARNING: It multiplies current alpha by alpha scale factor +static Color GuiFade(Color color, float alpha) +{ + if (alpha < 0.0f) alpha = 0.0f; + else if (alpha > 1.0f) alpha = 1.0f; + + Color result = { color.r, color.g, color.b, (unsigned char)(color.a*alpha) }; + + return result; +} + +#if defined(RAYGUI_STANDALONE) +// Returns a Color struct from hexadecimal value +static Color GetColor(int hexValue) +{ + Color color; + + color.r = (unsigned char)(hexValue >> 24) & 0xff; + color.g = (unsigned char)(hexValue >> 16) & 0xff; + color.b = (unsigned char)(hexValue >> 8) & 0xff; + color.a = (unsigned char)hexValue & 0xff; + + return color; +} + +// Returns hexadecimal value for a Color +static int ColorToInt(Color color) +{ + return (((int)color.r << 24) | ((int)color.g << 16) | ((int)color.b << 8) | (int)color.a); +} + +// Check if point is inside rectangle +static bool CheckCollisionPointRec(Vector2 point, Rectangle rec) +{ + bool collision = false; + + if ((point.x >= rec.x) && (point.x <= (rec.x + rec.width)) && + (point.y >= rec.y) && (point.y <= (rec.y + rec.height))) collision = true; + + return collision; +} + +// Formatting of text with variables to 'embed' +static const char *TextFormat(const char *text, ...) +{ + #if !defined(RAYGUI_TEXTFORMAT_MAX_SIZE) + #define RAYGUI_TEXTFORMAT_MAX_SIZE 256 + #endif + + static char buffer[RAYGUI_TEXTFORMAT_MAX_SIZE]; + + va_list args; + va_start(args, text); + vsnprintf(buffer, RAYGUI_TEXTFORMAT_MAX_SIZE, text, args); + va_end(args); + + return buffer; +} + +// Draw rectangle with vertical gradient fill color +// NOTE: This function is only used by GuiColorPicker() +static void DrawRectangleGradientV(int posX, int posY, int width, int height, Color color1, Color color2) +{ + Rectangle bounds = { (float)posX, (float)posY, (float)width, (float)height }; + DrawRectangleGradientEx(bounds, color1, color2, color2, color1); +} + +// Split string into multiple strings +char **TextSplit(const char *text, char delimiter, int *count) +{ + // NOTE: Current implementation returns a copy of the provided string with '\0' (string end delimiter) + // inserted between strings defined by "delimiter" parameter. No memory is dynamically allocated, + // all used memory is static... it has some limitations: + // 1. Maximum number of possible split strings is set by RAYGUI_TEXTSPLIT_MAX_ITEMS + // 2. Maximum size of text to split is RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE + + #if !defined(RAYGUI_TEXTSPLIT_MAX_ITEMS) + #define RAYGUI_TEXTSPLIT_MAX_ITEMS 128 + #endif + #if !defined(RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE) + #define RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE 1024 + #endif + + static const char *result[RAYGUI_TEXTSPLIT_MAX_ITEMS] = { NULL }; + static char buffer[RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE] = { 0 }; + memset(buffer, 0, RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE); + + result[0] = buffer; + int counter = 0; + + if (text != NULL) + { + counter = 1; + + // Count how many substrings text contains and point to every one of them + for (int i = 0; i < RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE; i++) + { + buffer[i] = text[i]; + if (buffer[i] == '\0') break; + else if (buffer[i] == delimiter) + { + buffer[i] = '\0'; // Set an end of string at this point + result[counter] = buffer + i + 1; + counter++; + + if (counter == RAYGUI_TEXTSPLIT_MAX_ITEMS) break; + } + } + } + + *count = counter; + return result; +} + +// Get integer value from text +// NOTE: This function replaces atoi() [stdlib.h] +static int TextToInteger(const char *text) +{ + int value = 0; + int sign = 1; + + if ((text[0] == '+') || (text[0] == '-')) + { + if (text[0] == '-') sign = -1; + text++; + } + + for (int i = 0; ((text[i] >= '0') && (text[i] <= '9')); i++) value = value*10 + (int)(text[i] - '0'); + + return value*sign; +} + +// Get float value from text +// NOTE: This function replaces atof() [stdlib.h] +// WARNING: Only '.' character is understood as decimal point +static float TextToFloat(const char *text) +{ + float value = 0.0f; + float sign = 1.0f; + + if ((text[0] == '+') || (text[0] == '-')) + { + if (text[0] == '-') sign = -1.0f; + text++; + } + + int i = 0; + for (; ((text[i] >= '0') && (text[i] <= '9')); i++) value = value*10.0f + (float)(text[i] - '0'); + + if (text[i++] != '.') value *= sign; + else + { + float divisor = 10.0f; + for (; ((text[i] >= '0') && (text[i] <= '9')); i++) + { + value += ((float)(text[i] - '0'))/divisor; + divisor = divisor*10.0f; + } + } + + return value; +} + +// Encode codepoint into UTF-8 text (char array size returned as parameter) +static const char *CodepointToUTF8(int codepoint, int *byteSize) +{ + static char utf8[6] = { 0 }; + int size = 0; + + if (codepoint <= 0x7f) + { + utf8[0] = (char)codepoint; + size = 1; + } + else if (codepoint <= 0x7ff) + { + utf8[0] = (char)(((codepoint >> 6) & 0x1f) | 0xc0); + utf8[1] = (char)((codepoint & 0x3f) | 0x80); + size = 2; + } + else if (codepoint <= 0xffff) + { + utf8[0] = (char)(((codepoint >> 12) & 0x0f) | 0xe0); + utf8[1] = (char)(((codepoint >> 6) & 0x3f) | 0x80); + utf8[2] = (char)((codepoint & 0x3f) | 0x80); + size = 3; + } + else if (codepoint <= 0x10ffff) + { + utf8[0] = (char)(((codepoint >> 18) & 0x07) | 0xf0); + utf8[1] = (char)(((codepoint >> 12) & 0x3f) | 0x80); + utf8[2] = (char)(((codepoint >> 6) & 0x3f) | 0x80); + utf8[3] = (char)((codepoint & 0x3f) | 0x80); + size = 4; + } + + *byteSize = size; + + return utf8; +} + +// Get next codepoint in a UTF-8 encoded text, scanning until '\0' is found +// When a invalid UTF-8 byte is encountered, exiting as soon as possible and returning a '?'(0x3f) codepoint +// Total number of bytes processed are returned as a parameter +// NOTE: The standard says U+FFFD should be returned in case of errors +// but that character is not supported by the default font in raylib +static int GetCodepointNext(const char *text, int *codepointSize) +{ + const char *ptr = text; + int codepoint = 0x3f; // Codepoint (defaults to '?') + *codepointSize = 1; + + // Get current codepoint and bytes processed + if (0xf0 == (0xf8 & ptr[0])) + { + // 4 byte UTF-8 codepoint + if (((ptr[1] & 0xC0) ^ 0x80) || ((ptr[2] & 0xC0) ^ 0x80) || ((ptr[3] & 0xC0) ^ 0x80)) { return codepoint; } //10xxxxxx checks + codepoint = ((0x07 & ptr[0]) << 18) | ((0x3f & ptr[1]) << 12) | ((0x3f & ptr[2]) << 6) | (0x3f & ptr[3]); + *codepointSize = 4; + } + else if (0xe0 == (0xf0 & ptr[0])) + { + // 3 byte UTF-8 codepoint + if (((ptr[1] & 0xC0) ^ 0x80) || ((ptr[2] & 0xC0) ^ 0x80)) { return codepoint; } //10xxxxxx checks + codepoint = ((0x0f & ptr[0]) << 12) | ((0x3f & ptr[1]) << 6) | (0x3f & ptr[2]); + *codepointSize = 3; + } + else if (0xc0 == (0xe0 & ptr[0])) + { + // 2 byte UTF-8 codepoint + if ((ptr[1] & 0xC0) ^ 0x80) { return codepoint; } //10xxxxxx checks + codepoint = ((0x1f & ptr[0]) << 6) | (0x3f & ptr[1]); + *codepointSize = 2; + } + else if (0x00 == (0x80 & ptr[0])) + { + // 1 byte UTF-8 codepoint + codepoint = ptr[0]; + *codepointSize = 1; + } + + return codepoint; +} +#endif // RAYGUI_STANDALONE + +#endif // RAYGUI_IMPLEMENTATION diff --git a/.zig-cache/o/0cb472c14c1ac56695fea882facb905b/raylib.h b/.zig-cache/o/0cb472c14c1ac56695fea882facb905b/raylib.h new file mode 100644 index 0000000..bdca643 --- /dev/null +++ b/.zig-cache/o/0cb472c14c1ac56695fea882facb905b/raylib.h @@ -0,0 +1,1743 @@ +/********************************************************************************************** +* +* raylib v6.0 - A simple and easy-to-use library to enjoy videogames programming (www.raylib.com) +* +* FEATURES: +* - NO external dependencies, all required libraries included with raylib +* - Multiplatform: Windows, Linux, macOS, FreeBSD, Web, Android, Raspberry Pi, DRM native... +* - Written in plain C code (C99) in PascalCase/camelCase notation +* - Hardware accelerated with OpenGL (1.1, 2.1, 3.3, 4.3, ES2, ES3 - choose at compile) +* - Software renderer optional, for systems with no GPU: [rlsw] +* - Custom OpenGL abstraction layer (usable as standalone module): [rlgl] +* - Multiple Fonts formats supported (TTF, OTF, FNT, BDF, Sprite fonts) +* - Many texture formats supported, including compressed formats (DXT, ETC, ASTC) +* - Full 3d support for 3d Shapes, Models, Billboards, Heightmaps and more! +* - Flexible Materials system, supporting classic maps and PBR maps +* - Animated 3D models supported (skeletal bones animation) (IQM, M3D, GLTF) +* - Shaders support, including Model shaders and Postprocessing shaders +* - Powerful math module for Vector, Matrix and Quaternion operations: [raymath] +* - Audio loading and playing with streaming support (WAV, OGG, MP3, FLAC, QOA, XM, MOD) +* - VR stereo rendering with configurable HMD device parameters +* - Bindings to multiple programming languages available! +* +* NOTES: +* - One default Font is loaded on InitWindow()->LoadFontDefault() [core, text] +* - One default Texture2D is loaded on rlglInit(), 1x1 white pixel R8G8B8A8 [rlgl] (OpenGL 3.3 or ES2) +* - One default Shader is loaded on rlglInit()->rlLoadShaderDefault() [rlgl] (OpenGL 3.3 or ES2) +* - One default RenderBatch is loaded on rlglInit()->rlLoadRenderBatch() [rlgl] (OpenGL 3.3 or ES2) +* +* DEPENDENCIES: +* [rcore] Depends on the selected platform backend, check rcore.c header for details +* [rlgl] glad/glad_gles2 (David Herberth - github.com/Dav1dde/glad) for OpenGL extensions loading +* [raudio] miniaudio (David Reid - github.com/mackron/miniaudio) for audio device/context management +* +* OPTIONAL DEPENDENCIES (included): +* [rcore] sinfl (Micha Mettke) for DEFLATE decompression algorithm +* [rcore] sdefl (Micha Mettke) for DEFLATE compression algorithm +* [rcore] rprand (Ramon Santamaria) for pseudo-random numbers generation +* [rtextures] qoi (Dominic Szablewski - https://phoboslab.org) for QOI image management +* [rtextures] stb_image (Sean Barrett) for images loading (BMP, TGA, PNG, JPEG, HDR...) +* [rtextures] stb_image_write (Sean Barrett) for image writing (BMP, TGA, PNG, JPG) +* [rtextures] stb_image_resize2 (Sean Barrett) for image resizing algorithms +* [rtextures] stb_perlin (Sean Barrett) for Perlin Noise image generation +* [rtextures] rltexgpu (Ramon Santamaria) for GPU-compressed texture formats +* [rtext] stb_truetype (Sean Barrett) for ttf fonts loading +* [rtext] stb_rect_pack (Sean Barrett) for rectangles packing +* [rmodels] par_shapes (Philip Rideout) for parametric 3d shapes generation +* [rmodels] tinyobj_loader_c (Syoyo Fujita) for models loading (OBJ, MTL) +* [rmodels] cgltf (Johannes Kuhlmann) for models loading (glTF) +* [rmodels] m3d (bzt) for models loading (M3D, https://bztsrc.gitlab.io/model3d) +* [rmodels] vox_loader (Johann Nadalutti) for models loading (VOX) +* [raudio] dr_wav (David Reid) for WAV audio file loading +* [raudio] dr_flac (David Reid) for FLAC audio file loading +* [raudio] dr_mp3 (David Reid) for MP3 audio file loading +* [raudio] stb_vorbis (Sean Barrett) for OGG audio loading +* [raudio] jar_xm (Joshua Reisenauer) for XM audio module loading +* [raudio] jar_mod (Joshua Reisenauer) for MOD audio module loading +* [raudio] qoa (Dominic Szablewski - https://phoboslab.org) for QOA audio management +* +* +* LICENSE: zlib/libpng +* +* raylib is licensed under an unmodified zlib/libpng license, which is an OSI-certified, +* BSD-like license that allows static linking with closed source software: +* +* Copyright (c) 2013-2026 Ramon Santamaria (@raysan5) +* +* This software is provided "as-is", without any express or implied warranty. In no event +* will the authors be held liable for any damages arising from the use of this software. +* +* Permission is granted to anyone to use this software for any purpose, including commercial +* applications, and to alter it and redistribute it freely, subject to the following restrictions: +* +* 1. The origin of this software must not be misrepresented; you must not claim that you +* wrote the original software. If you use this software in a product, an acknowledgment +* in the product documentation would be appreciated but is not required. +* +* 2. Altered source versions must be plainly marked as such, and must not be misrepresented +* as being the original software. +* +* 3. This notice may not be removed or altered from any source distribution. +* +**********************************************************************************************/ + +#ifndef RAYLIB_H +#define RAYLIB_H + +#include // Required for: va_list - Only used by TraceLogCallback + +#define RAYLIB_VERSION_MAJOR 6 +#define RAYLIB_VERSION_MINOR 0 +#define RAYLIB_VERSION_PATCH 0 +#define RAYLIB_VERSION "6.0" + +// Function specifiers in case library is build/used as a shared library +// NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll +// NOTE: visibility("default") attribute makes symbols "visible" when compiled with -fvisibility=hidden +#if defined(_WIN32) + #if defined(__TINYC__) + #define __declspec(x) __attribute__((x)) + #endif + #if defined(BUILD_LIBTYPE_SHARED) + #define RLAPI __declspec(dllexport) // Building the library as a Win32 shared library (.dll) + #elif defined(USE_LIBTYPE_SHARED) + #define RLAPI __declspec(dllimport) // Using the library as a Win32 shared library (.dll) + #endif +#else + #if defined(BUILD_LIBTYPE_SHARED) + #define RLAPI __attribute__((visibility("default"))) // Building as a Unix shared library (.so/.dylib) + #endif +#endif + +#ifndef RLAPI + #define RLAPI // Functions defined as 'extern' by default (implicit specifiers) +#endif + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- +#ifndef PI + #define PI 3.14159265358979323846f +#endif +#ifndef DEG2RAD + #define DEG2RAD (PI/180.0f) +#endif +#ifndef RAD2DEG + #define RAD2DEG (180.0f/PI) +#endif + +// Allow custom memory allocators +// NOTE: Require recompiling raylib sources +#ifndef RL_MALLOC + #define RL_MALLOC(sz) malloc(sz) +#endif +#ifndef RL_CALLOC + #define RL_CALLOC(n,sz) calloc(n,sz) +#endif +#ifndef RL_REALLOC + #define RL_REALLOC(ptr,sz) realloc(ptr,sz) +#endif +#ifndef RL_FREE + #define RL_FREE(ptr) free(ptr) +#endif + +// NOTE: MSVC C++ compiler does not support compound literals (C99 feature) +// Plain structures in C++ (without constructors) can be initialized with { } +// This is called aggregate initialization (C++11 feature) +#if defined(__cplusplus) + #define CLITERAL(type) type +#else + #define CLITERAL(type) (type) +#endif + +// Some compilers (mostly macos clang) default to C++98, +// where aggregate initialization can't be used +// So, give a more clear error stating how to fix this +#if !defined(_MSC_VER) && (defined(__cplusplus) && __cplusplus < 201103L) + #error "C++11 or later is required. Add -std=c++11" +#endif + +// NOTE: Set some defines with some data types declared by raylib +// Other modules (raymath, rlgl) also require some of those types, so, +// to be able to use those other modules as standalone (not depending on raylib) +// this defines are useful for internal check and avoid type (re)definitions +#define RL_COLOR_TYPE +#define RL_RECTANGLE_TYPE +#define RL_VECTOR2_TYPE +#define RL_VECTOR3_TYPE +#define RL_VECTOR4_TYPE +#define RL_QUATERNION_TYPE +#define RL_MATRIX_TYPE + +// Some Basic Colors +// NOTE: Custom raylib color palette for amazing visuals on WHITE background +#define LIGHTGRAY CLITERAL(Color){ 200, 200, 200, 255 } // Light Gray +#define GRAY CLITERAL(Color){ 130, 130, 130, 255 } // Gray +#define DARKGRAY CLITERAL(Color){ 80, 80, 80, 255 } // Dark Gray +#define YELLOW CLITERAL(Color){ 253, 249, 0, 255 } // Yellow +#define GOLD CLITERAL(Color){ 255, 203, 0, 255 } // Gold +#define ORANGE CLITERAL(Color){ 255, 161, 0, 255 } // Orange +#define PINK CLITERAL(Color){ 255, 109, 194, 255 } // Pink +#define RED CLITERAL(Color){ 230, 41, 55, 255 } // Red +#define MAROON CLITERAL(Color){ 190, 33, 55, 255 } // Maroon +#define GREEN CLITERAL(Color){ 0, 228, 48, 255 } // Green +#define LIME CLITERAL(Color){ 0, 158, 47, 255 } // Lime +#define DARKGREEN CLITERAL(Color){ 0, 117, 44, 255 } // Dark Green +#define SKYBLUE CLITERAL(Color){ 102, 191, 255, 255 } // Sky Blue +#define BLUE CLITERAL(Color){ 0, 121, 241, 255 } // Blue +#define DARKBLUE CLITERAL(Color){ 0, 82, 172, 255 } // Dark Blue +#define PURPLE CLITERAL(Color){ 200, 122, 255, 255 } // Purple +#define VIOLET CLITERAL(Color){ 135, 60, 190, 255 } // Violet +#define DARKPURPLE CLITERAL(Color){ 112, 31, 126, 255 } // Dark Purple +#define BEIGE CLITERAL(Color){ 211, 176, 131, 255 } // Beige +#define BROWN CLITERAL(Color){ 127, 106, 79, 255 } // Brown +#define DARKBROWN CLITERAL(Color){ 76, 63, 47, 255 } // Dark Brown + +#define WHITE CLITERAL(Color){ 255, 255, 255, 255 } // White +#define BLACK CLITERAL(Color){ 0, 0, 0, 255 } // Black +#define BLANK CLITERAL(Color){ 0, 0, 0, 0 } // Blank (Transparent) +#define MAGENTA CLITERAL(Color){ 255, 0, 255, 255 } // Magenta +#define RAYWHITE CLITERAL(Color){ 245, 245, 245, 255 } // My own White (raylib logo) + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +// Boolean type +#if (defined(__STDC__) && __STDC_VERSION__ >= 199901L) || (defined(_MSC_VER) && _MSC_VER >= 1800) + #include +#elif !defined(__cplusplus) && !defined(bool) + typedef enum bool { false = 0, true = !false } bool; + #define RL_BOOL_TYPE +#endif + +// Vector2, 2 components +typedef struct Vector2 { + float x; // Vector x component + float y; // Vector y component +} Vector2; + +// Vector3, 3 components +typedef struct Vector3 { + float x; // Vector x component + float y; // Vector y component + float z; // Vector z component +} Vector3; + +// Vector4, 4 components +typedef struct Vector4 { + float x; // Vector x component + float y; // Vector y component + float z; // Vector z component + float w; // Vector w component +} Vector4; + +// Quaternion, 4 components (Vector4 alias) +typedef Vector4 Quaternion; + +// Matrix, 4x4 components, column major, OpenGL style, right-handed +typedef struct Matrix { + float m0, m4, m8, m12; // Matrix first row (4 components) + float m1, m5, m9, m13; // Matrix second row (4 components) + float m2, m6, m10, m14; // Matrix third row (4 components) + float m3, m7, m11, m15; // Matrix fourth row (4 components) +} Matrix; + +// Color, 4 components, R8G8B8A8 (32bit) +typedef struct Color { + unsigned char r; // Color red value + unsigned char g; // Color green value + unsigned char b; // Color blue value + unsigned char a; // Color alpha value +} Color; + +// Rectangle, 4 components +typedef struct Rectangle { + float x; // Rectangle top-left corner position x + float y; // Rectangle top-left corner position y + float width; // Rectangle width + float height; // Rectangle height +} Rectangle; + +// Image, pixel data stored in CPU memory (RAM) +typedef struct Image { + void *data; // Image raw data + int width; // Image base width + int height; // Image base height + int mipmaps; // Mipmap levels, 1 by default + int format; // Data format (PixelFormat type) +} Image; + +// Texture, tex data stored in GPU memory (VRAM) +typedef struct Texture { + unsigned int id; // OpenGL texture id + int width; // Texture base width + int height; // Texture base height + int mipmaps; // Mipmap levels, 1 by default + int format; // Data format (PixelFormat type) +} Texture; + +// Texture2D, same as Texture +typedef Texture Texture2D; + +// TextureCubemap, same as Texture +typedef Texture TextureCubemap; + +// RenderTexture, fbo for texture rendering +typedef struct RenderTexture { + unsigned int id; // OpenGL framebuffer object id + Texture texture; // Color buffer attachment texture + Texture depth; // Depth buffer attachment texture +} RenderTexture; + +// RenderTexture2D, same as RenderTexture +typedef RenderTexture RenderTexture2D; + +// NPatchInfo, n-patch layout info +typedef struct NPatchInfo { + Rectangle source; // Texture source rectangle + int left; // Left border offset + int top; // Top border offset + int right; // Right border offset + int bottom; // Bottom border offset + int layout; // Layout of the n-patch: 3x3, 1x3 or 3x1 +} NPatchInfo; + +// GlyphInfo, font characters glyphs info +typedef struct GlyphInfo { + int value; // Character value (Unicode) + int offsetX; // Character offset X when drawing + int offsetY; // Character offset Y when drawing + int advanceX; // Character advance position X + Image image; // Character image data +} GlyphInfo; + +// Font, font texture and GlyphInfo array data +typedef struct Font { + int baseSize; // Base size (default chars height) + int glyphCount; // Number of glyph characters + int glyphPadding; // Padding around the glyph characters + Texture2D texture; // Texture atlas containing the glyphs + Rectangle *recs; // Rectangles in texture for the glyphs + GlyphInfo *glyphs; // Glyphs info data +} Font; + +// Camera, defines position/orientation in 3d space +typedef struct Camera3D { + Vector3 position; // Camera position + Vector3 target; // Camera target it looks-at + Vector3 up; // Camera up vector (rotation over its axis) + float fovy; // Camera field-of-view aperture in Y (degrees) in perspective, used as near plane height in world units in orthographic + int projection; // Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC +} Camera3D; + +typedef Camera3D Camera; // Camera type fallback, defaults to Camera3D + +// Camera2D, defines position/orientation in 2d space +typedef struct Camera2D { + Vector2 offset; // Camera offset (screen space offset from window origin) + Vector2 target; // Camera target (world space target point that is mapped to screen space offset) + float rotation; // Camera rotation in degrees (pivots around target) + float zoom; // Camera zoom (scaling around target), must not be set to 0, set to 1.0f for no scale +} Camera2D; + +// Mesh, vertex data and vao/vbo +typedef struct Mesh { + int vertexCount; // Number of vertices stored in arrays + int triangleCount; // Number of triangles stored (indexed or not) + + // Vertex attributes data + float *vertices; // Vertex position (XYZ - 3 components per vertex) (shader-location = 0) + float *texcoords; // Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1) + float *texcoords2; // Vertex texture second coordinates (UV - 2 components per vertex) (shader-location = 5) + float *normals; // Vertex normals (XYZ - 3 components per vertex) (shader-location = 2) + float *tangents; // Vertex tangents (XYZW - 4 components per vertex) (shader-location = 4) + unsigned char *colors; // Vertex colors (RGBA - 4 components per vertex) (shader-location = 3) + unsigned short *indices; // Vertex indices (in case vertex data comes indexed) + + // Skin data for animation + int boneCount; // Number of bones (MAX: 256 bones) + unsigned char *boneIndices; // Vertex bone indices, up to 4 bones influence by vertex (skinning) (shader-location = 6) + float *boneWeights; // Vertex bone weight, up to 4 bones influence by vertex (skinning) (shader-location = 7) + + // Runtime animation vertex data (CPU skinning) + // NOTE: In case of GPU skinning, not used, pointers are NULL + float *animVertices; // Animated vertex positions (after bones transformations) + float *animNormals; // Animated normals (after bones transformations) + + // OpenGL identifiers + unsigned int vaoId; // OpenGL Vertex Array Object id + unsigned int *vboId; // OpenGL Vertex Buffer Objects id (default vertex data) +} Mesh; + +// Shader +typedef struct Shader { + unsigned int id; // Shader program id + int *locs; // Shader locations array (RL_MAX_SHADER_LOCATIONS) +} Shader; + +// MaterialMap +typedef struct MaterialMap { + Texture2D texture; // Material map texture + Color color; // Material map color + float value; // Material map value +} MaterialMap; + +// Material, includes shader and maps +typedef struct Material { + Shader shader; // Material shader + MaterialMap *maps; // Material maps array (MAX_MATERIAL_MAPS) + float params[4]; // Material generic parameters (if required) +} Material; + +// Transform, vertex transformation data +typedef struct Transform { + Vector3 translation; // Translation + Quaternion rotation; // Rotation + Vector3 scale; // Scale +} Transform; + +// Anim pose, an array of Transform[] +typedef Transform *ModelAnimPose; + +// Bone, skeletal animation bone +typedef struct BoneInfo { + char name[32]; // Bone name + int parent; // Bone parent +} BoneInfo; + +// Skeleton, animation bones hierarchy +typedef struct ModelSkeleton { + int boneCount; // Number of bones + BoneInfo *bones; // Bones information (skeleton) + ModelAnimPose bindPose; // Bones base transformation (Transform[]) +} ModelSkeleton; + +// Model, meshes, materials and animation data +typedef struct Model { + Matrix transform; // Local transform matrix + + int meshCount; // Number of meshes + int materialCount; // Number of materials + Mesh *meshes; // Meshes array + Material *materials; // Materials array + int *meshMaterial; // Mesh material number + + // Animation data + ModelSkeleton skeleton; // Skeleton for animation + + // Runtime animation data (CPU/GPU skinning) + ModelAnimPose currentPose; // Current animation pose (Transform[]) + Matrix *boneMatrices; // Bones animated transformation matrices +} Model; + +// ModelAnimation, contains a full animation sequence +typedef struct ModelAnimation { + char name[32]; // Animation name + + int boneCount; // Number of bones (per pose) + int keyframeCount; // Number of animation key frames + ModelAnimPose *keyframePoses; // Animation sequence keyframe poses [keyframe][pose] +} ModelAnimation; + +// Ray, ray for raycasting +typedef struct Ray { + Vector3 position; // Ray position (origin) + Vector3 direction; // Ray direction (normalized) +} Ray; + +// RayCollision, ray hit information +typedef struct RayCollision { + bool hit; // Did the ray hit something? + float distance; // Distance to the nearest hit + Vector3 point; // Point of the nearest hit + Vector3 normal; // Surface normal of hit +} RayCollision; + +// BoundingBox +typedef struct BoundingBox { + Vector3 min; // Minimum vertex box-corner + Vector3 max; // Maximum vertex box-corner +} BoundingBox; + +// Wave, audio wave data +typedef struct Wave { + unsigned int frameCount; // Total number of frames (considering channels) + unsigned int sampleRate; // Frequency (samples per second) + unsigned int sampleSize; // Bit depth (bits per sample): 8, 16, 32 (24 not supported) + unsigned int channels; // Number of channels (1-mono, 2-stereo, ...) + void *data; // Buffer data pointer +} Wave; + +// Opaque structs declaration +// NOTE: Actual structs are defined internally in raudio module +typedef struct rAudioBuffer rAudioBuffer; +typedef struct rAudioProcessor rAudioProcessor; + +// AudioStream, custom audio stream +typedef struct AudioStream { + rAudioBuffer *buffer; // Pointer to internal data used by the audio system + rAudioProcessor *processor; // Pointer to internal data processor, useful for audio effects + + unsigned int sampleRate; // Frequency (samples per second) + unsigned int sampleSize; // Bit depth (bits per sample): 8, 16, 32 (24 not supported) + unsigned int channels; // Number of channels (1-mono, 2-stereo, ...) +} AudioStream; + +// Sound +typedef struct Sound { + AudioStream stream; // Audio stream + unsigned int frameCount; // Total number of frames (considering channels) +} Sound; + +// Music, audio stream, anything longer than ~10 seconds should be streamed +typedef struct Music { + AudioStream stream; // Audio stream + unsigned int frameCount; // Total number of frames (considering channels) + bool looping; // Music looping enable + + int ctxType; // Type of music context (audio filetype) + void *ctxData; // Audio context data, depends on type +} Music; + +// VrDeviceInfo, Head-Mounted-Display device parameters +typedef struct VrDeviceInfo { + int hResolution; // Horizontal resolution in pixels + int vResolution; // Vertical resolution in pixels + float hScreenSize; // Horizontal size in meters + float vScreenSize; // Vertical size in meters + float eyeToScreenDistance; // Distance between eye and display in meters + float lensSeparationDistance; // Lens separation distance in meters + float interpupillaryDistance; // IPD (distance between pupils) in meters + float lensDistortionValues[4]; // Lens distortion constant parameters + float chromaAbCorrection[4]; // Chromatic aberration correction parameters +} VrDeviceInfo; + +// VrStereoConfig, VR stereo rendering configuration for simulator +typedef struct VrStereoConfig { + Matrix projection[2]; // VR projection matrices (per eye) + Matrix viewOffset[2]; // VR view offset matrices (per eye) + float leftLensCenter[2]; // VR left lens center + float rightLensCenter[2]; // VR right lens center + float leftScreenCenter[2]; // VR left screen center + float rightScreenCenter[2]; // VR right screen center + float scale[2]; // VR distortion scale + float scaleIn[2]; // VR distortion scale in +} VrStereoConfig; + +// File path list +typedef struct FilePathList { + unsigned int count; // Filepaths entries count + char **paths; // Filepaths entries +} FilePathList; + +// Automation event +typedef struct AutomationEvent { + unsigned int frame; // Event frame + unsigned int type; // Event type (AutomationEventType) + int params[4]; // Event parameters (if required) +} AutomationEvent; + +// Automation event list +typedef struct AutomationEventList { + unsigned int capacity; // Events max entries (MAX_AUTOMATION_EVENTS) + unsigned int count; // Events entries count + AutomationEvent *events; // Events entries +} AutomationEventList; + +//---------------------------------------------------------------------------------- +// Enumerators Definition +//---------------------------------------------------------------------------------- +// System/Window config flags +// NOTE: Every bit registers one state (use it with bit masks) +// By default all flags are set to 0 +typedef enum { + FLAG_VSYNC_HINT = 0x00000040, // Set to try enabling V-Sync on GPU + FLAG_FULLSCREEN_MODE = 0x00000002, // Set to run program in fullscreen + FLAG_WINDOW_RESIZABLE = 0x00000004, // Set to allow resizable window + FLAG_WINDOW_UNDECORATED = 0x00000008, // Set to disable window decoration (frame and buttons) + FLAG_WINDOW_HIDDEN = 0x00000080, // Set to hide window + FLAG_WINDOW_MINIMIZED = 0x00000200, // Set to minimize window (iconify) + FLAG_WINDOW_MAXIMIZED = 0x00000400, // Set to maximize window (expanded to monitor) + FLAG_WINDOW_UNFOCUSED = 0x00000800, // Set to window non focused + FLAG_WINDOW_TOPMOST = 0x00001000, // Set to window always on top + FLAG_WINDOW_ALWAYS_RUN = 0x00000100, // Set to allow windows running while minimized + FLAG_WINDOW_TRANSPARENT = 0x00000010, // Set to allow transparent framebuffer + FLAG_WINDOW_HIGHDPI = 0x00002000, // Set to support HighDPI + FLAG_WINDOW_MOUSE_PASSTHROUGH = 0x00004000, // Set to support mouse passthrough, only supported when FLAG_WINDOW_UNDECORATED + FLAG_BORDERLESS_WINDOWED_MODE = 0x00008000, // Set to run program in borderless windowed mode + FLAG_MSAA_4X_HINT = 0x00000020, // Set to try enabling MSAA 4X + FLAG_INTERLACED_HINT = 0x00010000 // Set to try enabling interlaced video format (for V3D) +} ConfigFlags; + +// Trace log level +// NOTE: Organized by priority level +typedef enum { + LOG_ALL = 0, // Display all logs + LOG_TRACE, // Trace logging, intended for internal use only + LOG_DEBUG, // Debug logging, used for internal debugging, it should be disabled on release builds + LOG_INFO, // Info logging, used for program execution info + LOG_WARNING, // Warning logging, used on recoverable failures + LOG_ERROR, // Error logging, used on unrecoverable failures + LOG_FATAL, // Fatal logging, used to abort program: exit(EXIT_FAILURE) + LOG_NONE // Disable logging +} TraceLogLevel; + +// Keyboard keys (US keyboard layout) +// NOTE: Use GetKeyPressed() to allow redefining required keys for alternative layouts +typedef enum { + KEY_NULL = 0, // Key: NULL, used for no key pressed + // Alphanumeric keys + KEY_APOSTROPHE = 39, // Key: ' + KEY_COMMA = 44, // Key: , + KEY_MINUS = 45, // Key: - + KEY_PERIOD = 46, // Key: . + KEY_SLASH = 47, // Key: / + KEY_ZERO = 48, // Key: 0 + KEY_ONE = 49, // Key: 1 + KEY_TWO = 50, // Key: 2 + KEY_THREE = 51, // Key: 3 + KEY_FOUR = 52, // Key: 4 + KEY_FIVE = 53, // Key: 5 + KEY_SIX = 54, // Key: 6 + KEY_SEVEN = 55, // Key: 7 + KEY_EIGHT = 56, // Key: 8 + KEY_NINE = 57, // Key: 9 + KEY_SEMICOLON = 59, // Key: ; + KEY_EQUAL = 61, // Key: = + KEY_A = 65, // Key: A | a + KEY_B = 66, // Key: B | b + KEY_C = 67, // Key: C | c + KEY_D = 68, // Key: D | d + KEY_E = 69, // Key: E | e + KEY_F = 70, // Key: F | f + KEY_G = 71, // Key: G | g + KEY_H = 72, // Key: H | h + KEY_I = 73, // Key: I | i + KEY_J = 74, // Key: J | j + KEY_K = 75, // Key: K | k + KEY_L = 76, // Key: L | l + KEY_M = 77, // Key: M | m + KEY_N = 78, // Key: N | n + KEY_O = 79, // Key: O | o + KEY_P = 80, // Key: P | p + KEY_Q = 81, // Key: Q | q + KEY_R = 82, // Key: R | r + KEY_S = 83, // Key: S | s + KEY_T = 84, // Key: T | t + KEY_U = 85, // Key: U | u + KEY_V = 86, // Key: V | v + KEY_W = 87, // Key: W | w + KEY_X = 88, // Key: X | x + KEY_Y = 89, // Key: Y | y + KEY_Z = 90, // Key: Z | z + KEY_LEFT_BRACKET = 91, // Key: [ + KEY_BACKSLASH = 92, // Key: '\' + KEY_RIGHT_BRACKET = 93, // Key: ] + KEY_GRAVE = 96, // Key: ` + // Function keys + KEY_SPACE = 32, // Key: Space + KEY_ESCAPE = 256, // Key: Esc + KEY_ENTER = 257, // Key: Enter + KEY_TAB = 258, // Key: Tab + KEY_BACKSPACE = 259, // Key: Backspace + KEY_INSERT = 260, // Key: Ins + KEY_DELETE = 261, // Key: Del + KEY_RIGHT = 262, // Key: Cursor right + KEY_LEFT = 263, // Key: Cursor left + KEY_DOWN = 264, // Key: Cursor down + KEY_UP = 265, // Key: Cursor up + KEY_PAGE_UP = 266, // Key: Page up + KEY_PAGE_DOWN = 267, // Key: Page down + KEY_HOME = 268, // Key: Home + KEY_END = 269, // Key: End + KEY_CAPS_LOCK = 280, // Key: Caps lock + KEY_SCROLL_LOCK = 281, // Key: Scroll down + KEY_NUM_LOCK = 282, // Key: Num lock + KEY_PRINT_SCREEN = 283, // Key: Print screen + KEY_PAUSE = 284, // Key: Pause + KEY_F1 = 290, // Key: F1 + KEY_F2 = 291, // Key: F2 + KEY_F3 = 292, // Key: F3 + KEY_F4 = 293, // Key: F4 + KEY_F5 = 294, // Key: F5 + KEY_F6 = 295, // Key: F6 + KEY_F7 = 296, // Key: F7 + KEY_F8 = 297, // Key: F8 + KEY_F9 = 298, // Key: F9 + KEY_F10 = 299, // Key: F10 + KEY_F11 = 300, // Key: F11 + KEY_F12 = 301, // Key: F12 + KEY_LEFT_SHIFT = 340, // Key: Shift left + KEY_LEFT_CONTROL = 341, // Key: Control left + KEY_LEFT_ALT = 342, // Key: Alt left + KEY_LEFT_SUPER = 343, // Key: Super left + KEY_RIGHT_SHIFT = 344, // Key: Shift right + KEY_RIGHT_CONTROL = 345, // Key: Control right + KEY_RIGHT_ALT = 346, // Key: Alt right + KEY_RIGHT_SUPER = 347, // Key: Super right + KEY_KB_MENU = 348, // Key: KB menu + // Keypad keys + KEY_KP_0 = 320, // Key: Keypad 0 + KEY_KP_1 = 321, // Key: Keypad 1 + KEY_KP_2 = 322, // Key: Keypad 2 + KEY_KP_3 = 323, // Key: Keypad 3 + KEY_KP_4 = 324, // Key: Keypad 4 + KEY_KP_5 = 325, // Key: Keypad 5 + KEY_KP_6 = 326, // Key: Keypad 6 + KEY_KP_7 = 327, // Key: Keypad 7 + KEY_KP_8 = 328, // Key: Keypad 8 + KEY_KP_9 = 329, // Key: Keypad 9 + KEY_KP_DECIMAL = 330, // Key: Keypad . + KEY_KP_DIVIDE = 331, // Key: Keypad / + KEY_KP_MULTIPLY = 332, // Key: Keypad * + KEY_KP_SUBTRACT = 333, // Key: Keypad - + KEY_KP_ADD = 334, // Key: Keypad + + KEY_KP_ENTER = 335, // Key: Keypad Enter + KEY_KP_EQUAL = 336, // Key: Keypad = + // Android key buttons + KEY_BACK = 4, // Key: Android back button + KEY_MENU = 5, // Key: Android menu button + KEY_VOLUME_UP = 24, // Key: Android volume up button + KEY_VOLUME_DOWN = 25 // Key: Android volume down button +} KeyboardKey; + +// Add backwards compatibility support for deprecated names +#define MOUSE_LEFT_BUTTON MOUSE_BUTTON_LEFT +#define MOUSE_RIGHT_BUTTON MOUSE_BUTTON_RIGHT +#define MOUSE_MIDDLE_BUTTON MOUSE_BUTTON_MIDDLE + +// Mouse buttons +typedef enum { + MOUSE_BUTTON_LEFT = 0, // Mouse button left + MOUSE_BUTTON_RIGHT = 1, // Mouse button right + MOUSE_BUTTON_MIDDLE = 2, // Mouse button middle (pressed wheel) + MOUSE_BUTTON_SIDE = 3, // Mouse button side (advanced mouse device) + MOUSE_BUTTON_EXTRA = 4, // Mouse button extra (advanced mouse device) + MOUSE_BUTTON_FORWARD = 5, // Mouse button forward (advanced mouse device) + MOUSE_BUTTON_BACK = 6, // Mouse button back (advanced mouse device) +} MouseButton; + +// Mouse cursor +typedef enum { + MOUSE_CURSOR_DEFAULT = 0, // Default pointer shape + MOUSE_CURSOR_ARROW = 1, // Arrow shape + MOUSE_CURSOR_IBEAM = 2, // Text writing cursor shape + MOUSE_CURSOR_CROSSHAIR = 3, // Cross shape + MOUSE_CURSOR_POINTING_HAND = 4, // Pointing hand cursor + MOUSE_CURSOR_RESIZE_EW = 5, // Horizontal resize/move arrow shape + MOUSE_CURSOR_RESIZE_NS = 6, // Vertical resize/move arrow shape + MOUSE_CURSOR_RESIZE_NWSE = 7, // Top-left to bottom-right diagonal resize/move arrow shape + MOUSE_CURSOR_RESIZE_NESW = 8, // The top-right to bottom-left diagonal resize/move arrow shape + MOUSE_CURSOR_RESIZE_ALL = 9, // The omnidirectional resize/move cursor shape + MOUSE_CURSOR_NOT_ALLOWED = 10 // The operation-not-allowed shape +} MouseCursor; + +// Gamepad buttons +typedef enum { + GAMEPAD_BUTTON_UNKNOWN = 0, // Unknown button, for error checking + GAMEPAD_BUTTON_LEFT_FACE_UP, // Gamepad left DPAD up button + GAMEPAD_BUTTON_LEFT_FACE_RIGHT, // Gamepad left DPAD right button + GAMEPAD_BUTTON_LEFT_FACE_DOWN, // Gamepad left DPAD down button + GAMEPAD_BUTTON_LEFT_FACE_LEFT, // Gamepad left DPAD left button + GAMEPAD_BUTTON_RIGHT_FACE_UP, // Gamepad right button up (i.e. PS3: Triangle, Xbox: Y) + GAMEPAD_BUTTON_RIGHT_FACE_RIGHT, // Gamepad right button right (i.e. PS3: Circle, Xbox: B) + GAMEPAD_BUTTON_RIGHT_FACE_DOWN, // Gamepad right button down (i.e. PS3: Cross, Xbox: A) + GAMEPAD_BUTTON_RIGHT_FACE_LEFT, // Gamepad right button left (i.e. PS3: Square, Xbox: X) + GAMEPAD_BUTTON_LEFT_TRIGGER_1, // Gamepad top/back trigger left (first), it could be a trailing button + GAMEPAD_BUTTON_LEFT_TRIGGER_2, // Gamepad top/back trigger left (second), it could be a trailing button + GAMEPAD_BUTTON_RIGHT_TRIGGER_1, // Gamepad top/back trigger right (first), it could be a trailing button + GAMEPAD_BUTTON_RIGHT_TRIGGER_2, // Gamepad top/back trigger right (second), it could be a trailing button + GAMEPAD_BUTTON_MIDDLE_LEFT, // Gamepad center buttons, left one (i.e. PS3: Select) + GAMEPAD_BUTTON_MIDDLE, // Gamepad center buttons, middle one (i.e. PS3: PS, Xbox: XBOX) + GAMEPAD_BUTTON_MIDDLE_RIGHT, // Gamepad center buttons, right one (i.e. PS3: Start) + GAMEPAD_BUTTON_LEFT_THUMB, // Gamepad joystick pressed button left + GAMEPAD_BUTTON_RIGHT_THUMB // Gamepad joystick pressed button right +} GamepadButton; + +// Gamepad axes +typedef enum { + GAMEPAD_AXIS_LEFT_X = 0, // Gamepad left stick X axis + GAMEPAD_AXIS_LEFT_Y = 1, // Gamepad left stick Y axis + GAMEPAD_AXIS_RIGHT_X = 2, // Gamepad right stick X axis + GAMEPAD_AXIS_RIGHT_Y = 3, // Gamepad right stick Y axis + GAMEPAD_AXIS_LEFT_TRIGGER = 4, // Gamepad back trigger left, pressure level: [1..-1] + GAMEPAD_AXIS_RIGHT_TRIGGER = 5 // Gamepad back trigger right, pressure level: [1..-1] +} GamepadAxis; + +// Material map index +typedef enum { + MATERIAL_MAP_ALBEDO = 0, // Albedo material (same as: MATERIAL_MAP_DIFFUSE) + MATERIAL_MAP_METALNESS, // Metalness material (same as: MATERIAL_MAP_SPECULAR) + MATERIAL_MAP_NORMAL, // Normal material + MATERIAL_MAP_ROUGHNESS, // Roughness material + MATERIAL_MAP_OCCLUSION, // Ambient occlusion material + MATERIAL_MAP_EMISSION, // Emission material + MATERIAL_MAP_HEIGHT, // Heightmap material + MATERIAL_MAP_CUBEMAP, // Cubemap material (NOTE: Uses GL_TEXTURE_CUBE_MAP) + MATERIAL_MAP_IRRADIANCE, // Irradiance material (NOTE: Uses GL_TEXTURE_CUBE_MAP) + MATERIAL_MAP_PREFILTER, // Prefilter material (NOTE: Uses GL_TEXTURE_CUBE_MAP) + MATERIAL_MAP_BRDF // Brdf material +} MaterialMapIndex; + +#define MATERIAL_MAP_DIFFUSE MATERIAL_MAP_ALBEDO +#define MATERIAL_MAP_SPECULAR MATERIAL_MAP_METALNESS + +// Shader location index +// NOTE: Some locations are tried to be set automatically on shader loading, +// but only if default attributes/uniforms names are found, check config.h for names +typedef enum { + SHADER_LOC_VERTEX_POSITION = 0, // Shader location: vertex attribute: position + SHADER_LOC_VERTEX_TEXCOORD01, // Shader location: vertex attribute: texcoord01 + SHADER_LOC_VERTEX_TEXCOORD02, // Shader location: vertex attribute: texcoord02 + SHADER_LOC_VERTEX_NORMAL, // Shader location: vertex attribute: normal + SHADER_LOC_VERTEX_TANGENT, // Shader location: vertex attribute: tangent + SHADER_LOC_VERTEX_COLOR, // Shader location: vertex attribute: color + SHADER_LOC_MATRIX_MVP, // Shader location: matrix uniform: model-view-projection + SHADER_LOC_MATRIX_VIEW, // Shader location: matrix uniform: view (camera transform) + SHADER_LOC_MATRIX_PROJECTION, // Shader location: matrix uniform: projection + SHADER_LOC_MATRIX_MODEL, // Shader location: matrix uniform: model (transform) + SHADER_LOC_MATRIX_NORMAL, // Shader location: matrix uniform: normal + SHADER_LOC_VECTOR_VIEW, // Shader location: vector uniform: view + SHADER_LOC_COLOR_DIFFUSE, // Shader location: vector uniform: diffuse color + SHADER_LOC_COLOR_SPECULAR, // Shader location: vector uniform: specular color + SHADER_LOC_COLOR_AMBIENT, // Shader location: vector uniform: ambient color + SHADER_LOC_MAP_ALBEDO, // Shader location: sampler2d texture: albedo (same as: SHADER_LOC_MAP_DIFFUSE) + SHADER_LOC_MAP_METALNESS, // Shader location: sampler2d texture: metalness (same as: SHADER_LOC_MAP_SPECULAR) + SHADER_LOC_MAP_NORMAL, // Shader location: sampler2d texture: normal + SHADER_LOC_MAP_ROUGHNESS, // Shader location: sampler2d texture: roughness + SHADER_LOC_MAP_OCCLUSION, // Shader location: sampler2d texture: occlusion + SHADER_LOC_MAP_EMISSION, // Shader location: sampler2d texture: emission + SHADER_LOC_MAP_HEIGHT, // Shader location: sampler2d texture: heightmap + SHADER_LOC_MAP_CUBEMAP, // Shader location: samplerCube texture: cubemap + SHADER_LOC_MAP_IRRADIANCE, // Shader location: samplerCube texture: irradiance + SHADER_LOC_MAP_PREFILTER, // Shader location: samplerCube texture: prefilter + SHADER_LOC_MAP_BRDF, // Shader location: sampler2d texture: brdf + SHADER_LOC_VERTEX_BONEIDS, // Shader location: vertex attribute: bone indices + SHADER_LOC_VERTEX_BONEWEIGHTS, // Shader location: vertex attribute: bone weights + SHADER_LOC_MATRIX_BONETRANSFORMS, // Shader location: matrix attribute: bone transforms (animation) + SHADER_LOC_VERTEX_INSTANCETRANSFORM // Shader location: vertex attribute: instance transforms +} ShaderLocationIndex; + +#define SHADER_LOC_MAP_DIFFUSE SHADER_LOC_MAP_ALBEDO +#define SHADER_LOC_MAP_SPECULAR SHADER_LOC_MAP_METALNESS + +// Shader uniform data type +typedef enum { + SHADER_UNIFORM_FLOAT = 0, // Shader uniform type: float + SHADER_UNIFORM_VEC2, // Shader uniform type: vec2 (2 float) + SHADER_UNIFORM_VEC3, // Shader uniform type: vec3 (3 float) + SHADER_UNIFORM_VEC4, // Shader uniform type: vec4 (4 float) + SHADER_UNIFORM_INT, // Shader uniform type: int + SHADER_UNIFORM_IVEC2, // Shader uniform type: ivec2 (2 int) + SHADER_UNIFORM_IVEC3, // Shader uniform type: ivec3 (3 int) + SHADER_UNIFORM_IVEC4, // Shader uniform type: ivec4 (4 int) + SHADER_UNIFORM_UINT, // Shader uniform type: unsigned int + SHADER_UNIFORM_UIVEC2, // Shader uniform type: uivec2 (2 unsigned int) + SHADER_UNIFORM_UIVEC3, // Shader uniform type: uivec3 (3 unsigned int) + SHADER_UNIFORM_UIVEC4, // Shader uniform type: uivec4 (4 unsigned int) + SHADER_UNIFORM_SAMPLER2D // Shader uniform type: sampler2d +} ShaderUniformDataType; + +// Shader attribute data types +typedef enum { + SHADER_ATTRIB_FLOAT = 0, // Shader attribute type: float + SHADER_ATTRIB_VEC2, // Shader attribute type: vec2 (2 float) + SHADER_ATTRIB_VEC3, // Shader attribute type: vec3 (3 float) + SHADER_ATTRIB_VEC4 // Shader attribute type: vec4 (4 float) +} ShaderAttributeDataType; + +// Pixel formats +// NOTE: Support depends on OpenGL version and platform +typedef enum { + PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1, // 8 bit per pixel (no alpha) + PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA, // 8*2 bpp (2 channels) + PIXELFORMAT_UNCOMPRESSED_R5G6B5, // 16 bpp + PIXELFORMAT_UNCOMPRESSED_R8G8B8, // 24 bpp + PIXELFORMAT_UNCOMPRESSED_R5G5B5A1, // 16 bpp (1 bit alpha) + PIXELFORMAT_UNCOMPRESSED_R4G4B4A4, // 16 bpp (4 bit alpha) + PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, // 32 bpp + PIXELFORMAT_UNCOMPRESSED_R32, // 32 bpp (1 channel - float) + PIXELFORMAT_UNCOMPRESSED_R32G32B32, // 32*3 bpp (3 channels - float) + PIXELFORMAT_UNCOMPRESSED_R32G32B32A32, // 32*4 bpp (4 channels - float) + PIXELFORMAT_UNCOMPRESSED_R16, // 16 bpp (1 channel - half float) + PIXELFORMAT_UNCOMPRESSED_R16G16B16, // 16*3 bpp (3 channels - half float) + PIXELFORMAT_UNCOMPRESSED_R16G16B16A16, // 16*4 bpp (4 channels - half float) + PIXELFORMAT_COMPRESSED_DXT1_RGB, // 4 bpp (no alpha) + PIXELFORMAT_COMPRESSED_DXT1_RGBA, // 4 bpp (1 bit alpha) + PIXELFORMAT_COMPRESSED_DXT3_RGBA, // 8 bpp + PIXELFORMAT_COMPRESSED_DXT5_RGBA, // 8 bpp + PIXELFORMAT_COMPRESSED_ETC1_RGB, // 4 bpp + PIXELFORMAT_COMPRESSED_ETC2_RGB, // 4 bpp + PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA, // 8 bpp + PIXELFORMAT_COMPRESSED_PVRT_RGB, // 4 bpp + PIXELFORMAT_COMPRESSED_PVRT_RGBA, // 4 bpp + PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA, // 8 bpp + PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA // 2 bpp +} PixelFormat; + +// Texture parameters: filter mode +// NOTE 1: Filtering considers mipmaps if available in the texture +// NOTE 2: Filter is accordingly set for minification and magnification +typedef enum { + TEXTURE_FILTER_POINT = 0, // No filter, pixel approximation + TEXTURE_FILTER_BILINEAR, // Linear filtering + TEXTURE_FILTER_TRILINEAR, // Trilinear filtering (linear with mipmaps) + TEXTURE_FILTER_ANISOTROPIC_4X, // Anisotropic filtering 4x + TEXTURE_FILTER_ANISOTROPIC_8X, // Anisotropic filtering 8x + TEXTURE_FILTER_ANISOTROPIC_16X, // Anisotropic filtering 16x +} TextureFilter; + +// Texture parameters: wrap mode +typedef enum { + TEXTURE_WRAP_REPEAT = 0, // Repeats texture in tiled mode + TEXTURE_WRAP_CLAMP, // Clamps texture to edge pixel in tiled mode + TEXTURE_WRAP_MIRROR_REPEAT, // Mirrors and repeats the texture in tiled mode + TEXTURE_WRAP_MIRROR_CLAMP // Mirrors and clamps to border the texture in tiled mode +} TextureWrap; + +// Cubemap layouts +typedef enum { + CUBEMAP_LAYOUT_AUTO_DETECT = 0, // Automatically detect layout type + CUBEMAP_LAYOUT_LINE_VERTICAL, // Layout is defined by a vertical line with faces + CUBEMAP_LAYOUT_LINE_HORIZONTAL, // Layout is defined by a horizontal line with faces + CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR, // Layout is defined by a 3x4 cross with cubemap faces + CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE // Layout is defined by a 4x3 cross with cubemap faces +} CubemapLayout; + +// Font type, defines generation method +typedef enum { + FONT_DEFAULT = 0, // Default font generation, anti-aliased + FONT_BITMAP, // Bitmap font generation, no anti-aliasing + FONT_SDF // SDF font generation, requires external shader +} FontType; + +// Color blending modes (pre-defined) +typedef enum { + BLEND_ALPHA = 0, // Blend textures considering alpha (default) + BLEND_ADDITIVE, // Blend textures adding colors + BLEND_MULTIPLIED, // Blend textures multiplying colors + BLEND_ADD_COLORS, // Blend textures adding colors (alternative) + BLEND_SUBTRACT_COLORS, // Blend textures subtracting colors (alternative) + BLEND_ALPHA_PREMULTIPLY, // Blend premultiplied textures considering alpha + BLEND_CUSTOM, // Blend textures using custom src/dst factors (use rlSetBlendFactors()) + BLEND_CUSTOM_SEPARATE // Blend textures using custom rgb/alpha separate src/dst factors (use rlSetBlendFactorsSeparate()) +} BlendMode; + +// Gesture +// NOTE: Provided as bit-wise flags to enable only desired gestures +typedef enum { + GESTURE_NONE = 0, // No gesture + GESTURE_TAP = 1, // Tap gesture + GESTURE_DOUBLETAP = 2, // Double tap gesture + GESTURE_HOLD = 4, // Hold gesture + GESTURE_DRAG = 8, // Drag gesture + GESTURE_SWIPE_RIGHT = 16, // Swipe right gesture + GESTURE_SWIPE_LEFT = 32, // Swipe left gesture + GESTURE_SWIPE_UP = 64, // Swipe up gesture + GESTURE_SWIPE_DOWN = 128, // Swipe down gesture + GESTURE_PINCH_IN = 256, // Pinch in gesture + GESTURE_PINCH_OUT = 512 // Pinch out gesture +} Gesture; + +// Camera system modes +typedef enum { + CAMERA_CUSTOM = 0, // Camera custom, controlled by user (UpdateCamera() does nothing) + CAMERA_FREE, // Camera free mode + CAMERA_ORBITAL, // Camera orbital, around target, zoom supported + CAMERA_FIRST_PERSON, // Camera first person + CAMERA_THIRD_PERSON // Camera third person +} CameraMode; + +// Camera projection +typedef enum { + CAMERA_PERSPECTIVE = 0, // Perspective projection + CAMERA_ORTHOGRAPHIC // Orthographic projection +} CameraProjection; + +// N-patch layout +typedef enum { + NPATCH_NINE_PATCH = 0, // Npatch layout: 3x3 tiles + NPATCH_THREE_PATCH_VERTICAL, // Npatch layout: 1x3 tiles + NPATCH_THREE_PATCH_HORIZONTAL // Npatch layout: 3x1 tiles +} NPatchLayout; + +// Callbacks to hook some internal functions +// WARNING: These callbacks are intended for advanced users +typedef void (*TraceLogCallback)(int logLevel, const char *text, va_list args); // Logging: Redirect trace log messages +typedef unsigned char *(*LoadFileDataCallback)(const char *fileName, int *dataSize); // FileIO: Load binary data +typedef bool (*SaveFileDataCallback)(const char *fileName, void *data, int dataSize); // FileIO: Save binary data +typedef char *(*LoadFileTextCallback)(const char *fileName); // FileIO: Load text data +typedef bool (*SaveFileTextCallback)(const char *fileName, const char *text); // FileIO: Save text data + +//------------------------------------------------------------------------------------ +// Global Variables Definition +//------------------------------------------------------------------------------------ +// It's lonely here... + +//------------------------------------------------------------------------------------ +// Window and Graphics Device Functions (Module: core) +//------------------------------------------------------------------------------------ + +#if defined(__cplusplus) +extern "C" { // Prevents name mangling of functions +#endif + +// Window-related functions +RLAPI void InitWindow(int width, int height, const char *title); // Initialize window and OpenGL context +RLAPI void CloseWindow(void); // Close window and unload OpenGL context +RLAPI bool WindowShouldClose(void); // Check if application should close (KEY_ESCAPE pressed or windows close icon clicked) +RLAPI bool IsWindowReady(void); // Check if window has been initialized successfully +RLAPI bool IsWindowFullscreen(void); // Check if window is currently fullscreen +RLAPI bool IsWindowHidden(void); // Check if window is currently hidden +RLAPI bool IsWindowMinimized(void); // Check if window is currently minimized +RLAPI bool IsWindowMaximized(void); // Check if window is currently maximized +RLAPI bool IsWindowFocused(void); // Check if window is currently focused +RLAPI bool IsWindowResized(void); // Check if window has been resized last frame +RLAPI bool IsWindowState(unsigned int flag); // Check if one specific window flag is enabled +RLAPI void SetWindowState(unsigned int flags); // Set window configuration state using flags +RLAPI void ClearWindowState(unsigned int flags); // Clear window configuration state flags +RLAPI void ToggleFullscreen(void); // Toggle window state: fullscreen/windowed, resizes monitor to match window resolution +RLAPI void ToggleBorderlessWindowed(void); // Toggle window state: borderless windowed, resizes window to match monitor resolution +RLAPI void MaximizeWindow(void); // Set window state: maximized, if resizable +RLAPI void MinimizeWindow(void); // Set window state: minimized, if resizable +RLAPI void RestoreWindow(void); // Restore window from being minimized/maximized +RLAPI void SetWindowIcon(Image image); // Set icon for window (single image, RGBA 32bit) +RLAPI void SetWindowIcons(Image *images, int count); // Set icon for window (multiple images, RGBA 32bit) +RLAPI void SetWindowTitle(const char *title); // Set title for window +RLAPI void SetWindowPosition(int x, int y); // Set window position on screen +RLAPI void SetWindowMonitor(int monitor); // Set monitor for the current window +RLAPI void SetWindowMinSize(int width, int height); // Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE) +RLAPI void SetWindowMaxSize(int width, int height); // Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE) +RLAPI void SetWindowSize(int width, int height); // Set window dimensions +RLAPI void SetWindowOpacity(float opacity); // Set window opacity [0.0f..1.0f] +RLAPI void SetWindowFocused(void); // Set window focused +RLAPI void *GetWindowHandle(void); // Get native window handle +RLAPI int GetScreenWidth(void); // Get current screen width +RLAPI int GetScreenHeight(void); // Get current screen height +RLAPI int GetRenderWidth(void); // Get current render width (it considers HiDPI) +RLAPI int GetRenderHeight(void); // Get current render height (it considers HiDPI) +RLAPI int GetMonitorCount(void); // Get number of connected monitors +RLAPI int GetCurrentMonitor(void); // Get current monitor where window is placed +RLAPI Vector2 GetMonitorPosition(int monitor); // Get specified monitor position +RLAPI int GetMonitorWidth(int monitor); // Get specified monitor width (current video mode used by monitor) +RLAPI int GetMonitorHeight(int monitor); // Get specified monitor height (current video mode used by monitor) +RLAPI int GetMonitorPhysicalWidth(int monitor); // Get specified monitor physical width in millimetres +RLAPI int GetMonitorPhysicalHeight(int monitor); // Get specified monitor physical height in millimetres +RLAPI int GetMonitorRefreshRate(int monitor); // Get specified monitor refresh rate +RLAPI Vector2 GetWindowPosition(void); // Get window position XY on monitor +RLAPI Vector2 GetWindowScaleDPI(void); // Get window scale DPI factor +RLAPI const char *GetMonitorName(int monitor); // Get the human-readable, UTF-8 encoded name of the specified monitor +RLAPI void SetClipboardText(const char *text); // Set clipboard text content +RLAPI const char *GetClipboardText(void); // Get clipboard text content +RLAPI Image GetClipboardImage(void); // Get clipboard image content +RLAPI void EnableEventWaiting(void); // Enable waiting for events on EndDrawing(), no automatic event polling +RLAPI void DisableEventWaiting(void); // Disable waiting for events on EndDrawing(), automatic events polling + +// Cursor-related functions +RLAPI void ShowCursor(void); // Shows cursor +RLAPI void HideCursor(void); // Hides cursor +RLAPI bool IsCursorHidden(void); // Check if cursor is not visible +RLAPI void EnableCursor(void); // Enables cursor (unlock cursor) +RLAPI void DisableCursor(void); // Disables cursor (lock cursor) +RLAPI bool IsCursorOnScreen(void); // Check if cursor is on the screen + +// Drawing-related functions +RLAPI void ClearBackground(Color color); // Set background color (framebuffer clear color) +RLAPI void BeginDrawing(void); // Setup canvas (framebuffer) to start drawing +RLAPI void EndDrawing(void); // End canvas drawing and swap buffers (double buffering) +RLAPI void BeginMode2D(Camera2D camera); // Begin 2D mode with custom camera (2D) +RLAPI void EndMode2D(void); // Ends 2D mode with custom camera +RLAPI void BeginMode3D(Camera3D camera); // Begin 3D mode with custom camera (3D) +RLAPI void EndMode3D(void); // Ends 3D mode and returns to default 2D orthographic mode +RLAPI void BeginTextureMode(RenderTexture2D target); // Begin drawing to render texture +RLAPI void EndTextureMode(void); // Ends drawing to render texture +RLAPI void BeginShaderMode(Shader shader); // Begin custom shader drawing +RLAPI void EndShaderMode(void); // End custom shader drawing (use default shader) +RLAPI void BeginBlendMode(int mode); // Begin blending mode (alpha, additive, multiplied, subtract, custom) +RLAPI void EndBlendMode(void); // End blending mode (reset to default: alpha blending) +RLAPI void BeginScissorMode(int x, int y, int width, int height); // Begin scissor mode (define screen area for following drawing) +RLAPI void EndScissorMode(void); // End scissor mode +RLAPI void BeginVrStereoMode(VrStereoConfig config); // Begin stereo rendering (requires VR simulator) +RLAPI void EndVrStereoMode(void); // End stereo rendering (requires VR simulator) + +// VR stereo config functions for VR simulator +RLAPI VrStereoConfig LoadVrStereoConfig(VrDeviceInfo device); // Load VR stereo config for VR simulator device parameters +RLAPI void UnloadVrStereoConfig(VrStereoConfig config); // Unload VR stereo config + +// Shader management functions +// NOTE: Shader functionality is not available on OpenGL 1.1 +RLAPI Shader LoadShader(const char *vsFileName, const char *fsFileName); // Load shader from files and bind default locations +RLAPI Shader LoadShaderFromMemory(const char *vsCode, const char *fsCode); // Load shader from code strings and bind default locations +RLAPI bool IsShaderValid(Shader shader); // Check if a shader is valid (loaded on GPU) +RLAPI int GetShaderLocation(Shader shader, const char *uniformName); // Get shader uniform location +RLAPI int GetShaderLocationAttrib(Shader shader, const char *attribName); // Get shader attribute location +RLAPI void SetShaderValue(Shader shader, int locIndex, const void *value, int uniformType); // Set shader uniform value +RLAPI void SetShaderValueV(Shader shader, int locIndex, const void *value, int uniformType, int count); // Set shader uniform value vector +RLAPI void SetShaderValueMatrix(Shader shader, int locIndex, Matrix mat); // Set shader uniform value (matrix 4x4) +RLAPI void SetShaderValueTexture(Shader shader, int locIndex, Texture2D texture); // Set shader uniform value and bind the texture (sampler2d) +RLAPI void UnloadShader(Shader shader); // Unload shader from GPU memory (VRAM) + +// Screen-space-related functions +#define GetMouseRay GetScreenToWorldRay // Compatibility hack for previous raylib versions +RLAPI Ray GetScreenToWorldRay(Vector2 position, Camera camera); // Get a ray trace from screen position (i.e mouse) +RLAPI Ray GetScreenToWorldRayEx(Vector2 position, Camera camera, int width, int height); // Get a ray trace from screen position (i.e mouse) in a viewport +RLAPI Vector2 GetWorldToScreen(Vector3 position, Camera camera); // Get the screen space position for a 3d world space position +RLAPI Vector2 GetWorldToScreenEx(Vector3 position, Camera camera, int width, int height); // Get size position for a 3d world space position +RLAPI Vector2 GetWorldToScreen2D(Vector2 position, Camera2D camera); // Get the screen space position for a 2d camera world space position +RLAPI Vector2 GetScreenToWorld2D(Vector2 position, Camera2D camera); // Get the world space position for a 2d camera screen space position +RLAPI Matrix GetCameraMatrix(Camera camera); // Get camera transform matrix (view matrix) +RLAPI Matrix GetCameraMatrix2D(Camera2D camera); // Get camera 2d transform matrix + +// Timing-related functions +RLAPI void SetTargetFPS(int fps); // Set target FPS (maximum) +RLAPI float GetFrameTime(void); // Get time in seconds for last frame drawn (delta time) +RLAPI double GetTime(void); // Get elapsed time in seconds since InitWindow() +RLAPI int GetFPS(void); // Get current FPS + +// Custom frame control functions +// NOTE: Those functions are intended for advanced users that want full control over the frame processing +// By default EndDrawing() does this job: draws everything + SwapScreenBuffer() + manage frame timing + PollInputEvents() +// To avoid that behaviour and control frame processes manually, enable in config.h: SUPPORT_CUSTOM_FRAME_CONTROL +RLAPI void SwapScreenBuffer(void); // Swap back buffer with front buffer (screen drawing) +RLAPI void PollInputEvents(void); // Register all input events +RLAPI void WaitTime(double seconds); // Wait for some time (halt program execution) + +// Random values generation functions +RLAPI void SetRandomSeed(unsigned int seed); // Set the seed for the random number generator +RLAPI int GetRandomValue(int min, int max); // Get a random value between min and max (both included) +RLAPI int *LoadRandomSequence(unsigned int count, int min, int max); // Load random values sequence, no values repeated +RLAPI void UnloadRandomSequence(int *sequence); // Unload random values sequence + +// Misc. functions +RLAPI void TakeScreenshot(const char *fileName); // Takes a screenshot of current screen (filename extension defines format) +RLAPI void SetConfigFlags(unsigned int flags); // Setup init configuration flags (view FLAGS) +RLAPI void OpenURL(const char *url); // Open URL with default system browser (if available) + +// Logging system +RLAPI void SetTraceLogLevel(int logLevel); // Set the current threshold (minimum) log level +RLAPI void TraceLog(int logLevel, const char *text, ...); // Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR...) +RLAPI void SetTraceLogCallback(TraceLogCallback callback); // Set custom trace log + +// Memory management, using internal allocators +RLAPI void *MemAlloc(unsigned int size); // Internal memory allocator +RLAPI void *MemRealloc(void *ptr, unsigned int size); // Internal memory reallocator +RLAPI void MemFree(void *ptr); // Internal memory free + +// File system management functions +RLAPI unsigned char *LoadFileData(const char *fileName, int *dataSize); // Load file data as byte array (read) +RLAPI void UnloadFileData(unsigned char *data); // Unload file data allocated by LoadFileData() +RLAPI bool SaveFileData(const char *fileName, void *data, int dataSize); // Save data to file from byte array (write), returns true on success +RLAPI bool ExportDataAsCode(const unsigned char *data, int dataSize, const char *fileName); // Export data to code (.h), returns true on success +RLAPI char *LoadFileText(const char *fileName); // Load text data from file (read), returns a '\0' terminated string +RLAPI void UnloadFileText(char *text); // Unload file text data allocated by LoadFileText() +RLAPI bool SaveFileText(const char *fileName, const char *text); // Save text data to file (write), string must be '\0' terminated, returns true on success + +// File access custom callbacks +// WARNING: Callbacks setup is intended for advanced users +RLAPI void SetLoadFileDataCallback(LoadFileDataCallback callback); // Set custom file binary data loader +RLAPI void SetSaveFileDataCallback(SaveFileDataCallback callback); // Set custom file binary data saver +RLAPI void SetLoadFileTextCallback(LoadFileTextCallback callback); // Set custom file text data loader +RLAPI void SetSaveFileTextCallback(SaveFileTextCallback callback); // Set custom file text data saver + +RLAPI int FileRename(const char *fileName, const char *fileRename); // Rename file (if exists) +RLAPI int FileRemove(const char *fileName); // Remove file (if exists) +RLAPI int FileCopy(const char *srcPath, const char *dstPath); // Copy file from one path to another, dstPath created if it doesn't exist +RLAPI int FileMove(const char *srcPath, const char *dstPath); // Move file from one directory to another, dstPath created if it doesn't exist +RLAPI int FileTextReplace(const char *fileName, const char *search, const char *replacement); // Replace text in an existing file +RLAPI int FileTextFindIndex(const char *fileName, const char *search); // Find text in existing file +RLAPI bool FileExists(const char *fileName); // Check if file exists +RLAPI bool DirectoryExists(const char *dirPath); // Check if a directory path exists +RLAPI bool IsFileExtension(const char *fileName, const char *ext); // Check file extension (recommended include point: .png, .wav) +RLAPI int GetFileLength(const char *fileName); // Get file length in bytes (NOTE: GetFileSize() conflicts with windows.h) +RLAPI long GetFileModTime(const char *fileName); // Get file modification time (last write time) +RLAPI const char *GetFileExtension(const char *fileName); // Get pointer to extension for a filename string (includes dot: '.png') +RLAPI const char *GetFileName(const char *filePath); // Get pointer to filename for a path string +RLAPI const char *GetFileNameWithoutExt(const char *filePath); // Get filename string without extension (uses static string) +RLAPI const char *GetDirectoryPath(const char *filePath); // Get full path for a given fileName with path (uses static string) +RLAPI const char *GetPrevDirectoryPath(const char *dirPath); // Get previous directory path for a given path (uses static string) +RLAPI const char *GetWorkingDirectory(void); // Get current working directory (uses static string) +RLAPI const char *GetApplicationDirectory(void); // Get the directory of the running application (uses static string) +RLAPI int MakeDirectory(const char *dirPath); // Create directories (including full path requested), returns 0 on success +RLAPI bool ChangeDirectory(const char *dirPath); // Change working directory, return true on success +RLAPI bool IsPathFile(const char *path); // Check if a given path is a file or a directory +RLAPI bool IsFileNameValid(const char *fileName); // Check if fileName is valid for the platform/OS +RLAPI FilePathList LoadDirectoryFiles(const char *dirPath); // Load directory filepaths, files and directories, no subdirs scan +RLAPI FilePathList LoadDirectoryFilesEx(const char *basePath, const char *filter, bool scanSubdirs); // Load directory filepaths with extension filtering and subdir scan; some filters available: "*.*", "FILES*", "DIRS*" +RLAPI void UnloadDirectoryFiles(FilePathList files); // Unload filepaths +RLAPI bool IsFileDropped(void); // Check if a file has been dropped into window +RLAPI FilePathList LoadDroppedFiles(void); // Load dropped filepaths +RLAPI void UnloadDroppedFiles(FilePathList files); // Unload dropped filepaths +RLAPI unsigned int GetDirectoryFileCount(const char *dirPath); // Get the file count in a directory +RLAPI unsigned int GetDirectoryFileCountEx(const char *basePath, const char *filter, bool scanSubdirs); // Get the file count in a directory with extension filtering and recursive directory scan. Use 'DIR' in the filter string to include directories in the result + +// Compression/Encoding functionality +RLAPI unsigned char *CompressData(const unsigned char *data, int dataSize, int *compDataSize); // Compress data (DEFLATE algorithm), memory must be MemFree() +RLAPI unsigned char *DecompressData(const unsigned char *compData, int compDataSize, int *dataSize); // Decompress data (DEFLATE algorithm), memory must be MemFree() +RLAPI char *EncodeDataBase64(const unsigned char *data, int dataSize, int *outputSize); // Encode data to Base64 string (includes NULL terminator), memory must be MemFree() +RLAPI unsigned char *DecodeDataBase64(const char *text, int *outputSize); // Decode Base64 string (expected NULL terminated), memory must be MemFree() +RLAPI unsigned int ComputeCRC32(unsigned char *data, int dataSize); // Compute CRC32 hash code +RLAPI unsigned int *ComputeMD5(unsigned char *data, int dataSize); // Compute MD5 hash code, returns static int[4] (16 bytes) +RLAPI unsigned int *ComputeSHA1(unsigned char *data, int dataSize); // Compute SHA1 hash code, returns static int[5] (20 bytes) +RLAPI unsigned int *ComputeSHA256(unsigned char *data, int dataSize); // Compute SHA256 hash code, returns static int[8] (32 bytes) + +// Automation events functionality +RLAPI AutomationEventList LoadAutomationEventList(const char *fileName); // Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS +RLAPI void UnloadAutomationEventList(AutomationEventList list); // Unload automation events list from file +RLAPI bool ExportAutomationEventList(AutomationEventList list, const char *fileName); // Export automation events list as text file +RLAPI void SetAutomationEventList(AutomationEventList *list); // Set automation event list to record to +RLAPI void SetAutomationEventBaseFrame(int frame); // Set automation event internal base frame to start recording +RLAPI void StartAutomationEventRecording(void); // Start recording automation events (AutomationEventList must be set) +RLAPI void StopAutomationEventRecording(void); // Stop recording automation events +RLAPI void PlayAutomationEvent(AutomationEvent event); // Play a recorded automation event + +//------------------------------------------------------------------------------------ +// Input Handling Functions (Module: core) +//------------------------------------------------------------------------------------ + +// Input-related functions: keyboard +RLAPI bool IsKeyPressed(int key); // Check if a key has been pressed once +RLAPI bool IsKeyPressedRepeat(int key); // Check if a key has been pressed again +RLAPI bool IsKeyDown(int key); // Check if a key is being pressed +RLAPI bool IsKeyReleased(int key); // Check if a key has been released once +RLAPI bool IsKeyUp(int key); // Check if a key is NOT being pressed +RLAPI int GetKeyPressed(void); // Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty +RLAPI int GetCharPressed(void); // Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty +RLAPI const char *GetKeyName(int key); // Get name of a QWERTY key on the current keyboard layout (eg returns string 'q' for KEY_A on an AZERTY keyboard) +RLAPI void SetExitKey(int key); // Set a custom key to exit program (default is ESC) + +// Input-related functions: gamepads +RLAPI bool IsGamepadAvailable(int gamepad); // Check if a gamepad is available +RLAPI const char *GetGamepadName(int gamepad); // Get gamepad internal name id +RLAPI bool IsGamepadButtonPressed(int gamepad, int button); // Check if a gamepad button has been pressed once +RLAPI bool IsGamepadButtonDown(int gamepad, int button); // Check if a gamepad button is being pressed +RLAPI bool IsGamepadButtonReleased(int gamepad, int button); // Check if a gamepad button has been released once +RLAPI bool IsGamepadButtonUp(int gamepad, int button); // Check if a gamepad button is NOT being pressed +RLAPI int GetGamepadButtonPressed(void); // Get the last gamepad button pressed +RLAPI int GetGamepadAxisCount(int gamepad); // Get axis count for a gamepad +RLAPI float GetGamepadAxisMovement(int gamepad, int axis); // Get movement value for a gamepad axis +RLAPI int SetGamepadMappings(const char *mappings); // Set internal gamepad mappings (SDL_GameControllerDB) +RLAPI void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor, float duration); // Set gamepad vibration for both motors (duration in seconds) + +// Input-related functions: mouse +RLAPI bool IsMouseButtonPressed(int button); // Check if a mouse button has been pressed once +RLAPI bool IsMouseButtonDown(int button); // Check if a mouse button is being pressed +RLAPI bool IsMouseButtonReleased(int button); // Check if a mouse button has been released once +RLAPI bool IsMouseButtonUp(int button); // Check if a mouse button is NOT being pressed +RLAPI int GetMouseX(void); // Get mouse position X +RLAPI int GetMouseY(void); // Get mouse position Y +RLAPI Vector2 GetMousePosition(void); // Get mouse position XY +RLAPI Vector2 GetMouseDelta(void); // Get mouse delta between frames +RLAPI void SetMousePosition(int x, int y); // Set mouse position XY +RLAPI void SetMouseOffset(int offsetX, int offsetY); // Set mouse offset +RLAPI void SetMouseScale(float scaleX, float scaleY); // Set mouse scaling +RLAPI float GetMouseWheelMove(void); // Get mouse wheel movement for X or Y, whichever is larger +RLAPI Vector2 GetMouseWheelMoveV(void); // Get mouse wheel movement for both X and Y +RLAPI void SetMouseCursor(int cursor); // Set mouse cursor + +// Input-related functions: touch +RLAPI int GetTouchX(void); // Get touch position X for touch point 0 (relative to screen size) +RLAPI int GetTouchY(void); // Get touch position Y for touch point 0 (relative to screen size) +RLAPI Vector2 GetTouchPosition(int index); // Get touch position XY for a touch point index (relative to screen size) +RLAPI int GetTouchPointId(int index); // Get touch point identifier for given index +RLAPI int GetTouchPointCount(void); // Get number of touch points + +//------------------------------------------------------------------------------------ +// Gestures and Touch Handling Functions (Module: rgestures) +//------------------------------------------------------------------------------------ +RLAPI void SetGesturesEnabled(unsigned int flags); // Enable a set of gestures using flags +RLAPI bool IsGestureDetected(unsigned int gesture); // Check if a gesture have been detected +RLAPI int GetGestureDetected(void); // Get latest detected gesture +RLAPI float GetGestureHoldDuration(void); // Get gesture hold time in seconds +RLAPI Vector2 GetGestureDragVector(void); // Get gesture drag vector +RLAPI float GetGestureDragAngle(void); // Get gesture drag angle +RLAPI Vector2 GetGesturePinchVector(void); // Get gesture pinch delta +RLAPI float GetGesturePinchAngle(void); // Get gesture pinch angle + +//------------------------------------------------------------------------------------ +// Camera System Functions (Module: rcamera) +//------------------------------------------------------------------------------------ +RLAPI void UpdateCamera(Camera *camera, int mode); // Update camera position for selected mode +RLAPI void UpdateCameraPro(Camera *camera, Vector3 movement, Vector3 rotation, float zoom); // Update camera movement/rotation + +//------------------------------------------------------------------------------------ +// Basic Shapes Drawing Functions (Module: shapes) +//------------------------------------------------------------------------------------ +// Set texture and rectangle to be used on shapes drawing +// NOTE: It can be useful when using basic shapes and one single font, +// defining a font char white rectangle would allow drawing everything in a single draw call +RLAPI void SetShapesTexture(Texture2D texture, Rectangle source); // Set texture and rectangle to be used on shapes drawing +RLAPI Texture2D GetShapesTexture(void); // Get texture that is used for shapes drawing +RLAPI Rectangle GetShapesTextureRectangle(void); // Get texture source rectangle that is used for shapes drawing + +// Basic shapes drawing functions +RLAPI void DrawPixel(int posX, int posY, Color color); // Draw a pixel using geometry [Can be slow, use with care] +RLAPI void DrawPixelV(Vector2 position, Color color); // Draw a pixel using geometry (Vector version) [Can be slow, use with care] +RLAPI void DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color color); // Draw a line +RLAPI void DrawLineV(Vector2 startPos, Vector2 endPos, Color color); // Draw a line (using gl lines) +RLAPI void DrawLineEx(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw a line (using triangles/quads) +RLAPI void DrawLineStrip(const Vector2 *points, int pointCount, Color color); // Draw lines sequence (using gl lines) +RLAPI void DrawLineBezier(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw line segment cubic-bezier in-out interpolation +RLAPI void DrawLineDashed(Vector2 startPos, Vector2 endPos, int dashSize, int spaceSize, Color color); // Draw a dashed line +RLAPI void DrawCircle(int centerX, int centerY, float radius, Color color); // Draw a color-filled circle +RLAPI void DrawCircleV(Vector2 center, float radius, Color color); // Draw a color-filled circle (Vector version) +RLAPI void DrawCircleGradient(Vector2 center, float radius, Color inner, Color outer); // Draw a gradient-filled circle +RLAPI void DrawCircleSector(Vector2 center, float radius, float startAngle, float endAngle, int segments, Color color); // Draw a piece of a circle +RLAPI void DrawCircleSectorLines(Vector2 center, float radius, float startAngle, float endAngle, int segments, Color color); // Draw circle sector outline +RLAPI void DrawCircleLines(int centerX, int centerY, float radius, Color color); // Draw circle outline +RLAPI void DrawCircleLinesV(Vector2 center, float radius, Color color); // Draw circle outline (Vector version) +RLAPI void DrawEllipse(int centerX, int centerY, float radiusH, float radiusV, Color color); // Draw ellipse +RLAPI void DrawEllipseV(Vector2 center, float radiusH, float radiusV, Color color); // Draw ellipse (Vector version) +RLAPI void DrawEllipseLines(int centerX, int centerY, float radiusH, float radiusV, Color color); // Draw ellipse outline +RLAPI void DrawEllipseLinesV(Vector2 center, float radiusH, float radiusV, Color color); // Draw ellipse outline (Vector version) +RLAPI void DrawRing(Vector2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, int segments, Color color); // Draw ring +RLAPI void DrawRingLines(Vector2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, int segments, Color color); // Draw ring outline +RLAPI void DrawRectangle(int posX, int posY, int width, int height, Color color); // Draw a color-filled rectangle +RLAPI void DrawRectangleV(Vector2 position, Vector2 size, Color color); // Draw a color-filled rectangle (Vector version) +RLAPI void DrawRectangleRec(Rectangle rec, Color color); // Draw a color-filled rectangle +RLAPI void DrawRectanglePro(Rectangle rec, Vector2 origin, float rotation, Color color); // Draw a color-filled rectangle with pro parameters +RLAPI void DrawRectangleGradientV(int posX, int posY, int width, int height, Color top, Color bottom); // Draw a vertical-gradient-filled rectangle +RLAPI void DrawRectangleGradientH(int posX, int posY, int width, int height, Color left, Color right); // Draw a horizontal-gradient-filled rectangle +RLAPI void DrawRectangleGradientEx(Rectangle rec, Color topLeft, Color bottomLeft, Color bottomRight, Color topRight); // Draw a gradient-filled rectangle with custom vertex colors +RLAPI void DrawRectangleLines(int posX, int posY, int width, int height, Color color); // Draw rectangle outline +RLAPI void DrawRectangleLinesEx(Rectangle rec, float lineThick, Color color); // Draw rectangle outline with extended parameters +RLAPI void DrawRectangleRounded(Rectangle rec, float roundness, int segments, Color color); // Draw rectangle with rounded edges +RLAPI void DrawRectangleRoundedLines(Rectangle rec, float roundness, int segments, Color color); // Draw rectangle lines with rounded edges +RLAPI void DrawRectangleRoundedLinesEx(Rectangle rec, float roundness, int segments, float lineThick, Color color); // Draw rectangle with rounded edges outline +RLAPI void DrawTriangle(Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw a color-filled triangle (vertex in counter-clockwise order!) +RLAPI void DrawTriangleLines(Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle outline (vertex in counter-clockwise order!) +RLAPI void DrawTriangleFan(const Vector2 *points, int pointCount, Color color); // Draw a triangle fan defined by points (first vertex is the center) +RLAPI void DrawTriangleStrip(const Vector2 *points, int pointCount, Color color); // Draw a triangle strip defined by points +RLAPI void DrawPoly(Vector2 center, int sides, float radius, float rotation, Color color); // Draw a regular polygon (Vector version) +RLAPI void DrawPolyLines(Vector2 center, int sides, float radius, float rotation, Color color); // Draw a polygon outline of n sides +RLAPI void DrawPolyLinesEx(Vector2 center, int sides, float radius, float rotation, float lineThick, Color color); // Draw a polygon outline of n sides with extended parameters + +// Splines drawing functions +RLAPI void DrawSplineLinear(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Linear, minimum 2 points +RLAPI void DrawSplineBasis(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: B-Spline, minimum 4 points +RLAPI void DrawSplineCatmullRom(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Catmull-Rom, minimum 4 points +RLAPI void DrawSplineBezierQuadratic(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] +RLAPI void DrawSplineBezierCubic(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] +RLAPI void DrawSplineSegmentLinear(Vector2 p1, Vector2 p2, float thick, Color color); // Draw spline segment: Linear, 2 points +RLAPI void DrawSplineSegmentBasis(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color); // Draw spline segment: B-Spline, 4 points +RLAPI void DrawSplineSegmentCatmullRom(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color); // Draw spline segment: Catmull-Rom, 4 points +RLAPI void DrawSplineSegmentBezierQuadratic(Vector2 p1, Vector2 c2, Vector2 p3, float thick, Color color); // Draw spline segment: Quadratic Bezier, 2 points, 1 control point +RLAPI void DrawSplineSegmentBezierCubic(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, float thick, Color color); // Draw spline segment: Cubic Bezier, 2 points, 2 control points + +// Spline segment point evaluation functions, for a given t [0.0f .. 1.0f] +RLAPI Vector2 GetSplinePointLinear(Vector2 startPos, Vector2 endPos, float t); // Get (evaluate) spline point: Linear +RLAPI Vector2 GetSplinePointBasis(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float t); // Get (evaluate) spline point: B-Spline +RLAPI Vector2 GetSplinePointCatmullRom(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float t); // Get (evaluate) spline point: Catmull-Rom +RLAPI Vector2 GetSplinePointBezierQuad(Vector2 p1, Vector2 c2, Vector2 p3, float t); // Get (evaluate) spline point: Quadratic Bezier +RLAPI Vector2 GetSplinePointBezierCubic(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, float t); // Get (evaluate) spline point: Cubic Bezier + +// Basic shapes collision detection functions +RLAPI bool CheckCollisionRecs(Rectangle rec1, Rectangle rec2); // Check collision between two rectangles +RLAPI bool CheckCollisionCircles(Vector2 center1, float radius1, Vector2 center2, float radius2); // Check collision between two circles +RLAPI bool CheckCollisionCircleRec(Vector2 center, float radius, Rectangle rec); // Check collision between circle and rectangle +RLAPI bool CheckCollisionCircleLine(Vector2 center, float radius, Vector2 p1, Vector2 p2); // Check if circle collides with a line created betweeen two points [p1] and [p2] +RLAPI bool CheckCollisionPointRec(Vector2 point, Rectangle rec); // Check if point is inside rectangle +RLAPI bool CheckCollisionPointCircle(Vector2 point, Vector2 center, float radius); // Check if point is inside circle +RLAPI bool CheckCollisionPointTriangle(Vector2 point, Vector2 p1, Vector2 p2, Vector2 p3); // Check if point is inside a triangle +RLAPI bool CheckCollisionPointLine(Vector2 point, Vector2 p1, Vector2 p2, int threshold); // Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold] +RLAPI bool CheckCollisionPointPoly(Vector2 point, const Vector2 *points, int pointCount); // Check if point is within a polygon described by array of vertices +RLAPI bool CheckCollisionLines(Vector2 startPos1, Vector2 endPos1, Vector2 startPos2, Vector2 endPos2, Vector2 *collisionPoint); // Check the collision between two lines defined by two points each, returns collision point by reference +RLAPI Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2); // Get collision rectangle for two rectangles collision + +//------------------------------------------------------------------------------------ +// Texture Loading and Drawing Functions (Module: textures) +//------------------------------------------------------------------------------------ + +// Image loading functions +// NOTE: These functions do not require GPU access +RLAPI Image LoadImage(const char *fileName); // Load image from file into CPU memory (RAM) +RLAPI Image LoadImageRaw(const char *fileName, int width, int height, int format, int headerSize); // Load image from RAW file data +RLAPI Image LoadImageAnim(const char *fileName, int *frames); // Load image sequence from file (frames appended to image.data) +RLAPI Image LoadImageAnimFromMemory(const char *fileType, const unsigned char *fileData, int dataSize, int *frames); // Load image sequence from memory buffer +RLAPI Image LoadImageFromMemory(const char *fileType, const unsigned char *fileData, int dataSize); // Load image from memory buffer, fileType refers to extension: i.e. '.png' +RLAPI Image LoadImageFromTexture(Texture2D texture); // Load image from GPU texture data +RLAPI Image LoadImageFromScreen(void); // Load image from screen buffer and (screenshot) +RLAPI bool IsImageValid(Image image); // Check if an image is valid (data and parameters) +RLAPI void UnloadImage(Image image); // Unload image from CPU memory (RAM) +RLAPI bool ExportImage(Image image, const char *fileName); // Export image data to file, returns true on success +RLAPI unsigned char *ExportImageToMemory(Image image, const char *fileType, int *fileSize); // Export image to memory buffer, memory must be MemFree() +RLAPI bool ExportImageAsCode(Image image, const char *fileName); // Export image as code file defining an array of bytes, returns true on success + +// Image generation functions +RLAPI Image GenImageColor(int width, int height, Color color); // Generate image: plain color +RLAPI Image GenImageGradientLinear(int width, int height, int direction, Color start, Color end); // Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient +RLAPI Image GenImageGradientRadial(int width, int height, float density, Color inner, Color outer); // Generate image: radial gradient +RLAPI Image GenImageGradientSquare(int width, int height, float density, Color inner, Color outer); // Generate image: square gradient +RLAPI Image GenImageChecked(int width, int height, int checksX, int checksY, Color col1, Color col2); // Generate image: checked +RLAPI Image GenImageWhiteNoise(int width, int height, float factor); // Generate image: white noise +RLAPI Image GenImagePerlinNoise(int width, int height, int offsetX, int offsetY, float scale); // Generate image: perlin noise +RLAPI Image GenImageCellular(int width, int height, int tileSize); // Generate image: cellular algorithm, bigger tileSize means bigger cells +RLAPI Image GenImageText(int width, int height, const char *text); // Generate image: grayscale image from text data + +// Image manipulation functions +RLAPI Image ImageCopy(Image image); // Create an image duplicate (useful for transformations) +RLAPI Image ImageFromImage(Image image, Rectangle rec); // Create an image from another image piece +RLAPI Image ImageFromChannel(Image image, int selectedChannel); // Create an image from a selected channel of another image (GRAYSCALE) +RLAPI Image ImageText(const char *text, int fontSize, Color color); // Create an image from text (default font) +RLAPI Image ImageTextEx(Font font, const char *text, float fontSize, float spacing, Color tint); // Create an image from text (custom sprite font) +RLAPI void ImageFormat(Image *image, int newFormat); // Convert image data to desired format +RLAPI void ImageToPOT(Image *image, Color fill); // Convert image to POT (power-of-two) +RLAPI void ImageCrop(Image *image, Rectangle crop); // Crop an image to a defined rectangle +RLAPI void ImageAlphaCrop(Image *image, float threshold); // Crop image depending on alpha value +RLAPI void ImageAlphaClear(Image *image, Color color, float threshold); // Clear alpha channel to desired color +RLAPI void ImageAlphaMask(Image *image, Image alphaMask); // Apply alpha mask to image +RLAPI void ImageAlphaPremultiply(Image *image); // Premultiply alpha channel +RLAPI void ImageBlurGaussian(Image *image, int blurSize); // Apply Gaussian blur using a box blur approximation +RLAPI void ImageKernelConvolution(Image *image, const float *kernel, int kernelSize); // Apply custom square convolution kernel to image +RLAPI void ImageResize(Image *image, int newWidth, int newHeight); // Resize image (Bicubic scaling algorithm) +RLAPI void ImageResizeNN(Image *image, int newWidth, int newHeight); // Resize image (Nearest-Neighbor scaling algorithm) +RLAPI void ImageResizeCanvas(Image *image, int newWidth, int newHeight, int offsetX, int offsetY, Color fill); // Resize canvas and fill with color +RLAPI void ImageMipmaps(Image *image); // Compute all mipmap levels for a provided image +RLAPI void ImageDither(Image *image, int rBpp, int gBpp, int bBpp, int aBpp); // Dither image data to 16bpp or lower (Floyd-Steinberg dithering) +RLAPI void ImageFlipVertical(Image *image); // Flip image vertically +RLAPI void ImageFlipHorizontal(Image *image); // Flip image horizontally +RLAPI void ImageRotate(Image *image, int degrees); // Rotate image by input angle in degrees (-359 to 359) +RLAPI void ImageRotateCW(Image *image); // Rotate image clockwise 90deg +RLAPI void ImageRotateCCW(Image *image); // Rotate image counter-clockwise 90deg +RLAPI void ImageColorTint(Image *image, Color color); // Modify image color: tint +RLAPI void ImageColorInvert(Image *image); // Modify image color: invert +RLAPI void ImageColorGrayscale(Image *image); // Modify image color: grayscale +RLAPI void ImageColorContrast(Image *image, float contrast); // Modify image color: contrast (-100 to 100) +RLAPI void ImageColorBrightness(Image *image, int brightness); // Modify image color: brightness (-255 to 255) +RLAPI void ImageColorReplace(Image *image, Color color, Color replace); // Modify image color: replace color +RLAPI Color *LoadImageColors(Image image); // Load color data from image as a Color array (RGBA - 32bit) +RLAPI Color *LoadImagePalette(Image image, int maxPaletteSize, int *colorCount); // Load colors palette from image as a Color array (RGBA - 32bit) +RLAPI void UnloadImageColors(Color *colors); // Unload color data loaded with LoadImageColors() +RLAPI void UnloadImagePalette(Color *colors); // Unload colors palette loaded with LoadImagePalette() +RLAPI Rectangle GetImageAlphaBorder(Image image, float threshold); // Get image alpha border rectangle +RLAPI Color GetImageColor(Image image, int x, int y); // Get image pixel color at (x, y) position + +// Image drawing functions +// NOTE: Image software-rendering functions (CPU) +RLAPI void ImageClearBackground(Image *dst, Color color); // Clear image background with given color +RLAPI void ImageDrawPixel(Image *dst, int posX, int posY, Color color); // Draw pixel within an image +RLAPI void ImageDrawPixelV(Image *dst, Vector2 position, Color color); // Draw pixel within an image (Vector version) +RLAPI void ImageDrawLine(Image *dst, int startPosX, int startPosY, int endPosX, int endPosY, Color color); // Draw line within an image +RLAPI void ImageDrawLineV(Image *dst, Vector2 start, Vector2 end, Color color); // Draw line within an image (Vector version) +RLAPI void ImageDrawLineEx(Image *dst, Vector2 start, Vector2 end, int thick, Color color); // Draw a line defining thickness within an image +RLAPI void ImageDrawCircle(Image *dst, int centerX, int centerY, int radius, Color color); // Draw a filled circle within an image +RLAPI void ImageDrawCircleV(Image *dst, Vector2 center, int radius, Color color); // Draw a filled circle within an image (Vector version) +RLAPI void ImageDrawCircleLines(Image *dst, int centerX, int centerY, int radius, Color color); // Draw circle outline within an image +RLAPI void ImageDrawCircleLinesV(Image *dst, Vector2 center, int radius, Color color); // Draw circle outline within an image (Vector version) +RLAPI void ImageDrawRectangle(Image *dst, int posX, int posY, int width, int height, Color color); // Draw rectangle within an image +RLAPI void ImageDrawRectangleV(Image *dst, Vector2 position, Vector2 size, Color color); // Draw rectangle within an image (Vector version) +RLAPI void ImageDrawRectangleRec(Image *dst, Rectangle rec, Color color); // Draw rectangle within an image +RLAPI void ImageDrawRectangleLines(Image *dst, Rectangle rec, int thick, Color color); // Draw rectangle lines within an image +RLAPI void ImageDrawTriangle(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle within an image +RLAPI void ImageDrawTriangleEx(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color c1, Color c2, Color c3); // Draw triangle with interpolated colors within an image +RLAPI void ImageDrawTriangleLines(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle outline within an image +RLAPI void ImageDrawTriangleFan(Image *dst, const Vector2 *points, int pointCount, Color color); // Draw a triangle fan defined by points within an image (first vertex is the center) +RLAPI void ImageDrawTriangleStrip(Image *dst, const Vector2 *points, int pointCount, Color color); // Draw a triangle strip defined by points within an image +RLAPI void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color tint); // Draw a source image within a destination image (tint applied to source) +RLAPI void ImageDrawText(Image *dst, const char *text, int posX, int posY, int fontSize, Color color); // Draw text (using default font) within an image (destination) +RLAPI void ImageDrawTextEx(Image *dst, Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint); // Draw text (custom sprite font) within an image (destination) + +// Texture loading functions +// NOTE: These functions require GPU access +RLAPI Texture2D LoadTexture(const char *fileName); // Load texture from file into GPU memory (VRAM) +RLAPI Texture2D LoadTextureFromImage(Image image); // Load texture from image data +RLAPI TextureCubemap LoadTextureCubemap(Image image, int layout); // Load cubemap from image, multiple image cubemap layouts supported +RLAPI RenderTexture2D LoadRenderTexture(int width, int height); // Load texture for rendering (framebuffer) +RLAPI bool IsTextureValid(Texture2D texture); // Check if a texture is valid (loaded in GPU) +RLAPI void UnloadTexture(Texture2D texture); // Unload texture from GPU memory (VRAM) +RLAPI bool IsRenderTextureValid(RenderTexture2D target); // Check if a render texture is valid (loaded in GPU) +RLAPI void UnloadRenderTexture(RenderTexture2D target); // Unload render texture from GPU memory (VRAM) +RLAPI void UpdateTexture(Texture2D texture, const void *pixels); // Update GPU texture with new data (pixels should be able to fill texture) +RLAPI void UpdateTextureRec(Texture2D texture, Rectangle rec, const void *pixels); // Update GPU texture rectangle with new data (pixels and rec should fit in texture) + +// Texture configuration functions +RLAPI void GenTextureMipmaps(Texture2D *texture); // Generate GPU mipmaps for a texture +RLAPI void SetTextureFilter(Texture2D texture, int filter); // Set texture scaling filter mode +RLAPI void SetTextureWrap(Texture2D texture, int wrap); // Set texture wrapping mode + +// Texture drawing functions +RLAPI void DrawTexture(Texture2D texture, int posX, int posY, Color tint); // Draw a Texture2D +RLAPI void DrawTextureV(Texture2D texture, Vector2 position, Color tint); // Draw a Texture2D with position defined as Vector2 +RLAPI void DrawTextureEx(Texture2D texture, Vector2 position, float rotation, float scale, Color tint); // Draw a Texture2D with extended parameters +RLAPI void DrawTextureRec(Texture2D texture, Rectangle source, Vector2 position, Color tint); // Draw a part of a texture defined by a rectangle +RLAPI void DrawTexturePro(Texture2D texture, Rectangle source, Rectangle dest, Vector2 origin, float rotation, Color tint); // Draw a part of a texture defined by a rectangle with 'pro' parameters +RLAPI void DrawTextureNPatch(Texture2D texture, NPatchInfo nPatchInfo, Rectangle dest, Vector2 origin, float rotation, Color tint); // Draws a texture (or part of it) that stretches or shrinks nicely + +// Color/pixel related functions +RLAPI bool ColorIsEqual(Color col1, Color col2); // Check if two colors are equal +RLAPI Color Fade(Color color, float alpha); // Get color with alpha applied, alpha goes from 0.0f to 1.0f +RLAPI int ColorToInt(Color color); // Get hexadecimal value for a Color (0xRRGGBBAA) +RLAPI Vector4 ColorNormalize(Color color); // Get Color normalized as float [0..1] +RLAPI Color ColorFromNormalized(Vector4 normalized); // Get Color from normalized values [0..1] +RLAPI Vector3 ColorToHSV(Color color); // Get HSV values for a Color, hue [0..360], saturation/value [0..1] +RLAPI Color ColorFromHSV(float hue, float saturation, float value); // Get a Color from HSV values, hue [0..360], saturation/value [0..1] +RLAPI Color ColorTint(Color color, Color tint); // Get color multiplied with another color +RLAPI Color ColorBrightness(Color color, float factor); // Get color with brightness correction, brightness factor goes from -1.0f to 1.0f +RLAPI Color ColorContrast(Color color, float contrast); // Get color with contrast correction, contrast values between -1.0f and 1.0f +RLAPI Color ColorAlpha(Color color, float alpha); // Get color with alpha applied, alpha goes from 0.0f to 1.0f +RLAPI Color ColorAlphaBlend(Color dst, Color src, Color tint); // Get src alpha-blended into dst color with tint +RLAPI Color ColorLerp(Color color1, Color color2, float factor); // Get color lerp interpolation between two colors, factor [0.0f..1.0f] +RLAPI Color GetColor(unsigned int hexValue); // Get Color structure from hexadecimal value +RLAPI Color GetPixelColor(void *srcPtr, int format); // Get Color from a source pixel pointer of certain format +RLAPI void SetPixelColor(void *dstPtr, Color color, int format); // Set color formatted into destination pixel pointer +RLAPI int GetPixelDataSize(int width, int height, int format); // Get pixel data size in bytes for certain format + +//------------------------------------------------------------------------------------ +// Font Loading and Text Drawing Functions (Module: text) +//------------------------------------------------------------------------------------ + +// Font loading/unloading functions +RLAPI Font GetFontDefault(void); // Get the default Font +RLAPI Font LoadFont(const char *fileName); // Load font from file into GPU memory (VRAM) +RLAPI Font LoadFontEx(const char *fileName, int fontSize, const int *codepoints, int codepointCount); // Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set, font size is provided in pixels height +RLAPI Font LoadFontFromImage(Image image, Color key, int firstChar); // Load font from Image (XNA style) +RLAPI Font LoadFontFromMemory(const char *fileType, const unsigned char *fileData, int dataSize, int fontSize, const int *codepoints, int codepointCount); // Load font from memory buffer, fileType refers to extension: i.e. '.ttf' +RLAPI bool IsFontValid(Font font); // Check if a font is valid (font data loaded, WARNING: GPU texture not checked) +RLAPI GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSize, const int *codepoints, int codepointCount, int type, int *glyphCount); // Load font data for further use +RLAPI Image GenImageFontAtlas(const GlyphInfo *glyphs, Rectangle **glyphRecs, int glyphCount, int fontSize, int padding, int packMethod); // Generate image font atlas using chars info +RLAPI void UnloadFontData(GlyphInfo *glyphs, int glyphCount); // Unload font chars info data (RAM) +RLAPI void UnloadFont(Font font); // Unload font from GPU memory (VRAM) +RLAPI bool ExportFontAsCode(Font font, const char *fileName); // Export font as code file, returns true on success + +// Text drawing functions +RLAPI void DrawFPS(int posX, int posY); // Draw current FPS +RLAPI void DrawText(const char *text, int posX, int posY, int fontSize, Color color); // Draw text (using default font) +RLAPI void DrawTextEx(Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint); // Draw text using font and additional parameters +RLAPI void DrawTextPro(Font font, const char *text, Vector2 position, Vector2 origin, float rotation, float fontSize, float spacing, Color tint); // Draw text using Font and pro parameters (rotation) +RLAPI void DrawTextCodepoint(Font font, int codepoint, Vector2 position, float fontSize, Color tint); // Draw one character (codepoint) +RLAPI void DrawTextCodepoints(Font font, const int *codepoints, int codepointCount, Vector2 position, float fontSize, float spacing, Color tint); // Draw multiple character (codepoint) + +// Text font info functions +RLAPI void SetTextLineSpacing(int spacing); // Set vertical line spacing when drawing with line-breaks +RLAPI int MeasureText(const char *text, int fontSize); // Measure string width for default font +RLAPI Vector2 MeasureTextEx(Font font, const char *text, float fontSize, float spacing); // Measure string size for Font +RLAPI Vector2 MeasureTextCodepoints(Font font, const int *codepoints, int length, float fontSize, float spacing); // Measure string size for an existing array of codepoints for Font +RLAPI int GetGlyphIndex(Font font, int codepoint); // Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found +RLAPI GlyphInfo GetGlyphInfo(Font font, int codepoint); // Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found +RLAPI Rectangle GetGlyphAtlasRec(Font font, int codepoint); // Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found + +// Text codepoints management functions (unicode characters) +RLAPI char *LoadUTF8(const int *codepoints, int length); // Load UTF-8 text encoded from codepoints array +RLAPI void UnloadUTF8(char *text); // Unload UTF-8 text encoded from codepoints array +RLAPI int *LoadCodepoints(const char *text, int *count); // Load all codepoints from a UTF-8 text string, codepoints count returned by parameter +RLAPI void UnloadCodepoints(int *codepoints); // Unload codepoints data from memory +RLAPI int GetCodepointCount(const char *text); // Get total number of codepoints in a UTF-8 encoded string +RLAPI int GetCodepoint(const char *text, int *codepointSize); // Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure +RLAPI int GetCodepointNext(const char *text, int *codepointSize); // Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure +RLAPI int GetCodepointPrevious(const char *text, int *codepointSize); // Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure +RLAPI const char *CodepointToUTF8(int codepoint, int *utf8Size); // Encode one codepoint into UTF-8 byte array (array length returned as parameter) + +// Text strings management functions (no UTF-8 strings, only byte chars) +// WARNING 1: Most of these functions use internal static buffers[], it's recommended to store returned data on user-side for re-use +// WARNING 2: Some functions allocate memory internally for the returned strings, those strings must be freed by user using MemFree() +RLAPI char **LoadTextLines(const char *text, int *count); // Load text as separate lines ('\n') +RLAPI void UnloadTextLines(char **text, int lineCount); // Unload text lines +RLAPI int TextCopy(char *dst, const char *src); // Copy one string to another, returns bytes copied +RLAPI bool TextIsEqual(const char *text1, const char *text2); // Check if two text string are equal +RLAPI unsigned int TextLength(const char *text); // Get text length, checks for '\0' ending +RLAPI const char *TextFormat(const char *text, ...); // Text formatting with variables (sprintf() style) +RLAPI const char *TextSubtext(const char *text, int position, int length); // Get a piece of a text string +RLAPI const char *TextRemoveSpaces(const char *text); // Remove text spaces, concat words +RLAPI char *GetTextBetween(const char *text, const char *begin, const char *end); // Get text between two strings +RLAPI char *TextReplace(const char *text, const char *search, const char *replacement); // Replace text string with new string +RLAPI char *TextReplaceAlloc(const char *text, const char *search, const char *replacement); // Replace text string with new string, memory must be MemFree() +RLAPI char *TextReplaceBetween(const char *text, const char *begin, const char *end, const char *replacement); // Replace text between two specific strings +RLAPI char *TextReplaceBetweenAlloc(const char *text, const char *begin, const char *end, const char *replacement); // Replace text between two specific strings, memory must be MemFree() +RLAPI char *TextInsert(const char *text, const char *insert, int position); // Insert text in a defined byte position +RLAPI char *TextInsertAlloc(const char *text, const char *insert, int position); // Insert text in a defined byte position, memory must be MemFree() +RLAPI char *TextJoin(char **textList, int count, const char *delimiter); // Join text strings with delimiter +RLAPI char **TextSplit(const char *text, char delimiter, int *count); // Split text into multiple strings, using MAX_TEXTSPLIT_COUNT static strings +RLAPI void TextAppend(char *text, const char *append, int *position); // Append text at specific position and move cursor +RLAPI int TextFindIndex(const char *text, const char *search); // Find first text occurrence within a string, -1 if not found +RLAPI char *TextToUpper(const char *text); // Get upper case version of provided string +RLAPI char *TextToLower(const char *text); // Get lower case version of provided string +RLAPI char *TextToPascal(const char *text); // Get Pascal case notation version of provided string +RLAPI char *TextToSnake(const char *text); // Get Snake case notation version of provided string +RLAPI char *TextToCamel(const char *text); // Get Camel case notation version of provided string +RLAPI int TextToInteger(const char *text); // Get integer value from text +RLAPI float TextToFloat(const char *text); // Get float value from text + +//------------------------------------------------------------------------------------ +// Basic 3d Shapes Drawing Functions (Module: models) +//------------------------------------------------------------------------------------ + +// Basic geometric 3D shapes drawing functions +RLAPI void DrawLine3D(Vector3 startPos, Vector3 endPos, Color color); // Draw a line in 3D world space +RLAPI void DrawPoint3D(Vector3 position, Color color); // Draw a point in 3D space, actually a small line +RLAPI void DrawCircle3D(Vector3 center, float radius, Vector3 rotationAxis, float rotationAngle, Color color); // Draw a circle in 3D world space +RLAPI void DrawTriangle3D(Vector3 v1, Vector3 v2, Vector3 v3, Color color); // Draw a color-filled triangle (vertex in counter-clockwise order!) +RLAPI void DrawTriangleStrip3D(const Vector3 *points, int pointCount, Color color); // Draw a triangle strip defined by points +RLAPI void DrawCube(Vector3 position, float width, float height, float length, Color color); // Draw cube +RLAPI void DrawCubeV(Vector3 position, Vector3 size, Color color); // Draw cube (Vector version) +RLAPI void DrawCubeWires(Vector3 position, float width, float height, float length, Color color); // Draw cube wires +RLAPI void DrawCubeWiresV(Vector3 position, Vector3 size, Color color); // Draw cube wires (Vector version) +RLAPI void DrawSphere(Vector3 centerPos, float radius, Color color); // Draw sphere +RLAPI void DrawSphereEx(Vector3 centerPos, float radius, int rings, int slices, Color color); // Draw sphere with extended parameters +RLAPI void DrawSphereWires(Vector3 centerPos, float radius, int rings, int slices, Color color); // Draw sphere wires +RLAPI void DrawCylinder(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color); // Draw a cylinder/cone +RLAPI void DrawCylinderEx(Vector3 startPos, Vector3 endPos, float startRadius, float endRadius, int sides, Color color); // Draw a cylinder with base at startPos and top at endPos +RLAPI void DrawCylinderWires(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color); // Draw a cylinder/cone wires +RLAPI void DrawCylinderWiresEx(Vector3 startPos, Vector3 endPos, float startRadius, float endRadius, int sides, Color color); // Draw a cylinder wires with base at startPos and top at endPos +RLAPI void DrawCapsule(Vector3 startPos, Vector3 endPos, float radius, int slices, int rings, Color color); // Draw a capsule with the center of its sphere caps at startPos and endPos +RLAPI void DrawCapsuleWires(Vector3 startPos, Vector3 endPos, float radius, int slices, int rings, Color color); // Draw capsule wireframe with the center of its sphere caps at startPos and endPos +RLAPI void DrawPlane(Vector3 centerPos, Vector2 size, Color color); // Draw a plane XZ +RLAPI void DrawRay(Ray ray, Color color); // Draw a ray line +RLAPI void DrawGrid(int slices, float spacing); // Draw a grid (centered at (0, 0, 0)) + +//------------------------------------------------------------------------------------ +// Model 3d Loading and Drawing Functions (Module: models) +//------------------------------------------------------------------------------------ + +// Model management functions +RLAPI Model LoadModel(const char *fileName); // Load model from files (meshes and materials) +RLAPI Model LoadModelFromMesh(Mesh mesh); // Load model from generated mesh (default material) +RLAPI bool IsModelValid(Model model); // Check if a model is valid (loaded in GPU, VAO/VBOs) +RLAPI void UnloadModel(Model model); // Unload model (including meshes) from memory (RAM and/or VRAM) +RLAPI BoundingBox GetModelBoundingBox(Model model); // Compute model bounding box limits (considers all meshes) + +// Model drawing functions +RLAPI void DrawModel(Model model, Vector3 position, float scale, Color tint); // Draw a model (with texture if set) +RLAPI void DrawModelEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); // Draw a model with extended parameters +RLAPI void DrawModelWires(Model model, Vector3 position, float scale, Color tint); // Draw a model wires (with texture if set) +RLAPI void DrawModelWiresEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); // Draw a model wires (with texture if set) with extended parameters +RLAPI void DrawBoundingBox(BoundingBox box, Color color); // Draw bounding box (wires) +RLAPI void DrawBillboard(Camera camera, Texture2D texture, Vector3 position, float scale, Color tint); // Draw a billboard texture +RLAPI void DrawBillboardRec(Camera camera, Texture2D texture, Rectangle source, Vector3 position, Vector2 size, Color tint); // Draw a billboard texture defined by source +RLAPI void DrawBillboardPro(Camera camera, Texture2D texture, Rectangle source, Vector3 position, Vector3 up, Vector2 size, Vector2 origin, float rotation, Color tint); // Draw a billboard texture defined by source and rotation + +// Mesh management functions +RLAPI void UploadMesh(Mesh *mesh, bool dynamic); // Upload mesh vertex data in GPU and provide VAO/VBO ids +RLAPI void UpdateMeshBuffer(Mesh mesh, int index, const void *data, int dataSize, int offset); // Update mesh vertex data in GPU for a specific buffer index +RLAPI void UnloadMesh(Mesh mesh); // Unload mesh data from CPU and GPU +RLAPI void DrawMesh(Mesh mesh, Material material, Matrix transform); // Draw a 3d mesh with material and transform +RLAPI void DrawMeshInstanced(Mesh mesh, Material material, const Matrix *transforms, int instances); // Draw multiple mesh instances with material and different transforms +RLAPI BoundingBox GetMeshBoundingBox(Mesh mesh); // Compute mesh bounding box limits +RLAPI void GenMeshTangents(Mesh *mesh); // Compute mesh tangents +RLAPI bool ExportMesh(Mesh mesh, const char *fileName); // Export mesh data to file, returns true on success +RLAPI bool ExportMeshAsCode(Mesh mesh, const char *fileName); // Export mesh as code file (.h) defining multiple arrays of vertex attributes + +// Mesh generation functions +RLAPI Mesh GenMeshPoly(int sides, float radius); // Generate polygonal mesh +RLAPI Mesh GenMeshPlane(float width, float length, int resX, int resZ); // Generate plane mesh (with subdivisions) +RLAPI Mesh GenMeshCube(float width, float height, float length); // Generate cuboid mesh +RLAPI Mesh GenMeshSphere(float radius, int rings, int slices); // Generate sphere mesh (standard sphere) +RLAPI Mesh GenMeshHemiSphere(float radius, int rings, int slices); // Generate half-sphere mesh (no bottom cap) +RLAPI Mesh GenMeshCylinder(float radius, float height, int slices); // Generate cylinder mesh +RLAPI Mesh GenMeshCone(float radius, float height, int slices); // Generate cone/pyramid mesh +RLAPI Mesh GenMeshTorus(float radius, float size, int radSeg, int sides); // Generate torus mesh +RLAPI Mesh GenMeshKnot(float radius, float size, int radSeg, int sides); // Generate trefoil knot mesh +RLAPI Mesh GenMeshHeightmap(Image heightmap, Vector3 size); // Generate heightmap mesh from image data +RLAPI Mesh GenMeshCubicmap(Image cubicmap, Vector3 cubeSize); // Generate cubes-based map mesh from image data + +// Material loading/unloading functions +RLAPI Material *LoadMaterials(const char *fileName, int *materialCount); // Load materials from model file +RLAPI Material LoadMaterialDefault(void); // Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) +RLAPI bool IsMaterialValid(Material material); // Check if a material is valid (shader assigned, map textures loaded in GPU) +RLAPI void UnloadMaterial(Material material); // Unload material from GPU memory (VRAM) +RLAPI void SetMaterialTexture(Material *material, int mapType, Texture2D texture); // Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...) +RLAPI void SetModelMeshMaterial(Model *model, int meshId, int materialId); // Set material for a mesh + +// Model animations loading/unloading functions +RLAPI ModelAnimation *LoadModelAnimations(const char *fileName, int *animCount); // Load model animations from file +RLAPI void UpdateModelAnimation(Model model, ModelAnimation anim, float frame); // Update model animation pose (vertex buffers and bone matrices) +RLAPI void UpdateModelAnimationEx(Model model, ModelAnimation animA, float frameA, ModelAnimation animB, float frameB, float blend); // Update model animation pose, blending two animations +RLAPI void UnloadModelAnimations(ModelAnimation *animations, int animCount); // Unload animation array data +RLAPI bool IsModelAnimationValid(Model model, ModelAnimation anim); // Check model animation skeleton match + +// Collision detection functions +RLAPI bool CheckCollisionSpheres(Vector3 center1, float radius1, Vector3 center2, float radius2); // Check collision between two spheres +RLAPI bool CheckCollisionBoxes(BoundingBox box1, BoundingBox box2); // Check collision between two bounding boxes +RLAPI bool CheckCollisionBoxSphere(BoundingBox box, Vector3 center, float radius); // Check collision between box and sphere +RLAPI RayCollision GetRayCollisionSphere(Ray ray, Vector3 center, float radius); // Get collision info between ray and sphere +RLAPI RayCollision GetRayCollisionBox(Ray ray, BoundingBox box); // Get collision info between ray and box +RLAPI RayCollision GetRayCollisionMesh(Ray ray, Mesh mesh, Matrix transform); // Get collision info between ray and mesh +RLAPI RayCollision GetRayCollisionTriangle(Ray ray, Vector3 p1, Vector3 p2, Vector3 p3); // Get collision info between ray and triangle +RLAPI RayCollision GetRayCollisionQuad(Ray ray, Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4); // Get collision info between ray and quad + +//------------------------------------------------------------------------------------ +// Audio Loading and Playing Functions (Module: audio) +//------------------------------------------------------------------------------------ +typedef void (*AudioCallback)(void *bufferData, unsigned int frames); + +// Audio device management functions +RLAPI void InitAudioDevice(void); // Initialize audio device and context +RLAPI void CloseAudioDevice(void); // Close the audio device and context +RLAPI bool IsAudioDeviceReady(void); // Check if audio device has been initialized successfully +RLAPI void SetMasterVolume(float volume); // Set master volume (listener) +RLAPI float GetMasterVolume(void); // Get master volume (listener) + +// Wave/Sound loading/unloading functions +RLAPI Wave LoadWave(const char *fileName); // Load wave data from file +RLAPI Wave LoadWaveFromMemory(const char *fileType, const unsigned char *fileData, int dataSize); // Load wave from memory buffer, fileType refers to extension: i.e. '.wav' +RLAPI bool IsWaveValid(Wave wave); // Checks if wave data is valid (data loaded and parameters) +RLAPI Sound LoadSound(const char *fileName); // Load sound from file +RLAPI Sound LoadSoundFromWave(Wave wave); // Load sound from wave data +RLAPI Sound LoadSoundAlias(Sound source); // Create a new sound that shares the same sample data as the source sound, does not own the sound data +RLAPI bool IsSoundValid(Sound sound); // Checks if a sound is valid (data loaded and buffers initialized) +RLAPI void UpdateSound(Sound sound, const void *data, int sampleCount); // Update sound buffer with new data (default data format: 32 bit float, stereo) +RLAPI void UnloadWave(Wave wave); // Unload wave data +RLAPI void UnloadSound(Sound sound); // Unload sound +RLAPI void UnloadSoundAlias(Sound alias); // Unload a sound alias (does not deallocate sample data) +RLAPI bool ExportWave(Wave wave, const char *fileName); // Export wave data to file, returns true on success +RLAPI bool ExportWaveAsCode(Wave wave, const char *fileName); // Export wave sample data to code (.h), returns true on success + +// Wave/Sound management functions +RLAPI void PlaySound(Sound sound); // Play a sound +RLAPI void StopSound(Sound sound); // Stop playing a sound +RLAPI void PauseSound(Sound sound); // Pause a sound +RLAPI void ResumeSound(Sound sound); // Resume a paused sound +RLAPI bool IsSoundPlaying(Sound sound); // Check if a sound is currently playing +RLAPI void SetSoundVolume(Sound sound, float volume); // Set volume for a sound (1.0 is max level) +RLAPI void SetSoundPitch(Sound sound, float pitch); // Set pitch for a sound (1.0 is base level) +RLAPI void SetSoundPan(Sound sound, float pan); // Set pan for a sound (-1.0 left, 0.0 center, 1.0 right) +RLAPI Wave WaveCopy(Wave wave); // Copy a wave to a new wave +RLAPI void WaveCrop(Wave *wave, int initFrame, int finalFrame); // Crop a wave to defined frames range +RLAPI void WaveFormat(Wave *wave, int sampleRate, int sampleSize, int channels); // Convert wave data to desired format +RLAPI float *LoadWaveSamples(Wave wave); // Load samples data from wave as a 32bit float data array +RLAPI void UnloadWaveSamples(float *samples); // Unload samples data loaded with LoadWaveSamples() + +// Music management functions +RLAPI Music LoadMusicStream(const char *fileName); // Load music stream from file +RLAPI Music LoadMusicStreamFromMemory(const char *fileType, const unsigned char *data, int dataSize); // Load music stream from data +RLAPI bool IsMusicValid(Music music); // Checks if a music stream is valid (context and buffers initialized) +RLAPI void UnloadMusicStream(Music music); // Unload music stream +RLAPI void PlayMusicStream(Music music); // Start music playing +RLAPI bool IsMusicStreamPlaying(Music music); // Check if music is playing +RLAPI void UpdateMusicStream(Music music); // Updates buffers for music streaming +RLAPI void StopMusicStream(Music music); // Stop music playing +RLAPI void PauseMusicStream(Music music); // Pause music playing +RLAPI void ResumeMusicStream(Music music); // Resume playing paused music +RLAPI void SeekMusicStream(Music music, float position); // Seek music to a position (in seconds) +RLAPI void SetMusicVolume(Music music, float volume); // Set volume for music (1.0 is max level) +RLAPI void SetMusicPitch(Music music, float pitch); // Set pitch for a music (1.0 is base level) +RLAPI void SetMusicPan(Music music, float pan); // Set pan for a music (-1.0 left, 0.0 center, 1.0 right) +RLAPI float GetMusicTimeLength(Music music); // Get music time length (in seconds) +RLAPI float GetMusicTimePlayed(Music music); // Get current music time played (in seconds) + +// AudioStream management functions +RLAPI AudioStream LoadAudioStream(unsigned int sampleRate, unsigned int sampleSize, unsigned int channels); // Load audio stream (to stream raw audio pcm data) +RLAPI bool IsAudioStreamValid(AudioStream stream); // Checks if an audio stream is valid (buffers initialized) +RLAPI void UnloadAudioStream(AudioStream stream); // Unload audio stream and free memory +RLAPI void UpdateAudioStream(AudioStream stream, const void *data, int frameCount); // Update audio stream buffers with data +RLAPI bool IsAudioStreamProcessed(AudioStream stream); // Check if any audio stream buffers requires refill +RLAPI void PlayAudioStream(AudioStream stream); // Play audio stream +RLAPI void PauseAudioStream(AudioStream stream); // Pause audio stream +RLAPI void ResumeAudioStream(AudioStream stream); // Resume audio stream +RLAPI bool IsAudioStreamPlaying(AudioStream stream); // Check if audio stream is playing +RLAPI void StopAudioStream(AudioStream stream); // Stop audio stream +RLAPI void SetAudioStreamVolume(AudioStream stream, float volume); // Set volume for audio stream (1.0 is max level) +RLAPI void SetAudioStreamPitch(AudioStream stream, float pitch); // Set pitch for audio stream (1.0 is base level) +RLAPI void SetAudioStreamPan(AudioStream stream, float pan); // Set pan for audio stream (-1.0 to 1.0 range, 0.0 is centered) +RLAPI void SetAudioStreamBufferSizeDefault(int size); // Default size for new audio streams +RLAPI void SetAudioStreamCallback(AudioStream stream, AudioCallback callback); // Audio thread callback to request new data + +RLAPI void AttachAudioStreamProcessor(AudioStream stream, AudioCallback processor); // Attach audio stream processor to stream, receives frames x 2 samples as 'float' (stereo) +RLAPI void DetachAudioStreamProcessor(AudioStream stream, AudioCallback processor); // Detach audio stream processor from stream + +RLAPI void AttachAudioMixedProcessor(AudioCallback processor); // Attach audio stream processor to the entire audio pipeline, receives frames x 2 samples as 'float' (stereo) +RLAPI void DetachAudioMixedProcessor(AudioCallback processor); // Detach audio stream processor from the entire audio pipeline + +#if defined(__cplusplus) +} +#endif + +#endif // RAYLIB_H diff --git a/.zig-cache/o/0cb472c14c1ac56695fea882facb905b/raymath.h b/.zig-cache/o/0cb472c14c1ac56695fea882facb905b/raymath.h new file mode 100644 index 0000000..9398258 --- /dev/null +++ b/.zig-cache/o/0cb472c14c1ac56695fea882facb905b/raymath.h @@ -0,0 +1,3139 @@ +/********************************************************************************************** +* +* raymath v2.0 - Math functions to work with Vector2, Vector3, Matrix and Quaternions +* +* CONVENTIONS: +* - Matrix structure is defined as row-major (memory layout) but parameters naming AND all +* math operations performed by the library consider the structure as it was column-major +* It is like transposed versions of the matrices are used for all the maths +* It benefits some functions making them cache-friendly and also avoids matrix +* transpositions sometimes required by OpenGL +* Example: In memory order, row0 is [m0 m4 m8 m12] but in semantic math row0 is [m0 m1 m2 m3] +* - Functions are always self-contained, no function use another raymath function inside, +* required code is directly re-implemented inside +* - Functions input parameters are always received by value (2 unavoidable exceptions) +* - Functions use always a "result" variable for return (except C++ operators) +* - Functions are always defined inline +* - Angles are always in radians (DEG2RAD/RAD2DEG macros provided for convenience) +* - No compound literals used to make sure the library is compatible with C++ +* +* CONFIGURATION: +* #define RAYMATH_IMPLEMENTATION +* Generates the implementation of the library into the included file +* If not defined, the library is in header only mode and can be included in other headers +* or source files without problems. But only ONE file should hold the implementation +* +* #define RAYMATH_STATIC_INLINE +* Define static inline functions code, so #include header suffices for use +* This may use up lots of memory +* +* #define RAYMATH_DISABLE_CPP_OPERATORS +* Disables C++ operator overloads for raymath types. +* +* #define RAYMATH_USE_SIMD_INTRINSICS 1 +* Try to enable SIMD intrinsics for MatrixMultiply() +* Note that users enabling it must be aware of the target platform where application will +* run to support the selected SIMD intrinsic, for now, only SSE is supported +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2015-2026 Ramon Santamaria (@raysan5) +* +* This software is provided "as-is", without any express or implied warranty. In no event +* will the authors be held liable for any damages arising from the use of this software. +* +* Permission is granted to anyone to use this software for any purpose, including commercial +* applications, and to alter it and redistribute it freely, subject to the following restrictions: +* +* 1. The origin of this software must not be misrepresented; you must not claim that you +* wrote the original software. If you use this software in a product, an acknowledgment +* in the product documentation would be appreciated but is not required. +* +* 2. Altered source versions must be plainly marked as such, and must not be misrepresented +* as being the original software. +* +* 3. This notice may not be removed or altered from any source distribution. +* +**********************************************************************************************/ + +#ifndef RAYMATH_H +#define RAYMATH_H + +#if defined(RAYMATH_IMPLEMENTATION) && defined(RAYMATH_STATIC_INLINE) + #error "Specifying both RAYMATH_IMPLEMENTATION and RAYMATH_STATIC_INLINE is contradictory" +#endif + +// Function specifiers definition +#if defined(RAYMATH_IMPLEMENTATION) + #if defined(_WIN32) && defined(BUILD_LIBTYPE_SHARED) + #define RMAPI __declspec(dllexport) extern inline // Building raylib as a Win32 shared library (.dll) + #elif defined(BUILD_LIBTYPE_SHARED) + #define RMAPI __attribute__((visibility("default"))) // Building raylib as a Unix shared library (.so/.dylib) + #elif defined(_WIN32) && defined(USE_LIBTYPE_SHARED) + #define RMAPI __declspec(dllimport) // Using raylib as a Win32 shared library (.dll) + #else + #define RMAPI extern inline // Provide external definition + #endif +#elif defined(RAYMATH_STATIC_INLINE) + #define RMAPI static inline // Functions may be inlined, no external out-of-line definition +#else + #if defined(__TINYC__) + #define RMAPI static inline // plain inline not supported by tinycc (See issue #435) + #else + #define RMAPI inline // Functions may be inlined or external definition used + #endif +#endif + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- +#ifndef PI + #define PI 3.14159265358979323846f +#endif + +#ifndef EPSILON + #define EPSILON 0.000001f +#endif + +#ifndef DEG2RAD + #define DEG2RAD (PI/180.0f) +#endif + +#ifndef RAD2DEG + #define RAD2DEG (180.0f/PI) +#endif + +// Get float vector for Matrix +#ifndef MatrixToFloat + #define MatrixToFloat(mat) (MatrixToFloatV(mat).v) +#endif + +// Get float vector for Vector3 +#ifndef Vector3ToFloat + #define Vector3ToFloat(vec) (Vector3ToFloatV(vec).v) +#endif + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +#if !defined(RL_VECTOR2_TYPE) +// Vector2 type +typedef struct Vector2 { + float x; + float y; +} Vector2; +#define RL_VECTOR2_TYPE +#endif + +#if !defined(RL_VECTOR3_TYPE) +// Vector3 type +typedef struct Vector3 { + float x; + float y; + float z; +} Vector3; +#define RL_VECTOR3_TYPE +#endif + +#if !defined(RL_VECTOR4_TYPE) +// Vector4 type +typedef struct Vector4 { + float x; + float y; + float z; + float w; +} Vector4; +#define RL_VECTOR4_TYPE +#endif + +#if !defined(RL_QUATERNION_TYPE) +// Quaternion type +typedef Vector4 Quaternion; +#define RL_QUATERNION_TYPE +#endif + +#if !defined(RL_MATRIX_TYPE) +// Matrix type (OpenGL style 4x4 - right handed, column major) +typedef struct Matrix { + float m0, m4, m8, m12; // Matrix first row (4 components) + float m1, m5, m9, m13; // Matrix second row (4 components) + float m2, m6, m10, m14; // Matrix third row (4 components) + float m3, m7, m11, m15; // Matrix fourth row (4 components) +} Matrix; +#define RL_MATRIX_TYPE +#endif + +// NOTE: Helper types to be used instead of array return types for *ToFloat functions +#if !defined(RL_FLOAT3_TYPE) +typedef struct float3 { + float v[3]; +} float3; +#define RL_FLOAT3_TYPE +#endif + +#if !defined(RL_FLOAT16_TYPE) +typedef struct float16 { + float v[16]; +} float16; +#define RL_FLOAT16_TYPE +#endif + +#include // Required for: sinf(), cosf(), tan(), atan2f(), sqrtf(), floor(), fminf(), fmaxf(), fabsf() + +#if RAYMATH_USE_SIMD_INTRINSICS + // SIMD is used on the most costly raymath function MatrixMultiply() + // NOTE: Only SSE intrinsics support implemented + // TODO: Consider support for other SIMD intrinsics: + // - SSEx, AVX, AVX2, FMA, NEON, RVV + /* + #if defined(__SSE4_2__) + #include + #define RAYMATH_SSE42_ENABLED + #elif defined(__SSE4_1__) + #include + #define RAYMATH_SSE41_ENABLED + #elif defined(__SSSE3__) + #include + #define RAYMATH_SSSE3_ENABLED + #elif defined(__SSE3__) + #include + #define RAYMATH_SSE3_ENABLED + #elif defined(__SSE2__) || (defined(_M_AMD64) || defined(_M_X64)) // SSE2 x64 + #include + #define RAYMATH_SSE2_ENABLED + #endif + */ + #if defined(__SSE__) || defined(_M_X64) || (defined(_M_IX86_FP) && (_M_IX86_FP >= 1)) + #include + #define RAYMATH_SSE_ENABLED + #endif +#endif + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Utils math +//---------------------------------------------------------------------------------- + +// Clamp float value +RMAPI float Clamp(float value, float min, float max) +{ + float result = (value < min)? min : value; + + if (result > max) result = max; + + return result; +} + +// Calculate linear interpolation between two floats +RMAPI float Lerp(float start, float end, float amount) +{ + float result = start + amount*(end - start); + + return result; +} + +// Normalize input value within input range +RMAPI float Normalize(float value, float start, float end) +{ + float result = (value - start)/(end - start); + + return result; +} + +// Remap input value within input range to output range +RMAPI float Remap(float value, float inputStart, float inputEnd, float outputStart, float outputEnd) +{ + float result = (value - inputStart)/(inputEnd - inputStart)*(outputEnd - outputStart) + outputStart; + + return result; +} + +// Wrap input value from min to max +RMAPI float Wrap(float value, float min, float max) +{ + float result = value - (max - min)*floorf((value - min)/(max - min)); + + return result; +} + +// Check whether two given floats are almost equal +RMAPI int FloatEquals(float x, float y) +{ +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + int result = (fabsf(x - y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(x), fabsf(y)))); + + return result; +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Vector2 math +//---------------------------------------------------------------------------------- + +// Vector with components value 0.0f +RMAPI Vector2 Vector2Zero(void) +{ + Vector2 result = { 0.0f, 0.0f }; + + return result; +} + +// Vector with components value 1.0f +RMAPI Vector2 Vector2One(void) +{ + Vector2 result = { 1.0f, 1.0f }; + + return result; +} + +// Add two vectors (v1 + v2) +RMAPI Vector2 Vector2Add(Vector2 v1, Vector2 v2) +{ + Vector2 result = { v1.x + v2.x, v1.y + v2.y }; + + return result; +} + +// Add vector and float value +RMAPI Vector2 Vector2AddValue(Vector2 v, float add) +{ + Vector2 result = { v.x + add, v.y + add }; + + return result; +} + +// Subtract two vectors (v1 - v2) +RMAPI Vector2 Vector2Subtract(Vector2 v1, Vector2 v2) +{ + Vector2 result = { v1.x - v2.x, v1.y - v2.y }; + + return result; +} + +// Subtract vector by float value +RMAPI Vector2 Vector2SubtractValue(Vector2 v, float sub) +{ + Vector2 result = { v.x - sub, v.y - sub }; + + return result; +} + +// Calculate vector length +RMAPI float Vector2Length(Vector2 v) +{ + float result = sqrtf((v.x*v.x) + (v.y*v.y)); + + return result; +} + +// Calculate vector square length +RMAPI float Vector2LengthSqr(Vector2 v) +{ + float result = (v.x*v.x) + (v.y*v.y); + + return result; +} + +// Calculate two vectors dot product +RMAPI float Vector2DotProduct(Vector2 v1, Vector2 v2) +{ + float result = (v1.x*v2.x + v1.y*v2.y); + + return result; +} + +// Calculate two vectors cross product +RMAPI float Vector2CrossProduct(Vector2 v1, Vector2 v2) +{ + float result = (v1.x*v2.y - v1.y*v2.x); + + return result; +} + +// Calculate distance between two vectors +RMAPI float Vector2Distance(Vector2 v1, Vector2 v2) +{ + float result = sqrtf((v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y)); + + return result; +} + +// Calculate square distance between two vectors +RMAPI float Vector2DistanceSqr(Vector2 v1, Vector2 v2) +{ + float result = ((v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y)); + + return result; +} + +// Calculate the signed angle from v1 to v2, relative to the origin (0, 0) +// NOTE: Coordinate system convention: positive X right, positive Y down +// positive angles appear clockwise, and negative angles appear counterclockwise +RMAPI float Vector2Angle(Vector2 v1, Vector2 v2) +{ + float result = 0.0f; + + float dot = v1.x*v2.x + v1.y*v2.y; + float det = v1.x*v2.y - v1.y*v2.x; + + result = atan2f(det, dot); + + return result; +} + +// Calculate angle defined by a two vectors line +// NOTE: Parameters need to be normalized +// Current implementation should be aligned with glm::angle +RMAPI float Vector2LineAngle(Vector2 start, Vector2 end) +{ + float result = 0.0f; + + // TODO(10/9/2023): Currently angles move clockwise, determine if this is wanted behavior + result = -atan2f(end.y - start.y, end.x - start.x); + + return result; +} + +// Scale vector (multiply by value) +RMAPI Vector2 Vector2Scale(Vector2 v, float scale) +{ + Vector2 result = { v.x*scale, v.y*scale }; + + return result; +} + +// Multiply vector by vector +RMAPI Vector2 Vector2Multiply(Vector2 v1, Vector2 v2) +{ + Vector2 result = { v1.x*v2.x, v1.y*v2.y }; + + return result; +} + +// Negate vector +RMAPI Vector2 Vector2Negate(Vector2 v) +{ + Vector2 result = { -v.x, -v.y }; + + return result; +} + +// Divide vector by vector +RMAPI Vector2 Vector2Divide(Vector2 v1, Vector2 v2) +{ + Vector2 result = { v1.x/v2.x, v1.y/v2.y }; + + return result; +} + +// Normalize provided vector +RMAPI Vector2 Vector2Normalize(Vector2 v) +{ + Vector2 result = { 0 }; + float length = sqrtf((v.x*v.x) + (v.y*v.y)); + + if (length > 0) + { + float ilength = 1.0f/length; + result.x = v.x*ilength; + result.y = v.y*ilength; + } + + return result; +} + +// Transforms a Vector2 by a given Matrix +RMAPI Vector2 Vector2Transform(Vector2 v, Matrix mat) +{ + Vector2 result = { 0 }; + + float x = v.x; + float y = v.y; + float z = 0; + + result.x = mat.m0*x + mat.m4*y + mat.m8*z + mat.m12; + result.y = mat.m1*x + mat.m5*y + mat.m9*z + mat.m13; + + return result; +} + +// Calculate linear interpolation between two vectors +RMAPI Vector2 Vector2Lerp(Vector2 v1, Vector2 v2, float amount) +{ + Vector2 result = { 0 }; + + result.x = v1.x + amount*(v2.x - v1.x); + result.y = v1.y + amount*(v2.y - v1.y); + + return result; +} + +// Calculate reflected vector to normal +RMAPI Vector2 Vector2Reflect(Vector2 v, Vector2 normal) +{ + Vector2 result = { 0 }; + + float dotProduct = (v.x*normal.x + v.y*normal.y); // Dot product + + result.x = v.x - (2.0f*normal.x)*dotProduct; + result.y = v.y - (2.0f*normal.y)*dotProduct; + + return result; +} + +// Get min value for each pair of components +RMAPI Vector2 Vector2Min(Vector2 v1, Vector2 v2) +{ + Vector2 result = { 0 }; + + result.x = fminf(v1.x, v2.x); + result.y = fminf(v1.y, v2.y); + + return result; +} + +// Get max value for each pair of components +RMAPI Vector2 Vector2Max(Vector2 v1, Vector2 v2) +{ + Vector2 result = { 0 }; + + result.x = fmaxf(v1.x, v2.x); + result.y = fmaxf(v1.y, v2.y); + + return result; +} + +// Rotate vector by angle +RMAPI Vector2 Vector2Rotate(Vector2 v, float angle) +{ + Vector2 result = { 0 }; + + float cosres = cosf(angle); + float sinres = sinf(angle); + + result.x = v.x*cosres - v.y*sinres; + result.y = v.x*sinres + v.y*cosres; + + return result; +} + +// Move Vector towards target +RMAPI Vector2 Vector2MoveTowards(Vector2 v, Vector2 target, float maxDistance) +{ + Vector2 result = { 0 }; + + float dx = target.x - v.x; + float dy = target.y - v.y; + float value = (dx*dx) + (dy*dy); + + if ((value == 0) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target; + + float dist = sqrtf(value); + + result.x = v.x + dx/dist*maxDistance; + result.y = v.y + dy/dist*maxDistance; + + return result; +} + +// Invert the given vector +RMAPI Vector2 Vector2Invert(Vector2 v) +{ + Vector2 result = { 1.0f/v.x, 1.0f/v.y }; + + return result; +} + +// Clamp the components of the vector between +// min and max values specified by the given vectors +RMAPI Vector2 Vector2Clamp(Vector2 v, Vector2 min, Vector2 max) +{ + Vector2 result = { 0 }; + + result.x = fminf(max.x, fmaxf(min.x, v.x)); + result.y = fminf(max.y, fmaxf(min.y, v.y)); + + return result; +} + +// Clamp the magnitude of the vector between two min and max values +RMAPI Vector2 Vector2ClampValue(Vector2 v, float min, float max) +{ + Vector2 result = v; + + float length = (v.x*v.x) + (v.y*v.y); + if (length > 0.0f) + { + length = sqrtf(length); + + float scale = 1; // By default, 1 as the neutral element + if (length < min) scale = min/length; + else if (length > max) scale = max/length; + + result.x = v.x*scale; + result.y = v.y*scale; + } + + return result; +} + +// Check whether two given vectors are almost equal +RMAPI int Vector2Equals(Vector2 p, Vector2 q) +{ +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + int result = ((fabsf(p.x - q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && + ((fabsf(p.y - q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))); + + return result; +} + +// Compute the direction of a refracted ray +// v: normalized direction of the incoming ray +// n: normalized normal vector of the interface of two optical media +// r: ratio of the refractive index of the medium from where the ray comes +// to the refractive index of the medium on the other side of the surface +RMAPI Vector2 Vector2Refract(Vector2 v, Vector2 n, float r) +{ + Vector2 result = { 0 }; + + float dot = v.x*n.x + v.y*n.y; + float d = 1.0f - r*r*(1.0f - dot*dot); + + if (d >= 0.0f) + { + d = sqrtf(d); + v.x = r*v.x - (r*dot + d)*n.x; + v.y = r*v.y - (r*dot + d)*n.y; + + result = v; + } + + return result; +} + + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Vector3 math +//---------------------------------------------------------------------------------- + +// Vector with components value 0.0f +RMAPI Vector3 Vector3Zero(void) +{ + Vector3 result = { 0.0f, 0.0f, 0.0f }; + + return result; +} + +// Vector with components value 1.0f +RMAPI Vector3 Vector3One(void) +{ + Vector3 result = { 1.0f, 1.0f, 1.0f }; + + return result; +} + +// Add two vectors +RMAPI Vector3 Vector3Add(Vector3 v1, Vector3 v2) +{ + Vector3 result = { v1.x + v2.x, v1.y + v2.y, v1.z + v2.z }; + + return result; +} + +// Add vector and float value +RMAPI Vector3 Vector3AddValue(Vector3 v, float add) +{ + Vector3 result = { v.x + add, v.y + add, v.z + add }; + + return result; +} + +// Subtract two vectors +RMAPI Vector3 Vector3Subtract(Vector3 v1, Vector3 v2) +{ + Vector3 result = { v1.x - v2.x, v1.y - v2.y, v1.z - v2.z }; + + return result; +} + +// Subtract vector by float value +RMAPI Vector3 Vector3SubtractValue(Vector3 v, float sub) +{ + Vector3 result = { v.x - sub, v.y - sub, v.z - sub }; + + return result; +} + +// Multiply vector by scalar +RMAPI Vector3 Vector3Scale(Vector3 v, float scalar) +{ + Vector3 result = { v.x*scalar, v.y*scalar, v.z*scalar }; + + return result; +} + +// Multiply vector by vector +RMAPI Vector3 Vector3Multiply(Vector3 v1, Vector3 v2) +{ + Vector3 result = { v1.x*v2.x, v1.y*v2.y, v1.z*v2.z }; + + return result; +} + +// Calculate two vectors cross product +RMAPI Vector3 Vector3CrossProduct(Vector3 v1, Vector3 v2) +{ + Vector3 result = { v1.y*v2.z - v1.z*v2.y, v1.z*v2.x - v1.x*v2.z, v1.x*v2.y - v1.y*v2.x }; + + return result; +} + +// Calculate one vector perpendicular vector +RMAPI Vector3 Vector3Perpendicular(Vector3 v) +{ + Vector3 result = { 0 }; + + float min = fabsf(v.x); + Vector3 cardinalAxis = {1.0f, 0.0f, 0.0f}; + + if (fabsf(v.y) < min) + { + min = fabsf(v.y); + Vector3 tmp = {0.0f, 1.0f, 0.0f}; + cardinalAxis = tmp; + } + + if (fabsf(v.z) < min) + { + Vector3 tmp = {0.0f, 0.0f, 1.0f}; + cardinalAxis = tmp; + } + + // Cross product between vectors + result.x = v.y*cardinalAxis.z - v.z*cardinalAxis.y; + result.y = v.z*cardinalAxis.x - v.x*cardinalAxis.z; + result.z = v.x*cardinalAxis.y - v.y*cardinalAxis.x; + + return result; +} + +// Calculate vector length +RMAPI float Vector3Length(const Vector3 v) +{ + float result = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + + return result; +} + +// Calculate vector square length +RMAPI float Vector3LengthSqr(const Vector3 v) +{ + float result = v.x*v.x + v.y*v.y + v.z*v.z; + + return result; +} + +// Calculate two vectors dot product +RMAPI float Vector3DotProduct(Vector3 v1, Vector3 v2) +{ + float result = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); + + return result; +} + +// Calculate distance between two vectors +RMAPI float Vector3Distance(Vector3 v1, Vector3 v2) +{ + float result = 0.0f; + + float dx = v2.x - v1.x; + float dy = v2.y - v1.y; + float dz = v2.z - v1.z; + result = sqrtf(dx*dx + dy*dy + dz*dz); + + return result; +} + +// Calculate square distance between two vectors +RMAPI float Vector3DistanceSqr(Vector3 v1, Vector3 v2) +{ + float result = 0.0f; + + float dx = v2.x - v1.x; + float dy = v2.y - v1.y; + float dz = v2.z - v1.z; + result = dx*dx + dy*dy + dz*dz; + + return result; +} + +// Calculate angle between two vectors +RMAPI float Vector3Angle(Vector3 v1, Vector3 v2) +{ + float result = 0.0f; + + Vector3 cross = { v1.y*v2.z - v1.z*v2.y, v1.z*v2.x - v1.x*v2.z, v1.x*v2.y - v1.y*v2.x }; + float len = sqrtf(cross.x*cross.x + cross.y*cross.y + cross.z*cross.z); + float dot = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); + result = atan2f(len, dot); + + return result; +} + +// Negate provided vector (invert direction) +RMAPI Vector3 Vector3Negate(Vector3 v) +{ + Vector3 result = { -v.x, -v.y, -v.z }; + + return result; +} + +// Divide vector by vector +RMAPI Vector3 Vector3Divide(Vector3 v1, Vector3 v2) +{ + Vector3 result = { v1.x/v2.x, v1.y/v2.y, v1.z/v2.z }; + + return result; +} + +// Normalize provided vector +RMAPI Vector3 Vector3Normalize(Vector3 v) +{ + Vector3 result = v; + + float length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + if (length != 0.0f) + { + float ilength = 1.0f/length; + + result.x *= ilength; + result.y *= ilength; + result.z *= ilength; + } + + return result; +} + +//Calculate the projection of the vector v1 on to v2 +RMAPI Vector3 Vector3Project(Vector3 v1, Vector3 v2) +{ + Vector3 result = { 0 }; + + float v1dv2 = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); + float v2dv2 = (v2.x*v2.x + v2.y*v2.y + v2.z*v2.z); + + float mag = v1dv2/v2dv2; + + result.x = v2.x*mag; + result.y = v2.y*mag; + result.z = v2.z*mag; + + return result; +} + +//Calculate the rejection of the vector v1 on to v2 +RMAPI Vector3 Vector3Reject(Vector3 v1, Vector3 v2) +{ + Vector3 result = { 0 }; + + float v1dv2 = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); + float v2dv2 = (v2.x*v2.x + v2.y*v2.y + v2.z*v2.z); + + float mag = v1dv2/v2dv2; + + result.x = v1.x - (v2.x*mag); + result.y = v1.y - (v2.y*mag); + result.z = v1.z - (v2.z*mag); + + return result; +} + +// Orthonormalize provided vectors +// Makes vectors normalized and orthogonal to each other +// Gram-Schmidt function implementation +RMAPI void Vector3OrthoNormalize(Vector3 *v1, Vector3 *v2) +{ + float length = 0.0f; + float ilength = 0.0f; + + // Vector3Normalize(*v1); + Vector3 v = *v1; + length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + if (length == 0.0f) length = 1.0f; + ilength = 1.0f/length; + v1->x *= ilength; + v1->y *= ilength; + v1->z *= ilength; + + // Vector3CrossProduct(*v1, *v2) + Vector3 vn1 = { v1->y*v2->z - v1->z*v2->y, v1->z*v2->x - v1->x*v2->z, v1->x*v2->y - v1->y*v2->x }; + + // Vector3Normalize(vn1); + v = vn1; + length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + if (length == 0.0f) length = 1.0f; + ilength = 1.0f/length; + vn1.x *= ilength; + vn1.y *= ilength; + vn1.z *= ilength; + + // Vector3CrossProduct(vn1, *v1) + Vector3 vn2 = { vn1.y*v1->z - vn1.z*v1->y, vn1.z*v1->x - vn1.x*v1->z, vn1.x*v1->y - vn1.y*v1->x }; + + *v2 = vn2; +} + +// Transforms a Vector3 by a given Matrix +RMAPI Vector3 Vector3Transform(Vector3 v, Matrix mat) +{ + Vector3 result = { 0 }; + + float x = v.x; + float y = v.y; + float z = v.z; + + result.x = mat.m0*x + mat.m4*y + mat.m8*z + mat.m12; + result.y = mat.m1*x + mat.m5*y + mat.m9*z + mat.m13; + result.z = mat.m2*x + mat.m6*y + mat.m10*z + mat.m14; + + return result; +} + +// Transform a vector by quaternion rotation +RMAPI Vector3 Vector3RotateByQuaternion(Vector3 v, Quaternion q) +{ + Vector3 result = { 0 }; + + result.x = v.x*(q.x*q.x + q.w*q.w - q.y*q.y - q.z*q.z) + v.y*(2*q.x*q.y - 2*q.w*q.z) + v.z*(2*q.x*q.z + 2*q.w*q.y); + result.y = v.x*(2*q.w*q.z + 2*q.x*q.y) + v.y*(q.w*q.w - q.x*q.x + q.y*q.y - q.z*q.z) + v.z*(-2*q.w*q.x + 2*q.y*q.z); + result.z = v.x*(-2*q.w*q.y + 2*q.x*q.z) + v.y*(2*q.w*q.x + 2*q.y*q.z)+ v.z*(q.w*q.w - q.x*q.x - q.y*q.y + q.z*q.z); + + return result; +} + +// Rotates a vector around an axis +RMAPI Vector3 Vector3RotateByAxisAngle(Vector3 v, Vector3 axis, float angle) +{ + // Using Euler-Rodrigues Formula + // Ref.: https://en.wikipedia.org/w/index.php?title=Euler%E2%80%93Rodrigues_formula + + Vector3 result = v; + + // Vector3Normalize(axis); + float length = sqrtf(axis.x*axis.x + axis.y*axis.y + axis.z*axis.z); + if (length == 0.0f) length = 1.0f; + float ilength = 1.0f/length; + axis.x *= ilength; + axis.y *= ilength; + axis.z *= ilength; + + angle /= 2.0f; + float a = sinf(angle); + float b = axis.x*a; + float c = axis.y*a; + float d = axis.z*a; + a = cosf(angle); + Vector3 w = { b, c, d }; + + // Vector3CrossProduct(w, v) + Vector3 wv = { w.y*v.z - w.z*v.y, w.z*v.x - w.x*v.z, w.x*v.y - w.y*v.x }; + + // Vector3CrossProduct(w, wv) + Vector3 wwv = { w.y*wv.z - w.z*wv.y, w.z*wv.x - w.x*wv.z, w.x*wv.y - w.y*wv.x }; + + // Vector3Scale(wv, 2*a) + a *= 2; + wv.x *= a; + wv.y *= a; + wv.z *= a; + + // Vector3Scale(wwv, 2) + wwv.x *= 2; + wwv.y *= 2; + wwv.z *= 2; + + result.x += wv.x; + result.y += wv.y; + result.z += wv.z; + + result.x += wwv.x; + result.y += wwv.y; + result.z += wwv.z; + + return result; +} + +// Move Vector towards target +RMAPI Vector3 Vector3MoveTowards(Vector3 v, Vector3 target, float maxDistance) +{ + Vector3 result = { 0 }; + + float dx = target.x - v.x; + float dy = target.y - v.y; + float dz = target.z - v.z; + float value = (dx*dx) + (dy*dy) + (dz*dz); + + if ((value == 0) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target; + + float dist = sqrtf(value); + + result.x = v.x + dx/dist*maxDistance; + result.y = v.y + dy/dist*maxDistance; + result.z = v.z + dz/dist*maxDistance; + + return result; +} + +// Calculate linear interpolation between two vectors +RMAPI Vector3 Vector3Lerp(Vector3 v1, Vector3 v2, float amount) +{ + Vector3 result = { 0 }; + + result.x = v1.x + amount*(v2.x - v1.x); + result.y = v1.y + amount*(v2.y - v1.y); + result.z = v1.z + amount*(v2.z - v1.z); + + return result; +} + +// Calculate cubic hermite interpolation between two vectors and their tangents +// as described in the GLTF 2.0 specification: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#interpolation-cubic +RMAPI Vector3 Vector3CubicHermite(Vector3 v1, Vector3 tangent1, Vector3 v2, Vector3 tangent2, float amount) +{ + Vector3 result = { 0 }; + + float amountPow2 = amount*amount; + float amountPow3 = amount*amount*amount; + + result.x = (2*amountPow3 - 3*amountPow2 + 1)*v1.x + (amountPow3 - 2*amountPow2 + amount)*tangent1.x + (-2*amountPow3 + 3*amountPow2)*v2.x + (amountPow3 - amountPow2)*tangent2.x; + result.y = (2*amountPow3 - 3*amountPow2 + 1)*v1.y + (amountPow3 - 2*amountPow2 + amount)*tangent1.y + (-2*amountPow3 + 3*amountPow2)*v2.y + (amountPow3 - amountPow2)*tangent2.y; + result.z = (2*amountPow3 - 3*amountPow2 + 1)*v1.z + (amountPow3 - 2*amountPow2 + amount)*tangent1.z + (-2*amountPow3 + 3*amountPow2)*v2.z + (amountPow3 - amountPow2)*tangent2.z; + + return result; +} + +// Calculate reflected vector to normal +RMAPI Vector3 Vector3Reflect(Vector3 v, Vector3 normal) +{ + Vector3 result = { 0 }; + + // I is the original vector + // N is the normal of the incident plane + // R = I - (2*N*(DotProduct[I, N])) + + float dotProduct = (v.x*normal.x + v.y*normal.y + v.z*normal.z); + + result.x = v.x - (2.0f*normal.x)*dotProduct; + result.y = v.y - (2.0f*normal.y)*dotProduct; + result.z = v.z - (2.0f*normal.z)*dotProduct; + + return result; +} + +// Get min value for each pair of components +RMAPI Vector3 Vector3Min(Vector3 v1, Vector3 v2) +{ + Vector3 result = { 0 }; + + result.x = fminf(v1.x, v2.x); + result.y = fminf(v1.y, v2.y); + result.z = fminf(v1.z, v2.z); + + return result; +} + +// Get max value for each pair of components +RMAPI Vector3 Vector3Max(Vector3 v1, Vector3 v2) +{ + Vector3 result = { 0 }; + + result.x = fmaxf(v1.x, v2.x); + result.y = fmaxf(v1.y, v2.y); + result.z = fmaxf(v1.z, v2.z); + + return result; +} + +// Compute barycenter coordinates (u, v, w) for point p with respect to triangle (a, b, c) +// NOTE: Assumes P is on the plane of the triangle +RMAPI Vector3 Vector3Barycenter(Vector3 p, Vector3 a, Vector3 b, Vector3 c) +{ + Vector3 result = { 0 }; + + Vector3 v0 = { b.x - a.x, b.y - a.y, b.z - a.z }; // Vector3Subtract(b, a) + Vector3 v1 = { c.x - a.x, c.y - a.y, c.z - a.z }; // Vector3Subtract(c, a) + Vector3 v2 = { p.x - a.x, p.y - a.y, p.z - a.z }; // Vector3Subtract(p, a) + float d00 = (v0.x*v0.x + v0.y*v0.y + v0.z*v0.z); // Vector3DotProduct(v0, v0) + float d01 = (v0.x*v1.x + v0.y*v1.y + v0.z*v1.z); // Vector3DotProduct(v0, v1) + float d11 = (v1.x*v1.x + v1.y*v1.y + v1.z*v1.z); // Vector3DotProduct(v1, v1) + float d20 = (v2.x*v0.x + v2.y*v0.y + v2.z*v0.z); // Vector3DotProduct(v2, v0) + float d21 = (v2.x*v1.x + v2.y*v1.y + v2.z*v1.z); // Vector3DotProduct(v2, v1) + + float denom = d00*d11 - d01*d01; + + result.y = (d11*d20 - d01*d21)/denom; + result.z = (d00*d21 - d01*d20)/denom; + result.x = 1.0f - (result.z + result.y); + + return result; +} + +// Projects a Vector3 from screen space into object space +// NOTE: Self-contained function, no other raymath functions are called +RMAPI Vector3 Vector3Unproject(Vector3 source, Matrix projection, Matrix view) +{ + Vector3 result = { 0 }; + + // Calculate unprojected matrix (multiply view matrix by projection matrix) and invert it + Matrix matViewProj = { // MatrixMultiply(view, projection); + view.m0*projection.m0 + view.m1*projection.m4 + view.m2*projection.m8 + view.m3*projection.m12, + view.m0*projection.m1 + view.m1*projection.m5 + view.m2*projection.m9 + view.m3*projection.m13, + view.m0*projection.m2 + view.m1*projection.m6 + view.m2*projection.m10 + view.m3*projection.m14, + view.m0*projection.m3 + view.m1*projection.m7 + view.m2*projection.m11 + view.m3*projection.m15, + view.m4*projection.m0 + view.m5*projection.m4 + view.m6*projection.m8 + view.m7*projection.m12, + view.m4*projection.m1 + view.m5*projection.m5 + view.m6*projection.m9 + view.m7*projection.m13, + view.m4*projection.m2 + view.m5*projection.m6 + view.m6*projection.m10 + view.m7*projection.m14, + view.m4*projection.m3 + view.m5*projection.m7 + view.m6*projection.m11 + view.m7*projection.m15, + view.m8*projection.m0 + view.m9*projection.m4 + view.m10*projection.m8 + view.m11*projection.m12, + view.m8*projection.m1 + view.m9*projection.m5 + view.m10*projection.m9 + view.m11*projection.m13, + view.m8*projection.m2 + view.m9*projection.m6 + view.m10*projection.m10 + view.m11*projection.m14, + view.m8*projection.m3 + view.m9*projection.m7 + view.m10*projection.m11 + view.m11*projection.m15, + view.m12*projection.m0 + view.m13*projection.m4 + view.m14*projection.m8 + view.m15*projection.m12, + view.m12*projection.m1 + view.m13*projection.m5 + view.m14*projection.m9 + view.m15*projection.m13, + view.m12*projection.m2 + view.m13*projection.m6 + view.m14*projection.m10 + view.m15*projection.m14, + view.m12*projection.m3 + view.m13*projection.m7 + view.m14*projection.m11 + view.m15*projection.m15 }; + + // Calculate inverted matrix -> MatrixInvert(matViewProj); + // Cache the matrix values (speed optimization) + float a00 = matViewProj.m0, a01 = matViewProj.m1, a02 = matViewProj.m2, a03 = matViewProj.m3; + float a10 = matViewProj.m4, a11 = matViewProj.m5, a12 = matViewProj.m6, a13 = matViewProj.m7; + float a20 = matViewProj.m8, a21 = matViewProj.m9, a22 = matViewProj.m10, a23 = matViewProj.m11; + float a30 = matViewProj.m12, a31 = matViewProj.m13, a32 = matViewProj.m14, a33 = matViewProj.m15; + + float b00 = a00*a11 - a01*a10; + float b01 = a00*a12 - a02*a10; + float b02 = a00*a13 - a03*a10; + float b03 = a01*a12 - a02*a11; + float b04 = a01*a13 - a03*a11; + float b05 = a02*a13 - a03*a12; + float b06 = a20*a31 - a21*a30; + float b07 = a20*a32 - a22*a30; + float b08 = a20*a33 - a23*a30; + float b09 = a21*a32 - a22*a31; + float b10 = a21*a33 - a23*a31; + float b11 = a22*a33 - a23*a32; + + // Calculate the invert determinant (inlined to avoid double-caching) + float invDet = 1.0f/(b00*b11 - b01*b10 + b02*b09 + b03*b08 - b04*b07 + b05*b06); + + Matrix matViewProjInv = { + (a11*b11 - a12*b10 + a13*b09)*invDet, + (-a01*b11 + a02*b10 - a03*b09)*invDet, + (a31*b05 - a32*b04 + a33*b03)*invDet, + (-a21*b05 + a22*b04 - a23*b03)*invDet, + (-a10*b11 + a12*b08 - a13*b07)*invDet, + (a00*b11 - a02*b08 + a03*b07)*invDet, + (-a30*b05 + a32*b02 - a33*b01)*invDet, + (a20*b05 - a22*b02 + a23*b01)*invDet, + (a10*b10 - a11*b08 + a13*b06)*invDet, + (-a00*b10 + a01*b08 - a03*b06)*invDet, + (a30*b04 - a31*b02 + a33*b00)*invDet, + (-a20*b04 + a21*b02 - a23*b00)*invDet, + (-a10*b09 + a11*b07 - a12*b06)*invDet, + (a00*b09 - a01*b07 + a02*b06)*invDet, + (-a30*b03 + a31*b01 - a32*b00)*invDet, + (a20*b03 - a21*b01 + a22*b00)*invDet }; + + // Create quaternion from source point + Quaternion quat = { source.x, source.y, source.z, 1.0f }; + + // Multiply quat point by unprojected matrix + Quaternion qtransformed = { // QuaternionTransform(quat, matViewProjInv) + matViewProjInv.m0*quat.x + matViewProjInv.m4*quat.y + matViewProjInv.m8*quat.z + matViewProjInv.m12*quat.w, + matViewProjInv.m1*quat.x + matViewProjInv.m5*quat.y + matViewProjInv.m9*quat.z + matViewProjInv.m13*quat.w, + matViewProjInv.m2*quat.x + matViewProjInv.m6*quat.y + matViewProjInv.m10*quat.z + matViewProjInv.m14*quat.w, + matViewProjInv.m3*quat.x + matViewProjInv.m7*quat.y + matViewProjInv.m11*quat.z + matViewProjInv.m15*quat.w }; + + // Normalized world points in vectors + result.x = qtransformed.x/qtransformed.w; + result.y = qtransformed.y/qtransformed.w; + result.z = qtransformed.z/qtransformed.w; + + return result; +} + +// Get Vector3 as float array +RMAPI float3 Vector3ToFloatV(Vector3 v) +{ + float3 buffer = { 0 }; + + buffer.v[0] = v.x; + buffer.v[1] = v.y; + buffer.v[2] = v.z; + + return buffer; +} + +// Invert the given vector +RMAPI Vector3 Vector3Invert(Vector3 v) +{ + Vector3 result = { 1.0f/v.x, 1.0f/v.y, 1.0f/v.z }; + + return result; +} + +// Clamp the components of the vector between +// min and max values specified by the given vectors +RMAPI Vector3 Vector3Clamp(Vector3 v, Vector3 min, Vector3 max) +{ + Vector3 result = { 0 }; + + result.x = fminf(max.x, fmaxf(min.x, v.x)); + result.y = fminf(max.y, fmaxf(min.y, v.y)); + result.z = fminf(max.z, fmaxf(min.z, v.z)); + + return result; +} + +// Clamp the magnitude of the vector between two values +RMAPI Vector3 Vector3ClampValue(Vector3 v, float min, float max) +{ + Vector3 result = v; + + float length = (v.x*v.x) + (v.y*v.y) + (v.z*v.z); + if (length > 0.0f) + { + length = sqrtf(length); + + float scale = 1; // By default, 1 as the neutral element + if (length < min) scale = min/length; + else if (length > max) scale = max/length; + + result.x = v.x*scale; + result.y = v.y*scale; + result.z = v.z*scale; + } + + return result; +} + +// Check whether two given vectors are almost equal +RMAPI int Vector3Equals(Vector3 p, Vector3 q) +{ +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + int result = ((fabsf(p.x - q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && + ((fabsf(p.y - q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))) && + ((fabsf(p.z - q.z)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.z), fabsf(q.z))))); + + return result; +} + +// Compute the direction of a refracted ray +// v: normalized direction of the incoming ray +// n: normalized normal vector of the interface of two optical media +// r: ratio of the refractive index of the medium from where the ray comes +// to the refractive index of the medium on the other side of the surface +RMAPI Vector3 Vector3Refract(Vector3 v, Vector3 n, float r) +{ + Vector3 result = { 0 }; + + float dot = v.x*n.x + v.y*n.y + v.z*n.z; + float d = 1.0f - r*r*(1.0f - dot*dot); + + if (d >= 0.0f) + { + d = sqrtf(d); + v.x = r*v.x - (r*dot + d)*n.x; + v.y = r*v.y - (r*dot + d)*n.y; + v.z = r*v.z - (r*dot + d)*n.z; + + result = v; + } + + return result; +} + + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Vector4 math +//---------------------------------------------------------------------------------- +// Get vector zero +RMAPI Vector4 Vector4Zero(void) +{ + Vector4 result = { 0.0f, 0.0f, 0.0f, 0.0f }; + return result; +} + +// Get vector one +RMAPI Vector4 Vector4One(void) +{ + Vector4 result = { 1.0f, 1.0f, 1.0f, 1.0f }; + return result; +} + +// Add two vectors +RMAPI Vector4 Vector4Add(Vector4 v1, Vector4 v2) +{ + Vector4 result = { + v1.x + v2.x, + v1.y + v2.y, + v1.z + v2.z, + v1.w + v2.w + }; + return result; +} + +// Add value to vector components +RMAPI Vector4 Vector4AddValue(Vector4 v, float add) +{ + Vector4 result = { + v.x + add, + v.y + add, + v.z + add, + v.w + add + }; + return result; +} + +// Substract vectors +RMAPI Vector4 Vector4Subtract(Vector4 v1, Vector4 v2) +{ + Vector4 result = { + v1.x - v2.x, + v1.y - v2.y, + v1.z - v2.z, + v1.w - v2.w + }; + return result; +} + +// Substract value from vector components +RMAPI Vector4 Vector4SubtractValue(Vector4 v, float add) +{ + Vector4 result = { + v.x - add, + v.y - add, + v.z - add, + v.w - add + }; + return result; +} + +// Vector length +RMAPI float Vector4Length(Vector4 v) +{ + float result = sqrtf((v.x*v.x) + (v.y*v.y) + (v.z*v.z) + (v.w*v.w)); + return result; +} + +// Vector square length +RMAPI float Vector4LengthSqr(Vector4 v) +{ + float result = (v.x*v.x) + (v.y*v.y) + (v.z*v.z) + (v.w*v.w); + return result; +} + +// Vectors dot product +RMAPI float Vector4DotProduct(Vector4 v1, Vector4 v2) +{ + float result = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z + v1.w*v2.w); + return result; +} + +// Calculate distance between two vectors +RMAPI float Vector4Distance(Vector4 v1, Vector4 v2) +{ + float result = sqrtf( + (v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y) + + (v1.z - v2.z)*(v1.z - v2.z) + (v1.w - v2.w)*(v1.w - v2.w)); + return result; +} + +// Calculate square distance between two vectors +RMAPI float Vector4DistanceSqr(Vector4 v1, Vector4 v2) +{ + float result = + (v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y) + + (v1.z - v2.z)*(v1.z - v2.z) + (v1.w - v2.w)*(v1.w - v2.w); + + return result; +} + +// Scale vector components by value (multiply) +RMAPI Vector4 Vector4Scale(Vector4 v, float scale) +{ + Vector4 result = { v.x*scale, v.y*scale, v.z*scale, v.w*scale }; + return result; +} + +// Multiply vector by vector +RMAPI Vector4 Vector4Multiply(Vector4 v1, Vector4 v2) +{ + Vector4 result = { v1.x*v2.x, v1.y*v2.y, v1.z*v2.z, v1.w*v2.w }; + return result; +} + +// Negate vector +RMAPI Vector4 Vector4Negate(Vector4 v) +{ + Vector4 result = { -v.x, -v.y, -v.z, -v.w }; + return result; +} + +// Divide vector by vector +RMAPI Vector4 Vector4Divide(Vector4 v1, Vector4 v2) +{ + Vector4 result = { v1.x/v2.x, v1.y/v2.y, v1.z/v2.z, v1.w/v2.w }; + return result; +} + +// Normalize provided vector +RMAPI Vector4 Vector4Normalize(Vector4 v) +{ + Vector4 result = { 0 }; + float length = sqrtf((v.x*v.x) + (v.y*v.y) + (v.z*v.z) + (v.w*v.w)); + + if (length > 0) + { + float ilength = 1.0f/length; + result.x = v.x*ilength; + result.y = v.y*ilength; + result.z = v.z*ilength; + result.w = v.w*ilength; + } + + return result; +} + +// Get min value for each pair of components +RMAPI Vector4 Vector4Min(Vector4 v1, Vector4 v2) +{ + Vector4 result = { 0 }; + + result.x = fminf(v1.x, v2.x); + result.y = fminf(v1.y, v2.y); + result.z = fminf(v1.z, v2.z); + result.w = fminf(v1.w, v2.w); + + return result; +} + +// Get max value for each pair of components +RMAPI Vector4 Vector4Max(Vector4 v1, Vector4 v2) +{ + Vector4 result = { 0 }; + + result.x = fmaxf(v1.x, v2.x); + result.y = fmaxf(v1.y, v2.y); + result.z = fmaxf(v1.z, v2.z); + result.w = fmaxf(v1.w, v2.w); + + return result; +} + +// Calculate linear interpolation between two vectors +RMAPI Vector4 Vector4Lerp(Vector4 v1, Vector4 v2, float amount) +{ + Vector4 result = { 0 }; + + result.x = v1.x + amount*(v2.x - v1.x); + result.y = v1.y + amount*(v2.y - v1.y); + result.z = v1.z + amount*(v2.z - v1.z); + result.w = v1.w + amount*(v2.w - v1.w); + + return result; +} + +// Move Vector towards target +RMAPI Vector4 Vector4MoveTowards(Vector4 v, Vector4 target, float maxDistance) +{ + Vector4 result = { 0 }; + + float dx = target.x - v.x; + float dy = target.y - v.y; + float dz = target.z - v.z; + float dw = target.w - v.w; + float value = (dx*dx) + (dy*dy) + (dz*dz) + (dw*dw); + + if ((value == 0) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target; + + float dist = sqrtf(value); + + result.x = v.x + dx/dist*maxDistance; + result.y = v.y + dy/dist*maxDistance; + result.z = v.z + dz/dist*maxDistance; + result.w = v.w + dw/dist*maxDistance; + + return result; +} + +// Invert the given vector +RMAPI Vector4 Vector4Invert(Vector4 v) +{ + Vector4 result = { 1.0f/v.x, 1.0f/v.y, 1.0f/v.z, 1.0f/v.w }; + return result; +} + +// Check whether two given vectors are almost equal +RMAPI int Vector4Equals(Vector4 p, Vector4 q) +{ +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + int result = ((fabsf(p.x - q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && + ((fabsf(p.y - q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))) && + ((fabsf(p.z - q.z)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.z), fabsf(q.z))))) && + ((fabsf(p.w - q.w)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.w), fabsf(q.w))))); + return result; +} + + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Matrix math +//---------------------------------------------------------------------------------- + +// Compute matrix determinant +RMAPI float MatrixDeterminant(Matrix mat) +{ + float result = 0.0f; +/* + // Cache the matrix values (speed optimization) + float a00 = mat.m0, a01 = mat.m1, a02 = mat.m2, a03 = mat.m3; + float a10 = mat.m4, a11 = mat.m5, a12 = mat.m6, a13 = mat.m7; + float a20 = mat.m8, a21 = mat.m9, a22 = mat.m10, a23 = mat.m11; + float a30 = mat.m12, a31 = mat.m13, a32 = mat.m14, a33 = mat.m15; + + // NOTE: It takes 72 multiplication to calculate 4x4 matrix determinant + result = a30*a21*a12*a03 - a20*a31*a12*a03 - a30*a11*a22*a03 + a10*a31*a22*a03 + + a20*a11*a32*a03 - a10*a21*a32*a03 - a30*a21*a02*a13 + a20*a31*a02*a13 + + a30*a01*a22*a13 - a00*a31*a22*a13 - a20*a01*a32*a13 + a00*a21*a32*a13 + + a30*a11*a02*a23 - a10*a31*a02*a23 - a30*a01*a12*a23 + a00*a31*a12*a23 + + a10*a01*a32*a23 - a00*a11*a32*a23 - a20*a11*a02*a33 + a10*a21*a02*a33 + + a20*a01*a12*a33 - a00*a21*a12*a33 - a10*a01*a22*a33 + a00*a11*a22*a33; +*/ + // Using Laplace expansion (https://en.wikipedia.org/wiki/Laplace_expansion), + // previous operation can be simplified to 40 multiplications, decreasing matrix + // size from 4x4 to 2x2 using minors + + // Cache the matrix values (speed optimization) + float m0 = mat.m0, m1 = mat.m1, m2 = mat.m2, m3 = mat.m3; + float m4 = mat.m4, m5 = mat.m5, m6 = mat.m6, m7 = mat.m7; + float m8 = mat.m8, m9 = mat.m9, m10 = mat.m10, m11 = mat.m11; + float m12 = mat.m12, m13 = mat.m13, m14 = mat.m14, m15 = mat.m15; + + result = (m0*((m5*(m10*m15 - m11*m14) - m9*(m6*m15 - m7*m14) + m13*(m6*m11 - m7*m10))) - + m4*((m1*(m10*m15 - m11*m14) - m9*(m2*m15 - m3*m14) + m13*(m2*m11 - m3*m10))) + + m8*((m1*(m6*m15 - m7*m14) - m5*(m2*m15 - m3*m14) + m13*(m2*m7 - m3*m6))) - + m12*((m1*(m6*m11 - m7*m10) - m5*(m2*m11 - m3*m10) + m9*(m2*m7 - m3*m6)))); + + return result; +} + +// Get the trace of the matrix (sum of the values along the diagonal) +RMAPI float MatrixTrace(Matrix mat) +{ + float result = (mat.m0 + mat.m5 + mat.m10 + mat.m15); + + return result; +} + +// Transposes provided matrix +RMAPI Matrix MatrixTranspose(Matrix mat) +{ + Matrix result = { 0 }; + + result.m0 = mat.m0; + result.m1 = mat.m4; + result.m2 = mat.m8; + result.m3 = mat.m12; + result.m4 = mat.m1; + result.m5 = mat.m5; + result.m6 = mat.m9; + result.m7 = mat.m13; + result.m8 = mat.m2; + result.m9 = mat.m6; + result.m10 = mat.m10; + result.m11 = mat.m14; + result.m12 = mat.m3; + result.m13 = mat.m7; + result.m14 = mat.m11; + result.m15 = mat.m15; + + return result; +} + +// Invert provided matrix +RMAPI Matrix MatrixInvert(Matrix mat) +{ + Matrix result = { 0 }; + + // Cache the matrix values (speed optimization) + float a00 = mat.m0, a01 = mat.m1, a02 = mat.m2, a03 = mat.m3; + float a10 = mat.m4, a11 = mat.m5, a12 = mat.m6, a13 = mat.m7; + float a20 = mat.m8, a21 = mat.m9, a22 = mat.m10, a23 = mat.m11; + float a30 = mat.m12, a31 = mat.m13, a32 = mat.m14, a33 = mat.m15; + + float b00 = a00*a11 - a01*a10; + float b01 = a00*a12 - a02*a10; + float b02 = a00*a13 - a03*a10; + float b03 = a01*a12 - a02*a11; + float b04 = a01*a13 - a03*a11; + float b05 = a02*a13 - a03*a12; + float b06 = a20*a31 - a21*a30; + float b07 = a20*a32 - a22*a30; + float b08 = a20*a33 - a23*a30; + float b09 = a21*a32 - a22*a31; + float b10 = a21*a33 - a23*a31; + float b11 = a22*a33 - a23*a32; + + // Calculate the invert determinant (inlined to avoid double-caching) + float invDet = 1.0f/(b00*b11 - b01*b10 + b02*b09 + b03*b08 - b04*b07 + b05*b06); + + result.m0 = (a11*b11 - a12*b10 + a13*b09)*invDet; + result.m1 = (-a01*b11 + a02*b10 - a03*b09)*invDet; + result.m2 = (a31*b05 - a32*b04 + a33*b03)*invDet; + result.m3 = (-a21*b05 + a22*b04 - a23*b03)*invDet; + result.m4 = (-a10*b11 + a12*b08 - a13*b07)*invDet; + result.m5 = (a00*b11 - a02*b08 + a03*b07)*invDet; + result.m6 = (-a30*b05 + a32*b02 - a33*b01)*invDet; + result.m7 = (a20*b05 - a22*b02 + a23*b01)*invDet; + result.m8 = (a10*b10 - a11*b08 + a13*b06)*invDet; + result.m9 = (-a00*b10 + a01*b08 - a03*b06)*invDet; + result.m10 = (a30*b04 - a31*b02 + a33*b00)*invDet; + result.m11 = (-a20*b04 + a21*b02 - a23*b00)*invDet; + result.m12 = (-a10*b09 + a11*b07 - a12*b06)*invDet; + result.m13 = (a00*b09 - a01*b07 + a02*b06)*invDet; + result.m14 = (-a30*b03 + a31*b01 - a32*b00)*invDet; + result.m15 = (a20*b03 - a21*b01 + a22*b00)*invDet; + + return result; +} + +// Get identity matrix +RMAPI Matrix MatrixIdentity(void) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; + + return result; +} + +// Add two matrices +RMAPI Matrix MatrixAdd(Matrix left, Matrix right) +{ + Matrix result = { 0 }; + + result.m0 = left.m0 + right.m0; + result.m1 = left.m1 + right.m1; + result.m2 = left.m2 + right.m2; + result.m3 = left.m3 + right.m3; + result.m4 = left.m4 + right.m4; + result.m5 = left.m5 + right.m5; + result.m6 = left.m6 + right.m6; + result.m7 = left.m7 + right.m7; + result.m8 = left.m8 + right.m8; + result.m9 = left.m9 + right.m9; + result.m10 = left.m10 + right.m10; + result.m11 = left.m11 + right.m11; + result.m12 = left.m12 + right.m12; + result.m13 = left.m13 + right.m13; + result.m14 = left.m14 + right.m14; + result.m15 = left.m15 + right.m15; + + return result; +} + +// Subtract two matrices (left - right) +RMAPI Matrix MatrixSubtract(Matrix left, Matrix right) +{ + Matrix result = { 0 }; + + result.m0 = left.m0 - right.m0; + result.m1 = left.m1 - right.m1; + result.m2 = left.m2 - right.m2; + result.m3 = left.m3 - right.m3; + result.m4 = left.m4 - right.m4; + result.m5 = left.m5 - right.m5; + result.m6 = left.m6 - right.m6; + result.m7 = left.m7 - right.m7; + result.m8 = left.m8 - right.m8; + result.m9 = left.m9 - right.m9; + result.m10 = left.m10 - right.m10; + result.m11 = left.m11 - right.m11; + result.m12 = left.m12 - right.m12; + result.m13 = left.m13 - right.m13; + result.m14 = left.m14 - right.m14; + result.m15 = left.m15 - right.m15; + + return result; +} + +// Get two matrix multiplication +// NOTE: When multiplying matrices... the order matters! +RMAPI Matrix MatrixMultiply(Matrix left, Matrix right) +{ + Matrix result = { 0 }; + +#if defined(RAYMATH_SSE_ENABLED) + // Load left side and right side + __m128 c0 = _mm_set_ps(right.m12, right.m8, right.m4, right.m0); + __m128 c1 = _mm_set_ps(right.m13, right.m9, right.m5, right.m1); + __m128 c2 = _mm_set_ps(right.m14, right.m10, right.m6, right.m2); + __m128 c3 = _mm_set_ps(right.m15, right.m11, right.m7, right.m3); + + // Transpose so c0..c3 become *rows* of the right matrix in semantic order + _MM_TRANSPOSE4_PS(c0, c1, c2, c3); + + float tmp[4] = { 0 }; + __m128 row; + + // Row 0 of result: [m0, m1, m2, m3] + row = _mm_mul_ps(_mm_set1_ps(left.m0), c0); + row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m1), c1)); + row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m2), c2)); + row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m3), c3)); + _mm_storeu_ps(tmp, row); + result.m0 = tmp[0]; + result.m1 = tmp[1]; + result.m2 = tmp[2]; + result.m3 = tmp[3]; + + // Row 1 of result: [m4, m5, m6, m7] + row = _mm_mul_ps(_mm_set1_ps(left.m4), c0); + row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m5), c1)); + row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m6), c2)); + row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m7), c3)); + _mm_storeu_ps(tmp, row); + result.m4 = tmp[0]; + result.m5 = tmp[1]; + result.m6 = tmp[2]; + result.m7 = tmp[3]; + + // Row 2 of result: [m8, m9, m10, m11] + row = _mm_mul_ps(_mm_set1_ps(left.m8), c0); + row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m9), c1)); + row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m10), c2)); + row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m11), c3)); + _mm_storeu_ps(tmp, row); + result.m8 = tmp[0]; + result.m9 = tmp[1]; + result.m10 = tmp[2]; + result.m11 = tmp[3]; + + // Row 3 of result: [m12, m13, m14, m15] + row = _mm_mul_ps(_mm_set1_ps(left.m12), c0); + row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m13), c1)); + row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m14), c2)); + row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m15), c3)); + _mm_storeu_ps(tmp, row); + result.m12 = tmp[0]; + result.m13 = tmp[1]; + result.m14 = tmp[2]; + result.m15 = tmp[3]; +#else + result.m0 = left.m0*right.m0 + left.m1*right.m4 + left.m2*right.m8 + left.m3*right.m12; + result.m1 = left.m0*right.m1 + left.m1*right.m5 + left.m2*right.m9 + left.m3*right.m13; + result.m2 = left.m0*right.m2 + left.m1*right.m6 + left.m2*right.m10 + left.m3*right.m14; + result.m3 = left.m0*right.m3 + left.m1*right.m7 + left.m2*right.m11 + left.m3*right.m15; + result.m4 = left.m4*right.m0 + left.m5*right.m4 + left.m6*right.m8 + left.m7*right.m12; + result.m5 = left.m4*right.m1 + left.m5*right.m5 + left.m6*right.m9 + left.m7*right.m13; + result.m6 = left.m4*right.m2 + left.m5*right.m6 + left.m6*right.m10 + left.m7*right.m14; + result.m7 = left.m4*right.m3 + left.m5*right.m7 + left.m6*right.m11 + left.m7*right.m15; + result.m8 = left.m8*right.m0 + left.m9*right.m4 + left.m10*right.m8 + left.m11*right.m12; + result.m9 = left.m8*right.m1 + left.m9*right.m5 + left.m10*right.m9 + left.m11*right.m13; + result.m10 = left.m8*right.m2 + left.m9*right.m6 + left.m10*right.m10 + left.m11*right.m14; + result.m11 = left.m8*right.m3 + left.m9*right.m7 + left.m10*right.m11 + left.m11*right.m15; + result.m12 = left.m12*right.m0 + left.m13*right.m4 + left.m14*right.m8 + left.m15*right.m12; + result.m13 = left.m12*right.m1 + left.m13*right.m5 + left.m14*right.m9 + left.m15*right.m13; + result.m14 = left.m12*right.m2 + left.m13*right.m6 + left.m14*right.m10 + left.m15*right.m14; + result.m15 = left.m12*right.m3 + left.m13*right.m7 + left.m14*right.m11 + left.m15*right.m15; +#endif + + return result; +} + +// Multiply matrix components by value +RMAPI Matrix MatrixMultiplyValue(Matrix left, float value) +{ + Matrix result = { + left.m0*value, left.m4*value, left.m8*value, left.m12*value, + left.m1*value, left.m5*value, left.m9*value, left.m13*value, + left.m2*value, left.m6*value, left.m10*value, left.m14*value, + left.m3*value, left.m7*value, left.m11*value, left.m15*value + }; + + return result; +} + +// Get translation matrix +RMAPI Matrix MatrixTranslate(float x, float y, float z) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, x, + 0.0f, 1.0f, 0.0f, y, + 0.0f, 0.0f, 1.0f, z, + 0.0f, 0.0f, 0.0f, 1.0f }; + + return result; +} + +// Create rotation matrix from axis and angle +// NOTE: Angle should be provided in radians +RMAPI Matrix MatrixRotate(Vector3 axis, float angle) +{ + Matrix result = { 0 }; + + float x = axis.x, y = axis.y, z = axis.z; + + float lengthSquared = x*x + y*y + z*z; + + if ((lengthSquared != 1.0f) && (lengthSquared != 0.0f)) + { + float ilength = 1.0f/sqrtf(lengthSquared); + x *= ilength; + y *= ilength; + z *= ilength; + } + + float sinres = sinf(angle); + float cosres = cosf(angle); + float t = 1.0f - cosres; + + result.m0 = x*x*t + cosres; + result.m1 = y*x*t + z*sinres; + result.m2 = z*x*t - y*sinres; + result.m3 = 0.0f; + + result.m4 = x*y*t - z*sinres; + result.m5 = y*y*t + cosres; + result.m6 = z*y*t + x*sinres; + result.m7 = 0.0f; + + result.m8 = x*z*t + y*sinres; + result.m9 = y*z*t - x*sinres; + result.m10 = z*z*t + cosres; + result.m11 = 0.0f; + + result.m12 = 0.0f; + result.m13 = 0.0f; + result.m14 = 0.0f; + result.m15 = 1.0f; + + return result; +} + +// Get x-rotation matrix +// NOTE: Angle must be provided in radians +RMAPI Matrix MatrixRotateX(float angle) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() + + float cosres = cosf(angle); + float sinres = sinf(angle); + + result.m5 = cosres; + result.m6 = sinres; + result.m9 = -sinres; + result.m10 = cosres; + + return result; +} + +// Get y-rotation matrix +// NOTE: Angle must be provided in radians +RMAPI Matrix MatrixRotateY(float angle) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() + + float cosres = cosf(angle); + float sinres = sinf(angle); + + result.m0 = cosres; + result.m2 = -sinres; + result.m8 = sinres; + result.m10 = cosres; + + return result; +} + +// Get z-rotation matrix +// NOTE: Angle must be provided in radians +RMAPI Matrix MatrixRotateZ(float angle) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() + + float cosres = cosf(angle); + float sinres = sinf(angle); + + result.m0 = cosres; + result.m1 = sinres; + result.m4 = -sinres; + result.m5 = cosres; + + return result; +} + + +// Get xyz-rotation matrix +// NOTE: Angle must be provided in radians +RMAPI Matrix MatrixRotateXYZ(Vector3 angle) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() + + float cosz = cosf(-angle.z); + float sinz = sinf(-angle.z); + float cosy = cosf(-angle.y); + float siny = sinf(-angle.y); + float cosx = cosf(-angle.x); + float sinx = sinf(-angle.x); + + result.m0 = cosz*cosy; + result.m1 = (cosz*siny*sinx) - (sinz*cosx); + result.m2 = (cosz*siny*cosx) + (sinz*sinx); + + result.m4 = sinz*cosy; + result.m5 = (sinz*siny*sinx) + (cosz*cosx); + result.m6 = (sinz*siny*cosx) - (cosz*sinx); + + result.m8 = -siny; + result.m9 = cosy*sinx; + result.m10= cosy*cosx; + + return result; +} + +// Get zyx-rotation matrix +// NOTE: Angle must be provided in radians +RMAPI Matrix MatrixRotateZYX(Vector3 angle) +{ + Matrix result = { 0 }; + + float cz = cosf(angle.z); + float sz = sinf(angle.z); + float cy = cosf(angle.y); + float sy = sinf(angle.y); + float cx = cosf(angle.x); + float sx = sinf(angle.x); + + result.m0 = cz*cy; + result.m4 = cz*sy*sx - cx*sz; + result.m8 = sz*sx + cz*cx*sy; + result.m12 = 0; + + result.m1 = cy*sz; + result.m5 = cz*cx + sz*sy*sx; + result.m9 = cx*sz*sy - cz*sx; + result.m13 = 0; + + result.m2 = -sy; + result.m6 = cy*sx; + result.m10 = cy*cx; + result.m14 = 0; + + result.m3 = 0; + result.m7 = 0; + result.m11 = 0; + result.m15 = 1; + + return result; +} + +// Get scaling matrix +RMAPI Matrix MatrixScale(float x, float y, float z) +{ + Matrix result = { x, 0.0f, 0.0f, 0.0f, + 0.0f, y, 0.0f, 0.0f, + 0.0f, 0.0f, z, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; + + return result; +} + +// Get perspective projection matrix +RMAPI Matrix MatrixFrustum(double left, double right, double bottom, double top, double nearPlane, double farPlane) +{ + Matrix result = { 0 }; + + float rl = (float)(right - left); + float tb = (float)(top - bottom); + float fn = (float)(farPlane - nearPlane); + + result.m0 = ((float)nearPlane*2.0f)/rl; + result.m1 = 0.0f; + result.m2 = 0.0f; + result.m3 = 0.0f; + + result.m4 = 0.0f; + result.m5 = ((float)nearPlane*2.0f)/tb; + result.m6 = 0.0f; + result.m7 = 0.0f; + + result.m8 = ((float)right + (float)left)/rl; + result.m9 = ((float)top + (float)bottom)/tb; + result.m10 = -((float)farPlane + (float)nearPlane)/fn; + result.m11 = -1.0f; + + result.m12 = 0.0f; + result.m13 = 0.0f; + result.m14 = -((float)farPlane*(float)nearPlane*2.0f)/fn; + result.m15 = 0.0f; + + return result; +} + +// Get perspective projection matrix +// NOTE: Fovy angle must be provided in radians +RMAPI Matrix MatrixPerspective(double fovY, double aspect, double nearPlane, double farPlane) +{ + Matrix result = { 0 }; + + double top = nearPlane*tan(fovY*0.5); + double bottom = -top; + double right = top*aspect; + double left = -right; + + // MatrixFrustum(-right, right, -top, top, near, far); + float rl = (float)(right - left); + float tb = (float)(top - bottom); + float fn = (float)(farPlane - nearPlane); + + result.m0 = ((float)nearPlane*2.0f)/rl; + result.m5 = ((float)nearPlane*2.0f)/tb; + result.m8 = ((float)right + (float)left)/rl; + result.m9 = ((float)top + (float)bottom)/tb; + result.m10 = -((float)farPlane + (float)nearPlane)/fn; + result.m11 = -1.0f; + result.m14 = -((float)farPlane*(float)nearPlane*2.0f)/fn; + + return result; +} + +// Get orthographic projection matrix +RMAPI Matrix MatrixOrtho(double left, double right, double bottom, double top, double nearPlane, double farPlane) +{ + Matrix result = { 0 }; + + float rl = (float)(right - left); + float tb = (float)(top - bottom); + float fn = (float)(farPlane - nearPlane); + + result.m0 = 2.0f/rl; + result.m1 = 0.0f; + result.m2 = 0.0f; + result.m3 = 0.0f; + result.m4 = 0.0f; + result.m5 = 2.0f/tb; + result.m6 = 0.0f; + result.m7 = 0.0f; + result.m8 = 0.0f; + result.m9 = 0.0f; + result.m10 = -2.0f/fn; + result.m11 = 0.0f; + result.m12 = -((float)left + (float)right)/rl; + result.m13 = -((float)top + (float)bottom)/tb; + result.m14 = -((float)farPlane + (float)nearPlane)/fn; + result.m15 = 1.0f; + + return result; +} + +// Get camera look-at matrix (view matrix) +RMAPI Matrix MatrixLookAt(Vector3 eye, Vector3 target, Vector3 up) +{ + Matrix result = { 0 }; + + float length = 0.0f; + float ilength = 0.0f; + + // Vector3Subtract(eye, target) + Vector3 vz = { eye.x - target.x, eye.y - target.y, eye.z - target.z }; + + // Vector3Normalize(vz) + Vector3 v = vz; + length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + if (length == 0.0f) length = 1.0f; + ilength = 1.0f/length; + vz.x *= ilength; + vz.y *= ilength; + vz.z *= ilength; + + // Vector3CrossProduct(up, vz) + Vector3 vx = { up.y*vz.z - up.z*vz.y, up.z*vz.x - up.x*vz.z, up.x*vz.y - up.y*vz.x }; + + // Vector3Normalize(x) + v = vx; + length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + if (length == 0.0f) length = 1.0f; + ilength = 1.0f/length; + vx.x *= ilength; + vx.y *= ilength; + vx.z *= ilength; + + // Vector3CrossProduct(vz, vx) + Vector3 vy = { vz.y*vx.z - vz.z*vx.y, vz.z*vx.x - vz.x*vx.z, vz.x*vx.y - vz.y*vx.x }; + + result.m0 = vx.x; + result.m1 = vy.x; + result.m2 = vz.x; + result.m3 = 0.0f; + result.m4 = vx.y; + result.m5 = vy.y; + result.m6 = vz.y; + result.m7 = 0.0f; + result.m8 = vx.z; + result.m9 = vy.z; + result.m10 = vz.z; + result.m11 = 0.0f; + result.m12 = -(vx.x*eye.x + vx.y*eye.y + vx.z*eye.z); // Vector3DotProduct(vx, eye) + result.m13 = -(vy.x*eye.x + vy.y*eye.y + vy.z*eye.z); // Vector3DotProduct(vy, eye) + result.m14 = -(vz.x*eye.x + vz.y*eye.y + vz.z*eye.z); // Vector3DotProduct(vz, eye) + result.m15 = 1.0f; + + return result; +} + +// Get float array of matrix data +RMAPI float16 MatrixToFloatV(Matrix mat) +{ + float16 result = { 0 }; + + result.v[0] = mat.m0; + result.v[1] = mat.m1; + result.v[2] = mat.m2; + result.v[3] = mat.m3; + result.v[4] = mat.m4; + result.v[5] = mat.m5; + result.v[6] = mat.m6; + result.v[7] = mat.m7; + result.v[8] = mat.m8; + result.v[9] = mat.m9; + result.v[10] = mat.m10; + result.v[11] = mat.m11; + result.v[12] = mat.m12; + result.v[13] = mat.m13; + result.v[14] = mat.m14; + result.v[15] = mat.m15; + + return result; +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Quaternion math +//---------------------------------------------------------------------------------- + +// Add two quaternions +RMAPI Quaternion QuaternionAdd(Quaternion q1, Quaternion q2) +{ + Quaternion result = {q1.x + q2.x, q1.y + q2.y, q1.z + q2.z, q1.w + q2.w}; + + return result; +} + +// Add quaternion and float value +RMAPI Quaternion QuaternionAddValue(Quaternion q, float add) +{ + Quaternion result = {q.x + add, q.y + add, q.z + add, q.w + add}; + + return result; +} + +// Subtract two quaternions +RMAPI Quaternion QuaternionSubtract(Quaternion q1, Quaternion q2) +{ + Quaternion result = {q1.x - q2.x, q1.y - q2.y, q1.z - q2.z, q1.w - q2.w}; + + return result; +} + +// Subtract quaternion and float value +RMAPI Quaternion QuaternionSubtractValue(Quaternion q, float sub) +{ + Quaternion result = {q.x - sub, q.y - sub, q.z - sub, q.w - sub}; + + return result; +} + +// Get identity quaternion +RMAPI Quaternion QuaternionIdentity(void) +{ + Quaternion result = { 0.0f, 0.0f, 0.0f, 1.0f }; + + return result; +} + +// Computes the length of a quaternion +RMAPI float QuaternionLength(Quaternion q) +{ + float result = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); + + return result; +} + +// Normalize provided quaternion +RMAPI Quaternion QuaternionNormalize(Quaternion q) +{ + Quaternion result = { 0 }; + + float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); + if (length == 0.0f) length = 1.0f; + float ilength = 1.0f/length; + + result.x = q.x*ilength; + result.y = q.y*ilength; + result.z = q.z*ilength; + result.w = q.w*ilength; + + return result; +} + +// Invert provided quaternion +RMAPI Quaternion QuaternionInvert(Quaternion q) +{ + Quaternion result = q; + + float lengthSq = q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w; + + if (lengthSq != 0.0f) + { + float invLength = 1.0f/lengthSq; + + result.x *= -invLength; + result.y *= -invLength; + result.z *= -invLength; + result.w *= invLength; + } + + return result; +} + +// Calculate two quaternion multiplication +RMAPI Quaternion QuaternionMultiply(Quaternion q1, Quaternion q2) +{ + Quaternion result = { 0 }; + + float qax = q1.x, qay = q1.y, qaz = q1.z, qaw = q1.w; + float qbx = q2.x, qby = q2.y, qbz = q2.z, qbw = q2.w; + + result.x = qax*qbw + qaw*qbx + qay*qbz - qaz*qby; + result.y = qay*qbw + qaw*qby + qaz*qbx - qax*qbz; + result.z = qaz*qbw + qaw*qbz + qax*qby - qay*qbx; + result.w = qaw*qbw - qax*qbx - qay*qby - qaz*qbz; + + return result; +} + +// Scale quaternion by float value +RMAPI Quaternion QuaternionScale(Quaternion q, float mul) +{ + Quaternion result = { 0 }; + + result.x = q.x*mul; + result.y = q.y*mul; + result.z = q.z*mul; + result.w = q.w*mul; + + return result; +} + +// Divide two quaternions +RMAPI Quaternion QuaternionDivide(Quaternion q1, Quaternion q2) +{ + Quaternion result = { q1.x/q2.x, q1.y/q2.y, q1.z/q2.z, q1.w/q2.w }; + + return result; +} + +// Calculate linear interpolation between two quaternions +RMAPI Quaternion QuaternionLerp(Quaternion q1, Quaternion q2, float amount) +{ + Quaternion result = { 0 }; + + result.x = q1.x + amount*(q2.x - q1.x); + result.y = q1.y + amount*(q2.y - q1.y); + result.z = q1.z + amount*(q2.z - q1.z); + result.w = q1.w + amount*(q2.w - q1.w); + + return result; +} + +// Calculate slerp-optimized interpolation between two quaternions +RMAPI Quaternion QuaternionNlerp(Quaternion q1, Quaternion q2, float amount) +{ + Quaternion result = { 0 }; + + // QuaternionLerp(q1, q2, amount) + result.x = q1.x + amount*(q2.x - q1.x); + result.y = q1.y + amount*(q2.y - q1.y); + result.z = q1.z + amount*(q2.z - q1.z); + result.w = q1.w + amount*(q2.w - q1.w); + + // QuaternionNormalize(q); + Quaternion q = result; + float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); + if (length == 0.0f) length = 1.0f; + float ilength = 1.0f/length; + + result.x = q.x*ilength; + result.y = q.y*ilength; + result.z = q.z*ilength; + result.w = q.w*ilength; + + return result; +} + +// Calculates spherical linear interpolation between two quaternions +RMAPI Quaternion QuaternionSlerp(Quaternion q1, Quaternion q2, float amount) +{ + Quaternion result = { 0 }; + +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + float cosHalfTheta = q1.x*q2.x + q1.y*q2.y + q1.z*q2.z + q1.w*q2.w; + + if (cosHalfTheta < 0) + { + q2.x = -q2.x; q2.y = -q2.y; q2.z = -q2.z; q2.w = -q2.w; + cosHalfTheta = -cosHalfTheta; + } + + if (fabsf(cosHalfTheta) >= 1.0f) result = q1; + else if (cosHalfTheta > 0.95f) result = QuaternionNlerp(q1, q2, amount); + else + { + float halfTheta = acosf(cosHalfTheta); + float sinHalfTheta = sqrtf(1.0f - cosHalfTheta*cosHalfTheta); + + if (fabsf(sinHalfTheta) < EPSILON) + { + result.x = (q1.x*0.5f + q2.x*0.5f); + result.y = (q1.y*0.5f + q2.y*0.5f); + result.z = (q1.z*0.5f + q2.z*0.5f); + result.w = (q1.w*0.5f + q2.w*0.5f); + } + else + { + float ratioA = sinf((1 - amount)*halfTheta)/sinHalfTheta; + float ratioB = sinf(amount*halfTheta)/sinHalfTheta; + + result.x = (q1.x*ratioA + q2.x*ratioB); + result.y = (q1.y*ratioA + q2.y*ratioB); + result.z = (q1.z*ratioA + q2.z*ratioB); + result.w = (q1.w*ratioA + q2.w*ratioB); + } + } + + return result; +} + +// Calculate quaternion cubic spline interpolation using Cubic Hermite Spline algorithm +// as described in the GLTF 2.0 specification: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#interpolation-cubic +RMAPI Quaternion QuaternionCubicHermiteSpline(Quaternion q1, Quaternion outTangent1, Quaternion q2, Quaternion inTangent2, float t) +{ + float t2 = t*t; + float t3 = t2*t; + float h00 = 2*t3 - 3*t2 + 1; + float h10 = t3 - 2*t2 + t; + float h01 = -2*t3 + 3*t2; + float h11 = t3 - t2; + + Quaternion p0 = QuaternionScale(q1, h00); + Quaternion m0 = QuaternionScale(outTangent1, h10); + Quaternion p1 = QuaternionScale(q2, h01); + Quaternion m1 = QuaternionScale(inTangent2, h11); + + Quaternion result = { 0 }; + + result = QuaternionAdd(p0, m0); + result = QuaternionAdd(result, p1); + result = QuaternionAdd(result, m1); + result = QuaternionNormalize(result); + + return result; +} + +// Calculate quaternion based on the rotation from one vector to another +RMAPI Quaternion QuaternionFromVector3ToVector3(Vector3 from, Vector3 to) +{ + Quaternion result = { 0 }; + + float cos2Theta = (from.x*to.x + from.y*to.y + from.z*to.z); // Vector3DotProduct(from, to) + Vector3 cross = { from.y*to.z - from.z*to.y, from.z*to.x - from.x*to.z, from.x*to.y - from.y*to.x }; // Vector3CrossProduct(from, to) + + result.x = cross.x; + result.y = cross.y; + result.z = cross.z; + result.w = sqrtf(cross.x*cross.x + cross.y*cross.y + cross.z*cross.z + cos2Theta*cos2Theta) + cos2Theta; + + // QuaternionNormalize(q); + // NOTE: Normalize to essentially nlerp the original and identity to 0.5 + Quaternion q = result; + float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); + if (length == 0.0f) length = 1.0f; + float ilength = 1.0f/length; + + result.x = q.x*ilength; + result.y = q.y*ilength; + result.z = q.z*ilength; + result.w = q.w*ilength; + + return result; +} + +// Get a quaternion for a given rotation matrix +RMAPI Quaternion QuaternionFromMatrix(Matrix mat) +{ + Quaternion result = { 0 }; + + float fourWSquaredMinus1 = mat.m0 + mat.m5 + mat.m10; + float fourXSquaredMinus1 = mat.m0 - mat.m5 - mat.m10; + float fourYSquaredMinus1 = mat.m5 - mat.m0 - mat.m10; + float fourZSquaredMinus1 = mat.m10 - mat.m0 - mat.m5; + + int biggestIndex = 0; + float fourBiggestSquaredMinus1 = fourWSquaredMinus1; + if (fourXSquaredMinus1 > fourBiggestSquaredMinus1) + { + fourBiggestSquaredMinus1 = fourXSquaredMinus1; + biggestIndex = 1; + } + + if (fourYSquaredMinus1 > fourBiggestSquaredMinus1) + { + fourBiggestSquaredMinus1 = fourYSquaredMinus1; + biggestIndex = 2; + } + + if (fourZSquaredMinus1 > fourBiggestSquaredMinus1) + { + fourBiggestSquaredMinus1 = fourZSquaredMinus1; + biggestIndex = 3; + } + + float biggestVal = sqrtf(fourBiggestSquaredMinus1 + 1.0f)*0.5f; + float mult = 0.25f/biggestVal; + + switch (biggestIndex) + { + case 0: + result.w = biggestVal; + result.x = (mat.m6 - mat.m9)*mult; + result.y = (mat.m8 - mat.m2)*mult; + result.z = (mat.m1 - mat.m4)*mult; + break; + case 1: + result.x = biggestVal; + result.w = (mat.m6 - mat.m9)*mult; + result.y = (mat.m1 + mat.m4)*mult; + result.z = (mat.m8 + mat.m2)*mult; + break; + case 2: + result.y = biggestVal; + result.w = (mat.m8 - mat.m2)*mult; + result.x = (mat.m1 + mat.m4)*mult; + result.z = (mat.m6 + mat.m9)*mult; + break; + case 3: + result.z = biggestVal; + result.w = (mat.m1 - mat.m4)*mult; + result.x = (mat.m8 + mat.m2)*mult; + result.y = (mat.m6 + mat.m9)*mult; + break; + } + + return result; +} + +// Get a matrix for a given quaternion +RMAPI Matrix QuaternionToMatrix(Quaternion q) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() + + float a2 = q.x*q.x; + float b2 = q.y*q.y; + float c2 = q.z*q.z; + float ac = q.x*q.z; + float ab = q.x*q.y; + float bc = q.y*q.z; + float ad = q.w*q.x; + float bd = q.w*q.y; + float cd = q.w*q.z; + + result.m0 = 1 - 2*(b2 + c2); + result.m1 = 2*(ab + cd); + result.m2 = 2*(ac - bd); + + result.m4 = 2*(ab - cd); + result.m5 = 1 - 2*(a2 + c2); + result.m6 = 2*(bc + ad); + + result.m8 = 2*(ac + bd); + result.m9 = 2*(bc - ad); + result.m10 = 1 - 2*(a2 + b2); + + return result; +} + +// Get rotation quaternion for an angle and axis +// NOTE: Angle must be provided in radians +RMAPI Quaternion QuaternionFromAxisAngle(Vector3 axis, float angle) +{ + Quaternion result = { 0.0f, 0.0f, 0.0f, 1.0f }; + + float length = sqrtf(axis.x*axis.x + axis.y*axis.y + axis.z*axis.z); + + if (length != 0.0f) + { + angle *= 0.5f; + + // Vector3Normalize(axis) + float ilength = 1.0f/length; + axis.x *= ilength; + axis.y *= ilength; + axis.z *= ilength; + + float sinres = sinf(angle); + float cosres = cosf(angle); + + result.x = axis.x*sinres; + result.y = axis.y*sinres; + result.z = axis.z*sinres; + result.w = cosres; + + // QuaternionNormalize(q); + Quaternion q = result; + length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); + if (length == 0.0f) length = 1.0f; + ilength = 1.0f/length; + result.x = q.x*ilength; + result.y = q.y*ilength; + result.z = q.z*ilength; + result.w = q.w*ilength; + } + + return result; +} + +// Get the rotation angle and axis for a given quaternion +RMAPI void QuaternionToAxisAngle(Quaternion q, Vector3 *outAxis, float *outAngle) +{ + if (fabsf(q.w) > 1.0f) + { + // QuaternionNormalize(q); + float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); + if (length == 0.0f) length = 1.0f; + float ilength = 1.0f/length; + + q.x = q.x*ilength; + q.y = q.y*ilength; + q.z = q.z*ilength; + q.w = q.w*ilength; + } + + Vector3 resAxis = { 0.0f, 0.0f, 0.0f }; + float resAngle = 2.0f*acosf(q.w); + float den = sqrtf(1.0f - q.w*q.w); + + if (den > EPSILON) + { + resAxis.x = q.x/den; + resAxis.y = q.y/den; + resAxis.z = q.z/den; + } + else + { + // This occurs when the angle is zero + // Not a problem, set an arbitrary normalized axis + resAxis.x = 1.0f; + } + + *outAxis = resAxis; + *outAngle = resAngle; +} + +// Get the quaternion equivalent to Euler angles +// NOTE: Rotation order is ZYX +RMAPI Quaternion QuaternionFromEuler(float pitch, float yaw, float roll) +{ + Quaternion result = { 0 }; + + float x0 = cosf(pitch*0.5f); + float x1 = sinf(pitch*0.5f); + float y0 = cosf(yaw*0.5f); + float y1 = sinf(yaw*0.5f); + float z0 = cosf(roll*0.5f); + float z1 = sinf(roll*0.5f); + + result.x = x1*y0*z0 - x0*y1*z1; + result.y = x0*y1*z0 + x1*y0*z1; + result.z = x0*y0*z1 - x1*y1*z0; + result.w = x0*y0*z0 + x1*y1*z1; + + return result; +} + +// Get the Euler angles equivalent to quaternion (roll, pitch, yaw) +// NOTE: Angles are returned in a Vector3 struct in radians +RMAPI Vector3 QuaternionToEuler(Quaternion q) +{ + Vector3 result = { 0 }; + + // Roll (x-axis rotation) + float x0 = 2.0f*(q.w*q.x + q.y*q.z); + float x1 = 1.0f - 2.0f*(q.x*q.x + q.y*q.y); + result.x = atan2f(x0, x1); + + // Pitch (y-axis rotation) + float y0 = 2.0f*(q.w*q.y - q.z*q.x); + y0 = y0 > 1.0f ? 1.0f : y0; + y0 = y0 < -1.0f ? -1.0f : y0; + result.y = asinf(y0); + + // Yaw (z-axis rotation) + float z0 = 2.0f*(q.w*q.z + q.x*q.y); + float z1 = 1.0f - 2.0f*(q.y*q.y + q.z*q.z); + result.z = atan2f(z0, z1); + + return result; +} + +// Transform a quaternion given a transformation matrix +RMAPI Quaternion QuaternionTransform(Quaternion q, Matrix mat) +{ + Quaternion result = { 0 }; + + result.x = mat.m0*q.x + mat.m4*q.y + mat.m8*q.z + mat.m12*q.w; + result.y = mat.m1*q.x + mat.m5*q.y + mat.m9*q.z + mat.m13*q.w; + result.z = mat.m2*q.x + mat.m6*q.y + mat.m10*q.z + mat.m14*q.w; + result.w = mat.m3*q.x + mat.m7*q.y + mat.m11*q.z + mat.m15*q.w; + + return result; +} + +// Check whether two given quaternions are almost equal +RMAPI int QuaternionEquals(Quaternion p, Quaternion q) +{ +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + int result = (((fabsf(p.x - q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && + ((fabsf(p.y - q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))) && + ((fabsf(p.z - q.z)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.z), fabsf(q.z))))) && + ((fabsf(p.w - q.w)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.w), fabsf(q.w)))))) || + (((fabsf(p.x + q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && + ((fabsf(p.y + q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))) && + ((fabsf(p.z + q.z)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.z), fabsf(q.z))))) && + ((fabsf(p.w + q.w)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.w), fabsf(q.w)))))); + + return result; +} + +// Compose a transformation matrix from rotational, translational and scaling components +// TODO: This function is not following raymath conventions defined in header: NOT self-contained +RMAPI Matrix MatrixCompose(Vector3 translation, Quaternion rotation, Vector3 scale) +{ + // Initialize vectors + Vector3 right = { 1.0f, 0.0f, 0.0f }; + Vector3 up = { 0.0f, 1.0f, 0.0f }; + Vector3 forward = { 0.0f, 0.0f, 1.0f }; + + // Scale vectors + right = Vector3Scale(right, scale.x); + up = Vector3Scale(up, scale.y); + forward = Vector3Scale(forward , scale.z); + + // Rotate vectors + right = Vector3RotateByQuaternion(right, rotation); + up = Vector3RotateByQuaternion(up, rotation); + forward = Vector3RotateByQuaternion(forward, rotation); + + // Set result matrix output + Matrix result = { + right.x, up.x, forward.x, translation.x, + right.y, up.y, forward.y, translation.y, + right.z, up.z, forward.z, translation.z, + 0.0f, 0.0f, 0.0f, 1.0f + }; + + return result; +} + +// Decompose a transformation matrix into its rotational, translational and scaling components and remove shear +// TODO: This function is not following raymath conventions defined in header: NOT self-contained +RMAPI void MatrixDecompose(Matrix mat, Vector3 *translation, Quaternion *rotation, Vector3 *scale) +{ + float eps = (float)1e-9; + + // Extract Translation + translation->x = mat.m12; + translation->y = mat.m13; + translation->z = mat.m14; + + // Matrix Columns - Rotation will be extracted into here + Vector3 matColumns[3] = {{ mat.m0, mat.m4, mat.m8 }, + { mat.m1, mat.m5, mat.m9 }, + { mat.m2, mat.m6, mat.m10 }}; + + // Shear Parameters XY, XZ, and YZ (extract and ignored) + float shear[3] = { 0 }; + + // Normalized Scale Parameters + Vector3 scl = { 0 }; + + // Max-Normalizing helps numerical stability + float stabilizer = eps; + for (int i = 0; i < 3; i++) + { + stabilizer = fmaxf(stabilizer, fabsf(matColumns[i].x)); + stabilizer = fmaxf(stabilizer, fabsf(matColumns[i].y)); + stabilizer = fmaxf(stabilizer, fabsf(matColumns[i].z)); + } + matColumns[0] = Vector3Scale(matColumns[0], 1.0f / stabilizer); + matColumns[1] = Vector3Scale(matColumns[1], 1.0f / stabilizer); + matColumns[2] = Vector3Scale(matColumns[2], 1.0f / stabilizer); + + // X Scale + scl.x = Vector3Length(matColumns[0]); + if (scl.x > eps) matColumns[0] = Vector3Scale(matColumns[0], 1.0f / scl.x); + + // Compute XY shear and make col2 orthogonal + shear[0] = Vector3DotProduct(matColumns[0], matColumns[1]); + matColumns[1] = Vector3Subtract(matColumns[1], Vector3Scale(matColumns[0], shear[0])); + + // Y Scale + scl.y = Vector3Length(matColumns[1]); + if (scl.y > eps) + { + matColumns[1] = Vector3Scale(matColumns[1], 1.0f / scl.y); + shear[0] /= scl.y; // Correct XY shear + } + + // Compute XZ and YZ shears and make col3 orthogonal + shear[1] = Vector3DotProduct(matColumns[0], matColumns[2]); + matColumns[2] = Vector3Subtract(matColumns[2], Vector3Scale(matColumns[0], shear[1])); + shear[2] = Vector3DotProduct(matColumns[1], matColumns[2]); + matColumns[2] = Vector3Subtract(matColumns[2], Vector3Scale(matColumns[1], shear[2])); + + // Z Scale + scl.z = Vector3Length(matColumns[2]); + if (scl.z > eps) + { + matColumns[2] = Vector3Scale(matColumns[2], 1.0f / scl.z); + shear[1] /= scl.z; // Correct XZ shear + shear[2] /= scl.z; // Correct YZ shear + } + + // matColumns are now orthonormal in O(3). Now ensure its in SO(3) by enforcing det = 1 + if (Vector3DotProduct(matColumns[0], Vector3CrossProduct(matColumns[1], matColumns[2])) < 0) + { + scl = Vector3Negate(scl); + matColumns[0] = Vector3Negate(matColumns[0]); + matColumns[1] = Vector3Negate(matColumns[1]); + matColumns[2] = Vector3Negate(matColumns[2]); + } + + // Set Scale + *scale = Vector3Scale(scl, stabilizer); + + // Extract Rotation + Matrix rotationMatrix = { matColumns[0].x, matColumns[0].y, matColumns[0].z, 0, + matColumns[1].x, matColumns[1].y, matColumns[1].z, 0, + matColumns[2].x, matColumns[2].y, matColumns[2].z, 0, + 0, 0, 0, 1 }; + *rotation = QuaternionFromMatrix(rotationMatrix); +} + +#if defined(__cplusplus) && !defined(RAYMATH_DISABLE_CPP_OPERATORS) + +// Optional C++ math operators +//------------------------------------------------------------------------------- + +// Vector2 operators +static constexpr Vector2 Vector2Zeros = { 0, 0 }; +static constexpr Vector2 Vector2Ones = { 1, 1 }; +static constexpr Vector2 Vector2UnitX = { 1, 0 }; +static constexpr Vector2 Vector2UnitY = { 0, 1 }; + +inline Vector2 operator + (const Vector2& lhs, const Vector2& rhs) +{ + return Vector2Add(lhs, rhs); +} + +inline const Vector2& operator += (Vector2& lhs, const Vector2& rhs) +{ + lhs = Vector2Add(lhs, rhs); + return lhs; +} + +inline Vector2 operator - (const Vector2& lhs, const Vector2& rhs) +{ + return Vector2Subtract(lhs, rhs); +} + +inline const Vector2& operator -= (Vector2& lhs, const Vector2& rhs) +{ + lhs = Vector2Subtract(lhs, rhs); + return lhs; +} + +inline Vector2 operator * (const Vector2& lhs, const float& rhs) +{ + return Vector2Scale(lhs, rhs); +} + +inline const Vector2& operator *= (Vector2& lhs, const float& rhs) +{ + lhs = Vector2Scale(lhs, rhs); + return lhs; +} + +inline Vector2 operator * (const Vector2& lhs, const Vector2& rhs) +{ + return Vector2Multiply(lhs, rhs); +} + +inline const Vector2& operator *= (Vector2& lhs, const Vector2& rhs) +{ + lhs = Vector2Multiply(lhs, rhs); + return lhs; +} + +inline Vector2 operator * (const Vector2& lhs, const Matrix& rhs) +{ + return Vector2Transform(lhs, rhs); +} + +inline const Vector2& operator *= (Vector2& lhs, const Matrix& rhs) +{ + lhs = Vector2Transform(lhs, rhs); + return lhs; +} + +inline Vector2 operator / (const Vector2& lhs, const float& rhs) +{ + return Vector2Scale(lhs, 1.0f/rhs); +} + +inline const Vector2& operator /= (Vector2& lhs, const float& rhs) +{ + lhs = Vector2Scale(lhs, 1.0f/rhs); + return lhs; +} + +inline Vector2 operator / (const Vector2& lhs, const Vector2& rhs) +{ + return Vector2Divide(lhs, rhs); +} + +inline const Vector2& operator /= (Vector2& lhs, const Vector2& rhs) +{ + lhs = Vector2Divide(lhs, rhs); + return lhs; +} + +inline bool operator == (const Vector2& lhs, const Vector2& rhs) +{ + return FloatEquals(lhs.x, rhs.x) && FloatEquals(lhs.y, rhs.y); +} + +inline bool operator != (const Vector2& lhs, const Vector2& rhs) +{ + return !FloatEquals(lhs.x, rhs.x) || !FloatEquals(lhs.y, rhs.y); +} + +// Vector3 operators +static constexpr Vector3 Vector3Zeros = { 0, 0, 0 }; +static constexpr Vector3 Vector3Ones = { 1, 1, 1 }; +static constexpr Vector3 Vector3UnitX = { 1, 0, 0 }; +static constexpr Vector3 Vector3UnitY = { 0, 1, 0 }; +static constexpr Vector3 Vector3UnitZ = { 0, 0, 1 }; + +inline Vector3 operator + (const Vector3& lhs, const Vector3& rhs) +{ + return Vector3Add(lhs, rhs); +} + +inline const Vector3& operator += (Vector3& lhs, const Vector3& rhs) +{ + lhs = Vector3Add(lhs, rhs); + return lhs; +} + +inline Vector3 operator - (const Vector3& lhs, const Vector3& rhs) +{ + return Vector3Subtract(lhs, rhs); +} + +inline const Vector3& operator -= (Vector3& lhs, const Vector3& rhs) +{ + lhs = Vector3Subtract(lhs, rhs); + return lhs; +} + +inline Vector3 operator * (const Vector3& lhs, const float& rhs) +{ + return Vector3Scale(lhs, rhs); +} + +inline const Vector3& operator *= (Vector3& lhs, const float& rhs) +{ + lhs = Vector3Scale(lhs, rhs); + return lhs; +} + +inline Vector3 operator * (const Vector3& lhs, const Vector3& rhs) +{ + return Vector3Multiply(lhs, rhs); +} + +inline const Vector3& operator *= (Vector3& lhs, const Vector3& rhs) +{ + lhs = Vector3Multiply(lhs, rhs); + return lhs; +} + +inline Vector3 operator * (const Vector3& lhs, const Matrix& rhs) +{ + return Vector3Transform(lhs, rhs); +} + +inline const Vector3& operator *= (Vector3& lhs, const Matrix& rhs) +{ + lhs = Vector3Transform(lhs, rhs); + return lhs; +} + +inline Vector3 operator / (const Vector3& lhs, const float& rhs) +{ + return Vector3Scale(lhs, 1.0f/rhs); +} + +inline const Vector3& operator /= (Vector3& lhs, const float& rhs) +{ + lhs = Vector3Scale(lhs, 1.0f/rhs); + return lhs; +} + +inline Vector3 operator / (const Vector3& lhs, const Vector3& rhs) +{ + return Vector3Divide(lhs, rhs); +} + +inline const Vector3& operator /= (Vector3& lhs, const Vector3& rhs) +{ + lhs = Vector3Divide(lhs, rhs); + return lhs; +} + +inline bool operator == (const Vector3& lhs, const Vector3& rhs) +{ + return FloatEquals(lhs.x, rhs.x) && FloatEquals(lhs.y, rhs.y) && FloatEquals(lhs.z, rhs.z); +} + +inline bool operator != (const Vector3& lhs, const Vector3& rhs) +{ + return !FloatEquals(lhs.x, rhs.x) || !FloatEquals(lhs.y, rhs.y) || !FloatEquals(lhs.z, rhs.z); +} + +// Vector4 operators +static constexpr Vector4 Vector4Zeros = { 0, 0, 0, 0 }; +static constexpr Vector4 Vector4Ones = { 1, 1, 1, 1 }; +static constexpr Vector4 Vector4UnitX = { 1, 0, 0, 0 }; +static constexpr Vector4 Vector4UnitY = { 0, 1, 0, 0 }; +static constexpr Vector4 Vector4UnitZ = { 0, 0, 1, 0 }; +static constexpr Vector4 Vector4UnitW = { 0, 0, 0, 1 }; + +inline Vector4 operator + (const Vector4& lhs, const Vector4& rhs) +{ + return Vector4Add(lhs, rhs); +} + +inline const Vector4& operator += (Vector4& lhs, const Vector4& rhs) +{ + lhs = Vector4Add(lhs, rhs); + return lhs; +} + +inline Vector4 operator - (const Vector4& lhs, const Vector4& rhs) +{ + return Vector4Subtract(lhs, rhs); +} + +inline const Vector4& operator -= (Vector4& lhs, const Vector4& rhs) +{ + lhs = Vector4Subtract(lhs, rhs); + return lhs; +} + +inline Vector4 operator * (const Vector4& lhs, const float& rhs) +{ + return Vector4Scale(lhs, rhs); +} + +inline const Vector4& operator *= (Vector4& lhs, const float& rhs) +{ + lhs = Vector4Scale(lhs, rhs); + return lhs; +} + +inline Vector4 operator * (const Vector4& lhs, const Vector4& rhs) +{ + return Vector4Multiply(lhs, rhs); +} + +inline const Vector4& operator *= (Vector4& lhs, const Vector4& rhs) +{ + lhs = Vector4Multiply(lhs, rhs); + return lhs; +} + +inline Vector4 operator / (const Vector4& lhs, const float& rhs) +{ + return Vector4Scale(lhs, 1.0f/rhs); +} + +inline const Vector4& operator /= (Vector4& lhs, const float& rhs) +{ + lhs = Vector4Scale(lhs, 1.0f/rhs); + return lhs; +} + +inline Vector4 operator / (const Vector4& lhs, const Vector4& rhs) +{ + return Vector4Divide(lhs, rhs); +} + +inline const Vector4& operator /= (Vector4& lhs, const Vector4& rhs) +{ + lhs = Vector4Divide(lhs, rhs); + return lhs; +} + +inline bool operator == (const Vector4& lhs, const Vector4& rhs) +{ + return FloatEquals(lhs.x, rhs.x) && FloatEquals(lhs.y, rhs.y) && FloatEquals(lhs.z, rhs.z) && FloatEquals(lhs.w, rhs.w); +} + +inline bool operator != (const Vector4& lhs, const Vector4& rhs) +{ + return !FloatEquals(lhs.x, rhs.x) || !FloatEquals(lhs.y, rhs.y) || !FloatEquals(lhs.z, rhs.z) || !FloatEquals(lhs.w, rhs.w); +} + +// Quaternion operators +static constexpr Quaternion QuaternionZeros = { 0, 0, 0, 0 }; +static constexpr Quaternion QuaternionOnes = { 1, 1, 1, 1 }; +static constexpr Quaternion QuaternionUnitX = { 0, 0, 0, 1 }; + +inline Quaternion operator + (const Quaternion& lhs, const float& rhs) +{ + return QuaternionAddValue(lhs, rhs); +} + +inline const Quaternion& operator += (Quaternion& lhs, const float& rhs) +{ + lhs = QuaternionAddValue(lhs, rhs); + return lhs; +} + +inline Quaternion operator - (const Quaternion& lhs, const float& rhs) +{ + return QuaternionSubtractValue(lhs, rhs); +} + +inline const Quaternion& operator -= (Quaternion& lhs, const float& rhs) +{ + lhs = QuaternionSubtractValue(lhs, rhs); + return lhs; +} + +inline Quaternion operator * (const Quaternion& lhs, const Matrix& rhs) +{ + return QuaternionTransform(lhs, rhs); +} + +inline const Quaternion& operator *= (Quaternion& lhs, const Matrix& rhs) +{ + lhs = QuaternionTransform(lhs, rhs); + return lhs; +} + +// Matrix operators +static constexpr Matrix MatrixUnit = { 1, 0, 0, 0, + 0, 1, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1 }; + +inline Matrix operator + (const Matrix& lhs, const Matrix& rhs) +{ + return MatrixAdd(lhs, rhs); +} + +inline const Matrix& operator += (Matrix& lhs, const Matrix& rhs) +{ + lhs = MatrixAdd(lhs, rhs); + return lhs; +} + +inline Matrix operator - (const Matrix& lhs, const Matrix& rhs) +{ + return MatrixSubtract(lhs, rhs); +} + +inline const Matrix& operator -= (Matrix& lhs, const Matrix& rhs) +{ + lhs = MatrixSubtract(lhs, rhs); + return lhs; +} + +inline Matrix operator * (const Matrix& lhs, const Matrix& rhs) +{ + return MatrixMultiply(lhs, rhs); +} + +inline const Matrix& operator *= (Matrix& lhs, const Matrix& rhs) +{ + lhs = MatrixMultiply(lhs, rhs); + return lhs; +} + +inline Matrix operator * (const Matrix& lhs, const float value) +{ + return MatrixMultiplyValue(lhs, value); +} + +inline const Matrix& operator *= (Matrix& lhs, const float value) +{ + lhs = MatrixMultiplyValue(lhs, value); + return lhs; +} + +//------------------------------------------------------------------------------- +#endif // C++ operators + +#endif // RAYMATH_H diff --git a/.zig-cache/o/0cb472c14c1ac56695fea882facb905b/rcamera.h b/.zig-cache/o/0cb472c14c1ac56695fea882facb905b/rcamera.h new file mode 100644 index 0000000..e6f5bba --- /dev/null +++ b/.zig-cache/o/0cb472c14c1ac56695fea882facb905b/rcamera.h @@ -0,0 +1,562 @@ +/******************************************************************************************* +* +* rcamera - Basic camera system with support for multiple camera modes +* +* CONFIGURATION: +* #define RCAMERA_IMPLEMENTATION +* Generates the implementation of the library into the included file. +* If not defined, the library is in header only mode and can be included in other headers +* or source files without problems. But only ONE file should hold the implementation. +* +* #define RCAMERA_STANDALONE +* If defined, the library can be used as standalone as a camera system but some +* functions must be redefined to manage inputs accordingly. +* +* CONTRIBUTORS: +* Ramon Santamaria: Supervision, review, update and maintenance +* Christoph Wagner: Complete redesign, using raymath (2022) +* Marc Palau: Initial implementation (2014) +* +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2022-2026 Christoph Wagner (@Crydsch) and Ramon Santamaria (@raysan5) +* +* This software is provided "as-is", without any express or implied warranty. In no event +* will the authors be held liable for any damages arising from the use of this software. +* +* Permission is granted to anyone to use this software for any purpose, including commercial +* applications, and to alter it and redistribute it freely, subject to the following restrictions: +* +* 1. The origin of this software must not be misrepresented; you must not claim that you +* wrote the original software. If you use this software in a product, an acknowledgment +* in the product documentation would be appreciated but is not required. +* +* 2. Altered source versions must be plainly marked as such, and must not be misrepresented +* as being the original software. +* +* 3. This notice may not be removed or altered from any source distribution. +* +**********************************************************************************************/ + +#ifndef RCAMERA_H +#define RCAMERA_H + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- +// Function specifiers definition + +// Function specifiers in case library is build/used as a shared library (Windows) +// NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll +#if defined(_WIN32) + #if defined(BUILD_LIBTYPE_SHARED) + #if defined(__TINYC__) + #define __declspec(x) __attribute__((x)) + #endif + #define RLAPI __declspec(dllexport) // Building the library as a Win32 shared library (.dll) + #elif defined(USE_LIBTYPE_SHARED) + #define RLAPI __declspec(dllimport) // Using the library as a Win32 shared library (.dll) + #endif +#endif + +#ifndef RLAPI + #define RLAPI // Functions defined as 'extern' by default (implicit specifiers) +#endif + +#if defined(RCAMERA_STANDALONE) + #define CAMERA_CULL_DISTANCE_NEAR 0.05 + #define CAMERA_CULL_DISTANCE_FAR 4000.0 +#else + #define CAMERA_CULL_DISTANCE_NEAR RL_CULL_DISTANCE_NEAR + #define CAMERA_CULL_DISTANCE_FAR RL_CULL_DISTANCE_FAR +#endif + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +// NOTE: Below types are required for standalone usage +//---------------------------------------------------------------------------------- +#if defined(RCAMERA_STANDALONE) + // Vector2, 2 components + typedef struct Vector2 { + float x; // Vector x component + float y; // Vector y component + } Vector2; + + // Vector3, 3 components + typedef struct Vector3 { + float x; // Vector x component + float y; // Vector y component + float z; // Vector z component + } Vector3; + + // Matrix, 4x4 components, column major, OpenGL style, right-handed + typedef struct Matrix { + float m0, m4, m8, m12; // Matrix first row (4 components) + float m1, m5, m9, m13; // Matrix second row (4 components) + float m2, m6, m10, m14; // Matrix third row (4 components) + float m3, m7, m11, m15; // Matrix fourth row (4 components) + } Matrix; + + // Camera type, defines a camera position/orientation in 3d space + typedef struct Camera3D { + Vector3 position; // Camera position + Vector3 target; // Camera target it looks-at + Vector3 up; // Camera up vector (rotation over its axis) + float fovy; // Camera field-of-view aperture in Y (degrees) in perspective, used as near plane width in orthographic + int projection; // Camera projection type: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC + } Camera3D; + + typedef Camera3D Camera; // Camera type fallback, defaults to Camera3D + + // Camera projection + typedef enum { + CAMERA_PERSPECTIVE = 0, // Perspective projection + CAMERA_ORTHOGRAPHIC // Orthographic projection + } CameraProjection; + + // Camera system modes + typedef enum { + CAMERA_CUSTOM = 0, // Camera custom, controlled by user (UpdateCamera() does nothing) + CAMERA_FREE, // Camera free mode + CAMERA_ORBITAL, // Camera orbital, around target, zoom supported + CAMERA_FIRST_PERSON, // Camera first person + CAMERA_THIRD_PERSON // Camera third person + } CameraMode; +#endif + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +//... + +//---------------------------------------------------------------------------------- +// Module Functions Declaration +//---------------------------------------------------------------------------------- + +#if defined(__cplusplus) +extern "C" { // Prevents name mangling of functions +#endif + +RLAPI Vector3 GetCameraForward(Camera *camera); +RLAPI Vector3 GetCameraUp(Camera *camera); +RLAPI Vector3 GetCameraRight(Camera *camera); + +// Camera movement +RLAPI void CameraMoveForward(Camera *camera, float distance, bool moveInWorldPlane); +RLAPI void CameraMoveUp(Camera *camera, float distance); +RLAPI void CameraMoveRight(Camera *camera, float distance, bool moveInWorldPlane); +RLAPI void CameraMoveToTarget(Camera *camera, float delta); + +// Camera rotation +RLAPI void CameraYaw(Camera *camera, float angle, bool rotateAroundTarget); +RLAPI void CameraPitch(Camera *camera, float angle, bool lockView, bool rotateAroundTarget, bool rotateUp); +RLAPI void CameraRoll(Camera *camera, float angle); + +RLAPI Matrix GetCameraViewMatrix(Camera *camera); +RLAPI Matrix GetCameraProjectionMatrix(Camera *camera, float aspect); + +#if defined(__cplusplus) +} +#endif + +#endif // RCAMERA_H + +/*********************************************************************************** +* +* CAMERA IMPLEMENTATION +* +************************************************************************************/ + +#if defined(RCAMERA_IMPLEMENTATION) + +#include "raymath.h" // Required for vector maths: + // Vector3Add() + // Vector3Subtract() + // Vector3Scale() + // Vector3Normalize() + // Vector3Distance() + // Vector3CrossProduct() + // Vector3RotateByAxisAngle() + // Vector3Angle() + // Vector3Negate() + // MatrixLookAt() + // MatrixPerspective() + // MatrixOrtho() + // MatrixIdentity() + +// raylib required functionality: + // GetMouseDelta() + // GetMouseWheelMove() + // IsKeyDown() + // IsKeyPressed() + // GetFrameTime() + +#include // Required for: fabsf() + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- +#define CAMERA_MOVE_SPEED 5.4f // Units per second +#define CAMERA_ROTATION_SPEED 0.03f +#define CAMERA_PAN_SPEED 2.0f + +// Camera mouse movement sensitivity +#define CAMERA_MOUSE_MOVE_SENSITIVITY 0.003f + +// Camera orbital speed in CAMERA_ORBITAL mode +#define CAMERA_ORBITAL_SPEED 0.5f // Radians per second + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +//... + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +//... + +//---------------------------------------------------------------------------------- +// Module Internal Functions Declaration +//---------------------------------------------------------------------------------- +//... + +//---------------------------------------------------------------------------------- +// Module Functions Definition +//---------------------------------------------------------------------------------- +// Returns the cameras forward vector (normalized) +Vector3 GetCameraForward(Camera *camera) +{ + return Vector3Normalize(Vector3Subtract(camera->target, camera->position)); +} + +// Returns the cameras up vector (normalized) +// Note: The up vector might not be perpendicular to the forward vector +Vector3 GetCameraUp(Camera *camera) +{ + return Vector3Normalize(camera->up); +} + +// Returns the cameras right vector (normalized) +Vector3 GetCameraRight(Camera *camera) +{ + Vector3 forward = GetCameraForward(camera); + Vector3 up = GetCameraUp(camera); + + return Vector3Normalize(Vector3CrossProduct(forward, up)); +} + +// Moves the camera in its forward direction +void CameraMoveForward(Camera *camera, float distance, bool moveInWorldPlane) +{ + Vector3 forward = GetCameraForward(camera); + + if (moveInWorldPlane) + { + // Project vector onto world plane (the plane defined by the up vector) + if (fabsf(camera->up.z) > 0.7071f) forward.z = 0; + else if (fabsf(camera->up.x) > 0.7071f) forward.x = 0; + else forward.y = 0; + + forward = Vector3Normalize(forward); + } + + // Scale by distance + forward = Vector3Scale(forward, distance); + + // Move position and target + camera->position = Vector3Add(camera->position, forward); + camera->target = Vector3Add(camera->target, forward); +} + +// Moves the camera in its up direction +void CameraMoveUp(Camera *camera, float distance) +{ + Vector3 up = GetCameraUp(camera); + + // Scale by distance + up = Vector3Scale(up, distance); + + // Move position and target + camera->position = Vector3Add(camera->position, up); + camera->target = Vector3Add(camera->target, up); +} + +// Moves the camera target in its current right direction +void CameraMoveRight(Camera *camera, float distance, bool moveInWorldPlane) +{ + Vector3 right = GetCameraRight(camera); + + if (moveInWorldPlane) + { + // Project vector onto world plane (the plane defined by the up vector) + if (fabsf(camera->up.z) > 0.7071f) right.z = 0; + else if (fabsf(camera->up.x) > 0.7071f) right.x = 0; + else right.y = 0; + + right = Vector3Normalize(right); + } + + // Scale by distance + right = Vector3Scale(right, distance); + + // Move position and target + camera->position = Vector3Add(camera->position, right); + camera->target = Vector3Add(camera->target, right); +} + +// Moves the camera position closer/farther to/from the camera target +void CameraMoveToTarget(Camera *camera, float delta) +{ + float distance = Vector3Distance(camera->position, camera->target); + + // Apply delta + distance += delta; + + // Distance must be greater than 0 + if (distance <= 0) distance = 0.001f; + + // Set new distance by moving the position along the forward vector + Vector3 forward = GetCameraForward(camera); + camera->position = Vector3Add(camera->target, Vector3Scale(forward, -distance)); +} + +// Rotates the camera around its up vector +// Yaw is "looking left and right" +// If rotateAroundTarget is false, the camera rotates around its position +// Note: angle must be provided in radians +void CameraYaw(Camera *camera, float angle, bool rotateAroundTarget) +{ + // Rotation axis + Vector3 up = GetCameraUp(camera); + + // View vector + Vector3 targetPosition = Vector3Subtract(camera->target, camera->position); + + // Rotate view vector around up axis + targetPosition = Vector3RotateByAxisAngle(targetPosition, up, angle); + + if (rotateAroundTarget) + { + // Move position relative to target + camera->position = Vector3Subtract(camera->target, targetPosition); + } + else // rotate around camera.position + { + // Move target relative to position + camera->target = Vector3Add(camera->position, targetPosition); + } +} + +// Rotates the camera around its right vector, pitch is "looking up and down" +// - lockView prevents camera overrotation (aka "somersaults") +// - rotateAroundTarget defines if rotation is around target or around its position +// - rotateUp rotates the up direction as well (typically only useful in CAMERA_FREE) +// NOTE: [angle] must be provided in radians +void CameraPitch(Camera *camera, float angle, bool lockView, bool rotateAroundTarget, bool rotateUp) +{ + // Up direction + Vector3 up = GetCameraUp(camera); + + // View vector + Vector3 targetPosition = Vector3Subtract(camera->target, camera->position); + + if (lockView) + { + // In these camera modes, clamp the Pitch angle + // to allow only viewing straight up or down + + // Clamp view up + float maxAngleUp = Vector3Angle(up, targetPosition); + maxAngleUp -= 0.001f; // avoid numerical errors + if (angle > maxAngleUp) angle = maxAngleUp; + + // Clamp view down + float maxAngleDown = Vector3Angle(Vector3Negate(up), targetPosition); + maxAngleDown *= -1.0f; // downwards angle is negative + maxAngleDown += 0.001f; // avoid numerical errors + if (angle < maxAngleDown) angle = maxAngleDown; + } + + // Rotation axis + Vector3 right = GetCameraRight(camera); + + // Rotate view vector around right axis + targetPosition = Vector3RotateByAxisAngle(targetPosition, right, angle); + + if (rotateAroundTarget) + { + // Move position relative to target + camera->position = Vector3Subtract(camera->target, targetPosition); + } + else // Rotate around camera.position + { + // Move target relative to position + camera->target = Vector3Add(camera->position, targetPosition); + } + + if (rotateUp) + { + // Rotate up direction around right axis + camera->up = Vector3RotateByAxisAngle(camera->up, right, angle); + } +} + +// Rotates the camera around its forward vector +// Roll is "turning your head sideways to the left or right" +// Note: angle must be provided in radians +void CameraRoll(Camera *camera, float angle) +{ + // Rotation axis + Vector3 forward = GetCameraForward(camera); + + // Rotate up direction around forward axis + camera->up = Vector3RotateByAxisAngle(camera->up, forward, angle); +} + +// Returns the camera view matrix +Matrix GetCameraViewMatrix(Camera *camera) +{ + return MatrixLookAt(camera->position, camera->target, camera->up); +} + +// Returns the camera projection matrix +Matrix GetCameraProjectionMatrix(Camera *camera, float aspect) +{ + if (camera->projection == CAMERA_PERSPECTIVE) + { + return MatrixPerspective(camera->fovy*DEG2RAD, aspect, CAMERA_CULL_DISTANCE_NEAR, CAMERA_CULL_DISTANCE_FAR); + } + else if (camera->projection == CAMERA_ORTHOGRAPHIC) + { + double top = camera->fovy/2.0; + double right = top*aspect; + + return MatrixOrtho(-right, right, -top, top, CAMERA_CULL_DISTANCE_NEAR, CAMERA_CULL_DISTANCE_FAR); + } + + return MatrixIdentity(); +} + +#if !defined(RCAMERA_STANDALONE) +// Update camera position for selected mode +// Camera mode: CAMERA_FREE, CAMERA_FIRST_PERSON, CAMERA_THIRD_PERSON, CAMERA_ORBITAL or CUSTOM +void UpdateCamera(Camera *camera, int mode) +{ + Vector2 mousePositionDelta = GetMouseDelta(); + + bool moveInWorldPlane = ((mode == CAMERA_FIRST_PERSON) || (mode == CAMERA_THIRD_PERSON)); + bool rotateAroundTarget = ((mode == CAMERA_THIRD_PERSON) || (mode == CAMERA_ORBITAL)); + bool lockView = ((mode == CAMERA_FREE) || (mode == CAMERA_FIRST_PERSON) || (mode == CAMERA_THIRD_PERSON) || (mode == CAMERA_ORBITAL)); + bool rotateUp = false; + + // Camera speeds based on frame time + float cameraMoveSpeed = CAMERA_MOVE_SPEED*GetFrameTime(); + float cameraRotationSpeed = CAMERA_ROTATION_SPEED*GetFrameTime(); + float cameraPanSpeed = CAMERA_PAN_SPEED*GetFrameTime(); + float cameraOrbitalSpeed = CAMERA_ORBITAL_SPEED*GetFrameTime(); + + if (mode == CAMERA_CUSTOM) {} + else if (mode == CAMERA_ORBITAL) + { + Matrix rotation = MatrixRotate(GetCameraUp(camera), cameraOrbitalSpeed); + Vector3 view = Vector3Subtract(camera->position, camera->target); + view = Vector3Transform(view, rotation); + camera->position = Vector3Add(camera->target, view); + } + else + { + // Camera rotation + if (IsKeyDown(KEY_DOWN)) CameraPitch(camera, -cameraRotationSpeed, lockView, rotateAroundTarget, rotateUp); + if (IsKeyDown(KEY_UP)) CameraPitch(camera, cameraRotationSpeed, lockView, rotateAroundTarget, rotateUp); + if (IsKeyDown(KEY_RIGHT)) CameraYaw(camera, -cameraRotationSpeed, rotateAroundTarget); + if (IsKeyDown(KEY_LEFT)) CameraYaw(camera, cameraRotationSpeed, rotateAroundTarget); + if (IsKeyDown(KEY_Q)) CameraRoll(camera, -cameraRotationSpeed); + if (IsKeyDown(KEY_E)) CameraRoll(camera, cameraRotationSpeed); + + // Camera movement + // Camera pan (for CAMERA_FREE) + if ((mode == CAMERA_FREE) && (IsMouseButtonDown(MOUSE_BUTTON_MIDDLE))) + { + const Vector2 mouseDelta = GetMouseDelta(); + if (mouseDelta.x > 0.0f) CameraMoveRight(camera, cameraPanSpeed, moveInWorldPlane); + if (mouseDelta.x < 0.0f) CameraMoveRight(camera, -cameraPanSpeed, moveInWorldPlane); + if (mouseDelta.y > 0.0f) CameraMoveUp(camera, -cameraPanSpeed); + if (mouseDelta.y < 0.0f) CameraMoveUp(camera, cameraPanSpeed); + } + else + { + // Mouse support + CameraYaw(camera, -mousePositionDelta.x*CAMERA_MOUSE_MOVE_SENSITIVITY, rotateAroundTarget); + CameraPitch(camera, -mousePositionDelta.y*CAMERA_MOUSE_MOVE_SENSITIVITY, lockView, rotateAroundTarget, rotateUp); + } + + // Keyboard support + if (IsKeyDown(KEY_W)) CameraMoveForward(camera, cameraMoveSpeed, moveInWorldPlane); + if (IsKeyDown(KEY_A)) CameraMoveRight(camera, -cameraMoveSpeed, moveInWorldPlane); + if (IsKeyDown(KEY_S)) CameraMoveForward(camera, -cameraMoveSpeed, moveInWorldPlane); + if (IsKeyDown(KEY_D)) CameraMoveRight(camera, cameraMoveSpeed, moveInWorldPlane); + + // Gamepad movement + if (IsGamepadAvailable(0)) + { + // Gamepad controller support + CameraYaw(camera, -(GetGamepadAxisMovement(0, GAMEPAD_AXIS_RIGHT_X)*2)*CAMERA_MOUSE_MOVE_SENSITIVITY, rotateAroundTarget); + CameraPitch(camera, -(GetGamepadAxisMovement(0, GAMEPAD_AXIS_RIGHT_Y)*2)*CAMERA_MOUSE_MOVE_SENSITIVITY, lockView, rotateAroundTarget, rotateUp); + + if (GetGamepadAxisMovement(0, GAMEPAD_AXIS_LEFT_Y) <= -0.25f) CameraMoveForward(camera, cameraMoveSpeed, moveInWorldPlane); + if (GetGamepadAxisMovement(0, GAMEPAD_AXIS_LEFT_X) <= -0.25f) CameraMoveRight(camera, -cameraMoveSpeed, moveInWorldPlane); + if (GetGamepadAxisMovement(0, GAMEPAD_AXIS_LEFT_Y) >= 0.25f) CameraMoveForward(camera, -cameraMoveSpeed, moveInWorldPlane); + if (GetGamepadAxisMovement(0, GAMEPAD_AXIS_LEFT_X) >= 0.25f) CameraMoveRight(camera, cameraMoveSpeed, moveInWorldPlane); + } + + if (mode == CAMERA_FREE) + { + if (IsKeyDown(KEY_SPACE)) CameraMoveUp(camera, cameraMoveSpeed); + if (IsKeyDown(KEY_LEFT_CONTROL)) CameraMoveUp(camera, -cameraMoveSpeed); + } + } + + if ((mode == CAMERA_THIRD_PERSON) || (mode == CAMERA_ORBITAL) || (mode == CAMERA_FREE)) + { + // Zoom target distance + CameraMoveToTarget(camera, -GetMouseWheelMove()); + if (IsKeyPressed(KEY_KP_SUBTRACT)) CameraMoveToTarget(camera, 2.0f); + if (IsKeyPressed(KEY_KP_ADD)) CameraMoveToTarget(camera, -2.0f); + } +} +#endif // !RCAMERA_STANDALONE + +// Update camera movement, movement/rotation values should be provided by user +void UpdateCameraPro(Camera *camera, Vector3 movement, Vector3 rotation, float zoom) +{ + // Required values + // movement.x - Move forward/backward + // movement.y - Move right/left + // movement.z - Move up/down + // rotation.x - yaw + // rotation.y - pitch + // rotation.z - roll + // zoom - Move towards target + + bool lockView = true; + bool rotateAroundTarget = false; + bool rotateUp = false; + bool moveInWorldPlane = true; + + // Camera rotation + CameraPitch(camera, -rotation.y*DEG2RAD, lockView, rotateAroundTarget, rotateUp); + CameraYaw(camera, -rotation.x*DEG2RAD, rotateAroundTarget); + CameraRoll(camera, rotation.z*DEG2RAD); + + // Camera movement + CameraMoveForward(camera, movement.x, moveInWorldPlane); + CameraMoveRight(camera, movement.y, moveInWorldPlane); + CameraMoveUp(camera, movement.z); + + // Zoom target distance + CameraMoveToTarget(camera, zoom); +} + +#endif // RCAMERA_IMPLEMENTATION diff --git a/.zig-cache/o/0cb472c14c1ac56695fea882facb905b/rlgl.h b/.zig-cache/o/0cb472c14c1ac56695fea882facb905b/rlgl.h new file mode 100644 index 0000000..5c6e95a --- /dev/null +++ b/.zig-cache/o/0cb472c14c1ac56695fea882facb905b/rlgl.h @@ -0,0 +1,5421 @@ +/********************************************************************************************** +* +* rlgl v6.0 - A multi-OpenGL abstraction layer with an immediate-mode style API +* +* DESCRIPTION: +* An abstraction layer for multiple OpenGL versions (1.1, 2.1, 3.3 Core, 4.3 Core, ES 2.0, ES 3.0) +* that provides a pseudo-OpenGL 1.1 immediate-mode style API (rlVertex, rlTranslate, rlRotate...) +* +* ADDITIONAL NOTES: +* When choosing an OpenGL backend different than OpenGL 1.1, some internal buffers are +* initialized on rlglInit() to accumulate vertex data +* +* When an internal state change is required all the stored vertex data is rendered in a batch, +* additionally, rlDrawRenderBatchActive() could be called to force flushing of the batch +* +* Some resources are also loaded for convenience, here the complete list: +* - Default batch (RLGL.defaultBatch): RenderBatch system to accumulate vertex data +* - Default texture (RLGL.defaultTextureId): 1x1 white pixel R8G8B8A8 +* - Default shader (RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs) +* +* Internal buffer (and resources) must be manually unloaded calling rlglClose() +* +* CONFIGURATION: +* #define GRAPHICS_API_OPENGL_SOFTWARE +* #define GRAPHICS_API_OPENGL_11 +* #define GRAPHICS_API_OPENGL_21 +* #define GRAPHICS_API_OPENGL_33 +* #define GRAPHICS_API_OPENGL_43 +* #define GRAPHICS_API_OPENGL_ES2 +* #define GRAPHICS_API_OPENGL_ES3 +* Use selected OpenGL graphics backend, should be supported by platform +* Those preprocessor defines are only used on the rlgl module, if OpenGL version is +* required by any other module, use rlGetVersion() to check it +* +* #define RLGL_IMPLEMENTATION +* Generates the implementation of the library into the included file +* If not defined, the library is in header only mode and can be included in other headers +* or source files without problems. But only ONE file should hold the implementation +* +* #if RLGL_SHOW_GL_DETAILS_INFO +* Show OpenGL extensions and capabilities detailed logs on init +* +* #if RLGL_ENABLE_OPENGL_DEBUG_CONTEXT +* Enable debug context (only available on OpenGL 4.3) +* +* rlgl capabilities could be customized defining some internal +* values before library inclusion (default values listed): +* +* #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 8192 // Default internal render batch elements limits +* #define RL_DEFAULT_BATCH_BUFFERS 1 // Default number of batch buffers (multi-buffering) +* #define RL_DEFAULT_BATCH_DRAWCALLS 256 // Default number of batch draw calls (by state changes: mode, texture) +* #define RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS 4 // Maximum number of texture units that can be activated on batch drawing (SetShaderValueTexture()) +* +* #define RL_MAX_MATRIX_STACK_SIZE 32 // Maximum size of internal Matrix stack +* #define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supported +* #define RL_CULL_DISTANCE_NEAR 0.05 // Default projection matrix near cull distance +* #define RL_CULL_DISTANCE_FAR 4000.0 // Default projection matrix far cull distance +* +* When loading a shader, the following vertex attributes and uniform +* location names are tried to be set automatically: +* +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEINDICES "vertexBoneIndices" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEINDICES +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS "vertexBoneWeights" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_MVP "mvp" // model-view-projection matrix +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW "matView" // view matrix +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION "matProjection" // projection matrix +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL "matModel" // model matrix +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL "matNormal" // normal matrix (transpose(inverse(matModelView))) +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR "colDiffuse" // color diffuse (base tint color, multiplied by texture color) +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_BONEMATRICES "boneMatrices" // bone matrices +* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 "texture0" // texture0 (texture slot active 0) +* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 "texture1" // texture1 (texture slot active 1) +* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 "texture2" // texture2 (texture slot active 2) +* +* DEPENDENCIES: +* - OpenGL libraries (depending on platform and OpenGL version selected) +* - GLAD OpenGL extensions loading library (only for OpenGL 3.3 Core, 4.3 Core) +* +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2014-2026 Ramon Santamaria (@raysan5) +* +* This software is provided "as-is", without any express or implied warranty. In no event +* will the authors be held liable for any damages arising from the use of this software. +* +* Permission is granted to anyone to use this software for any purpose, including commercial +* applications, and to alter it and redistribute it freely, subject to the following restrictions: +* +* 1. The origin of this software must not be misrepresented; you must not claim that you +* wrote the original software. If you use this software in a product, an acknowledgment +* in the product documentation would be appreciated but is not required. +* +* 2. Altered source versions must be plainly marked as such, and must not be misrepresented +* as being the original software. +* +* 3. This notice may not be removed or altered from any source distribution. +* +**********************************************************************************************/ + +#ifndef RLGL_H +#define RLGL_H + +#define RLGL_VERSION "6.0" + +// Function specifiers in case library is build/used as a shared library +// NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll +// NOTE: visibility(default) attribute makes symbols "visible" when compiled with -fvisibility=hidden +#if defined(_WIN32) && defined(BUILD_LIBTYPE_SHARED) + #define RLAPI __declspec(dllexport) // Building the library as a Win32 shared library (.dll) +#elif defined(BUILD_LIBTYPE_SHARED) + #define RLAPI __attribute__((visibility("default"))) // Building the library as a Unix shared library (.so/.dylib) +#elif defined(_WIN32) && defined(USE_LIBTYPE_SHARED) + #define RLAPI __declspec(dllimport) // Using the library as a Win32 shared library (.dll) +#endif + +// Function specifiers definition +#ifndef RLAPI + #define RLAPI // Functions defined as 'extern' by default (implicit specifiers) +#endif + +// Support TRACELOG macros +#ifndef TRACELOG + #define TRACELOG(level, ...) (void)0 +#endif + +// Allow custom memory allocators +#ifndef RL_MALLOC + #define RL_MALLOC(sz) malloc(sz) +#endif +#ifndef RL_CALLOC + #define RL_CALLOC(n,sz) calloc(n,sz) +#endif +#ifndef RL_REALLOC + #define RL_REALLOC(n,sz) realloc(n,sz) +#endif +#ifndef RL_FREE + #define RL_FREE(p) free(p) +#endif + +// Security check in case no GRAPHICS_API_OPENGL_* defined +#if !defined(GRAPHICS_API_OPENGL_SOFTWARE) && \ + !defined(GRAPHICS_API_OPENGL_11) && \ + !defined(GRAPHICS_API_OPENGL_21) && \ + !defined(GRAPHICS_API_OPENGL_33) && \ + !defined(GRAPHICS_API_OPENGL_43) && \ + !defined(GRAPHICS_API_OPENGL_ES2) && \ + !defined(GRAPHICS_API_OPENGL_ES3) + #define GRAPHICS_API_OPENGL_33 +#endif + +// Security check in case multiple GRAPHICS_API_OPENGL_* defined +#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_SOFTWARE) + #if defined(GRAPHICS_API_OPENGL_21) + #undef GRAPHICS_API_OPENGL_21 + #endif + #if defined(GRAPHICS_API_OPENGL_33) + #undef GRAPHICS_API_OPENGL_33 + #endif + #if defined(GRAPHICS_API_OPENGL_43) + #undef GRAPHICS_API_OPENGL_43 + #endif + #if defined(GRAPHICS_API_OPENGL_ES2) + #undef GRAPHICS_API_OPENGL_ES2 + #endif +#endif + +// Software implementation uses OpenGL 1.1 functionality +#if defined(GRAPHICS_API_OPENGL_SOFTWARE) + #define GRAPHICS_API_OPENGL_11 +#endif + +// OpenGL 2.1 uses most of OpenGL 3.3 Core functionality +// WARNING: Specific parts are checked with #if defines +#if defined(GRAPHICS_API_OPENGL_21) + #define GRAPHICS_API_OPENGL_33 +#endif + +// OpenGL 4.3 uses OpenGL 3.3 Core functionality +#if defined(GRAPHICS_API_OPENGL_43) + #define GRAPHICS_API_OPENGL_33 +#endif + +// OpenGL ES 3.0 uses OpenGL ES 2.0 functionality (and more) +#if defined(GRAPHICS_API_OPENGL_ES3) + #define GRAPHICS_API_OPENGL_ES2 +#endif + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- + +// Default internal render batch elements limits +#ifndef RL_DEFAULT_BATCH_BUFFER_ELEMENTS + #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + // This is the maximum amount of elements (quads) per batch + // NOTE: Be careful with text, every letter maps to a quad + #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 8192 + #endif + #if defined(GRAPHICS_API_OPENGL_ES2) + // Reducing memory sizes for embedded systems (RPI and HTML5) + // NOTE: On HTML5 (emscripten) this is allocated on heap, + // by default heap is only 16MB!...just take care... + #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 2048 + #endif +#endif +#ifndef RL_DEFAULT_BATCH_BUFFERS + #define RL_DEFAULT_BATCH_BUFFERS 1 // Default number of batch buffers (multi-buffering) +#endif +#ifndef RL_DEFAULT_BATCH_DRAWCALLS + #define RL_DEFAULT_BATCH_DRAWCALLS 256 // Default number of batch draw calls (by state changes: mode, texture) +#endif +#ifndef RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS + #define RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS 4 // Maximum number of textures units that can be activated on batch drawing (SetShaderValueTexture()) +#endif + +// Internal Matrix stack +#ifndef RL_MAX_MATRIX_STACK_SIZE + #define RL_MAX_MATRIX_STACK_SIZE 32 // Maximum size of Matrix stack +#endif + +// Shader limits +#ifndef RL_MAX_SHADER_LOCATIONS + #define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supported +#endif + +// Projection matrix culling +#ifndef RL_CULL_DISTANCE_NEAR + #define RL_CULL_DISTANCE_NEAR 0.05 // Default near cull distance +#endif +#ifndef RL_CULL_DISTANCE_FAR + #define RL_CULL_DISTANCE_FAR 4000.0 // Default far cull distance +#endif + +// Texture parameters (equivalent to OpenGL defines) +#define RL_TEXTURE_WRAP_S 0x2802 // GL_TEXTURE_WRAP_S +#define RL_TEXTURE_WRAP_T 0x2803 // GL_TEXTURE_WRAP_T +#define RL_TEXTURE_MAG_FILTER 0x2800 // GL_TEXTURE_MAG_FILTER +#define RL_TEXTURE_MIN_FILTER 0x2801 // GL_TEXTURE_MIN_FILTER + +#define RL_TEXTURE_FILTER_NEAREST 0x2600 // GL_NEAREST +#define RL_TEXTURE_FILTER_LINEAR 0x2601 // GL_LINEAR +#define RL_TEXTURE_FILTER_MIP_NEAREST 0x2700 // GL_NEAREST_MIPMAP_NEAREST +#define RL_TEXTURE_FILTER_NEAREST_MIP_LINEAR 0x2702 // GL_NEAREST_MIPMAP_LINEAR +#define RL_TEXTURE_FILTER_LINEAR_MIP_NEAREST 0x2701 // GL_LINEAR_MIPMAP_NEAREST +#define RL_TEXTURE_FILTER_MIP_LINEAR 0x2703 // GL_LINEAR_MIPMAP_LINEAR +#define RL_TEXTURE_FILTER_ANISOTROPIC 0x3000 // Anisotropic filter (custom identifier) +#define RL_TEXTURE_MIPMAP_BIAS_RATIO 0x4000 // Texture mipmap bias, percentage ratio (custom identifier) + +#define RL_TEXTURE_WRAP_REPEAT 0x2901 // GL_REPEAT +#define RL_TEXTURE_WRAP_CLAMP 0x812F // GL_CLAMP_TO_EDGE +#define RL_TEXTURE_WRAP_MIRROR_REPEAT 0x8370 // GL_MIRRORED_REPEAT +#define RL_TEXTURE_WRAP_MIRROR_CLAMP 0x8742 // GL_MIRROR_CLAMP_EXT + +// Matrix modes (equivalent to OpenGL) +#define RL_MODELVIEW 0x1700 // GL_MODELVIEW +#define RL_PROJECTION 0x1701 // GL_PROJECTION +#define RL_TEXTURE 0x1702 // GL_TEXTURE + +// Primitive assembly draw modes +#define RL_LINES 0x0001 // GL_LINES +#define RL_TRIANGLES 0x0004 // GL_TRIANGLES +#define RL_QUADS 0x0007 // GL_QUADS + +// GL equivalent data types +#define RL_UNSIGNED_BYTE 0x1401 // GL_UNSIGNED_BYTE +#define RL_FLOAT 0x1406 // GL_FLOAT + +// GL buffer usage hint +#define RL_STREAM_DRAW 0x88E0 // GL_STREAM_DRAW +#define RL_STREAM_READ 0x88E1 // GL_STREAM_READ +#define RL_STREAM_COPY 0x88E2 // GL_STREAM_COPY +#define RL_STATIC_DRAW 0x88E4 // GL_STATIC_DRAW +#define RL_STATIC_READ 0x88E5 // GL_STATIC_READ +#define RL_STATIC_COPY 0x88E6 // GL_STATIC_COPY +#define RL_DYNAMIC_DRAW 0x88E8 // GL_DYNAMIC_DRAW +#define RL_DYNAMIC_READ 0x88E9 // GL_DYNAMIC_READ +#define RL_DYNAMIC_COPY 0x88EA // GL_DYNAMIC_COPY + +// GL Shader type +#define RL_FRAGMENT_SHADER 0x8B30 // GL_FRAGMENT_SHADER +#define RL_VERTEX_SHADER 0x8B31 // GL_VERTEX_SHADER +#define RL_COMPUTE_SHADER 0x91B9 // GL_COMPUTE_SHADER + +// GL blending factors +#define RL_ZERO 0 // GL_ZERO +#define RL_ONE 1 // GL_ONE +#define RL_SRC_COLOR 0x0300 // GL_SRC_COLOR +#define RL_ONE_MINUS_SRC_COLOR 0x0301 // GL_ONE_MINUS_SRC_COLOR +#define RL_SRC_ALPHA 0x0302 // GL_SRC_ALPHA +#define RL_ONE_MINUS_SRC_ALPHA 0x0303 // GL_ONE_MINUS_SRC_ALPHA +#define RL_DST_ALPHA 0x0304 // GL_DST_ALPHA +#define RL_ONE_MINUS_DST_ALPHA 0x0305 // GL_ONE_MINUS_DST_ALPHA +#define RL_DST_COLOR 0x0306 // GL_DST_COLOR +#define RL_ONE_MINUS_DST_COLOR 0x0307 // GL_ONE_MINUS_DST_COLOR +#define RL_SRC_ALPHA_SATURATE 0x0308 // GL_SRC_ALPHA_SATURATE +#define RL_CONSTANT_COLOR 0x8001 // GL_CONSTANT_COLOR +#define RL_ONE_MINUS_CONSTANT_COLOR 0x8002 // GL_ONE_MINUS_CONSTANT_COLOR +#define RL_CONSTANT_ALPHA 0x8003 // GL_CONSTANT_ALPHA +#define RL_ONE_MINUS_CONSTANT_ALPHA 0x8004 // GL_ONE_MINUS_CONSTANT_ALPHA + +// GL blending functions/equations +#define RL_FUNC_ADD 0x8006 // GL_FUNC_ADD +#define RL_MIN 0x8007 // GL_MIN +#define RL_MAX 0x8008 // GL_MAX +#define RL_FUNC_SUBTRACT 0x800A // GL_FUNC_SUBTRACT +#define RL_FUNC_REVERSE_SUBTRACT 0x800B // GL_FUNC_REVERSE_SUBTRACT +#define RL_BLEND_EQUATION 0x8009 // GL_BLEND_EQUATION +#define RL_BLEND_EQUATION_RGB 0x8009 // GL_BLEND_EQUATION_RGB // (Same as BLEND_EQUATION) +#define RL_BLEND_EQUATION_ALPHA 0x883D // GL_BLEND_EQUATION_ALPHA +#define RL_BLEND_DST_RGB 0x80C8 // GL_BLEND_DST_RGB +#define RL_BLEND_SRC_RGB 0x80C9 // GL_BLEND_SRC_RGB +#define RL_BLEND_DST_ALPHA 0x80CA // GL_BLEND_DST_ALPHA +#define RL_BLEND_SRC_ALPHA 0x80CB // GL_BLEND_SRC_ALPHA +#define RL_BLEND_COLOR 0x8005 // GL_BLEND_COLOR + +#define RL_READ_FRAMEBUFFER 0x8CA8 // GL_READ_FRAMEBUFFER +#define RL_DRAW_FRAMEBUFFER 0x8CA9 // GL_DRAW_FRAMEBUFFER + +// Default shader vertex attribute locations +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION 0 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD 1 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL 2 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR 3 +#endif + #ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT +#define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT 4 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 5 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_INDICES + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_INDICES 6 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEINDICES + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEINDICES 7 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS 8 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_INSTANCETRANSFORM + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_INSTANCETRANSFORM 9 +#endif + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +#if (defined(__STDC__) && __STDC_VERSION__ >= 199901L) || (defined(_MSC_VER) && _MSC_VER >= 1800) + #include +#elif !defined(__cplusplus) && !defined(bool) && !defined(RL_BOOL_TYPE) + // Boolean type +typedef enum bool { false = 0, true = !false } bool; +#endif + +#if !defined(RL_MATRIX_TYPE) +// Matrix, 4x4 components, column major, OpenGL style, right handed +typedef struct Matrix { + float m0, m4, m8, m12; // Matrix first row (4 components) + float m1, m5, m9, m13; // Matrix second row (4 components) + float m2, m6, m10, m14; // Matrix third row (4 components) + float m3, m7, m11, m15; // Matrix fourth row (4 components) +} Matrix; +#define RL_MATRIX_TYPE +#endif + +// Dynamic vertex buffers (position + texcoords + colors + indices arrays) +typedef struct rlVertexBuffer { + int elementCount; // Number of elements in the buffer (QUADS) + + float *vertices; // Vertex position (XYZ - 3 components per vertex) (shader-location = 0) + float *texcoords; // Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1) + float *normals; // Vertex normal (XYZ - 3 components per vertex) (shader-location = 2) + unsigned char *colors; // Vertex colors (RGBA - 4 components per vertex) (shader-location = 3) +#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + unsigned int *indices; // Vertex indices (in case vertex data comes indexed) (6 indices per quad) +#endif +#if defined(GRAPHICS_API_OPENGL_ES2) + unsigned short *indices; // Vertex indices (in case vertex data comes indexed) (6 indices per quad) +#endif + unsigned int vaoId; // OpenGL Vertex Array Object id + unsigned int vboId[5]; // OpenGL Vertex Buffer Objects id (5 types of vertex data) +} rlVertexBuffer; + +// Draw call type +// NOTE: Only texture changes register a new draw, other state-change-related elements are not +// used at this moment (vaoId, shaderId, matrices), raylib forces a batch draw call if any +// of those state-change happens (this is done in core module) +typedef struct rlDrawCall { + int mode; // Drawing mode: LINES, TRIANGLES, QUADS + int vertexCount; // Number of vertex of the draw + int vertexAlignment; // Number of vertex required for index alignment (LINES, TRIANGLES) + //unsigned int vaoId; // Vertex array id to be used on the draw -> Using RLGL.currentBatch->vertexBuffer.vaoId + //unsigned int shaderId; // Shader id to be used on the draw -> Using RLGL.currentShaderId + unsigned int textureId; // Texture id to be used on the draw -> Use to create new draw call if changes + + //Matrix projection; // Projection matrix for this draw -> Using RLGL.projection by default + //Matrix modelview; // Modelview matrix for this draw -> Using RLGL.modelview by default +} rlDrawCall; + +// rlRenderBatch type +typedef struct rlRenderBatch { + int bufferCount; // Number of vertex buffers (multi-buffering support) + int currentBuffer; // Current buffer tracking in case of multi-buffering + rlVertexBuffer *vertexBuffer; // Dynamic buffer(s) for vertex data + + rlDrawCall *draws; // Draw calls array, depends on textureId + int drawCounter; // Draw calls counter + float currentDepth; // Current depth value for next draw +} rlRenderBatch; + +// OpenGL version +typedef enum { + RL_OPENGL_SOFTWARE = 0, // Software rendering + RL_OPENGL_11, // OpenGL 1.1 + RL_OPENGL_21, // OpenGL 2.1 (GLSL 120) + RL_OPENGL_33, // OpenGL 3.3 (GLSL 330) + RL_OPENGL_43, // OpenGL 4.3 (using GLSL 330) + RL_OPENGL_ES_20, // OpenGL ES 2.0 (GLSL 100) + RL_OPENGL_ES_30 // OpenGL ES 3.0 (GLSL 300 es) +} rlGlVersion; + +// Trace log level +// NOTE: Organized by priority level +typedef enum { + RL_LOG_ALL = 0, // Display all logs + RL_LOG_TRACE, // Trace logging, intended for internal use only + RL_LOG_DEBUG, // Debug logging, used for internal debugging, it should be disabled on release builds + RL_LOG_INFO, // Info logging, used for program execution info + RL_LOG_WARNING, // Warning logging, used on recoverable failures + RL_LOG_ERROR, // Error logging, used on unrecoverable failures + RL_LOG_FATAL, // Fatal logging, used to abort program: exit(EXIT_FAILURE) + RL_LOG_NONE // Disable logging +} rlTraceLogLevel; + +// Texture pixel formats +// NOTE: Support depends on OpenGL version +typedef enum { + RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1, // 8 bit per pixel (no alpha) + RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA, // 8*2 bpp (2 channels) + RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5, // 16 bpp + RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8, // 24 bpp + RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1, // 16 bpp (1 bit alpha) + RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4, // 16 bpp (4 bit alpha) + RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, // 32 bpp + RL_PIXELFORMAT_UNCOMPRESSED_R32, // 32 bpp (1 channel - float) + RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32, // 32*3 bpp (3 channels - float) + RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32, // 32*4 bpp (4 channels - float) + RL_PIXELFORMAT_UNCOMPRESSED_R16, // 16 bpp (1 channel - half float) + RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16, // 16*3 bpp (3 channels - half float) + RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16, // 16*4 bpp (4 channels - half float) + RL_PIXELFORMAT_COMPRESSED_DXT1_RGB, // 4 bpp (no alpha) + RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA, // 4 bpp (1 bit alpha) + RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA, // 8 bpp + RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA, // 8 bpp + RL_PIXELFORMAT_COMPRESSED_ETC1_RGB, // 4 bpp + RL_PIXELFORMAT_COMPRESSED_ETC2_RGB, // 4 bpp + RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA, // 8 bpp + RL_PIXELFORMAT_COMPRESSED_PVRT_RGB, // 4 bpp + RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA, // 4 bpp + RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA, // 8 bpp + RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA // 2 bpp +} rlPixelFormat; + +// Texture parameters: filter mode +// NOTE 1: Filtering considers mipmaps if available in the texture +// NOTE 2: Filter is accordingly set for minification and magnification +typedef enum { + RL_TEXTURE_FILTER_POINT = 0, // No filter, pixel approximation + RL_TEXTURE_FILTER_BILINEAR, // Linear filtering + RL_TEXTURE_FILTER_TRILINEAR, // Trilinear filtering (linear with mipmaps) + RL_TEXTURE_FILTER_ANISOTROPIC_4X, // Anisotropic filtering 4x + RL_TEXTURE_FILTER_ANISOTROPIC_8X, // Anisotropic filtering 8x + RL_TEXTURE_FILTER_ANISOTROPIC_16X, // Anisotropic filtering 16x +} rlTextureFilter; + +// Color blending modes (pre-defined) +typedef enum { + RL_BLEND_ALPHA = 0, // Blend textures considering alpha (default) + RL_BLEND_ADDITIVE, // Blend textures adding colors + RL_BLEND_MULTIPLIED, // Blend textures multiplying colors + RL_BLEND_ADD_COLORS, // Blend textures adding colors (alternative) + RL_BLEND_SUBTRACT_COLORS, // Blend textures subtracting colors (alternative) + RL_BLEND_ALPHA_PREMULTIPLY, // Blend premultiplied textures considering alpha + RL_BLEND_CUSTOM, // Blend textures using custom src/dst factors (use rlSetBlendFactors()) + RL_BLEND_CUSTOM_SEPARATE // Blend textures using custom src/dst factors (use rlSetBlendFactorsSeparate()) +} rlBlendMode; + +// Shader location point type +typedef enum { + RL_SHADER_LOC_VERTEX_POSITION = 0, // Shader location: vertex attribute: position + RL_SHADER_LOC_VERTEX_TEXCOORD01, // Shader location: vertex attribute: texcoord01 + RL_SHADER_LOC_VERTEX_TEXCOORD02, // Shader location: vertex attribute: texcoord02 + RL_SHADER_LOC_VERTEX_NORMAL, // Shader location: vertex attribute: normal + RL_SHADER_LOC_VERTEX_TANGENT, // Shader location: vertex attribute: tangent + RL_SHADER_LOC_VERTEX_COLOR, // Shader location: vertex attribute: color + RL_SHADER_LOC_MATRIX_MVP, // Shader location: matrix uniform: model-view-projection + RL_SHADER_LOC_MATRIX_VIEW, // Shader location: matrix uniform: view (camera transform) + RL_SHADER_LOC_MATRIX_PROJECTION, // Shader location: matrix uniform: projection + RL_SHADER_LOC_MATRIX_MODEL, // Shader location: matrix uniform: model (transform) + RL_SHADER_LOC_MATRIX_NORMAL, // Shader location: matrix uniform: normal + RL_SHADER_LOC_VECTOR_VIEW, // Shader location: vector uniform: view + RL_SHADER_LOC_COLOR_DIFFUSE, // Shader location: vector uniform: diffuse color + RL_SHADER_LOC_COLOR_SPECULAR, // Shader location: vector uniform: specular color + RL_SHADER_LOC_COLOR_AMBIENT, // Shader location: vector uniform: ambient color + RL_SHADER_LOC_MAP_ALBEDO, // Shader location: sampler2d texture: albedo (same as: RL_SHADER_LOC_MAP_DIFFUSE) + RL_SHADER_LOC_MAP_METALNESS, // Shader location: sampler2d texture: metalness (same as: RL_SHADER_LOC_MAP_SPECULAR) + RL_SHADER_LOC_MAP_NORMAL, // Shader location: sampler2d texture: normal + RL_SHADER_LOC_MAP_ROUGHNESS, // Shader location: sampler2d texture: roughness + RL_SHADER_LOC_MAP_OCCLUSION, // Shader location: sampler2d texture: occlusion + RL_SHADER_LOC_MAP_EMISSION, // Shader location: sampler2d texture: emission + RL_SHADER_LOC_MAP_HEIGHT, // Shader location: sampler2d texture: height + RL_SHADER_LOC_MAP_CUBEMAP, // Shader location: samplerCube texture: cubemap + RL_SHADER_LOC_MAP_IRRADIANCE, // Shader location: samplerCube texture: irradiance + RL_SHADER_LOC_MAP_PREFILTER, // Shader location: samplerCube texture: prefilter + RL_SHADER_LOC_MAP_BRDF // Shader location: sampler2d texture: brdf +} rlShaderLocationIndex; + +#define RL_SHADER_LOC_MAP_DIFFUSE RL_SHADER_LOC_MAP_ALBEDO +#define RL_SHADER_LOC_MAP_SPECULAR RL_SHADER_LOC_MAP_METALNESS + +// Shader uniform data type +typedef enum { + RL_SHADER_UNIFORM_FLOAT = 0, // Shader uniform type: float + RL_SHADER_UNIFORM_VEC2, // Shader uniform type: vec2 (2 float) + RL_SHADER_UNIFORM_VEC3, // Shader uniform type: vec3 (3 float) + RL_SHADER_UNIFORM_VEC4, // Shader uniform type: vec4 (4 float) + RL_SHADER_UNIFORM_INT, // Shader uniform type: int + RL_SHADER_UNIFORM_IVEC2, // Shader uniform type: ivec2 (2 int) + RL_SHADER_UNIFORM_IVEC3, // Shader uniform type: ivec3 (3 int) + RL_SHADER_UNIFORM_IVEC4, // Shader uniform type: ivec4 (4 int) + RL_SHADER_UNIFORM_UINT, // Shader uniform type: unsigned int + RL_SHADER_UNIFORM_UIVEC2, // Shader uniform type: uivec2 (2 unsigned int) + RL_SHADER_UNIFORM_UIVEC3, // Shader uniform type: uivec3 (3 unsigned int) + RL_SHADER_UNIFORM_UIVEC4, // Shader uniform type: uivec4 (4 unsigned int) + RL_SHADER_UNIFORM_SAMPLER2D // Shader uniform type: sampler2d +} rlShaderUniformDataType; + +// Shader attribute data types +typedef enum { + RL_SHADER_ATTRIB_FLOAT = 0, // Shader attribute type: float + RL_SHADER_ATTRIB_VEC2, // Shader attribute type: vec2 (2 float) + RL_SHADER_ATTRIB_VEC3, // Shader attribute type: vec3 (3 float) + RL_SHADER_ATTRIB_VEC4 // Shader attribute type: vec4 (4 float) +} rlShaderAttributeDataType; + +// Framebuffer attachment type +// NOTE: By default up to 8 color channels defined, but it can be more +typedef enum { + RL_ATTACHMENT_COLOR_CHANNEL0 = 0, // Framebuffer attachment type: color 0 + RL_ATTACHMENT_COLOR_CHANNEL1 = 1, // Framebuffer attachment type: color 1 + RL_ATTACHMENT_COLOR_CHANNEL2 = 2, // Framebuffer attachment type: color 2 + RL_ATTACHMENT_COLOR_CHANNEL3 = 3, // Framebuffer attachment type: color 3 + RL_ATTACHMENT_COLOR_CHANNEL4 = 4, // Framebuffer attachment type: color 4 + RL_ATTACHMENT_COLOR_CHANNEL5 = 5, // Framebuffer attachment type: color 5 + RL_ATTACHMENT_COLOR_CHANNEL6 = 6, // Framebuffer attachment type: color 6 + RL_ATTACHMENT_COLOR_CHANNEL7 = 7, // Framebuffer attachment type: color 7 + RL_ATTACHMENT_DEPTH = 100, // Framebuffer attachment type: depth + RL_ATTACHMENT_STENCIL = 200, // Framebuffer attachment type: stencil +} rlFramebufferAttachType; + +// Framebuffer texture attachment type +typedef enum { + RL_ATTACHMENT_CUBEMAP_POSITIVE_X = 0, // Framebuffer texture attachment type: cubemap, +X side + RL_ATTACHMENT_CUBEMAP_NEGATIVE_X = 1, // Framebuffer texture attachment type: cubemap, -X side + RL_ATTACHMENT_CUBEMAP_POSITIVE_Y = 2, // Framebuffer texture attachment type: cubemap, +Y side + RL_ATTACHMENT_CUBEMAP_NEGATIVE_Y = 3, // Framebuffer texture attachment type: cubemap, -Y side + RL_ATTACHMENT_CUBEMAP_POSITIVE_Z = 4, // Framebuffer texture attachment type: cubemap, +Z side + RL_ATTACHMENT_CUBEMAP_NEGATIVE_Z = 5, // Framebuffer texture attachment type: cubemap, -Z side + RL_ATTACHMENT_TEXTURE2D = 100, // Framebuffer texture attachment type: texture2d + RL_ATTACHMENT_RENDERBUFFER = 200, // Framebuffer texture attachment type: renderbuffer +} rlFramebufferAttachTextureType; + +// Face culling mode +typedef enum { + RL_CULL_FACE_FRONT = 0, + RL_CULL_FACE_BACK +} rlCullMode; + +//------------------------------------------------------------------------------------ +// Functions Declaration - Matrix operations +//------------------------------------------------------------------------------------ + +#if defined(__cplusplus) +extern "C" { // Prevents name mangling of functions +#endif + +RLAPI void rlMatrixMode(int mode); // Choose the current matrix to be transformed +RLAPI void rlPushMatrix(void); // Push the current matrix to stack +RLAPI void rlPopMatrix(void); // Pop latest inserted matrix from stack +RLAPI void rlLoadIdentity(void); // Reset current matrix to identity matrix +RLAPI void rlTranslatef(float x, float y, float z); // Multiply the current matrix by a translation matrix +RLAPI void rlRotatef(float angle, float x, float y, float z); // Multiply the current matrix by a rotation matrix +RLAPI void rlScalef(float x, float y, float z); // Multiply the current matrix by a scaling matrix +RLAPI void rlMultMatrixf(const float *matf); // Multiply the current matrix by another matrix +RLAPI void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar); +RLAPI void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar); +RLAPI void rlViewport(int x, int y, int width, int height); // Set the viewport area +RLAPI void rlSetClipPlanes(double nearPlane, double farPlane); // Set clip planes distances +RLAPI double rlGetCullDistanceNear(void); // Get cull plane distance near +RLAPI double rlGetCullDistanceFar(void); // Get cull plane distance far + +//------------------------------------------------------------------------------------ +// Functions Declaration - Vertex level operations +//------------------------------------------------------------------------------------ +RLAPI void rlBegin(int mode); // Initialize drawing mode (how to organize vertex) +RLAPI void rlEnd(void); // Finish vertex providing +RLAPI void rlVertex2i(int x, int y); // Define one vertex (position) - 2 int +RLAPI void rlVertex2f(float x, float y); // Define one vertex (position) - 2 float +RLAPI void rlVertex3f(float x, float y, float z); // Define one vertex (position) - 3 float +RLAPI void rlTexCoord2f(float x, float y); // Define one vertex (texture coordinate) - 2 float +RLAPI void rlNormal3f(float x, float y, float z); // Define one vertex (normal) - 3 float +RLAPI void rlColor4ub(unsigned char r, unsigned char g, unsigned char b, unsigned char a); // Define one vertex (color) - 4 byte +RLAPI void rlColor3f(float x, float y, float z); // Define one vertex (color) - 3 float +RLAPI void rlColor4f(float x, float y, float z, float w); // Define one vertex (color) - 4 float + +//------------------------------------------------------------------------------------ +// Functions Declaration - OpenGL style functions (common to 1.1, 3.3+, ES2) +// NOTE: This functions are used to completely abstract raylib code from OpenGL layer, +// some of them are direct wrappers over OpenGL calls, some others are custom +//------------------------------------------------------------------------------------ + +// Vertex buffers state +RLAPI bool rlEnableVertexArray(unsigned int vaoId); // Enable vertex array (VAO, if supported) +RLAPI void rlDisableVertexArray(void); // Disable vertex array (VAO, if supported) +RLAPI void rlEnableVertexBuffer(unsigned int id); // Enable vertex buffer (VBO) +RLAPI void rlDisableVertexBuffer(void); // Disable vertex buffer (VBO) +RLAPI void rlEnableVertexBufferElement(unsigned int id); // Enable vertex buffer element (VBO element) +RLAPI void rlDisableVertexBufferElement(void); // Disable vertex buffer element (VBO element) +RLAPI void rlEnableVertexAttribute(unsigned int index); // Enable vertex attribute index +RLAPI void rlDisableVertexAttribute(unsigned int index); // Disable vertex attribute index +RLAPI void rlEnableStatePointer(int vertexAttribType, void *buffer); // Enable attribute state pointer +RLAPI void rlDisableStatePointer(int vertexAttribType); // Disable attribute state pointer + +// Textures state +RLAPI void rlActiveTextureSlot(int slot); // Select and active a texture slot +RLAPI void rlEnableTexture(unsigned int id); // Enable texture +RLAPI void rlDisableTexture(void); // Disable texture +RLAPI void rlEnableTextureCubemap(unsigned int id); // Enable texture cubemap +RLAPI void rlDisableTextureCubemap(void); // Disable texture cubemap +RLAPI void rlTextureParameters(unsigned int id, int param, int value); // Set texture parameters (filter, wrap) +RLAPI void rlCubemapParameters(unsigned int id, int param, int value); // Set cubemap parameters (filter, wrap) + +// Shader state +RLAPI void rlEnableShader(unsigned int id); // Enable shader program +RLAPI void rlDisableShader(void); // Disable shader program + +// Framebuffer state +RLAPI void rlEnableFramebuffer(unsigned int id); // Enable render texture (fbo) +RLAPI void rlDisableFramebuffer(void); // Disable render texture (fbo), return to default framebuffer +RLAPI unsigned int rlGetActiveFramebuffer(void); // Get the currently active render texture (fbo), 0 for default framebuffer +RLAPI void rlActiveDrawBuffers(int count); // Activate multiple draw color buffers +RLAPI void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask); // Blit active framebuffer to main framebuffer +RLAPI void rlBindFramebuffer(unsigned int target, unsigned int framebuffer); // Bind framebuffer (FBO) + +// General render state +RLAPI void rlEnableColorBlend(void); // Enable color blending +RLAPI void rlDisableColorBlend(void); // Disable color blending +RLAPI void rlEnableDepthTest(void); // Enable depth test +RLAPI void rlDisableDepthTest(void); // Disable depth test +RLAPI void rlEnableDepthMask(void); // Enable depth write +RLAPI void rlDisableDepthMask(void); // Disable depth write +RLAPI void rlEnableBackfaceCulling(void); // Enable backface culling +RLAPI void rlDisableBackfaceCulling(void); // Disable backface culling +RLAPI void rlColorMask(bool r, bool g, bool b, bool a); // Color mask control +RLAPI void rlSetCullFace(int mode); // Set face culling mode +RLAPI void rlEnableScissorTest(void); // Enable scissor test +RLAPI void rlDisableScissorTest(void); // Disable scissor test +RLAPI void rlScissor(int x, int y, int width, int height); // Scissor test +RLAPI void rlEnablePointMode(void); // Enable point mode +RLAPI void rlDisablePointMode(void); // Disable point mode +RLAPI void rlSetPointSize(float size); // Set the point drawing size +RLAPI float rlGetPointSize(void); // Get the point drawing size +RLAPI void rlEnableWireMode(void); // Enable wire mode +RLAPI void rlDisableWireMode(void); // Disable wire mode +RLAPI void rlSetLineWidth(float width); // Set the line drawing width +RLAPI float rlGetLineWidth(void); // Get the line drawing width +RLAPI void rlEnableSmoothLines(void); // Enable line aliasing +RLAPI void rlDisableSmoothLines(void); // Disable line aliasing +RLAPI void rlEnableStereoRender(void); // Enable stereo rendering +RLAPI void rlDisableStereoRender(void); // Disable stereo rendering +RLAPI bool rlIsStereoRenderEnabled(void); // Check if stereo render is enabled + +RLAPI void rlClearColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a); // Clear color buffer with color +RLAPI void rlClearScreenBuffers(void); // Clear used screen buffers (color and depth) +RLAPI void rlCheckErrors(void); // Check and log OpenGL error codes +RLAPI void rlSetBlendMode(int mode); // Set blending mode +RLAPI void rlSetBlendFactors(int glSrcFactor, int glDstFactor, int glEquation); // Set blending mode factor and equation (using OpenGL factors) +RLAPI void rlSetBlendFactorsSeparate(int glSrcRGB, int glDstRGB, int glSrcAlpha, int glDstAlpha, int glEqRGB, int glEqAlpha); // Set blending mode factors and equations separately (using OpenGL factors) + +//------------------------------------------------------------------------------------ +// Functions Declaration - rlgl functionality +//------------------------------------------------------------------------------------ +// rlgl initialization functions +RLAPI void rlglInit(int width, int height); // Initialize rlgl (buffers, shaders, textures, states) +RLAPI void rlglClose(void); // De-initialize rlgl (buffers, shaders, textures) +RLAPI void rlLoadExtensions(void *loader); // Load OpenGL extensions (loader function required) +RLAPI void *rlGetProcAddress(const char *procName); // Get OpenGL procedure address +RLAPI int rlGetVersion(void); // Get current OpenGL version +RLAPI void rlSetFramebufferWidth(int width); // Set current framebuffer width +RLAPI int rlGetFramebufferWidth(void); // Get default framebuffer width +RLAPI void rlSetFramebufferHeight(int height); // Set current framebuffer height +RLAPI int rlGetFramebufferHeight(void); // Get default framebuffer height + +RLAPI unsigned int rlGetTextureIdDefault(void); // Get default texture id +RLAPI unsigned int rlGetShaderIdDefault(void); // Get default shader id +RLAPI int *rlGetShaderLocsDefault(void); // Get default shader locations + +// Render batch management +// NOTE: rlgl provides a default render batch to behave like OpenGL 1.1 immediate mode +// but this render batch API is exposed in case of custom batches are required +RLAPI rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements); // Load a render batch system +RLAPI void rlUnloadRenderBatch(rlRenderBatch batch); // Unload render batch system +RLAPI void rlDrawRenderBatch(rlRenderBatch *batch); // Draw render batch data (Update->Draw->Reset) +RLAPI void rlSetRenderBatchActive(rlRenderBatch *batch); // Set the active render batch for rlgl (NULL for default internal) +RLAPI void rlDrawRenderBatchActive(void); // Update and draw internal render batch +RLAPI bool rlCheckRenderBatchLimit(int vCount); // Check internal buffer overflow for a given number of vertex + +RLAPI void rlSetTexture(unsigned int id); // Set current texture for render batch and check buffers limits + +//------------------------------------------------------------------------------------------------------------------------ + +// Vertex buffers management +RLAPI unsigned int rlLoadVertexArray(void); // Load vertex array (vao) if supported +RLAPI unsigned int rlLoadVertexBuffer(const void *buffer, int size, bool dynamic); // Load a vertex buffer object +RLAPI unsigned int rlLoadVertexBufferElement(const void *buffer, int size, bool dynamic); // Load vertex buffer elements object +RLAPI void rlUpdateVertexBuffer(unsigned int bufferId, const void *data, int dataSize, int offset); // Update vertex buffer object data on GPU buffer +RLAPI void rlUpdateVertexBufferElements(unsigned int id, const void *data, int dataSize, int offset); // Update vertex buffer elements data on GPU buffer +RLAPI void rlUnloadVertexArray(unsigned int vaoId); // Unload vertex array (vao) +RLAPI void rlUnloadVertexBuffer(unsigned int vboId); // Unload vertex buffer object +RLAPI void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, int offset); // Set vertex attribute data configuration +RLAPI void rlSetVertexAttributeDivisor(unsigned int index, int divisor); // Set vertex attribute data divisor +RLAPI void rlSetVertexAttributeDefault(int locIndex, const void *value, int attribType, int count); // Set vertex attribute default value, when attribute to provided +RLAPI void rlDrawVertexArray(int offset, int count); // Draw vertex array (currently active vao) +RLAPI void rlDrawVertexArrayElements(int offset, int count, const void *buffer); // Draw vertex array elements +RLAPI void rlDrawVertexArrayInstanced(int offset, int count, int instances); // Draw vertex array (currently active vao) with instancing +RLAPI void rlDrawVertexArrayElementsInstanced(int offset, int count, const void *buffer, int instances); // Draw vertex array elements with instancing + +// Textures management +RLAPI unsigned int rlLoadTexture(const void *data, int width, int height, int format, int mipmapCount); // Load texture data +RLAPI unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer); // Load depth texture/renderbuffer (to be attached to fbo) +RLAPI unsigned int rlLoadTextureCubemap(const void *data, int size, int format, int mipmapCount); // Load texture cubemap data +RLAPI void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int height, int format, const void *data); // Update texture with new data on GPU +RLAPI void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned int *glFormat, unsigned int *glType); // Get OpenGL internal formats +RLAPI const char *rlGetPixelFormatName(unsigned int format); // Get name string for pixel format +RLAPI void rlUnloadTexture(unsigned int id); // Unload texture from GPU memory +RLAPI void rlGenTextureMipmaps(unsigned int id, int width, int height, int format, int *mipmaps); // Generate mipmap data for selected texture +RLAPI void *rlReadTexturePixels(unsigned int id, int width, int height, int format); // Read texture pixel data +RLAPI unsigned char *rlReadScreenPixels(int width, int height); // Read screen pixel data (color buffer) + +// Framebuffer management (fbo) +RLAPI unsigned int rlLoadFramebuffer(void); // Load an empty framebuffer +RLAPI void rlFramebufferAttach(unsigned int id, unsigned int texId, int attachType, int texType, int mipLevel); // Attach texture/renderbuffer to a framebuffer +RLAPI bool rlFramebufferComplete(unsigned int id); // Verify framebuffer is complete +RLAPI void rlUnloadFramebuffer(unsigned int id); // Delete framebuffer from GPU +// WARNING: Copy and resize framebuffer functionality only defined for software backend +RLAPI void rlCopyFramebuffer(int x, int y, int width, int height, int format, void *pixels); // Copy framebuffer pixel data to internal buffer +RLAPI void rlResizeFramebuffer(int width, int height); // Resize internal framebuffer + +// Shaders management +RLAPI unsigned int rlLoadShader(const char *code, int type); // Load (compile) shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER) +RLAPI unsigned int rlLoadShaderProgram(const char *vsCode, const char *fsCode); // Load shader from code strings +RLAPI unsigned int rlLoadShaderProgramEx(unsigned int vsId, unsigned int fsId); // Load shader program, using already loaded shader ids +RLAPI unsigned int rlLoadShaderProgramCompute(unsigned int csId); // Load compute shader program +RLAPI void rlUnloadShader(unsigned int id); // Unload shader, loaded with rlLoadShader() +RLAPI void rlUnloadShaderProgram(unsigned int id); // Unload shader program +RLAPI int rlGetLocationUniform(unsigned int id, const char *uniformName); // Get shader location uniform, requires shader program id +RLAPI int rlGetLocationAttrib(unsigned int id, const char *attribName); // Get shader location attribute, requires shader program id +RLAPI void rlSetUniform(int locIndex, const void *value, int uniformType, int count); // Set shader value uniform +RLAPI void rlSetUniformMatrix(int locIndex, Matrix mat); // Set shader value matrix +RLAPI void rlSetUniformMatrices(int locIndex, const Matrix *mat, int count); // Set shader value matrices +RLAPI void rlSetUniformSampler(int locIndex, unsigned int textureId); // Set shader value sampler +RLAPI void rlSetShader(unsigned int id, int *locs); // Set shader currently active (id and locations) + +// Compute shader management +RLAPI void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned int groupZ); // Dispatch compute shader (equivalent to *draw* for graphics pipeline) + +// Shader buffer storage object management (ssbo) +RLAPI unsigned int rlLoadShaderBuffer(unsigned int size, const void *data, int usageHint); // Load shader storage buffer object (SSBO) +RLAPI void rlUnloadShaderBuffer(unsigned int ssboId); // Unload shader storage buffer object (SSBO) +RLAPI void rlUpdateShaderBuffer(unsigned int id, const void *data, unsigned int dataSize, unsigned int offset); // Update SSBO buffer data +RLAPI void rlBindShaderBuffer(unsigned int id, unsigned int index); // Bind SSBO buffer +RLAPI void rlReadShaderBuffer(unsigned int id, void *dest, unsigned int count, unsigned int offset); // Read SSBO buffer data (GPU->CPU) +RLAPI void rlCopyShaderBuffer(unsigned int destId, unsigned int srcId, unsigned int destOffset, unsigned int srcOffset, unsigned int count); // Copy SSBO data between buffers +RLAPI unsigned int rlGetShaderBufferSize(unsigned int id); // Get SSBO buffer size + +// Buffer management +RLAPI void rlBindImageTexture(unsigned int id, unsigned int index, int format, bool readonly); // Bind image texture + +// Matrix state management +RLAPI Matrix rlGetMatrixModelview(void); // Get internal modelview matrix +RLAPI Matrix rlGetMatrixProjection(void); // Get internal projection matrix +RLAPI Matrix rlGetMatrixTransform(void); // Get internal accumulated transform matrix +RLAPI Matrix rlGetMatrixProjectionStereo(int eye); // Get internal projection matrix for stereo render (selected eye) +RLAPI Matrix rlGetMatrixViewOffsetStereo(int eye); // Get internal view offset matrix for stereo render (selected eye) +RLAPI void rlSetMatrixProjection(Matrix proj); // Set a custom projection matrix (replaces internal projection matrix) +RLAPI void rlSetMatrixModelview(Matrix view); // Set a custom modelview matrix (replaces internal modelview matrix) +RLAPI void rlSetMatrixProjectionStereo(Matrix right, Matrix left); // Set eyes projection matrices for stereo rendering +RLAPI void rlSetMatrixViewOffsetStereo(Matrix right, Matrix left); // Set eyes view offsets matrices for stereo rendering + +// Quick and dirty cube/quad buffers load->draw->unload +RLAPI void rlLoadDrawCube(void); // Load and draw a cube +RLAPI void rlLoadDrawQuad(void); // Load and draw a quad + +#if defined(__cplusplus) +} +#endif + +#endif // RLGL_H + +/*********************************************************************************** +* +* RLGL IMPLEMENTATION +* +************************************************************************************/ + +#if defined(RLGL_IMPLEMENTATION) + +// Expose OpenGL functions from glad in raylib +#if defined(BUILD_LIBTYPE_SHARED) + #define GLAD_API_CALL_EXPORT + #define GLAD_API_CALL_EXPORT_BUILD +#endif + +#if defined(GRAPHICS_API_OPENGL_11) + #if defined(GRAPHICS_API_OPENGL_SOFTWARE) + #define RLSW_IMPLEMENTATION + #define SW_MALLOC(sz) RL_MALLOC(sz) + #define SW_CALLOC(n,sz) RL_CALLOC(n, sz) + #define SW_REALLOC(ptr, newSz) RL_REALLOC(ptr, newSz) + #define SW_FREE(ptr) RL_FREE(ptr) + #include "external/rlsw.h" // OpenGL 1.1 software implementation + #else + #if defined(__APPLE__) + #include // OpenGL 1.1 library for OSX + #include // OpenGL extensions library + #else + // APIENTRY for OpenGL function pointer declarations is required + #if !defined(APIENTRY) + #if defined(_WIN32) + #define APIENTRY __stdcall + #else + #define APIENTRY + #endif + #endif + // WINGDIAPI definition. Some Windows OpenGL headers need it + #if !defined(WINGDIAPI) && defined(_WIN32) + #define WINGDIAPI __declspec(dllimport) + #endif + + #include // OpenGL 1.1 library + #endif + #endif +#endif + +#if defined(GRAPHICS_API_OPENGL_33) + #define GLAD_MALLOC RL_MALLOC + #define GLAD_FREE RL_FREE + + #define GLAD_GL_IMPLEMENTATION + #include "external/glad.h" // GLAD extensions loading library, includes OpenGL headers +#endif + +#if defined(GRAPHICS_API_OPENGL_ES3) + #include // OpenGL ES 3.0 library + #define GL_GLEXT_PROTOTYPES + #include // OpenGL ES 2.0 extensions library +#elif defined(GRAPHICS_API_OPENGL_ES2) + // NOTE: OpenGL ES 2.0 can be enabled on Desktop platforms, + // in that case, functions are loaded from a custom glad for OpenGL ES 2.0 + // TODO: OpenGL ES 2.0 support shouldn't be platform-dependent, neither require GLAD + #if defined(PLATFORM_DESKTOP_GLFW) || defined(PLATFORM_DESKTOP_SDL) + #define GLAD_GLES2_IMPLEMENTATION + #include "external/glad_gles2.h" + #else + #define GL_GLEXT_PROTOTYPES + //#include // EGL library -> not required, platform layer + #include // OpenGL ES 2.0 library + #include // OpenGL ES 2.0 extensions library + #endif + + // It seems OpenGL ES 2.0 instancing entry points are not defined on Raspberry Pi + // provided headers (despite being defined in official Khronos GLES2 headers) + // TODO: Avoid raylib platform-dependent code on rlgl, it should be a completely portable library + #if defined(PLATFORM_DRM) + typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); + typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); + typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISOREXTPROC) (GLuint index, GLuint divisor); + #endif +#endif + +#include // Required for: calloc(), free() +#include // Required for: strcmp(), strlen() [Used in rlglInit(), on extensions loading] +#include // Required for: sqrtf(), sinf(), cosf(), floor(), log() + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- +#ifndef PI + #define PI 3.14159265358979323846f +#endif +#ifndef DEG2RAD + #define DEG2RAD (PI/180.0f) +#endif +#ifndef RAD2DEG + #define RAD2DEG (180.0f/PI) +#endif + +#ifndef GL_SHADING_LANGUAGE_VERSION + #define GL_SHADING_LANGUAGE_VERSION 0x8B8C +#endif + +#ifndef GL_COMPRESSED_RGB_S3TC_DXT1_EXT + #define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#endif +#ifndef GL_COMPRESSED_RGBA_S3TC_DXT1_EXT + #define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#endif +#ifndef GL_COMPRESSED_RGBA_S3TC_DXT3_EXT + #define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#endif +#ifndef GL_COMPRESSED_RGBA_S3TC_DXT5_EXT + #define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 +#endif +#ifndef GL_ETC1_RGB8_OES + #define GL_ETC1_RGB8_OES 0x8D64 +#endif +#ifndef GL_COMPRESSED_RGB8_ETC2 + #define GL_COMPRESSED_RGB8_ETC2 0x9274 +#endif +#ifndef GL_COMPRESSED_RGBA8_ETC2_EAC + #define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 +#endif +#ifndef GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG + #define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 +#endif +#ifndef GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG + #define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02 +#endif +#ifndef GL_COMPRESSED_RGBA_ASTC_4x4_KHR + #define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93b0 +#endif +#ifndef GL_COMPRESSED_RGBA_ASTC_8x8_KHR + #define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93b7 +#endif + +#ifndef GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT + #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF +#endif +#ifndef GL_TEXTURE_MAX_ANISOTROPY_EXT + #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE +#endif + +#ifndef GL_PROGRAM_POINT_SIZE + #define GL_PROGRAM_POINT_SIZE 0x8642 +#endif + +#ifndef GL_LINE_WIDTH + #define GL_LINE_WIDTH 0x0B21 +#endif + +#if defined(GRAPHICS_API_OPENGL_11) + #define GL_UNSIGNED_SHORT_5_6_5 0x8363 + #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 + #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#endif + +#if defined(GRAPHICS_API_OPENGL_21) + #define GL_LUMINANCE 0x1909 + #define GL_LUMINANCE_ALPHA 0x190A +#endif + +#if defined(GRAPHICS_API_OPENGL_ES2) + #define glClearDepth glClearDepthf + #if !defined(GRAPHICS_API_OPENGL_ES3) + #define GL_READ_FRAMEBUFFER GL_FRAMEBUFFER + #define GL_DRAW_FRAMEBUFFER GL_FRAMEBUFFER + #endif +#endif + +// Default shader vertex attribute names to set location points +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION + #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD + #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL + #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR + #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT + #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 + #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_BONEINDICES + #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEINDICES "vertexBoneIndices" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEINDICES +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS + #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS "vertexBoneWeights" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS +#endif + +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_INSTANCETRANSFORM + #define RL_DEFAULT_SHADER_ATTRIB_NAME_INSTANCETRANSFORM "instanceTransform" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_INSTANCETRANSFORM +#endif + +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_MVP + #define RL_DEFAULT_SHADER_UNIFORM_NAME_MVP "mvp" // model-view-projection matrix +#endif +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW + #define RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW "matView" // view matrix +#endif +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION + #define RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION "matProjection" // projection matrix +#endif +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL + #define RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL "matModel" // model matrix +#endif +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL + #define RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL "matNormal" // normal matrix (transpose(inverse(matModelView)) +#endif +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR + #define RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR "colDiffuse" // color diffuse (base tint color, multiplied by texture color) +#endif +#ifndef RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 + #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 "texture0" // texture0 (texture slot active 0) +#endif +#ifndef RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 + #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 "texture1" // texture1 (texture slot active 1) +#endif +#ifndef RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 + #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 "texture2" // texture2 (texture slot active 2) +#endif +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_BONEMATRICES + #define RL_DEFAULT_SHADER_UNIFORM_NAME_BONEMATRICES "boneMatrices" // bone matrices (required for GPU skinning) +#endif + +//---------------------------------------------------------------------------------- +// Module Types and Structures Definition +//---------------------------------------------------------------------------------- +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + +typedef void *(*rlglLoadProc)(const char *name); // OpenGL extension functions loader signature (same as GLADloadproc) + +typedef struct rlglData { + rlRenderBatch *currentBatch; // Current render batch + rlRenderBatch defaultBatch; // Default internal render batch + + rlglLoadProc loader; // OpenGL function loader + + struct { + int vertexCounter; // Current active render batch vertex counter (generic, used for all batches) + float texcoordx, texcoordy; // Current active texture coordinate (added on glVertex*()) + float normalx, normaly, normalz; // Current active normal (added on glVertex*()) + unsigned char colorr, colorg, colorb, colora; // Current active color (added on glVertex*()) + + int currentMatrixMode; // Current matrix mode + Matrix *currentMatrix; // Current matrix pointer + Matrix modelview; // Default modelview matrix + Matrix projection; // Default projection matrix + Matrix transform; // Transform matrix to be used with rlTranslate, rlRotate, rlScale + bool transformRequired; // Require transform matrix application to current draw-call vertex (if required) + Matrix stack[RL_MAX_MATRIX_STACK_SIZE];// Matrix stack for push/pop + int stackCounter; // Matrix stack counter + + unsigned int currentTextureId; // Current texture id to be used on glBegin + unsigned int defaultTextureId; // Default texture used on shapes/poly drawing (required by shader) + unsigned int activeTextureId[RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS]; // Active texture ids to be enabled on batch drawing (0 active by default) + unsigned int defaultVShaderId; // Default vertex shader id (used by default shader program) + unsigned int defaultFShaderId; // Default fragment shader id (used by default shader program) + unsigned int defaultShaderId; // Default shader program id, supports vertex color and diffuse texture + int *defaultShaderLocs; // Default shader locations pointer to be used on rendering + unsigned int currentShaderId; // Current shader id to be used on rendering (by default, defaultShaderId) + int *currentShaderLocs; // Current shader locations pointer to be used on rendering (by default, defaultShaderLocs) + + bool stereoRender; // Stereo rendering flag + Matrix projectionStereo[2]; // VR stereo rendering eyes projection matrices + Matrix viewOffsetStereo[2]; // VR stereo rendering eyes view offset matrices + + // Blending variables + int currentBlendMode; // Blending mode active + int glBlendSrcFactor; // Blending source factor + int glBlendDstFactor; // Blending destination factor + int glBlendEquation; // Blending equation + int glBlendSrcFactorRGB; // Blending source RGB factor + int glBlendDestFactorRGB; // Blending destination RGB factor + int glBlendSrcFactorAlpha; // Blending source alpha factor + int glBlendDestFactorAlpha; // Blending destination alpha factor + int glBlendEquationRGB; // Blending equation for RGB + int glBlendEquationAlpha; // Blending equation for alpha + bool glCustomBlendModeModified; // Custom blending factor and equation modification status + + int framebufferWidth; // Current framebuffer width + int framebufferHeight; // Current framebuffer height + + } State; // Renderer state + struct { + bool vao; // VAO support (OpenGL ES2 could not support VAO extension) (GL_ARB_vertex_array_object) + bool instancing; // Instancing supported (GL_ANGLE_instanced_arrays, GL_EXT_draw_instanced + GL_EXT_instanced_arrays) + bool texNPOT; // NPOT textures full support (GL_ARB_texture_non_power_of_two, GL_OES_texture_npot) + bool texDepth; // Depth textures supported (GL_ARB_depth_texture, GL_OES_depth_texture) + bool texDepthWebGL; // Depth textures supported WebGL specific (GL_WEBGL_depth_texture) + bool texFloat32; // float textures support (32 bit per channel) (GL_OES_texture_float) + bool texFloat16; // half float textures support (16 bit per channel) (GL_OES_texture_half_float) + bool texCompDXT; // DDS texture compression support (GL_EXT_texture_compression_s3tc, GL_WEBGL_compressed_texture_s3tc, GL_WEBKIT_WEBGL_compressed_texture_s3tc) + bool texCompETC1; // ETC1 texture compression support (GL_OES_compressed_ETC1_RGB8_texture, GL_WEBGL_compressed_texture_etc1) + bool texCompETC2; // ETC2/EAC texture compression support (GL_ARB_ES3_compatibility) + bool texCompPVRT; // PVR texture compression support (GL_IMG_texture_compression_pvrtc) + bool texCompASTC; // ASTC texture compression support (GL_KHR_texture_compression_astc_hdr, GL_KHR_texture_compression_astc_ldr) + bool texMirrorClamp; // Clamp mirror wrap mode supported (GL_EXT_texture_mirror_clamp) + bool texAnisoFilter; // Anisotropic texture filtering support (GL_EXT_texture_filter_anisotropic) + bool computeShader; // Compute shaders support (GL_ARB_compute_shader) + bool ssbo; // Shader storage buffer object support (GL_ARB_shader_storage_buffer_object) + + float maxAnisotropyLevel; // Maximum anisotropy level supported (minimum is 2.0f) + int maxDepthBits; // Maximum bits for depth component + + } ExtSupported; // Extensions supported flags +} rlglData; + +#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +static bool isGpuReady = false; +static double rlCullDistanceNear = RL_CULL_DISTANCE_NEAR; +static double rlCullDistanceFar = RL_CULL_DISTANCE_FAR; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) +static rlglData RLGL = { 0 }; +#endif + +#if defined(GRAPHICS_API_OPENGL_ES2) && !defined(GRAPHICS_API_OPENGL_ES3) +// VAO functions entry points +// NOTE: VAO functionality is exposed through extensions (OES) +static PFNGLGENVERTEXARRAYSOESPROC glGenVertexArrays = NULL; +static PFNGLBINDVERTEXARRAYOESPROC glBindVertexArray = NULL; +static PFNGLDELETEVERTEXARRAYSOESPROC glDeleteVertexArrays = NULL; + +// Instancing functionality entry points +// NOTE: Instancing functionality could be available through extensions +static PFNGLDRAWARRAYSINSTANCEDEXTPROC glDrawArraysInstanced = NULL; +static PFNGLDRAWELEMENTSINSTANCEDEXTPROC glDrawElementsInstanced = NULL; +static PFNGLVERTEXATTRIBDIVISOREXTPROC glVertexAttribDivisor = NULL; +#endif + +//---------------------------------------------------------------------------------- +// Module Functions Declaration +//---------------------------------------------------------------------------------- +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) +static void rlLoadShaderDefault(void); // Load default shader +static void rlUnloadShaderDefault(void); // Unload default shader +#if RLGL_SHOW_GL_DETAILS_INFO +static const char *rlGetCompressedFormatName(int format); // Get compressed format official GL identifier name +#endif +#endif + +static int rlGetPixelDataSize(int width, int height, int format); // Get pixel data size in bytes (image or texture) + +static Matrix rlMatrixIdentity(void); // Get identity matrix +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) +// Auxiliar matrix math functions +typedef struct rl_float16 { float v[16]; } rl_float16; +static rl_float16 rlMatrixToFloatV(Matrix mat); // Get float array of matrix data +#define rlMatrixToFloat(mat) (rlMatrixToFloatV(mat).v) // Get float vector for Matrix +static Matrix rlMatrixMultiply(Matrix left, Matrix right); // Multiply two matrices +static Matrix rlMatrixTranspose(Matrix mat); // Transposes provided matrix +static Matrix rlMatrixInvert(Matrix mat); // Invert provided matrix +#endif + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Matrix operations +//---------------------------------------------------------------------------------- + +#if defined(GRAPHICS_API_OPENGL_11) +// Fallback to OpenGL 1.1 function calls +//--------------------------------------- +void rlMatrixMode(int mode) +{ + switch (mode) + { + case RL_PROJECTION: glMatrixMode(GL_PROJECTION); break; + case RL_MODELVIEW: glMatrixMode(GL_MODELVIEW); break; + case RL_TEXTURE: glMatrixMode(GL_TEXTURE); break; + default: break; + } +} + +void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar) +{ + glFrustum(left, right, bottom, top, znear, zfar); +} + +void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar) +{ + glOrtho(left, right, bottom, top, znear, zfar); +} + +void rlPushMatrix(void) { glPushMatrix(); } +void rlPopMatrix(void) { glPopMatrix(); } +void rlLoadIdentity(void) { glLoadIdentity(); } +void rlTranslatef(float x, float y, float z) { glTranslatef(x, y, z); } +void rlRotatef(float angle, float x, float y, float z) { glRotatef(angle, x, y, z); } +void rlScalef(float x, float y, float z) { glScalef(x, y, z); } +void rlMultMatrixf(const float *matf) { glMultMatrixf(matf); } +#endif +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) +// Choose the current matrix to be transformed +void rlMatrixMode(int mode) +{ + if (mode == RL_PROJECTION) RLGL.State.currentMatrix = &RLGL.State.projection; + else if (mode == RL_MODELVIEW) RLGL.State.currentMatrix = &RLGL.State.modelview; + //else if (mode == RL_TEXTURE) // Not supported + + RLGL.State.currentMatrixMode = mode; +} + +// Push the current matrix into RLGL.State.stack +void rlPushMatrix(void) +{ + if (RLGL.State.stackCounter >= RL_MAX_MATRIX_STACK_SIZE) TRACELOG(RL_LOG_ERROR, "RLGL: Matrix stack overflow (RL_MAX_MATRIX_STACK_SIZE)"); + + if (RLGL.State.currentMatrixMode == RL_MODELVIEW) + { + RLGL.State.transformRequired = true; + RLGL.State.currentMatrix = &RLGL.State.transform; + } + + RLGL.State.stack[RLGL.State.stackCounter] = *RLGL.State.currentMatrix; + RLGL.State.stackCounter++; +} + +// Pop latest inserted matrix from RLGL.State.stack +void rlPopMatrix(void) +{ + if (RLGL.State.stackCounter > 0) + { + Matrix mat = RLGL.State.stack[RLGL.State.stackCounter - 1]; + *RLGL.State.currentMatrix = mat; + RLGL.State.stackCounter--; + } + + if ((RLGL.State.stackCounter == 0) && (RLGL.State.currentMatrixMode == RL_MODELVIEW)) + { + RLGL.State.currentMatrix = &RLGL.State.modelview; + RLGL.State.transformRequired = false; + } +} + +// Reset current matrix to identity matrix +void rlLoadIdentity(void) +{ + *RLGL.State.currentMatrix = rlMatrixIdentity(); +} + +// Multiply the current matrix by a translation matrix +void rlTranslatef(float x, float y, float z) +{ + Matrix matTranslation = rlMatrixIdentity(); + + // Set translation component of matrix + matTranslation.m12 = x; + matTranslation.m13 = y; + matTranslation.m14 = z; + + // NOTE: Transposing matrix by multiplication order + *RLGL.State.currentMatrix = rlMatrixMultiply(matTranslation, *RLGL.State.currentMatrix); +} + +// Multiply the current matrix by a rotation matrix +// NOTE: The provided angle must be in degrees +void rlRotatef(float angle, float x, float y, float z) +{ + Matrix matRotation = rlMatrixIdentity(); + + // Axis vector (x, y, z) normalization + float lengthSquared = x*x + y*y + z*z; + if ((lengthSquared != 1.0f) && (lengthSquared != 0.0f)) + { + float inverseLength = 1.0f/sqrtf(lengthSquared); + x *= inverseLength; + y *= inverseLength; + z *= inverseLength; + } + + // Rotation matrix generation + float sinres = sinf(DEG2RAD*angle); + float cosres = cosf(DEG2RAD*angle); + float t = 1.0f - cosres; + + matRotation.m0 = x*x*t + cosres; + matRotation.m1 = y*x*t + z*sinres; + matRotation.m2 = z*x*t - y*sinres; + matRotation.m3 = 0.0f; + + matRotation.m4 = x*y*t - z*sinres; + matRotation.m5 = y*y*t + cosres; + matRotation.m6 = z*y*t + x*sinres; + matRotation.m7 = 0.0f; + + matRotation.m8 = x*z*t + y*sinres; + matRotation.m9 = y*z*t - x*sinres; + matRotation.m10 = z*z*t + cosres; + matRotation.m11 = 0.0f; + + matRotation.m12 = 0.0f; + matRotation.m13 = 0.0f; + matRotation.m14 = 0.0f; + matRotation.m15 = 1.0f; + + // NOTE: Transposing matrix by multiplication order + *RLGL.State.currentMatrix = rlMatrixMultiply(matRotation, *RLGL.State.currentMatrix); +} + +// Multiply the current matrix by a scaling matrix +void rlScalef(float x, float y, float z) +{ + Matrix matScale = rlMatrixIdentity(); + + // Set scale component of matrix + matScale.m0 = x; + matScale.m5 = y; + matScale.m10 = z; + + // NOTE: Transposing matrix by multiplication order + *RLGL.State.currentMatrix = rlMatrixMultiply(matScale, *RLGL.State.currentMatrix); +} + +// Multiply the current matrix by another matrix +void rlMultMatrixf(const float *matf) +{ + // Matrix creation from array + // Conversion from column-major to row-major memory order + Matrix mat = { matf[0], matf[4], matf[8], matf[12], + matf[1], matf[5], matf[9], matf[13], + matf[2], matf[6], matf[10], matf[14], + matf[3], matf[7], matf[11], matf[15] }; + + *RLGL.State.currentMatrix = rlMatrixMultiply(mat, *RLGL.State.currentMatrix); +} + +// Multiply the current matrix by a perspective matrix generated by parameters +void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar) +{ + Matrix matFrustum = { 0 }; + + float rl = (float)(right - left); + float tb = (float)(top - bottom); + float fn = (float)(zfar - znear); + + matFrustum.m0 = ((float) znear*2.0f)/rl; + matFrustum.m1 = 0.0f; + matFrustum.m2 = 0.0f; + matFrustum.m3 = 0.0f; + + matFrustum.m4 = 0.0f; + matFrustum.m5 = ((float) znear*2.0f)/tb; + matFrustum.m6 = 0.0f; + matFrustum.m7 = 0.0f; + + matFrustum.m8 = ((float)right + (float)left)/rl; + matFrustum.m9 = ((float)top + (float)bottom)/tb; + matFrustum.m10 = -((float)zfar + (float)znear)/fn; + matFrustum.m11 = -1.0f; + + matFrustum.m12 = 0.0f; + matFrustum.m13 = 0.0f; + matFrustum.m14 = -((float)zfar*(float)znear*2.0f)/fn; + matFrustum.m15 = 0.0f; + + *RLGL.State.currentMatrix = rlMatrixMultiply(*RLGL.State.currentMatrix, matFrustum); +} + +// Multiply the current matrix by an orthographic matrix generated by parameters +void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar) +{ + // NOTE: If left-right and top-botton values are equal it could create a division by zero, + // response to it is platform/compiler dependent + Matrix matOrtho = { 0 }; + + float rl = (float)(right - left); + float tb = (float)(top - bottom); + float fn = (float)(zfar - znear); + + matOrtho.m0 = 2.0f/rl; + matOrtho.m1 = 0.0f; + matOrtho.m2 = 0.0f; + matOrtho.m3 = 0.0f; + matOrtho.m4 = 0.0f; + matOrtho.m5 = 2.0f/tb; + matOrtho.m6 = 0.0f; + matOrtho.m7 = 0.0f; + matOrtho.m8 = 0.0f; + matOrtho.m9 = 0.0f; + matOrtho.m10 = -2.0f/fn; + matOrtho.m11 = 0.0f; + matOrtho.m12 = -((float)left + (float)right)/rl; + matOrtho.m13 = -((float)top + (float)bottom)/tb; + matOrtho.m14 = -((float)zfar + (float)znear)/fn; + matOrtho.m15 = 1.0f; + + *RLGL.State.currentMatrix = rlMatrixMultiply(*RLGL.State.currentMatrix, matOrtho); +} +#endif + +// Set the viewport area (transformation from normalized device coordinates to window coordinates) +void rlViewport(int x, int y, int width, int height) +{ + glViewport(x, y, width, height); +} + +// Set clip planes distances +void rlSetClipPlanes(double nearPlane, double farPlane) +{ + rlCullDistanceNear = nearPlane; + rlCullDistanceFar = farPlane; +} + +// Get cull plane distance near +double rlGetCullDistanceNear(void) +{ + return rlCullDistanceNear; +} + +// Get cull plane distance far +double rlGetCullDistanceFar(void) +{ + return rlCullDistanceFar; +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Vertex level operations +//---------------------------------------------------------------------------------- +#if defined(GRAPHICS_API_OPENGL_11) +// Fallback to OpenGL 1.1 function calls +//--------------------------------------- +void rlBegin(int mode) +{ + switch (mode) + { + case RL_LINES: glBegin(GL_LINES); break; + case RL_TRIANGLES: glBegin(GL_TRIANGLES); break; + case RL_QUADS: glBegin(GL_QUADS); break; + default: break; + } +} + +void rlEnd(void) { glEnd(); } +void rlVertex2i(int x, int y) { glVertex2i(x, y); } +void rlVertex2f(float x, float y) { glVertex2f(x, y); } +void rlVertex3f(float x, float y, float z) { glVertex3f(x, y, z); } +void rlTexCoord2f(float x, float y) { glTexCoord2f(x, y); } +void rlNormal3f(float x, float y, float z) { glNormal3f(x, y, z); } +void rlColor4ub(unsigned char r, unsigned char g, unsigned char b, unsigned char a) { glColor4ub(r, g, b, a); } +void rlColor3f(float x, float y, float z) { glColor3f(x, y, z); } +void rlColor4f(float x, float y, float z, float w) { glColor4f(x, y, z, w); } +#endif +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) +// Initialize drawing mode (how to organize vertex) +void rlBegin(int mode) +{ + // Draw mode can be RL_LINES, RL_TRIANGLES and RL_QUADS + // NOTE: In all three cases, vertex are accumulated over default internal vertex buffer + if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode != mode) + { + if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount > 0) + { + // Make sure current RLGL.currentBatch->draws[i].vertexCount is aligned a multiple of 4, + // that way, following QUADS drawing will keep aligned with index processing + // It implies adding some extra alignment vertex at the end of the draw, + // those vertex are not processed but they are considered as an additional offset + // for the next set of vertex to be drawn + if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_LINES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount : RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4); + else if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_TRIANGLES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? 1 : (4 - (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4))); + else RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = 0; + + if (!rlCheckRenderBatchLimit(RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment)) + { + RLGL.State.vertexCounter += RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment; + RLGL.currentBatch->drawCounter++; + } + } + + if (RLGL.currentBatch->drawCounter >= RL_DEFAULT_BATCH_DRAWCALLS) rlDrawRenderBatch(RLGL.currentBatch); + + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode = mode; + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = RLGL.State.currentTextureId; + RLGL.State.currentTextureId = RLGL.State.defaultTextureId; + } +} + +// Finish vertex providing +void rlEnd(void) +{ + // NOTE: Depth increment is dependent on rlOrtho(): z-near and z-far values, + // as well as depth buffer bit-depth (16bit or 24bit or 32bit) + // Correct increment formula would be: depthInc = (zfar - znear)/pow(2, bits) + RLGL.currentBatch->currentDepth += (1.0f/20000.0f); +} + +// Define one vertex (position) +// NOTE: Vertex position data is the basic information required for drawing +void rlVertex3f(float x, float y, float z) +{ + float tx = x; + float ty = y; + float tz = z; + + // Transform provided vector if required + if (RLGL.State.transformRequired) + { + tx = RLGL.State.transform.m0*x + RLGL.State.transform.m4*y + RLGL.State.transform.m8*z + RLGL.State.transform.m12; + ty = RLGL.State.transform.m1*x + RLGL.State.transform.m5*y + RLGL.State.transform.m9*z + RLGL.State.transform.m13; + tz = RLGL.State.transform.m2*x + RLGL.State.transform.m6*y + RLGL.State.transform.m10*z + RLGL.State.transform.m14; + } + + // WARNING: Be careful with primitives breaking when launching a new batch! + // RL_LINES comes in pairs, RL_TRIANGLES come in groups of 3 vertices and RL_QUADS come in groups of 4 vertices + // Checking current draw.mode when a new vertex is required and finish the batch only if the draw.mode draw.vertexCount is %2, %3 or %4 + if (RLGL.State.vertexCounter > (RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4 - 4)) + { + if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_LINES) && + (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%2 == 0)) + { + // Reached the maximum number of vertices for RL_LINES drawing + // Launch a draw call but keep current state for next vertices comming + // NOTE: Adding +1 vertex to the check for some safety + rlCheckRenderBatchLimit(2 + 1); + } + else if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_TRIANGLES) && + (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%3 == 0)) + { + rlCheckRenderBatchLimit(3 + 1); + } + else if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_QUADS) && + (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4 == 0)) + { + rlCheckRenderBatchLimit(4 + 1); + } + } + + // Add vertices + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].vertices[3*RLGL.State.vertexCounter] = tx; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].vertices[3*RLGL.State.vertexCounter + 1] = ty; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].vertices[3*RLGL.State.vertexCounter + 2] = tz; + + // Add current texcoord + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter] = RLGL.State.texcoordx; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter + 1] = RLGL.State.texcoordy; + + // Add current normal + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter] = RLGL.State.normalx; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter + 1] = RLGL.State.normaly; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter + 2] = RLGL.State.normalz; + + // Add current color + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter] = RLGL.State.colorr; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter + 1] = RLGL.State.colorg; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter + 2] = RLGL.State.colorb; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter + 3] = RLGL.State.colora; + + RLGL.State.vertexCounter++; + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount++; +} + +// Define one vertex (position) +void rlVertex2f(float x, float y) +{ + rlVertex3f(x, y, RLGL.currentBatch->currentDepth); +} + +// Define one vertex (position) +void rlVertex2i(int x, int y) +{ + rlVertex3f((float)x, (float)y, RLGL.currentBatch->currentDepth); +} + +// Define one vertex (texture coordinate) +// NOTE: Texture coordinates are limited to QUADS only +void rlTexCoord2f(float x, float y) +{ + RLGL.State.texcoordx = x; + RLGL.State.texcoordy = y; +} + +// Define one vertex (normal) +// NOTE: Normals limited to TRIANGLES only? +void rlNormal3f(float x, float y, float z) +{ + float normalx = x; + float normaly = y; + float normalz = z; + if (RLGL.State.transformRequired) + { + normalx = RLGL.State.transform.m0*x + RLGL.State.transform.m4*y + RLGL.State.transform.m8*z; + normaly = RLGL.State.transform.m1*x + RLGL.State.transform.m5*y + RLGL.State.transform.m9*z; + normalz = RLGL.State.transform.m2*x + RLGL.State.transform.m6*y + RLGL.State.transform.m10*z; + } + + // NOTE: Default behavior assumes the normal vector is in the correct space for what the shader expects, + // it could be not normalized to 0.0f..1.0f, magnitud can be useed for some effects + /* + // WARNING: Vector normalization if required + float length = sqrtf(normalx*normalx + normaly*normaly + normalz*normalz); + if (length != 0.0f) + { + float ilength = 1.0f/length; + normalx *= ilength; + normaly *= ilength; + normalz *= ilength; + } + */ + RLGL.State.normalx = normalx; + RLGL.State.normaly = normaly; + RLGL.State.normalz = normalz; +} + +// Define one vertex (color) +void rlColor4ub(unsigned char x, unsigned char y, unsigned char z, unsigned char w) +{ + RLGL.State.colorr = x; + RLGL.State.colorg = y; + RLGL.State.colorb = z; + RLGL.State.colora = w; +} + +// Define one vertex (color) +void rlColor4f(float r, float g, float b, float a) +{ + rlColor4ub((unsigned char)(r*255), (unsigned char)(g*255), (unsigned char)(b*255), (unsigned char)(a*255)); +} + +// Define one vertex (color) +void rlColor3f(float x, float y, float z) +{ + rlColor4ub((unsigned char)(x*255), (unsigned char)(y*255), (unsigned char)(z*255), 255); +} + +#endif + +//-------------------------------------------------------------------------------------- +// Module Functions Definition - OpenGL style functions (common to 1.1, 3.3+, ES2) +//-------------------------------------------------------------------------------------- + +// Set current texture to use +void rlSetTexture(unsigned int id) +{ + if (id == 0) + { +#if defined(GRAPHICS_API_OPENGL_11) + rlDisableTexture(); +#else + // NOTE: If quads batch limit is reached, force a draw call and next batch starts + if (RLGL.State.vertexCounter >= + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4) + { + rlDrawRenderBatch(RLGL.currentBatch); + } + RLGL.State.currentTextureId = RLGL.State.defaultTextureId; +#endif + } + else + { +#if defined(GRAPHICS_API_OPENGL_11) + rlEnableTexture(id); +#else + RLGL.State.currentTextureId = id; + if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId != id) + { + if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount > 0) + { + // Make sure current RLGL.currentBatch->draws[i].vertexCount is aligned a multiple of 4, + // that way, following QUADS drawing will keep aligned with index processing + // It implies adding some extra alignment vertex at the end of the draw, + // those vertex are not processed but they are considered as an additional offset + // for the next set of vertex to be drawn + if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_LINES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount : RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4); + else if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_TRIANGLES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? 1 : (4 - (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4))); + else RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = 0; + + if (!rlCheckRenderBatchLimit(RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment)) + { + RLGL.State.vertexCounter += RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment; + + RLGL.currentBatch->drawCounter++; + + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode = RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 2].mode; + + } + } + + if (RLGL.currentBatch->drawCounter >= RL_DEFAULT_BATCH_DRAWCALLS) rlDrawRenderBatch(RLGL.currentBatch); + + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = id; + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount = 0; + } +#endif + } +} + +// Select and active a texture slot +void rlActiveTextureSlot(int slot) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glActiveTexture(GL_TEXTURE0 + slot); +#endif +} + +// Enable texture +void rlEnableTexture(unsigned int id) +{ +#if defined(GRAPHICS_API_OPENGL_11) + glEnable(GL_TEXTURE_2D); +#endif + glBindTexture(GL_TEXTURE_2D, id); +} + +// Disable texture +void rlDisableTexture(void) +{ +#if defined(GRAPHICS_API_OPENGL_11) + glDisable(GL_TEXTURE_2D); +#endif + glBindTexture(GL_TEXTURE_2D, 0); +} + +// Enable texture cubemap +void rlEnableTextureCubemap(unsigned int id) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindTexture(GL_TEXTURE_CUBE_MAP, id); +#endif +} + +// Disable texture cubemap +void rlDisableTextureCubemap(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindTexture(GL_TEXTURE_CUBE_MAP, 0); +#endif +} + +// Set texture parameters (wrap mode/filter mode) +void rlTextureParameters(unsigned int id, int param, int value) +{ + glBindTexture(GL_TEXTURE_2D, id); + + switch (param) + { + case RL_TEXTURE_WRAP_S: + case RL_TEXTURE_WRAP_T: + { + if (value == RL_TEXTURE_WRAP_MIRROR_CLAMP) + { +#if !defined(GRAPHICS_API_OPENGL_11) + if (RLGL.ExtSupported.texMirrorClamp) glTexParameteri(GL_TEXTURE_2D, param, value); + else TRACELOG(RL_LOG_WARNING, "GL: Clamp mirror wrap mode not supported (GL_MIRROR_CLAMP_EXT)"); +#endif + } + else glTexParameteri(GL_TEXTURE_2D, param, value); + } break; + case RL_TEXTURE_MAG_FILTER: + case RL_TEXTURE_MIN_FILTER: glTexParameteri(GL_TEXTURE_2D, param, value); break; + case RL_TEXTURE_FILTER_ANISOTROPIC: + { +#if !defined(GRAPHICS_API_OPENGL_11) + // Reset anisotropy filter, in case it was set + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0f); + + if (value <= RLGL.ExtSupported.maxAnisotropyLevel) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); + else if (RLGL.ExtSupported.maxAnisotropyLevel > 0.0f) + { + TRACELOG(RL_LOG_WARNING, "GL: Maximum anisotropic filter level supported is %iX", id, (int)RLGL.ExtSupported.maxAnisotropyLevel); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); + } + else TRACELOG(RL_LOG_WARNING, "GL: Anisotropic filtering not supported"); +#endif + } break; +#if defined(GRAPHICS_API_OPENGL_33) + case RL_TEXTURE_MIPMAP_BIAS_RATIO: glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_LOD_BIAS, value/100.0f); +#endif + default: break; + } + + glBindTexture(GL_TEXTURE_2D, 0); +} + +// Set cubemap parameters (wrap mode/filter mode) +void rlCubemapParameters(unsigned int id, int param, int value) +{ +#if !defined(GRAPHICS_API_OPENGL_11) + glBindTexture(GL_TEXTURE_CUBE_MAP, id); + + // Reset anisotropy filter, in case it was set + glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0f); + + switch (param) + { + case RL_TEXTURE_WRAP_S: + case RL_TEXTURE_WRAP_T: + { + if (value == RL_TEXTURE_WRAP_MIRROR_CLAMP) + { + if (RLGL.ExtSupported.texMirrorClamp) glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); + else TRACELOG(RL_LOG_WARNING, "GL: Clamp mirror wrap mode not supported (GL_MIRROR_CLAMP_EXT)"); + } + else glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); + } break; + case RL_TEXTURE_MAG_FILTER: + case RL_TEXTURE_MIN_FILTER: glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); break; + case RL_TEXTURE_FILTER_ANISOTROPIC: + { + if (value <= RLGL.ExtSupported.maxAnisotropyLevel) glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); + else if (RLGL.ExtSupported.maxAnisotropyLevel > 0.0f) + { + TRACELOG(RL_LOG_WARNING, "GL: Maximum anisotropic filter level supported is %iX", id, (int)RLGL.ExtSupported.maxAnisotropyLevel); + glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); + } + else TRACELOG(RL_LOG_WARNING, "GL: Anisotropic filtering not supported"); + } break; +#if defined(GRAPHICS_API_OPENGL_33) + case RL_TEXTURE_MIPMAP_BIAS_RATIO: glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_LOD_BIAS, value/100.0f); +#endif + default: break; + } + + glBindTexture(GL_TEXTURE_CUBE_MAP, 0); +#endif +} + +// Enable shader program +void rlEnableShader(unsigned int id) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) + glUseProgram(id); +#endif +} + +// Disable shader program +void rlDisableShader(void) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) + glUseProgram(0); +#endif +} + +// Enable rendering to texture (fbo) +void rlEnableFramebuffer(unsigned int id) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) || defined(GRAPHICS_API_OPENGL_SOFTWARE)) + glBindFramebuffer(GL_FRAMEBUFFER, id); +#endif +} + +// return the active render texture (fbo) +unsigned int rlGetActiveFramebuffer(void) +{ + GLint fboId = 0; +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3) || defined(GRAPHICS_API_OPENGL_SOFTWARE)) + glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &fboId); +#endif + return fboId; +} + +// Disable rendering to texture +void rlDisableFramebuffer(void) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) || defined(GRAPHICS_API_OPENGL_SOFTWARE)) + glBindFramebuffer(GL_FRAMEBUFFER, 0); +#endif +} + +// Blit active framebuffer to main framebuffer +void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) + glBlitFramebuffer(srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, bufferMask, GL_NEAREST); +#endif +} + +// Bind framebuffer object (fbo) +void rlBindFramebuffer(unsigned int target, unsigned int framebuffer) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) || defined(GRAPHICS_API_OPENGL_SOFTWARE)) + glBindFramebuffer(target, framebuffer); +#endif +} + +// Activate multiple draw color buffers +// NOTE: One color buffer is always active by default +void rlActiveDrawBuffers(int count) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) + // NOTE: Maximum number of draw buffers supported is implementation dependent, + // it can be queried with glGet*() but it must be at least 8 + //GLint maxDrawBuffers = 0; + //glGetIntegerv(GL_MAX_DRAW_BUFFERS, &maxDrawBuffers); + + if (count > 0) + { + if (count > 8) TRACELOG(RL_LOG_WARNING, "GL: Max color buffers limited to 8"); + else + { + unsigned int buffers[8] = { + GL_COLOR_ATTACHMENT0, + GL_COLOR_ATTACHMENT1, + GL_COLOR_ATTACHMENT2, + GL_COLOR_ATTACHMENT3, + GL_COLOR_ATTACHMENT4, + GL_COLOR_ATTACHMENT5, + GL_COLOR_ATTACHMENT6, + GL_COLOR_ATTACHMENT7, + }; + + glDrawBuffers(count, buffers); + } + } + else TRACELOG(RL_LOG_WARNING, "GL: One color buffer active by default"); +#endif +} + +//---------------------------------------------------------------------------------- +// General render state configuration +//---------------------------------------------------------------------------------- + +// Enable color blending +void rlEnableColorBlend(void) { glEnable(GL_BLEND); } + +// Disable color blending +void rlDisableColorBlend(void) { glDisable(GL_BLEND); } + +// Enable depth test +void rlEnableDepthTest(void) { glEnable(GL_DEPTH_TEST); } + +// Disable depth test +void rlDisableDepthTest(void) { glDisable(GL_DEPTH_TEST); } + +// Enable depth write +void rlEnableDepthMask(void) { glDepthMask(GL_TRUE); } + +// Disable depth write +void rlDisableDepthMask(void) { glDepthMask(GL_FALSE); } + +// Enable backface culling +void rlEnableBackfaceCulling(void) { glEnable(GL_CULL_FACE); } + +// Disable backface culling +void rlDisableBackfaceCulling(void) { glDisable(GL_CULL_FACE); } + +// Set color mask active for screen read/draw +void rlColorMask(bool r, bool g, bool b, bool a) { glColorMask(r, g, b, a); } + +// Set face culling mode +void rlSetCullFace(int mode) +{ + switch (mode) + { + case RL_CULL_FACE_BACK: glCullFace(GL_BACK); break; + case RL_CULL_FACE_FRONT: glCullFace(GL_FRONT); break; + default: break; + } +} + +// Enable scissor test +void rlEnableScissorTest(void) { glEnable(GL_SCISSOR_TEST); } + +// Disable scissor test +void rlDisableScissorTest(void) { glDisable(GL_SCISSOR_TEST); } + +// Scissor test +void rlScissor(int x, int y, int width, int height) { glScissor(x, y, width, height); } + +// Enable wire mode +void rlEnableWireMode(void) +{ +#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + // NOTE: glPolygonMode() not available on OpenGL ES + glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); +#endif +} + +// Disable wire mode +void rlDisableWireMode(void) +{ +#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + // NOTE: glPolygonMode() not available on OpenGL ES + glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); +#endif +} + +// Enable point mode +void rlEnablePointMode(void) +{ +#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + // NOTE: glPolygonMode() not available on OpenGL ES + glPolygonMode(GL_FRONT_AND_BACK, GL_POINT); + glEnable(GL_PROGRAM_POINT_SIZE); +#endif +} + +// Disable point mode +void rlDisablePointMode(void) +{ +#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + // NOTE: glPolygonMode() not available on OpenGL ES + glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); +#endif +} + +// Set the line drawing width +void rlSetLineWidth(float width) { glLineWidth(width); } + +// Get the line drawing width +float rlGetLineWidth(void) +{ + float width = 0; + glGetFloatv(GL_LINE_WIDTH, &width); + return width; +} + +// Set the point drawing size +void rlSetPointSize(float size) +{ +#if defined(GRAPHICS_API_OPENGL_11) + glPointSize(size); +#endif +} + +// Get the point drawing size +float rlGetPointSize(void) +{ + float size = 1; +#if defined(GRAPHICS_API_OPENGL_11) + glGetFloatv(GL_POINT_SIZE, &size); +#endif + return size; + +} + +// Enable line aliasing +void rlEnableSmoothLines(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_11) + glEnable(GL_LINE_SMOOTH); +#endif +} + +// Disable line aliasing +void rlDisableSmoothLines(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_11) + glDisable(GL_LINE_SMOOTH); +#endif +} + +// Enable stereo rendering +void rlEnableStereoRender(void) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) + RLGL.State.stereoRender = true; +#endif +} + +// Disable stereo rendering +void rlDisableStereoRender(void) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) + RLGL.State.stereoRender = false; +#endif +} + +// Check if stereo render is enabled +bool rlIsStereoRenderEnabled(void) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) + return RLGL.State.stereoRender; +#else + return false; +#endif +} + +// Clear color buffer with color +void rlClearColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a) +{ + // Color values clamp to 0.0f(0) and 1.0f(255) + float cr = (float)r/255; + float cg = (float)g/255; + float cb = (float)b/255; + float ca = (float)a/255; + + glClearColor(cr, cg, cb, ca); +} + +// Clear used screen buffers (color and depth) +void rlClearScreenBuffers(void) +{ + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear used buffers: Color and Depth (Depth is used for 3D) + //glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); // Stencil buffer not used... +} + +// Check and log OpenGL error codes +void rlCheckErrors(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + int check = 1; + while (check) + { + const GLenum err = glGetError(); + switch (err) + { + case GL_NO_ERROR: check = 0; break; + case 0x0500: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_ENUM"); break; + case 0x0501: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_VALUE"); break; + case 0x0502: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_OPERATION"); break; + case 0x0503: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_STACK_OVERFLOW"); break; + case 0x0504: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_STACK_UNDERFLOW"); break; + case 0x0505: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_OUT_OF_MEMORY"); break; + case 0x0506: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_FRAMEBUFFER_OPERATION"); break; + default: TRACELOG(RL_LOG_WARNING, "GL: Error detected: Unknown error code: %x", err); break; + } + } +#endif +} + +// Set blend mode +void rlSetBlendMode(int mode) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if ((RLGL.State.currentBlendMode != mode) || ((mode == RL_BLEND_CUSTOM || mode == RL_BLEND_CUSTOM_SEPARATE) && RLGL.State.glCustomBlendModeModified)) + { + rlDrawRenderBatch(RLGL.currentBatch); + + switch (mode) + { + case RL_BLEND_ALPHA: glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBlendEquation(GL_FUNC_ADD); break; + case RL_BLEND_ADDITIVE: glBlendFunc(GL_SRC_ALPHA, GL_ONE); glBlendEquation(GL_FUNC_ADD); break; + case RL_BLEND_MULTIPLIED: glBlendFunc(GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA); glBlendEquation(GL_FUNC_ADD); break; + case RL_BLEND_ADD_COLORS: glBlendFunc(GL_ONE, GL_ONE); glBlendEquation(GL_FUNC_ADD); break; + case RL_BLEND_SUBTRACT_COLORS: glBlendFunc(GL_ONE, GL_ONE); glBlendEquation(GL_FUNC_SUBTRACT); break; + case RL_BLEND_ALPHA_PREMULTIPLY: glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); glBlendEquation(GL_FUNC_ADD); break; + case RL_BLEND_CUSTOM: + { + // NOTE: Using GL blend src/dst factors and GL equation configured with rlSetBlendFactors() + glBlendFunc(RLGL.State.glBlendSrcFactor, RLGL.State.glBlendDstFactor); glBlendEquation(RLGL.State.glBlendEquation); + } break; + case RL_BLEND_CUSTOM_SEPARATE: + { + // NOTE: Using GL blend src/dst factors and GL equation configured with rlSetBlendFactorsSeparate() + glBlendFuncSeparate(RLGL.State.glBlendSrcFactorRGB, RLGL.State.glBlendDestFactorRGB, RLGL.State.glBlendSrcFactorAlpha, RLGL.State.glBlendDestFactorAlpha); + glBlendEquationSeparate(RLGL.State.glBlendEquationRGB, RLGL.State.glBlendEquationAlpha); + } break; + default: break; + } + + RLGL.State.currentBlendMode = mode; + RLGL.State.glCustomBlendModeModified = false; + } +#endif +} + +// Set blending mode factor and equation +void rlSetBlendFactors(int glSrcFactor, int glDstFactor, int glEquation) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if ((RLGL.State.glBlendSrcFactor != glSrcFactor) || + (RLGL.State.glBlendDstFactor != glDstFactor) || + (RLGL.State.glBlendEquation != glEquation)) + { + RLGL.State.glBlendSrcFactor = glSrcFactor; + RLGL.State.glBlendDstFactor = glDstFactor; + RLGL.State.glBlendEquation = glEquation; + + RLGL.State.glCustomBlendModeModified = true; + } +#endif +} + +// Set blending mode factor and equation separately for RGB and alpha +void rlSetBlendFactorsSeparate(int glSrcRGB, int glDstRGB, int glSrcAlpha, int glDstAlpha, int glEqRGB, int glEqAlpha) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if ((RLGL.State.glBlendSrcFactorRGB != glSrcRGB) || + (RLGL.State.glBlendDestFactorRGB != glDstRGB) || + (RLGL.State.glBlendSrcFactorAlpha != glSrcAlpha) || + (RLGL.State.glBlendDestFactorAlpha != glDstAlpha) || + (RLGL.State.glBlendEquationRGB != glEqRGB) || + (RLGL.State.glBlendEquationAlpha != glEqAlpha)) + { + RLGL.State.glBlendSrcFactorRGB = glSrcRGB; + RLGL.State.glBlendDestFactorRGB = glDstRGB; + RLGL.State.glBlendSrcFactorAlpha = glSrcAlpha; + RLGL.State.glBlendDestFactorAlpha = glDstAlpha; + RLGL.State.glBlendEquationRGB = glEqRGB; + RLGL.State.glBlendEquationAlpha = glEqAlpha; + + RLGL.State.glCustomBlendModeModified = true; + } +#endif +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition - OpenGL Debug +//---------------------------------------------------------------------------------- +#if defined(GRAPHICS_API_OPENGL_43) && RLGL_ENABLE_OPENGL_DEBUG_CONTEXT +static void GLAPIENTRY rlDebugMessageCallback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam) +{ + // Ignore non-significant error/warning codes (NVidia drivers) + // NOTE: Here there are the details with a sample output: + // - #131169 - Framebuffer detailed info: The driver allocated storage for renderbuffer 2. (severity: low) + // - #131185 - Buffer detailed info: Buffer object 1 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_ENUM_88e4) + // will use VIDEO memory as the source for buffer object operations. (severity: low) + // - #131218 - Program/shader state performance warning: Vertex shader in program 7 is being recompiled based on GL state. (severity: medium) + // - #131204 - Texture state usage warning: The texture object (0) bound to texture image unit 0 does not have + // a defined base level and cannot be used for texture mapping. (severity: low) + if ((id == 131169) || (id == 131185) || (id == 131218) || (id == 131204)) return; + + const char *msgSource = NULL; + switch (source) + { + case GL_DEBUG_SOURCE_API: msgSource = "API"; break; + case GL_DEBUG_SOURCE_WINDOW_SYSTEM: msgSource = "WINDOW_SYSTEM"; break; + case GL_DEBUG_SOURCE_SHADER_COMPILER: msgSource = "SHADER_COMPILER"; break; + case GL_DEBUG_SOURCE_THIRD_PARTY: msgSource = "THIRD_PARTY"; break; + case GL_DEBUG_SOURCE_APPLICATION: msgSource = "APPLICATION"; break; + case GL_DEBUG_SOURCE_OTHER: msgSource = "OTHER"; break; + default: break; + } + + const char *msgType = NULL; + switch (type) + { + case GL_DEBUG_TYPE_ERROR: msgType = "ERROR"; break; + case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: msgType = "DEPRECATED_BEHAVIOR"; break; + case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR: msgType = "UNDEFINED_BEHAVIOR"; break; + case GL_DEBUG_TYPE_PORTABILITY: msgType = "PORTABILITY"; break; + case GL_DEBUG_TYPE_PERFORMANCE: msgType = "PERFORMANCE"; break; + case GL_DEBUG_TYPE_MARKER: msgType = "MARKER"; break; + case GL_DEBUG_TYPE_PUSH_GROUP: msgType = "PUSH_GROUP"; break; + case GL_DEBUG_TYPE_POP_GROUP: msgType = "POP_GROUP"; break; + case GL_DEBUG_TYPE_OTHER: msgType = "OTHER"; break; + default: break; + } + + const char *msgSeverity = "DEFAULT"; + switch (severity) + { + case GL_DEBUG_SEVERITY_LOW: msgSeverity = "LOW"; break; + case GL_DEBUG_SEVERITY_MEDIUM: msgSeverity = "MEDIUM"; break; + case GL_DEBUG_SEVERITY_HIGH: msgSeverity = "HIGH"; break; + case GL_DEBUG_SEVERITY_NOTIFICATION: msgSeverity = "NOTIFICATION"; break; + default: break; + } + + TRACELOG(RL_LOG_WARNING, "GL: OpenGL debug message: %s", message); + TRACELOG(RL_LOG_WARNING, " > Type: %s", msgType); + TRACELOG(RL_LOG_WARNING, " > Source = %s", msgSource); + TRACELOG(RL_LOG_WARNING, " > Severity = %s", msgSeverity); +} +#endif + +//---------------------------------------------------------------------------------- +// Module Functions Definition - rlgl functionality +//---------------------------------------------------------------------------------- + +// Initialize rlgl: OpenGL extensions, default buffers/shaders/textures, OpenGL states +void rlglInit(int width, int height) +{ + isGpuReady = true; + + // Enable OpenGL debug context if requested (and supported) +#if defined(GRAPHICS_API_OPENGL_43) && RLGL_ENABLE_OPENGL_DEBUG_CONTEXT + if ((glDebugMessageCallback != NULL) && (glDebugMessageControl != NULL)) + { + glDebugMessageCallback(rlDebugMessageCallback, 0); + // glDebugMessageControl(GL_DEBUG_SOURCE_API, GL_DEBUG_TYPE_ERROR, GL_DEBUG_SEVERITY_HIGH, 0, 0, GL_TRUE); + + // Debug context options: + // - GL_DEBUG_OUTPUT - Faster version but not useful for breakpoints + // - GL_DEBUG_OUTPUT_SYNCHRONUS - Callback is in sync with errors, so a breakpoint can be placed on the callback in order to get a stacktrace for the GL error + glEnable(GL_DEBUG_OUTPUT); + glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS); + } +#endif + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // Init default white texture + unsigned char pixels[4] = { 255, 255, 255, 255 }; // 1 pixel RGBA (4 bytes) + RLGL.State.defaultTextureId = rlLoadTexture(pixels, 1, 1, RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, 1); + RLGL.State.currentTextureId = RLGL.State.defaultTextureId; + + if (RLGL.State.defaultTextureId != 0) TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Default texture loaded successfully", RLGL.State.defaultTextureId); + else TRACELOG(RL_LOG_WARNING, "TEXTURE: Failed to load default texture"); + + // Init default Shader (customized for GL 3.3 and ES2) + // Loaded: RLGL.State.defaultShaderId + RLGL.State.defaultShaderLocs + rlLoadShaderDefault(); + RLGL.State.currentShaderId = RLGL.State.defaultShaderId; + RLGL.State.currentShaderLocs = RLGL.State.defaultShaderLocs; + + // Init default vertex arrays buffers + // Simulate that the default shader has the location RL_SHADER_LOC_VERTEX_NORMAL to bind the normal buffer for the default render batch + RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL] = RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL; + RLGL.defaultBatch = rlLoadRenderBatch(RL_DEFAULT_BATCH_BUFFERS, RL_DEFAULT_BATCH_BUFFER_ELEMENTS); + RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL] = -1; + RLGL.currentBatch = &RLGL.defaultBatch; + + // Init stack matrices (emulating OpenGL 1.1) + for (int i = 0; i < RL_MAX_MATRIX_STACK_SIZE; i++) RLGL.State.stack[i] = rlMatrixIdentity(); + + // Init internal matrices + RLGL.State.transform = rlMatrixIdentity(); + RLGL.State.projection = rlMatrixIdentity(); + RLGL.State.modelview = rlMatrixIdentity(); + RLGL.State.currentMatrix = &RLGL.State.modelview; +#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 + +#if defined(GRAPHICS_API_OPENGL_SOFTWARE) + // Initialize software renderer backend + int result = swInit(width, height); + if (result == 0) + { + TRACELOG(RL_LOG_ERROR, "RLSW: Software renderer initialization failed!"); + exit(-1); + } +#endif + + // Initialize OpenGL default states + //---------------------------------------------------------- + // Init state: Depth test + glDepthFunc(GL_LEQUAL); // Type of depth testing to apply + glDisable(GL_DEPTH_TEST); // Disable depth testing for 2D (only used for 3D) + + // Init state: Blending mode + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // Color blending function (how colors are mixed) + glEnable(GL_BLEND); // Enable color blending (required to work with transparencies) + + // Init state: Culling + // NOTE: All shapes/models triangles are drawn CCW + glCullFace(GL_BACK); // Cull the back face (default) + glFrontFace(GL_CCW); // Front face are defined counter clockwise (default) + glEnable(GL_CULL_FACE); // Enable backface culling + +#if defined(GRAPHICS_API_OPENGL_11) + // Init state: Color hints (deprecated in OpenGL 3.0+) + glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // Improve quality of color and texture coordinate interpolation + glShadeModel(GL_SMOOTH); // Smooth shading between vertex (vertex colors interpolation) +#endif +#if defined(GRAPHICS_API_OPENGL_33) + // Init state: Cubemap seamless + glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS); // Seamless cubemaps (not supported on OpenGL ES 2.0) +#endif +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // Store screen size into global variables + RLGL.State.framebufferWidth = width; + RLGL.State.framebufferHeight = height; +#endif + + // Init state: Color/Depth buffers clear + glClearColor(0.0f, 0.0f, 0.0f, 1.0f); // Set clear color (black) + glClearDepth(1.0f); // Set clear depth value (default) + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear color and depth buffers (depth buffer required for 3D) + + TRACELOG(RL_LOG_INFO, "RLGL: Default OpenGL state initialized successfully"); + //---------------------------------------------------------- +} + +// Vertex Buffer Object deinitialization (memory free) +void rlglClose(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + rlUnloadRenderBatch(RLGL.defaultBatch); + + rlUnloadShaderDefault(); // Unload default shader + + glDeleteTextures(1, &RLGL.State.defaultTextureId); // Unload default texture + TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Default texture unloaded successfully", RLGL.State.defaultTextureId); +#endif + +#if defined(GRAPHICS_API_OPENGL_SOFTWARE) + swClose(); // Unload sofware renderer resources +#endif + isGpuReady = false; +} + +// Load OpenGL extensions +// NOTE: External loader function must be provided +void rlLoadExtensions(void *loader) +{ +#if defined(GRAPHICS_API_OPENGL_33) // Also defined for GRAPHICS_API_OPENGL_21 + // NOTE: glad is generated and contains only required OpenGL 3.3 Core extensions (and lower versions) + if (gladLoadGL((GLADloadfunc)loader) == 0) TRACELOG(RL_LOG_WARNING, "GLAD: Cannot load OpenGL extensions"); + else TRACELOG(RL_LOG_INFO, "GLAD: OpenGL extensions loaded successfully"); + + // Get number of supported extensions + GLint numExt = 0; + glGetIntegerv(GL_NUM_EXTENSIONS, &numExt); + TRACELOG(RL_LOG_INFO, "GL: Supported extensions count: %i", numExt); + +#if RLGL_SHOW_GL_DETAILS_INFO + // Get supported extensions list + // WARNING: glGetStringi() not available on OpenGL 2.1 + TRACELOG(RL_LOG_INFO, "GL: OpenGL extensions:"); + for (int i = 0; i < numExt; i++) TRACELOG(RL_LOG_INFO, " %s", glGetStringi(GL_EXTENSIONS, i)); +#endif + +#if defined(GRAPHICS_API_OPENGL_21) + // Register supported extensions flags + // Optional OpenGL 2.1 extensions + RLGL.ExtSupported.vao = GLAD_GL_ARB_vertex_array_object; + RLGL.ExtSupported.instancing = (GLAD_GL_EXT_draw_instanced && GLAD_GL_ARB_instanced_arrays); + RLGL.ExtSupported.texNPOT = GLAD_GL_ARB_texture_non_power_of_two; + RLGL.ExtSupported.texFloat32 = GLAD_GL_ARB_texture_float; + RLGL.ExtSupported.texFloat16 = GLAD_GL_ARB_texture_float; + RLGL.ExtSupported.texDepth = GLAD_GL_ARB_depth_texture; + RLGL.ExtSupported.maxDepthBits = 32; + RLGL.ExtSupported.texAnisoFilter = GLAD_GL_EXT_texture_filter_anisotropic; + RLGL.ExtSupported.texMirrorClamp = GLAD_GL_EXT_texture_mirror_clamp; +#else + // Register supported extensions flags + // OpenGL 3.3 extensions supported by default (core) + RLGL.ExtSupported.vao = true; + RLGL.ExtSupported.instancing = true; + RLGL.ExtSupported.texNPOT = true; + RLGL.ExtSupported.texFloat32 = true; + RLGL.ExtSupported.texFloat16 = true; + RLGL.ExtSupported.texDepth = true; + RLGL.ExtSupported.maxDepthBits = 32; + RLGL.ExtSupported.texAnisoFilter = true; + RLGL.ExtSupported.texMirrorClamp = true; +#endif + + // Optional OpenGL 3.3 extensions + RLGL.ExtSupported.texCompASTC = GLAD_GL_KHR_texture_compression_astc_hdr && GLAD_GL_KHR_texture_compression_astc_ldr; + RLGL.ExtSupported.texCompDXT = GLAD_GL_EXT_texture_compression_s3tc; // Texture compression: DXT + RLGL.ExtSupported.texCompETC2 = GLAD_GL_ARB_ES3_compatibility; // Texture compression: ETC2/EAC + #if defined(GRAPHICS_API_OPENGL_43) + RLGL.ExtSupported.computeShader = GLAD_GL_ARB_compute_shader; + RLGL.ExtSupported.ssbo = GLAD_GL_ARB_shader_storage_buffer_object; + #endif + +#endif // GRAPHICS_API_OPENGL_33 + +#if defined(GRAPHICS_API_OPENGL_ES3) + // Register supported extensions flags + // OpenGL ES 3.0 extensions supported by default (or it should be) + RLGL.ExtSupported.vao = true; + RLGL.ExtSupported.instancing = true; + RLGL.ExtSupported.texNPOT = true; + RLGL.ExtSupported.texFloat32 = true; + RLGL.ExtSupported.texFloat16 = true; + RLGL.ExtSupported.texDepth = true; + RLGL.ExtSupported.texDepthWebGL = true; + RLGL.ExtSupported.maxDepthBits = 24; + RLGL.ExtSupported.texAnisoFilter = true; + RLGL.ExtSupported.texMirrorClamp = true; + // TODO: Check for additional OpenGL ES 3.0 supported extensions: + //RLGL.ExtSupported.texCompDXT = true; + //RLGL.ExtSupported.texCompETC1 = true; + //RLGL.ExtSupported.texCompETC2 = true; + //RLGL.ExtSupported.texCompPVRT = true; + //RLGL.ExtSupported.texCompASTC = true; + //RLGL.ExtSupported.maxAnisotropyLevel = true; + //RLGL.ExtSupported.computeShader = true; + //RLGL.ExtSupported.ssbo = true; + +#elif defined(GRAPHICS_API_OPENGL_ES2) + + #if defined(PLATFORM_DESKTOP_GLFW) || defined(PLATFORM_DESKTOP_SDL) + // TODO: Support GLAD loader for OpenGL ES 3.0 + if (gladLoadGLES2((GLADloadfunc)loader) == 0) TRACELOG(RL_LOG_WARNING, "GLAD: Cannot load OpenGL ES2.0 functions"); + else TRACELOG(RL_LOG_INFO, "GLAD: OpenGL ES 2.0 loaded successfully"); + #endif + + // Get supported extensions list + GLint numExt = 0; + const char **extList = (const char **)RL_CALLOC(512, sizeof(const char *)); // Allocate 512 strings pointers (2 KB) + const char *extensions = (const char *)glGetString(GL_EXTENSIONS); // One big const string + + // NOTE: String duplication rquired because glGetString() returns a const string + int extensionsLength = (int)strlen(extensions); // Get extensions string size in bytes + char *extensionsDup = (char *)RL_CALLOC(extensionsLength + 1, sizeof(char)); // Allocate space for copy with additional EOL byte + strncpy(extensionsDup, extensions, extensionsLength); + extList[numExt] = extensionsDup; + + for (int i = 0; i < extensionsLength; i++) + { + if (extensionsDup[i] == ' ') + { + extensionsDup[i] = '\0'; + numExt++; + extList[numExt] = &extensionsDup[i + 1]; + } + } + + TRACELOG(RL_LOG_INFO, "GL: Supported extensions count: %i", numExt); + +#if RLGL_SHOW_GL_DETAILS_INFO + TRACELOG(RL_LOG_INFO, "GL: OpenGL extensions:"); + for (int i = 0; i < numExt; i++) TRACELOG(RL_LOG_INFO, " %s", extList[i]); +#endif + + // Check required extensions + for (int i = 0; i < numExt; i++) + { + // Check VAO support + // NOTE: Only check on OpenGL ES, OpenGL 3.3 has VAO support as core feature + if (strcmp(extList[i], (const char *)"GL_OES_vertex_array_object") == 0) + { + // The extension is supported by our hardware and driver, try to get related functions pointers + // NOTE: emscripten does not support VAOs natively, it uses emulation and it reduces overall performance... + glGenVertexArrays = (PFNGLGENVERTEXARRAYSOESPROC)((rlglLoadProc)loader)("glGenVertexArraysOES"); + glBindVertexArray = (PFNGLBINDVERTEXARRAYOESPROC)((rlglLoadProc)loader)("glBindVertexArrayOES"); + glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSOESPROC)((rlglLoadProc)loader)("glDeleteVertexArraysOES"); + //glIsVertexArray = (PFNGLISVERTEXARRAYOESPROC)loader("glIsVertexArrayOES"); // NOTE: Fails in WebGL, omitted + + if ((glGenVertexArrays != NULL) && (glBindVertexArray != NULL) && (glDeleteVertexArrays != NULL)) RLGL.ExtSupported.vao = true; + } + + // Check instanced rendering support + if (strstr(extList[i], (const char *)"instanced_arrays") != NULL) // Broad check for instanced_arrays + { + // Specific check + if (strcmp(extList[i], (const char *)"GL_ANGLE_instanced_arrays") == 0) // ANGLE + { + glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedANGLE"); + glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedANGLE"); + glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorANGLE"); + } + else if (strcmp(extList[i], (const char *)"GL_EXT_instanced_arrays") == 0) // EXT + { + glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedEXT"); + glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedEXT"); + glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorEXT"); + } + else if (strcmp(extList[i], (const char *)"GL_NV_instanced_arrays") == 0) // NVIDIA GLES + { + glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedNV"); + glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedNV"); + glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorNV"); + } + + // The feature will only be marked as supported if the elements from GL_XXX_instanced_arrays are present + if ((glDrawArraysInstanced != NULL) && (glDrawElementsInstanced != NULL) && (glVertexAttribDivisor != NULL)) RLGL.ExtSupported.instancing = true; + } + else if (strstr(extList[i], (const char *)"draw_instanced") != NULL) + { + // GL_ANGLE_draw_instanced doesn't exist + if (strcmp(extList[i], (const char *)"GL_EXT_draw_instanced") == 0) + { + glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedEXT"); + glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedEXT"); + } + else if (strcmp(extList[i], (const char *)"GL_NV_draw_instanced") == 0) + { + glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedNV"); + glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedNV"); + } + + // But the functions will at least be loaded if only GL_XX_EXT_draw_instanced exist + if ((glDrawArraysInstanced != NULL) && (glDrawElementsInstanced != NULL) && (glVertexAttribDivisor != NULL)) RLGL.ExtSupported.instancing = true; + } + + // Check NPOT textures support + // NOTE: Only check on OpenGL ES, OpenGL 3.3 has NPOT textures full support as core feature + if (strcmp(extList[i], (const char *)"GL_OES_texture_npot") == 0) RLGL.ExtSupported.texNPOT = true; + + // Check texture float support + if (strcmp(extList[i], (const char *)"GL_OES_texture_float") == 0) RLGL.ExtSupported.texFloat32 = true; + if (strcmp(extList[i], (const char *)"GL_OES_texture_half_float") == 0) RLGL.ExtSupported.texFloat16 = true; + + // Check depth texture support + if (strcmp(extList[i], (const char *)"GL_OES_depth_texture") == 0) RLGL.ExtSupported.texDepth = true; + if (strcmp(extList[i], (const char *)"GL_WEBGL_depth_texture") == 0) RLGL.ExtSupported.texDepthWebGL = true; // WebGL requires unsized internal format + if (RLGL.ExtSupported.texDepthWebGL) RLGL.ExtSupported.texDepth = true; + + if (strcmp(extList[i], (const char *)"GL_OES_depth24") == 0) RLGL.ExtSupported.maxDepthBits = 24; // Not available on WebGL + if (strcmp(extList[i], (const char *)"GL_OES_depth32") == 0) RLGL.ExtSupported.maxDepthBits = 32; // Not available on WebGL + + // Check texture compression support: DXT + if ((strcmp(extList[i], (const char *)"GL_EXT_texture_compression_s3tc") == 0) || + (strcmp(extList[i], (const char *)"GL_WEBGL_compressed_texture_s3tc") == 0) || + (strcmp(extList[i], (const char *)"GL_WEBKIT_WEBGL_compressed_texture_s3tc") == 0)) RLGL.ExtSupported.texCompDXT = true; + + // Check texture compression support: ETC1 + if ((strcmp(extList[i], (const char *)"GL_OES_compressed_ETC1_RGB8_texture") == 0) || + (strcmp(extList[i], (const char *)"GL_WEBGL_compressed_texture_etc1") == 0)) RLGL.ExtSupported.texCompETC1 = true; + + // Check texture compression support: ETC2/EAC + if (strcmp(extList[i], (const char *)"GL_ARB_ES3_compatibility") == 0) RLGL.ExtSupported.texCompETC2 = true; + + // Check texture compression support: PVR + if (strcmp(extList[i], (const char *)"GL_IMG_texture_compression_pvrtc") == 0) RLGL.ExtSupported.texCompPVRT = true; + + // Check texture compression support: ASTC + if (strcmp(extList[i], (const char *)"GL_KHR_texture_compression_astc_hdr") == 0) RLGL.ExtSupported.texCompASTC = true; + + // Check anisotropic texture filter support + if (strcmp(extList[i], (const char *)"GL_EXT_texture_filter_anisotropic") == 0) RLGL.ExtSupported.texAnisoFilter = true; + + // Check clamp mirror wrap mode support + if (strcmp(extList[i], (const char *)"GL_EXT_texture_mirror_clamp") == 0) RLGL.ExtSupported.texMirrorClamp = true; + } + + // Free extensions pointers + RL_FREE(extList); + RL_FREE(extensionsDup); // Duplicated string must be deallocated +#endif // GRAPHICS_API_OPENGL_ES2 + + // Check OpenGL information and capabilities + //------------------------------------------------------------------------------ + // Show current OpenGL and GLSL version + TRACELOG(RL_LOG_INFO, "GL: OpenGL device information:"); + TRACELOG(RL_LOG_INFO, " > Vendor: %s", glGetString(GL_VENDOR)); + TRACELOG(RL_LOG_INFO, " > Renderer: %s", glGetString(GL_RENDERER)); + TRACELOG(RL_LOG_INFO, " > Version: %s", glGetString(GL_VERSION)); + TRACELOG(RL_LOG_INFO, " > GLSL: %s", glGetString(GL_SHADING_LANGUAGE_VERSION)); + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + RLGL.loader = (rlglLoadProc)loader; + + // NOTE: Anisotropy levels capability is an extension + #ifndef GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT + #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF + #endif + glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &RLGL.ExtSupported.maxAnisotropyLevel); + +#if RLGL_SHOW_GL_DETAILS_INFO + // Show some OpenGL GPU capabilities + TRACELOG(RL_LOG_INFO, "GL: OpenGL capabilities:"); + GLint capability = 0; + glGetIntegerv(GL_MAX_TEXTURE_SIZE, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_TEXTURE_SIZE: %i", capability); + glGetIntegerv(GL_MAX_CUBE_MAP_TEXTURE_SIZE, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_CUBE_MAP_TEXTURE_SIZE: %i", capability); + glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_TEXTURE_IMAGE_UNITS: %i", capability); + glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_VERTEX_ATTRIBS: %i", capability); + #if !defined(GRAPHICS_API_OPENGL_ES2) + glGetIntegerv(GL_MAX_UNIFORM_BLOCK_SIZE, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_UNIFORM_BLOCK_SIZE: %i", capability); + glGetIntegerv(GL_MAX_DRAW_BUFFERS, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_DRAW_BUFFERS: %i", capability); + if (RLGL.ExtSupported.texAnisoFilter) TRACELOG(RL_LOG_INFO, " GL_MAX_TEXTURE_MAX_ANISOTROPY: %.0f", RLGL.ExtSupported.maxAnisotropyLevel); + #endif + glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &capability); + TRACELOG(RL_LOG_INFO, " GL_NUM_COMPRESSED_TEXTURE_FORMATS: %i", capability); + GLint *compFormats = (GLint *)RL_CALLOC(capability, sizeof(GLint)); + glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS, compFormats); + for (int i = 0; i < capability; i++) TRACELOG(RL_LOG_INFO, " %s", rlGetCompressedFormatName(compFormats[i])); + RL_FREE(compFormats); + +#if defined(GRAPHICS_API_OPENGL_43) + glGetIntegerv(GL_MAX_VERTEX_ATTRIB_BINDINGS, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_VERTEX_ATTRIB_BINDINGS: %i", capability); + glGetIntegerv(GL_MAX_UNIFORM_LOCATIONS, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_UNIFORM_LOCATIONS: %i", capability); +#endif + +#else // !RLGL_SHOW_GL_DETAILS_INFO + + // Show some basic info about GL supported features + if (RLGL.ExtSupported.vao) TRACELOG(RL_LOG_INFO, "GL: VAO extension detected, VAO functions loaded successfully"); + else TRACELOG(RL_LOG_WARNING, "GL: VAO extension not found, VAO not supported"); + if (RLGL.ExtSupported.texNPOT) TRACELOG(RL_LOG_INFO, "GL: NPOT textures extension detected, full NPOT textures supported"); + else TRACELOG(RL_LOG_WARNING, "GL: NPOT textures extension not found, limited NPOT support (no-mipmaps, no-repeat)"); + if (RLGL.ExtSupported.texCompDXT) TRACELOG(RL_LOG_INFO, "GL: DXT compressed textures supported"); + if (RLGL.ExtSupported.texCompETC1) TRACELOG(RL_LOG_INFO, "GL: ETC1 compressed textures supported"); + if (RLGL.ExtSupported.texCompETC2) TRACELOG(RL_LOG_INFO, "GL: ETC2/EAC compressed textures supported"); + if (RLGL.ExtSupported.texCompPVRT) TRACELOG(RL_LOG_INFO, "GL: PVRT compressed textures supported"); + if (RLGL.ExtSupported.texCompASTC) TRACELOG(RL_LOG_INFO, "GL: ASTC compressed textures supported"); + if (RLGL.ExtSupported.computeShader) TRACELOG(RL_LOG_INFO, "GL: Compute shaders supported"); + if (RLGL.ExtSupported.ssbo) TRACELOG(RL_LOG_INFO, "GL: Shader storage buffer objects supported"); +#endif + +#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 +} + +// Get OpenGL procedure address +void *rlGetProcAddress(const char *procName) +{ + void *func = NULL; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + func = RLGL.loader(procName); +#endif + return func; +} + +// Get current OpenGL version +int rlGetVersion(void) +{ + int glVersion = 0; + +#if defined(GRAPHICS_API_OPENGL_SOFTWARE) + glVersion = RL_OPENGL_SOFTWARE; +#elif defined(GRAPHICS_API_OPENGL_11) + glVersion = RL_OPENGL_11; +#endif +#if defined(GRAPHICS_API_OPENGL_21) + glVersion = RL_OPENGL_21; +#elif defined(GRAPHICS_API_OPENGL_43) + glVersion = RL_OPENGL_43; +#elif defined(GRAPHICS_API_OPENGL_33) + glVersion = RL_OPENGL_33; +#endif +#if defined(GRAPHICS_API_OPENGL_ES3) + glVersion = RL_OPENGL_ES_30; +#elif defined(GRAPHICS_API_OPENGL_ES2) + glVersion = RL_OPENGL_ES_20; +#endif + + return glVersion; +} + +// Set current framebuffer width +void rlSetFramebufferWidth(int width) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + RLGL.State.framebufferWidth = width; +#endif +} + +// Set current framebuffer height +void rlSetFramebufferHeight(int height) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + RLGL.State.framebufferHeight = height; +#endif +} + +// Get default framebuffer width +int rlGetFramebufferWidth(void) +{ + int width = 0; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + width = RLGL.State.framebufferWidth; +#endif + return width; +} + +// Get default framebuffer height +int rlGetFramebufferHeight(void) +{ + int height = 0; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + height = RLGL.State.framebufferHeight; +#endif + return height; +} + +// Get default internal texture (white texture) +// NOTE: Default texture is a 1x1 pixel UNCOMPRESSED_R8G8B8A8 +unsigned int rlGetTextureIdDefault(void) +{ + unsigned int id = 0; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + id = RLGL.State.defaultTextureId; +#endif + return id; +} + +// Get default shader id +unsigned int rlGetShaderIdDefault(void) +{ + unsigned int id = 0; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + id = RLGL.State.defaultShaderId; +#endif + return id; +} + +// Get default shader locs +int *rlGetShaderLocsDefault(void) +{ + int *locs = NULL; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + locs = RLGL.State.defaultShaderLocs; +#endif + return locs; +} + +// Render batch management +//------------------------------------------------------------------------------------------------ +// Load render batch +rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements) +{ + rlRenderBatch batch = { 0 }; + if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return batch; } + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // Initialize CPU (RAM) vertex buffers (position, texcoord, color data and indexes) + //-------------------------------------------------------------------------------------------- + batch.vertexBuffer = (rlVertexBuffer *)RL_CALLOC(numBuffers, sizeof(rlVertexBuffer)); + + for (int i = 0; i < numBuffers; i++) + { + batch.vertexBuffer[i].elementCount = bufferElements; + + batch.vertexBuffer[i].vertices = (float *)RL_CALLOC(bufferElements*3*4, sizeof(float)); // 3 float by vertex, 4 vertex by quad + batch.vertexBuffer[i].texcoords = (float *)RL_CALLOC(bufferElements*2*4, sizeof(float)); // 2 float by texcoord, 4 texcoord by quad + batch.vertexBuffer[i].normals = (float *)RL_CALLOC(bufferElements*3*4, sizeof(float)); // 3 float by vertex, 4 vertex by quad + batch.vertexBuffer[i].colors = (unsigned char *)RL_CALLOC(bufferElements*4*4, sizeof(unsigned char)); // 4 float by color, 4 colors by quad +#if defined(GRAPHICS_API_OPENGL_33) + batch.vertexBuffer[i].indices = (unsigned int *)RL_CALLOC(bufferElements*6, sizeof(unsigned int)); // 6 int by quad (indices) +#endif +#if defined(GRAPHICS_API_OPENGL_ES2) + batch.vertexBuffer[i].indices = (unsigned short *)RL_CALLOC(bufferElements*6, sizeof(unsigned short)); // 6 int by quad (indices) +#endif + + for (int j = 0; j < (3*4*bufferElements); j++) batch.vertexBuffer[i].vertices[j] = 0.0f; + for (int j = 0; j < (2*4*bufferElements); j++) batch.vertexBuffer[i].texcoords[j] = 0.0f; + for (int j = 0; j < (3*4*bufferElements); j++) batch.vertexBuffer[i].normals[j] = 0.0f; + for (int j = 0; j < (4*4*bufferElements); j++) batch.vertexBuffer[i].colors[j] = 0; + + int k = 0; + + // Indices can be initialized right now + for (int j = 0; j < (6*bufferElements); j += 6) + { + batch.vertexBuffer[i].indices[j] = 4*k; + batch.vertexBuffer[i].indices[j + 1] = 4*k + 1; + batch.vertexBuffer[i].indices[j + 2] = 4*k + 2; + batch.vertexBuffer[i].indices[j + 3] = 4*k; + batch.vertexBuffer[i].indices[j + 4] = 4*k + 2; + batch.vertexBuffer[i].indices[j + 5] = 4*k + 3; + + k++; + } + + RLGL.State.vertexCounter = 0; + } + + TRACELOG(RL_LOG_INFO, "RLGL: Render batch vertex buffers loaded successfully in RAM (CPU)"); + //-------------------------------------------------------------------------------------------- + + // Upload to GPU (VRAM) vertex data and initialize VAOs/VBOs + //-------------------------------------------------------------------------------------------- + for (int i = 0; i < numBuffers; i++) + { + if (RLGL.ExtSupported.vao) + { + // Initialize Quads VAO + glGenVertexArrays(1, &batch.vertexBuffer[i].vaoId); + glBindVertexArray(batch.vertexBuffer[i].vaoId); + } + + // Quads - Vertex buffers binding and attributes enable + // Vertex position buffer (shader-location = 0) + glGenBuffers(1, &batch.vertexBuffer[i].vboId[0]); + glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[0]); + glBufferData(GL_ARRAY_BUFFER, bufferElements*3*4*sizeof(float), batch.vertexBuffer[i].vertices, GL_DYNAMIC_DRAW); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION], 3, GL_FLOAT, 0, 0, 0); + + // Vertex texcoord buffer (shader-location = 1) + glGenBuffers(1, &batch.vertexBuffer[i].vboId[1]); + glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[1]); + glBufferData(GL_ARRAY_BUFFER, bufferElements*2*4*sizeof(float), batch.vertexBuffer[i].texcoords, GL_DYNAMIC_DRAW); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01], 2, GL_FLOAT, 0, 0, 0); + + // Vertex normal buffer (shader-location = 2) + glGenBuffers(1, &batch.vertexBuffer[i].vboId[2]); + glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[2]); + glBufferData(GL_ARRAY_BUFFER, bufferElements*3*4*sizeof(float), batch.vertexBuffer[i].normals, GL_DYNAMIC_DRAW); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL], 3, GL_FLOAT, 0, 0, 0); + + // Vertex color buffer (shader-location = 3) + glGenBuffers(1, &batch.vertexBuffer[i].vboId[3]); + glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[3]); + glBufferData(GL_ARRAY_BUFFER, bufferElements*4*4*sizeof(unsigned char), batch.vertexBuffer[i].colors, GL_DYNAMIC_DRAW); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR], 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, 0); + + // Fill index buffer + glGenBuffers(1, &batch.vertexBuffer[i].vboId[4]); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[4]); +#if defined(GRAPHICS_API_OPENGL_33) + glBufferData(GL_ELEMENT_ARRAY_BUFFER, bufferElements*6*sizeof(int), batch.vertexBuffer[i].indices, GL_STATIC_DRAW); +#endif +#if defined(GRAPHICS_API_OPENGL_ES2) + glBufferData(GL_ELEMENT_ARRAY_BUFFER, bufferElements*6*sizeof(short), batch.vertexBuffer[i].indices, GL_STATIC_DRAW); +#endif + } + + TRACELOG(RL_LOG_INFO, "RLGL: Render batch vertex buffers loaded successfully in VRAM (GPU)"); + + // Unbind the current VAO + if (RLGL.ExtSupported.vao) glBindVertexArray(0); + //-------------------------------------------------------------------------------------------- + + // Init draw calls tracking system + //-------------------------------------------------------------------------------------------- + batch.draws = (rlDrawCall *)RL_CALLOC(RL_DEFAULT_BATCH_DRAWCALLS, sizeof(rlDrawCall)); + + for (int i = 0; i < RL_DEFAULT_BATCH_DRAWCALLS; i++) + { + batch.draws[i].mode = RL_QUADS; + batch.draws[i].vertexCount = 0; + batch.draws[i].vertexAlignment = 0; + //batch.draws[i].vaoId = 0; + //batch.draws[i].shaderId = 0; + batch.draws[i].textureId = RLGL.State.defaultTextureId; + //batch.draws[i].RLGL.State.projection = rlMatrixIdentity(); + //batch.draws[i].RLGL.State.modelview = rlMatrixIdentity(); + } + + batch.bufferCount = numBuffers; // Record buffer count + batch.drawCounter = 1; // Reset draws counter + batch.currentDepth = -1.0f; // Reset depth value + //-------------------------------------------------------------------------------------------- +#endif + + return batch; +} + +// Unload default internal buffers vertex data from CPU and GPU +void rlUnloadRenderBatch(rlRenderBatch batch) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // Unbind everything + glBindBuffer(GL_ARRAY_BUFFER, 0); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); + + // Unload all vertex buffers data + for (int i = 0; i < batch.bufferCount; i++) + { + // Unbind VAO attribs data + if (RLGL.ExtSupported.vao) + { + glBindVertexArray(batch.vertexBuffer[i].vaoId); + glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); + glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); + glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL); + glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR); + glBindVertexArray(0); + } + + // Delete VBOs from GPU (VRAM) + glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[0]); + glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[1]); + glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[2]); + glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[3]); + glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[4]); + + // Delete VAOs from GPU (VRAM) + if (RLGL.ExtSupported.vao) glDeleteVertexArrays(1, &batch.vertexBuffer[i].vaoId); + + // Free vertex arrays memory from CPU (RAM) + RL_FREE(batch.vertexBuffer[i].vertices); + RL_FREE(batch.vertexBuffer[i].texcoords); + RL_FREE(batch.vertexBuffer[i].normals); + RL_FREE(batch.vertexBuffer[i].colors); + RL_FREE(batch.vertexBuffer[i].indices); + } + + // Unload arrays + RL_FREE(batch.vertexBuffer); + RL_FREE(batch.draws); +#endif +} + +// Draw render batch +// NOTE: Batch is reseted and current buffer is updated (for multi-buffer config) +void rlDrawRenderBatch(rlRenderBatch *batch) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // Update batch vertex buffers + //------------------------------------------------------------------------------------------------------------ + // NOTE: If there is not vertex data, buffers doesn't need to be updated (vertexCount > 0) + if (RLGL.State.vertexCounter > 0) + { + // Activate elements VAO + if (RLGL.ExtSupported.vao) glBindVertexArray(batch->vertexBuffer[batch->currentBuffer].vaoId); + + // TODO: If no data changed on the CPU arrays there is no need to re-upload data to GPU, + // a flag can be used to detect changes but it would imply keeping a copy buffer and memcmp() both, does it worth it? + + // Vertex positions buffer + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[0]); + glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*3*sizeof(float), batch->vertexBuffer[batch->currentBuffer].vertices); + //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*3*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].vertices, GL_DYNAMIC_DRAW); // Update all buffer + + // Texture coordinates buffer + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[1]); + glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*2*sizeof(float), batch->vertexBuffer[batch->currentBuffer].texcoords); + //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*2*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].texcoords, GL_DYNAMIC_DRAW); // Update all buffer + + // Normals buffer + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[2]); + glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*3*sizeof(float), batch->vertexBuffer[batch->currentBuffer].normals); + //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*3*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].normals, GL_DYNAMIC_DRAW); // Update all buffer + + // Colors buffer + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[3]); + glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*4*sizeof(unsigned char), batch->vertexBuffer[batch->currentBuffer].colors); + //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*4*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].colors, GL_DYNAMIC_DRAW); // Update all buffer + + // NOTE: glMapBuffer() causes sync issue + // If GPU is working with this buffer, glMapBuffer() will wait(stall) until GPU to finish its job + // To avoid waiting (idle), glBufferData() can bee called first with NULL pointer before glMapBuffer() + // Doing that, the previous data in PBO will be discarded and glMapBuffer() returns a new + // allocated pointer immediately even if GPU is still working with the previous data + + // Another option: map the buffer object into client's memory + //batch->vertexBuffer[batch->currentBuffer].vertices = (float *)glMapBuffer(GL_ARRAY_BUFFER, GL_READ_WRITE); + //if (batch->vertexBuffer[batch->currentBuffer].vertices) + //{ + // Update vertex data + //} + //glUnmapBuffer(GL_ARRAY_BUFFER); + + // Unbind the current VAO + if (RLGL.ExtSupported.vao) glBindVertexArray(0); + } + //------------------------------------------------------------------------------------------------------------ + + // Draw batch vertex buffers (considering VR stereo if required) + //------------------------------------------------------------------------------------------------------------ + Matrix matProjection = RLGL.State.projection; + Matrix matModelView = RLGL.State.modelview; + + int eyeCount = 1; + if (RLGL.State.stereoRender) eyeCount = 2; + + for (int eye = 0; eye < eyeCount; eye++) + { + if (eyeCount == 2) + { + // Setup current eye viewport (half screen width) + rlViewport(eye*RLGL.State.framebufferWidth/2, 0, RLGL.State.framebufferWidth/2, RLGL.State.framebufferHeight); + + // Set current eye view offset to modelview matrix + rlSetMatrixModelview(rlMatrixMultiply(matModelView, RLGL.State.viewOffsetStereo[eye])); + // Set current eye projection matrix + rlSetMatrixProjection(RLGL.State.projectionStereo[eye]); + } + + // Draw buffers + if (RLGL.State.vertexCounter > 0) + { + // Set current shader and upload current MVP matrix + glUseProgram(RLGL.State.currentShaderId); + + // Create modelview-projection matrix and upload to shader + Matrix matMVP = rlMatrixMultiply(RLGL.State.modelview, RLGL.State.projection); + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MVP], 1, false, rlMatrixToFloat(matMVP)); + + if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_PROJECTION] != -1) + { + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_PROJECTION], 1, false, rlMatrixToFloat(RLGL.State.projection)); + } + + // WARNING: For the following setup of the view, model, and normal matrices, it is expected that + // transformations and rendering occur between rlPushMatrix() and rlPopMatrix() + + if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_VIEW] != -1) + { + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_VIEW], 1, false, rlMatrixToFloat(RLGL.State.modelview)); + } + + if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MODEL] != -1) + { + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MODEL], 1, false, rlMatrixToFloat(RLGL.State.transform)); + } + + if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_NORMAL] != -1) + { + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_NORMAL], 1, false, rlMatrixToFloat(rlMatrixTranspose(rlMatrixInvert(RLGL.State.transform)))); + } + + if (RLGL.ExtSupported.vao) glBindVertexArray(batch->vertexBuffer[batch->currentBuffer].vaoId); + else + { + // Bind vertex attrib: position (shader-location = 0) + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[0]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION], 3, GL_FLOAT, 0, 0, 0); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION]); + + // Bind vertex attrib: texcoord (shader-location = 1) + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[1]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01], 2, GL_FLOAT, 0, 0, 0); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01]); + + // Bind vertex attrib: normal (shader-location = 2) + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[2]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL], 3, GL_FLOAT, 0, 0, 0); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL]); + + // Bind vertex attrib: color (shader-location = 3) + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[3]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR], 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, 0); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR]); + + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[4]); + } + + // Setup some default shader values + glUniform4f(RLGL.State.currentShaderLocs[RL_SHADER_LOC_COLOR_DIFFUSE], 1.0f, 1.0f, 1.0f, 1.0f); + glUniform1i(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MAP_DIFFUSE], 0); // Active default sampler2D: texture0 + + // Activate additional sampler textures + // Those additional textures will be common for all draw calls of the batch + for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) + { + if (RLGL.State.activeTextureId[i] > 0) + { + glActiveTexture(GL_TEXTURE0 + 1 + i); + glBindTexture(GL_TEXTURE_2D, RLGL.State.activeTextureId[i]); + } + } + + // Activate default sampler2D texture0 (one texture is always active for default batch shader) + // NOTE: Batch system accumulates calls by texture0 changes, additional textures are enabled for all the draw calls + glActiveTexture(GL_TEXTURE0); + + for (int i = 0, vertexOffset = 0; i < batch->drawCounter; i++) + { + // Bind current draw call texture, activated as GL_TEXTURE0 and bound to sampler2D texture0 by default + glBindTexture(GL_TEXTURE_2D, batch->draws[i].textureId); + + if ((batch->draws[i].mode == RL_LINES) || (batch->draws[i].mode == RL_TRIANGLES)) glDrawArrays(batch->draws[i].mode, vertexOffset, batch->draws[i].vertexCount); + else + { + #if defined(GRAPHICS_API_OPENGL_33) + // The number of indices to be processed needs to be defined: elementCount*6 + // NOTE: The final parameter tells the GPU the offset in bytes from the + // start of the index buffer to the location of the first index to process + glDrawElements(GL_TRIANGLES, batch->draws[i].vertexCount/4*6, GL_UNSIGNED_INT, (GLvoid *)(vertexOffset/4*6*sizeof(GLuint))); + #endif + #if defined(GRAPHICS_API_OPENGL_ES2) + glDrawElements(GL_TRIANGLES, batch->draws[i].vertexCount/4*6, GL_UNSIGNED_SHORT, (GLvoid *)(vertexOffset/4*6*sizeof(GLushort))); + #endif + } + + vertexOffset += (batch->draws[i].vertexCount + batch->draws[i].vertexAlignment); + } + + if (!RLGL.ExtSupported.vao) + { + glBindBuffer(GL_ARRAY_BUFFER, 0); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); + } + + glBindTexture(GL_TEXTURE_2D, 0); // Unbind textures + } + + if (RLGL.ExtSupported.vao) glBindVertexArray(0); // Unbind VAO + + glUseProgram(0); // Unbind shader program + } + + // Restore viewport to default measures + if (eyeCount == 2) rlViewport(0, 0, RLGL.State.framebufferWidth, RLGL.State.framebufferHeight); + //------------------------------------------------------------------------------------------------------------ + + // Reset batch buffers + //------------------------------------------------------------------------------------------------------------ + // Reset vertex counter for next frame + RLGL.State.vertexCounter = 0; + + // Reset depth for next draw + batch->currentDepth = -1.0f; + + // Restore projection/modelview matrices + RLGL.State.projection = matProjection; + RLGL.State.modelview = matModelView; + + // Reset RLGL.currentBatch->draws array + for (int i = 0; i < RL_DEFAULT_BATCH_DRAWCALLS; i++) + { + batch->draws[i].mode = RL_QUADS; + batch->draws[i].vertexCount = 0; + batch->draws[i].textureId = RLGL.State.defaultTextureId; + } + + // Reset active texture units for next batch + for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) RLGL.State.activeTextureId[i] = 0; + + // Reset draws counter to one draw for the batch + batch->drawCounter = 1; + //------------------------------------------------------------------------------------------------------------ + + // Change to next buffer in the list (in case of multi-buffering) + batch->currentBuffer++; + if (batch->currentBuffer >= batch->bufferCount) batch->currentBuffer = 0; +#endif +} + +// Set the active render batch for rlgl +void rlSetRenderBatchActive(rlRenderBatch *batch) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + rlDrawRenderBatch(RLGL.currentBatch); + + if (batch != NULL) RLGL.currentBatch = batch; + else RLGL.currentBatch = &RLGL.defaultBatch; +#endif +} + +// Update and draw internal render batch +void rlDrawRenderBatchActive(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + rlDrawRenderBatch(RLGL.currentBatch); // NOTE: Stereo rendering is checked inside +#endif +} + +// Check internal buffer overflow for a given number of vertex +// and force a rlRenderBatch draw call if required +bool rlCheckRenderBatchLimit(int vCount) +{ + bool overflow = false; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if ((RLGL.State.vertexCounter + vCount) >= + (RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4)) + { + overflow = true; + + // Store current primitive drawing mode and texture id + int currentMode = RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode; + int currentTexture = RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId; + + rlDrawRenderBatch(RLGL.currentBatch); // NOTE: Stereo rendering is checked inside + + // Restore state of last batch so new vertices can be added + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode = currentMode; + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = currentTexture; + } +#endif + + return overflow; +} + +// Textures data management +//----------------------------------------------------------------------------------------- +// Convert image data to OpenGL texture (returns OpenGL valid Id) +unsigned int rlLoadTexture(const void *data, int width, int height, int format, int mipmapCount) +{ + unsigned int id = 0; + if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return id; } + + glBindTexture(GL_TEXTURE_2D, 0); // Free any old binding + + // Check texture format support by OpenGL 1.1 (compressed textures not supported) +#if defined(GRAPHICS_API_OPENGL_11) + if (format >= RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) + { + // TODO: Support texture data decompression + TRACELOG(RL_LOG_WARNING, "GL: OpenGL 1.1 does not support GPU compressed texture formats"); + return id; + } +#else + if ((!RLGL.ExtSupported.texCompDXT) && ((format == RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) || (format == RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA) || + (format == RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA) || (format == RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA))) + { + TRACELOG(RL_LOG_WARNING, "GL: DXT compressed texture format not supported"); + return id; + } +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if ((!RLGL.ExtSupported.texCompETC1) && (format == RL_PIXELFORMAT_COMPRESSED_ETC1_RGB)) + { + TRACELOG(RL_LOG_WARNING, "GL: ETC1 compressed texture format not supported"); + return id; + } + + if ((!RLGL.ExtSupported.texCompETC2) && ((format == RL_PIXELFORMAT_COMPRESSED_ETC2_RGB) || (format == RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA))) + { + TRACELOG(RL_LOG_WARNING, "GL: ETC2 compressed texture format not supported"); + return id; + } + + if ((!RLGL.ExtSupported.texCompPVRT) && ((format == RL_PIXELFORMAT_COMPRESSED_PVRT_RGB) || (format == RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA))) + { + TRACELOG(RL_LOG_WARNING, "GL: PVRT compressed texture format not supported"); + return id; + } + + if ((!RLGL.ExtSupported.texCompASTC) && ((format == RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA) || (format == RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA))) + { + TRACELOG(RL_LOG_WARNING, "GL: ASTC compressed texture format not supported"); + return id; + } +#endif +#endif // GRAPHICS_API_OPENGL_11 + + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + + glGenTextures(1, &id); // Generate texture id + + glBindTexture(GL_TEXTURE_2D, id); + + int mipWidth = width; + int mipHeight = height; + int mipOffset = 0; // Mipmap data offset, only used for tracelog + (void)mipOffset; // Used to avoid gcc warnings about unused variable + + // NOTE: Added pointer math separately from function to avoid UBSAN complaining + unsigned char *dataPtr = NULL; + if (data != NULL) dataPtr = (unsigned char *)data; + + // Load the different mipmap levels + for (int i = 0; i < mipmapCount; i++) + { + unsigned int mipSize = rlGetPixelDataSize(mipWidth, mipHeight, format); + + unsigned int glInternalFormat, glFormat, glType; + rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); + + TRACELOG(RL_LOG_DEBUG, "TEXTURE: Load mipmap level %i (%i x %i), size: %i, offset: %i", i, mipWidth, mipHeight, mipSize, mipOffset); + + if (glInternalFormat != 0) + { + if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) glTexImage2D(GL_TEXTURE_2D, i, glInternalFormat, mipWidth, mipHeight, 0, glFormat, glType, dataPtr); +#if !defined(GRAPHICS_API_OPENGL_11) + else glCompressedTexImage2D(GL_TEXTURE_2D, i, glInternalFormat, mipWidth, mipHeight, 0, mipSize, dataPtr); +#endif + +#if defined(GRAPHICS_API_OPENGL_33) + if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE) + { + GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ONE }; + glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); + } + else if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA) + { +#if defined(GRAPHICS_API_OPENGL_21) + GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ALPHA }; +#elif defined(GRAPHICS_API_OPENGL_33) + GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_GREEN }; +#endif + glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); + } +#endif + } + + mipWidth /= 2; + mipHeight /= 2; + mipOffset += mipSize; // Increment offset position to next mipmap + if (data != NULL) dataPtr += mipSize; // Increment data pointer to next mipmap + + // Security check for NPOT textures + if (mipWidth < 1) mipWidth = 1; + if (mipHeight < 1) mipHeight = 1; + } + + // Texture parameters configuration + // NOTE: glTexParameteri does NOT affect texture uploading +#if defined(GRAPHICS_API_OPENGL_ES2) + // NOTE: OpenGL ES 2.0 with no GL_OES_texture_npot support (i.e. WebGL) has limited NPOT support, so CLAMP_TO_EDGE must be used + if (RLGL.ExtSupported.texNPOT) + { + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); // Set texture to repeat on x-axis + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); // Set texture to repeat on y-axis + } + else + { + // NOTE: If using negative texture coordinates (LoadOBJ()), it does not work! + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); // Set texture to clamp on x-axis + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); // Set texture to clamp on y-axis + } +#else + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); // Set texture to repeat on x-axis + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); // Set texture to repeat on y-axis +#endif + + // Magnification and minification filters + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); // Alternative: GL_LINEAR + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); // Alternative: GL_LINEAR + +#if defined(GRAPHICS_API_OPENGL_33) + if (mipmapCount > 1) + { + // Activate trilinear filtering if mipmaps are available + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); + + // Define the maximum number of mipmap levels to be used, 0 is base texture size + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, 0); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, mipmapCount - 1); + + // Check if the loaded texture with mipmaps is complete, + // uncomplete textures will draw in black if mipmap filtering is required + //GLint complete = 0; + //glGetTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_IMMUTABLE_FORMAT, &complete); + } +#endif + + // At this point texture is loaded in GPU and texture parameters configured + + // NOTE: If mipmaps were not in data, they are not generated automatically + + // Unbind current texture + glBindTexture(GL_TEXTURE_2D, 0); + + if (id > 0) TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Texture loaded successfully (%ix%i | %s | %i mipmaps)", id, width, height, rlGetPixelFormatName(format), mipmapCount); + else TRACELOG(RL_LOG_WARNING, "TEXTURE: Failed to load texture"); + + return id; +} + +// Load depth texture/renderbuffer (to be attached to fbo) +// WARNING: OpenGL ES 2.0 requires GL_OES_depth_texture and WebGL requires WEBGL_depth_texture extensions +unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer) +{ + unsigned int id = 0; + if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return id; } + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // In case depth textures were not supported, force renderbuffer usage + if (!RLGL.ExtSupported.texDepth) useRenderBuffer = true; + + // NOTE: Letting the implementation to choose the best bit-depth + // Possible formats: GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32 and GL_DEPTH_COMPONENT32F + unsigned int glInternalFormat = GL_DEPTH_COMPONENT; + +#if defined(GRAPHICS_API_OPENGL_ES2) + // WARNING: WebGL platform requires unsized internal format definition (GL_DEPTH_COMPONENT) + // while other platforms using OpenGL ES 2.0 require/support sized internal formats depending on the GPU capabilities + if (!RLGL.ExtSupported.texDepthWebGL || useRenderBuffer) + { + if (RLGL.ExtSupported.maxDepthBits == 32) glInternalFormat = GL_DEPTH_COMPONENT32_OES; + else if (RLGL.ExtSupported.maxDepthBits == 24) glInternalFormat = GL_DEPTH_COMPONENT24_OES; + else glInternalFormat = GL_DEPTH_COMPONENT16; + } +#endif +#if defined(GRAPHICS_API_OPENGL_ES3) + // NOTE: This sized internal format should also work for WebGL 2.0 + // WARNING: Specification only allows GL_DEPTH_COMPONENT32F for GL_FLOAT type + // REF: https://registry.khronos.org/OpenGL-Refpages/es3.0/html/glTexImage2D.xhtml + if (RLGL.ExtSupported.maxDepthBits == 24) glInternalFormat = GL_DEPTH_COMPONENT24; + else glInternalFormat = GL_DEPTH_COMPONENT16; +#endif + + if (!useRenderBuffer && RLGL.ExtSupported.texDepth) + { + glGenTextures(1, &id); + glBindTexture(GL_TEXTURE_2D, id); + glTexImage2D(GL_TEXTURE_2D, 0, glInternalFormat, width, height, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, NULL); + + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + + glBindTexture(GL_TEXTURE_2D, 0); + + TRACELOG(RL_LOG_INFO, "TEXTURE: Depth texture loaded successfully"); + } + else + { + // Create the renderbuffer that will serve as the depth attachment for the framebuffer + // NOTE: A renderbuffer is simpler than a texture and could offer better performance on embedded devices + glGenRenderbuffers(1, &id); + glBindRenderbuffer(GL_RENDERBUFFER, id); + glRenderbufferStorage(GL_RENDERBUFFER, glInternalFormat, width, height); + + glBindRenderbuffer(GL_RENDERBUFFER, 0); + + TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Depth renderbuffer loaded successfully (%i bits)", id, (RLGL.ExtSupported.maxDepthBits >= 24)? RLGL.ExtSupported.maxDepthBits : 16); + } +#elif defined(GRAPHICS_API_OPENGL_SOFTWARE) + // NOTE: Renderbuffers are the same type of object as textures in rlsw + // WARNING: Ensure that the depth format is the one specified at rlsw compilation + glGenRenderbuffers(1, &id); + glBindRenderbuffer(GL_RENDERBUFFER, id); + glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT32, width, height); + glBindRenderbuffer(GL_RENDERBUFFER, 0); +#endif + + return id; +} + +// Load texture cubemap +// NOTE: Cubemap data is expected to be 6 images in a single data array (one after the other), +// expected the following convention: +X, -X, +Y, -Y, +Z, -Z +unsigned int rlLoadTextureCubemap(const void *data, int size, int format, int mipmapCount) +{ + unsigned int id = 0; + if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return id; } + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + int mipSize = size; + + // NOTE: Added pointer math separately from function to avoid UBSAN complaining + unsigned char *dataPtr = NULL; + if (data != NULL) dataPtr = (unsigned char *)data; + + unsigned int dataSize = rlGetPixelDataSize(size, size, format); + + glGenTextures(1, &id); + glBindTexture(GL_TEXTURE_CUBE_MAP, id); + + unsigned int glInternalFormat, glFormat, glType; + rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); + + if (glInternalFormat != 0) + { + // Load cubemap faces/mipmaps + for (int i = 0; i < 6*mipmapCount; i++) + { + int mipmapLevel = i/6; + int face = i%6; + + if (data == NULL) + { + if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) + { + if ((format == RL_PIXELFORMAT_UNCOMPRESSED_R32) || + (format == RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32) || + (format == RL_PIXELFORMAT_UNCOMPRESSED_R16) || + (format == RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16)) TRACELOG(RL_LOG_WARNING, "TEXTURES: Cubemap requested format not supported"); + else glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mipmapLevel, glInternalFormat, mipSize, mipSize, 0, glFormat, glType, NULL); + } + else TRACELOG(RL_LOG_WARNING, "TEXTURES: Empty cubemap creation does not support compressed format"); + } + else + { + if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mipmapLevel, glInternalFormat, mipSize, mipSize, 0, glFormat, glType, (unsigned char *)dataPtr + face*dataSize); + else glCompressedTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mipmapLevel, glInternalFormat, mipSize, mipSize, 0, dataSize, (unsigned char *)dataPtr + face*dataSize); + } + +#if defined(GRAPHICS_API_OPENGL_33) + if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE) + { + GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ONE }; + glTexParameteriv(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); + } + else if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA) + { +#if defined(GRAPHICS_API_OPENGL_21) + GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ALPHA }; +#elif defined(GRAPHICS_API_OPENGL_33) + GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_GREEN }; +#endif + glTexParameteriv(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); + } +#endif + if (face == 5) + { + mipSize /= 2; + if (data != NULL) dataPtr += dataSize*6; // Increment data pointer to next mipmap + + // Security check for NPOT textures + if (mipSize < 1) mipSize = 1; + + dataSize = rlGetPixelDataSize(mipSize, mipSize, format); + } + } + } + + // Set cubemap texture sampling parameters + if (mipmapCount > 1) glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); + else glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + + glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); +#if defined(GRAPHICS_API_OPENGL_33) + glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE); // Flag not supported on OpenGL ES 2.0 +#endif + + glBindTexture(GL_TEXTURE_CUBE_MAP, 0); +#endif + + if (id > 0) TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Cubemap texture loaded successfully (%ix%i)", id, size, size); + else TRACELOG(RL_LOG_WARNING, "TEXTURE: Failed to load cubemap texture"); + + return id; +} + +// Update already loaded texture in GPU with new data +// WARNING: Not possible to know safely if internal texture format is the expected one... +void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int height, int format, const void *data) +{ + glBindTexture(GL_TEXTURE_2D, id); + + unsigned int glInternalFormat, glFormat, glType; + rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); + + if ((glInternalFormat != 0) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB)) + { + glTexSubImage2D(GL_TEXTURE_2D, 0, offsetX, offsetY, width, height, glFormat, glType, data); + } + else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Failed to update for current texture format (%i)", id, format); +} + +// Get OpenGL internal formats and data type from raylib PixelFormat +void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned int *glFormat, unsigned int *glType) +{ + *glInternalFormat = 0; + *glFormat = 0; + *glType = 0; + + switch (format) + { + #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_21) || defined(GRAPHICS_API_OPENGL_ES2) + // NOTE: on OpenGL ES 2.0 (WebGL), internalFormat must match format and options allowed are: GL_LUMINANCE, GL_RGB, GL_RGBA + case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: *glInternalFormat = GL_LUMINANCE_ALPHA; *glFormat = GL_LUMINANCE_ALPHA; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_UNSIGNED_SHORT_5_6_5; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_5_5_5_1; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_4_4_4_4; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_BYTE; break; + #if !defined(GRAPHICS_API_OPENGL_11) + #if defined(GRAPHICS_API_OPENGL_ES3) + case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_R32F_EXT; *glFormat = GL_RED_EXT; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB32F_EXT; *glFormat = GL_RGB; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA32F_EXT; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_R16F_EXT; *glFormat = GL_RED_EXT; *glType = GL_HALF_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB16F_EXT; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA16F_EXT; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT; break; + #else + case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float + #if defined(GRAPHICS_API_OPENGL_21) + case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_HALF_FLOAT_ARB; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT_ARB; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT_ARB; break; + #else // defined(GRAPHICS_API_OPENGL_ES2) + case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float + #endif + #endif + #endif + #elif defined(GRAPHICS_API_OPENGL_33) + case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: *glInternalFormat = GL_R8; *glFormat = GL_RED; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: *glInternalFormat = GL_RG8; *glFormat = GL_RG; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: *glInternalFormat = GL_RGB565; *glFormat = GL_RGB; *glType = GL_UNSIGNED_SHORT_5_6_5; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: *glInternalFormat = GL_RGB8; *glFormat = GL_RGB; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: *glInternalFormat = GL_RGB5_A1; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_5_5_5_1; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: *glInternalFormat = GL_RGBA4; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_4_4_4_4; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: *glInternalFormat = GL_RGBA8; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_R32F; *glFormat = GL_RED; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB32F; *glFormat = GL_RGB; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA32F; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_R16F; *glFormat = GL_RED; *glType = GL_HALF_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB16F; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA16F; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT; break; + #endif + #if !defined(GRAPHICS_API_OPENGL_11) + case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGB_S3TC_DXT1_EXT; break; + case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT; break; + case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT; break; + case RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT; break; + case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: if (RLGL.ExtSupported.texCompETC1) *glInternalFormat = GL_ETC1_RGB8_OES; break; // NOTE: Requires OpenGL ES 2.0 or OpenGL 4.3 + case RL_PIXELFORMAT_COMPRESSED_ETC2_RGB: if (RLGL.ExtSupported.texCompETC2) *glInternalFormat = GL_COMPRESSED_RGB8_ETC2; break; // NOTE: Requires OpenGL ES 3.0 or OpenGL 4.3 + case RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: if (RLGL.ExtSupported.texCompETC2) *glInternalFormat = GL_COMPRESSED_RGBA8_ETC2_EAC; break; // NOTE: Requires OpenGL ES 3.0 or OpenGL 4.3 + case RL_PIXELFORMAT_COMPRESSED_PVRT_RGB: if (RLGL.ExtSupported.texCompPVRT) *glInternalFormat = GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG; break; // NOTE: Requires PowerVR GPU + case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: if (RLGL.ExtSupported.texCompPVRT) *glInternalFormat = GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; break; // NOTE: Requires PowerVR GPU + case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: if (RLGL.ExtSupported.texCompASTC) *glInternalFormat = GL_COMPRESSED_RGBA_ASTC_4x4_KHR; break; // NOTE: Requires OpenGL ES 3.1 or OpenGL 4.3 + case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: if (RLGL.ExtSupported.texCompASTC) *glInternalFormat = GL_COMPRESSED_RGBA_ASTC_8x8_KHR; break; // NOTE: Requires OpenGL ES 3.1 or OpenGL 4.3 + #endif + default: TRACELOG(RL_LOG_WARNING, "TEXTURE: Current format not supported (%i)", format); break; + } +} + +// Unload texture from GPU memory +void rlUnloadTexture(unsigned int id) +{ + glDeleteTextures(1, &id); +} + +// Generate mipmap data for selected texture +// NOTE: Only supports GPU mipmap generation +void rlGenTextureMipmaps(unsigned int id, int width, int height, int format, int *mipmaps) +{ + if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return; } + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindTexture(GL_TEXTURE_2D, id); + + // Check if texture is power-of-two (POT) + bool texIsPOT = false; + + if (((width > 0) && ((width & (width - 1)) == 0)) && + ((height > 0) && ((height & (height - 1)) == 0))) texIsPOT = true; + + if ((texIsPOT) || (RLGL.ExtSupported.texNPOT)) + { + //glHint(GL_GENERATE_MIPMAP_HINT, GL_DONT_CARE); // Hint for mipmaps generation algorithm: GL_FASTEST, GL_NICEST, GL_DONT_CARE + glGenerateMipmap(GL_TEXTURE_2D); // Generate mipmaps automatically + + #define MIN(a,b) (((a)<(b))? (a):(b)) + #define MAX(a,b) (((a)>(b))? (a):(b)) + + *mipmaps = 1 + (int)floor(log(MAX(width, height))/log(2)); + TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Mipmaps generated automatically, total: %i", id, *mipmaps); + } + else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Failed to generate mipmaps", id); + + glBindTexture(GL_TEXTURE_2D, 0); +#else + TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] GPU mipmap generation not supported", id); +#endif +} + +// Read texture pixel data +void *rlReadTexturePixels(unsigned int id, int width, int height, int format) +{ + void *pixels = NULL; + +#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + glBindTexture(GL_TEXTURE_2D, id); + + // NOTE: Using texture id, some texture info can be retrieved (but not on OpenGL ES 2.0) + // Possible texture info: GL_TEXTURE_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE + //int width, height, format; + //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &width); + //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &height); + //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_INTERNAL_FORMAT, &format); + + // NOTE: Each row written to or read from by OpenGL pixel operations like glGetTexImage are aligned to a 4 byte boundary by default, which may add some padding + // Use glPixelStorei to modify padding with the GL_[UN]PACK_ALIGNMENT setting + // GL_PACK_ALIGNMENT affects operations that read from OpenGL memory (glReadPixels, glGetTexImage, etc.) + // GL_UNPACK_ALIGNMENT affects operations that write to OpenGL memory (glTexImage, etc.) + glPixelStorei(GL_PACK_ALIGNMENT, 1); + + unsigned int glInternalFormat, glFormat, glType; + rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); + unsigned int size = rlGetPixelDataSize(width, height, format); + + if ((glInternalFormat != 0) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB)) + { + pixels = RL_CALLOC(size, 1); + glGetTexImage(GL_TEXTURE_2D, 0, glFormat, glType, pixels); + } + else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Data retrieval not suported for pixel format (%i)", id, format); + + glBindTexture(GL_TEXTURE_2D, 0); +#endif + +#if defined(GRAPHICS_API_OPENGL_ES2) + // glGetTexImage() is not available on OpenGL ES 2.0 + // Texture width and height are required on OpenGL ES 2.0, there is no way to get it from texture id + // Two possible Options: + // 1 - Bind texture to color fbo attachment and glReadPixels() + // 2 - Create an fbo, activate it, render quad with texture, glReadPixels() + // Using Option 1, care for texture format on retrieval + // NOTE: This behaviour could be conditioned by graphic driver... + unsigned int fboId = rlLoadFramebuffer(); + + glBindFramebuffer(GL_FRAMEBUFFER, fboId); + glBindTexture(GL_TEXTURE_2D, 0); + + // Attach our texture to FBO + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, id, 0); + + // Reading data as RGBA because FBO texture is configured as RGBA, despite binding another texture format + pixels = RL_CALLOC(rlGetPixelDataSize(width, height, RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8), 1); + glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, pixels); + + glBindFramebuffer(GL_FRAMEBUFFER, 0); + + // Clean up temporal fbo + rlUnloadFramebuffer(fboId); +#endif + + return pixels; +} + +// Copy framebuffer pixel data to internal buffer +void rlCopyFramebuffer(int x, int y, int width, int height, int format, void *pixels) +{ +#if defined(GRAPHICS_API_OPENGL_SOFTWARE) + unsigned int glInternalFormat, glFormat, glType; + rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); // Get OpenGL texture format + swReadPixels(x, y, width, height, glFormat, glType, pixels); +#endif +} + +// Resize internal framebuffer +void rlResizeFramebuffer(int width, int height) +{ +#if defined(GRAPHICS_API_OPENGL_SOFTWARE) + swResize(width, height); +#endif +} + +// Read screen pixel data (color buffer) +unsigned char *rlReadScreenPixels(int width, int height) +{ + unsigned char *imgData = (unsigned char *)RL_CALLOC(width*height*4, sizeof(unsigned char)); + + // NOTE: glReadPixels() returns image flipped vertically -> (0,0) is the bottom left corner of the framebuffer + // WARNING: Getting alpha channel! Be careful, it can be transparent if not cleared properly! + glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, imgData); + + // Flip image vertically + // NOTE: Alpha value has already been applied to RGB in framebuffer, not needed anymore + for (int y = height - 1; y >= height/2; y--) + { + for (int x = 0; x < (width*4); x += 4) + { + unsigned int s = ((height - 1) - y)*width*4 + x; + unsigned int e = y*width*4 + x; + + unsigned char r = imgData[s]; + unsigned char g = imgData[s+1]; + unsigned char b = imgData[s+2]; + + imgData[s] = imgData[e]; + imgData[s+1] = imgData[e+1]; + imgData[s+2] = imgData[e+2]; + imgData[s+3] = 255; // Set alpha component value to 255 (no trasparent image retrieval) + + imgData[e] = r; + imgData[e+1] = g; + imgData[e+2] = b; + imgData[e+3] = 255; // Ditto + } + } + + return imgData; // NOTE: image data should be freed +} + +// Framebuffer management (fbo) +//----------------------------------------------------------------------------------------- +// Load a framebuffer to be used for rendering +// NOTE: No textures attached +unsigned int rlLoadFramebuffer(void) +{ + unsigned int fboId = 0; + if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return fboId; } + +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) || defined(GRAPHICS_API_OPENGL_SOFTWARE)) + glGenFramebuffers(1, &fboId); // Create the framebuffer object + glBindFramebuffer(GL_FRAMEBUFFER, 0); // Unbind any framebuffer +#endif + + return fboId; +} + +// Attach color buffer texture to a framebuffer object (unloads previous attachment) +// NOTE: Attach type: 0-Color, 1-Depth renderbuffer, 2-Depth texture +void rlFramebufferAttach(unsigned int id, unsigned int texId, int attachType, int texType, int mipLevel) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) || defined(GRAPHICS_API_OPENGL_SOFTWARE)) + glBindFramebuffer(GL_FRAMEBUFFER, id); + + switch (attachType) + { + case RL_ATTACHMENT_COLOR_CHANNEL0: + case RL_ATTACHMENT_COLOR_CHANNEL1: + case RL_ATTACHMENT_COLOR_CHANNEL2: + case RL_ATTACHMENT_COLOR_CHANNEL3: + case RL_ATTACHMENT_COLOR_CHANNEL4: + case RL_ATTACHMENT_COLOR_CHANNEL5: + case RL_ATTACHMENT_COLOR_CHANNEL6: + case RL_ATTACHMENT_COLOR_CHANNEL7: + { + if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_TEXTURE_2D, texId, mipLevel); + else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_RENDERBUFFER, texId); + else if (texType >= RL_ATTACHMENT_CUBEMAP_POSITIVE_X) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_TEXTURE_CUBE_MAP_POSITIVE_X + texType, texId, mipLevel); + } break; + case RL_ATTACHMENT_DEPTH: + { + if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, texId, mipLevel); + else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, texId); + } break; + case RL_ATTACHMENT_STENCIL: + { + if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_TEXTURE_2D, texId, mipLevel); + else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, texId); + } break; + default: break; + } + + glBindFramebuffer(GL_FRAMEBUFFER, 0); +#endif +} + +// Verify render texture is complete +bool rlFramebufferComplete(unsigned int id) +{ + bool result = false; + +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) || defined(GRAPHICS_API_OPENGL_SOFTWARE)) + glBindFramebuffer(GL_FRAMEBUFFER, id); + + GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); + + if (status != GL_FRAMEBUFFER_COMPLETE) + { + switch (status) + { + case GL_FRAMEBUFFER_UNSUPPORTED: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer is unsupported", id); break; + case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer has incomplete attachment", id); break; +#if defined(GRAPHICS_API_OPENGL_ES2) + case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer has incomplete dimensions", id); break; +#endif + case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer has a missing attachment", id); break; + default: break; + } + } + + glBindFramebuffer(GL_FRAMEBUFFER, 0); + + result = (status == GL_FRAMEBUFFER_COMPLETE); +#endif + + return result; +} + +// Unload framebuffer from GPU memory +// NOTE: All attached textures/cubemaps/renderbuffers are also deleted +void rlUnloadFramebuffer(unsigned int id) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) || defined(GRAPHICS_API_OPENGL_SOFTWARE)) + // Query depth attachment to automatically delete texture/renderbuffer + int depthType = 0; + glBindFramebuffer(GL_FRAMEBUFFER, id); // Bind framebuffer to query depth texture type + glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &depthType); + + // WARNING: WebGL: INVALID_ENUM: getFramebufferAttachmentParameter: invalid parameter name + // REF: https://registry.khronos.org/webgl/specs/latest/1.0/ + int depthId = 0; + glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, &depthId); + + unsigned int depthIdU = (unsigned int)depthId; + if (depthType == GL_RENDERBUFFER) glDeleteRenderbuffers(1, &depthIdU); + else if (depthType == GL_TEXTURE) glDeleteTextures(1, &depthIdU); + + // NOTE: If a texture object is deleted while its image is attached to the *currently bound* framebuffer, + // the texture image is automatically detached from the currently bound framebuffer + + glBindFramebuffer(GL_FRAMEBUFFER, 0); + glDeleteFramebuffers(1, &id); + + TRACELOG(RL_LOG_INFO, "FBO: [ID %i] Unloaded framebuffer from VRAM (GPU)", id); +#endif +} + +// Vertex data management +//----------------------------------------------------------------------------------------- +// Load a new attributes buffer +unsigned int rlLoadVertexBuffer(const void *buffer, int size, bool dynamic) +{ + unsigned int id = 0; + if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return id; } + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glGenBuffers(1, &id); + glBindBuffer(GL_ARRAY_BUFFER, id); + glBufferData(GL_ARRAY_BUFFER, size, buffer, dynamic? GL_DYNAMIC_DRAW : GL_STATIC_DRAW); +#endif + + return id; +} + +// Load a new attributes element buffer +unsigned int rlLoadVertexBufferElement(const void *buffer, int size, bool dynamic) +{ + unsigned int id = 0; + if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return id; } + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glGenBuffers(1, &id); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, size, buffer, dynamic? GL_DYNAMIC_DRAW : GL_STATIC_DRAW); +#endif + + return id; +} + +// Enable vertex buffer (VBO) +void rlEnableVertexBuffer(unsigned int id) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindBuffer(GL_ARRAY_BUFFER, id); +#endif +} + +// Disable vertex buffer (VBO) +void rlDisableVertexBuffer(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindBuffer(GL_ARRAY_BUFFER, 0); +#endif +} + +// Enable vertex buffer element (VBO element) +void rlEnableVertexBufferElement(unsigned int id) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id); +#endif +} + +// Disable vertex buffer element (VBO element) +void rlDisableVertexBufferElement(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); +#endif +} + +// Update vertex buffer with new data +// NOTE: dataSize and offset must be provided in bytes +void rlUpdateVertexBuffer(unsigned int id, const void *data, int dataSize, int offset) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindBuffer(GL_ARRAY_BUFFER, id); + glBufferSubData(GL_ARRAY_BUFFER, offset, dataSize, data); +#endif +} + +// Update vertex buffer elements with new data +// NOTE: dataSize and offset must be provided in bytes +void rlUpdateVertexBufferElements(unsigned int id, const void *data, int dataSize, int offset) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id); + glBufferSubData(GL_ELEMENT_ARRAY_BUFFER, offset, dataSize, data); +#endif +} + +// Enable vertex array object (VAO) +bool rlEnableVertexArray(unsigned int vaoId) +{ + bool result = false; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if (RLGL.ExtSupported.vao) + { + glBindVertexArray(vaoId); + result = true; + } +#endif + return result; +} + +// Disable vertex array object (VAO) +void rlDisableVertexArray(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if (RLGL.ExtSupported.vao) glBindVertexArray(0); +#endif +} + +// Enable vertex attribute index +void rlEnableVertexAttribute(unsigned int index) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glEnableVertexAttribArray(index); +#endif +} + +// Disable vertex attribute index +void rlDisableVertexAttribute(unsigned int index) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glDisableVertexAttribArray(index); +#endif +} + +// Draw vertex array +void rlDrawVertexArray(int offset, int count) +{ + glDrawArrays(GL_TRIANGLES, offset, count); +} + +// Draw vertex array elements +void rlDrawVertexArrayElements(int offset, int count, const void *buffer) +{ + // NOTE: Added pointer math separately from function to avoid UBSAN complaining + unsigned short *bufferPtr = (unsigned short *)buffer; + if (offset > 0) bufferPtr += offset; + + glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)bufferPtr); +} + +// Draw vertex array instanced +void rlDrawVertexArrayInstanced(int offset, int count, int instances) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glDrawArraysInstanced(GL_TRIANGLES, offset, count, instances); +#endif +} + +// Draw vertex array elements instanced +void rlDrawVertexArrayElementsInstanced(int offset, int count, const void *buffer, int instances) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // NOTE: Added pointer math separately from function to avoid UBSAN complaining + unsigned short *bufferPtr = (unsigned short *)buffer; + if (offset > 0) bufferPtr += offset; + + glDrawElementsInstanced(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)bufferPtr, instances); +#endif +} + +// Enable vertex state pointer +void rlEnableStatePointer(int vertexAttribType, void *buffer) +{ +#if defined(GRAPHICS_API_OPENGL_11) + if (buffer != NULL) glEnableClientState(vertexAttribType); + switch (vertexAttribType) + { + case GL_VERTEX_ARRAY: glVertexPointer(3, GL_FLOAT, 0, buffer); break; + case GL_TEXTURE_COORD_ARRAY: glTexCoordPointer(2, GL_FLOAT, 0, buffer); break; + case GL_NORMAL_ARRAY: if (buffer != NULL) glNormalPointer(GL_FLOAT, 0, buffer); break; + case GL_COLOR_ARRAY: if (buffer != NULL) glColorPointer(4, GL_UNSIGNED_BYTE, 0, buffer); break; + //case GL_INDEX_ARRAY: if (buffer != NULL) glIndexPointer(GL_SHORT, 0, buffer); break; // Indexed colors + default: break; + } +#endif +} + +// Disable vertex state pointer +void rlDisableStatePointer(int vertexAttribType) +{ +#if defined(GRAPHICS_API_OPENGL_11) + glDisableClientState(vertexAttribType); +#endif +} + +// Load vertex array object (VAO) +unsigned int rlLoadVertexArray(void) +{ + unsigned int vaoId = 0; + if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return vaoId; } + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if (RLGL.ExtSupported.vao) glGenVertexArrays(1, &vaoId); +#endif + + return vaoId; +} + +// Set vertex attribute +void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, int offset) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // NOTE: Data type could be: GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT + // Additional types (depends on OpenGL version or extensions): + // - GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, + // - GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_10F_11F_11F_REV + + size_t offsetNative = offset; + glVertexAttribPointer(index, compSize, type, normalized, stride, (void *)offsetNative); +#endif +} + +// Set vertex attribute divisor +void rlSetVertexAttributeDivisor(unsigned int index, int divisor) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glVertexAttribDivisor(index, divisor); +#endif +} + +// Unload vertex array object (VAO) +void rlUnloadVertexArray(unsigned int vaoId) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if (RLGL.ExtSupported.vao) + { + glBindVertexArray(0); + glDeleteVertexArrays(1, &vaoId); + TRACELOG(RL_LOG_INFO, "VAO: [ID %i] Unloaded vertex array data from VRAM (GPU)", vaoId); + } +#endif +} + +// Unload vertex buffer (VBO) +void rlUnloadVertexBuffer(unsigned int vboId) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glDeleteBuffers(1, &vboId); + //TRACELOG(RL_LOG_INFO, "VBO: Unloaded vertex data from VRAM (GPU)"); +#endif +} + +// Shaders management +//----------------------------------------------------------------------------------------------- +// Load (compile) shader and return shader id +unsigned int rlLoadShader(const char *code, int type) +{ + unsigned int shaderId = 0; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + shaderId = glCreateShader(type); + glShaderSource(shaderId, 1, &code, NULL); + + GLint success = 0; + glCompileShader(shaderId); + glGetShaderiv(shaderId, GL_COMPILE_STATUS, &success); + + if (success == GL_FALSE) + { + switch (type) + { + case GL_VERTEX_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile vertex shader code", shaderId); break; + case GL_FRAGMENT_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile fragment shader code", shaderId); break; + //case GL_GEOMETRY_SHADER: + #if defined(GRAPHICS_API_OPENGL_43) + case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile compute shader code", shaderId); break; + #elif defined(GRAPHICS_API_OPENGL_33) + case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43", shaderId); break; + #endif + default: break; + } + + int maxLength = 0; + glGetShaderiv(shaderId, GL_INFO_LOG_LENGTH, &maxLength); + + if (maxLength > 0) + { + int length = 0; + char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); + glGetShaderInfoLog(shaderId, maxLength, &length, log); + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Compile error: %s", shaderId, log); + RL_FREE(log); + } + + // Unload object allocated by glCreateShader(), + // despite failing in the compilation process + glDeleteShader(shaderId); + shaderId = 0; + } + else + { + switch (type) + { + case GL_VERTEX_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Vertex shader compiled successfully", shaderId); break; + case GL_FRAGMENT_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Fragment shader compiled successfully", shaderId); break; + //case GL_GEOMETRY_SHADER: + #if defined(GRAPHICS_API_OPENGL_43) + case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader compiled successfully", shaderId); break; + #elif defined(GRAPHICS_API_OPENGL_33) + case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43", shaderId); break; + #endif + default: break; + } + } +#endif + + return shaderId; +} + +// Load shader program from code strings +// NOTE: If shader string is NULL, using default vertex/fragment shaders +unsigned int rlLoadShaderProgram(const char *vsCode, const char *fsCode) +{ + unsigned int id = 0; // Shader program id + if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return id; } + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + unsigned int vertexShaderId = 0; + unsigned int fragmentShaderId = 0; + + // Compile vertex shader (if provided) + // NOTE: If not vertex shader is provided, use default one + if (vsCode != NULL) vertexShaderId = rlLoadShader(vsCode, GL_VERTEX_SHADER); + else vertexShaderId = RLGL.State.defaultVShaderId; + + // Compile fragment shader (if provided) + // NOTE: If not vertex shader is provided, use default one + if (fsCode != NULL) fragmentShaderId = rlLoadShader(fsCode, GL_FRAGMENT_SHADER); + else fragmentShaderId = RLGL.State.defaultFShaderId; + + // In case vertex and fragment shader are the default ones, no need to recompile, assign the default shader program id + if ((vertexShaderId == RLGL.State.defaultVShaderId) && (fragmentShaderId == RLGL.State.defaultFShaderId)) id = RLGL.State.defaultShaderId; + else if ((vertexShaderId > 0) && (fragmentShaderId > 0)) + { + // One of or both shader are new, a new shader program needs to be compiled + id = rlLoadShaderProgramEx(vertexShaderId, fragmentShaderId); + + // Detaching and deleting vertex/fragment shaders (if not default ones) + // WARNING: Detach shader before deletion to make sure memory is freed + if (vertexShaderId != RLGL.State.defaultVShaderId) + { + // WARNING: Shader program linkage could fail and returned id is 0 + if (id > 0) glDetachShader(id, vertexShaderId); + glDeleteShader(vertexShaderId); + } + if (fragmentShaderId != RLGL.State.defaultFShaderId) + { + // WARNING: Shader program linkage could fail and returned id is 0 + if (id > 0) glDetachShader(id, fragmentShaderId); + glDeleteShader(fragmentShaderId); + } + + // In case shader program loading failed, assign default shader + if (id == 0) + { + // In case shader loading fails, reassigning default shader + TRACELOG(RL_LOG_WARNING, "SHADER: Failed to load custom shader code, using default shader"); + id = RLGL.State.defaultShaderId; + } + /* + else + { + // Get available shader uniforms + // NOTE: This information is useful for debug... + int uniformCount = -1; + glGetProgramiv(id, GL_ACTIVE_UNIFORMS, &uniformCount); + + for (int i = 0; i < uniformCount; i++) + { + int namelen = -1; + int num = -1; + char name[256] = { 0 }; // Assume no variable names longer than 256 + GLenum type = GL_ZERO; + + // Get the name of the uniforms + glGetActiveUniform(id, i, sizeof(name) - 1, &namelen, &num, &type, name); + + name[namelen] = 0; + TRACELOG(RL_LOG_DEBUG, "SHADER: [ID %i] Active uniform (%s) set at location: %i", id, name, glGetUniformLocation(id, name)); + } + } + */ + } +#endif + + return id; +} + +// Load shader program from already loaded shader ids +unsigned int rlLoadShaderProgramEx(unsigned int vsId, unsigned int fsId) +{ + unsigned int programId = 0; + if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return programId; } + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + GLint success = 0; + programId = glCreateProgram(); + + glAttachShader(programId, vsId); + glAttachShader(programId, fsId); + + // Default attribute shader locations must be bound before linking + // NOTE: There is no problem with binding a generic attribute index to an attribute variable name + // that is never used; if some attrib name is no found on the shader, it locations becomes -1 + glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION); + glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD); + glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL, RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL); + glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR, RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR); + glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT, RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT); + glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2); + glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_INSTANCETRANSFORM, RL_DEFAULT_SHADER_ATTRIB_NAME_INSTANCETRANSFORM); + glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEINDICES, RL_DEFAULT_SHADER_ATTRIB_NAME_BONEINDICES); + glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS, RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS); + + glLinkProgram(programId); + + // NOTE: All uniform variables are intitialised to 0 when a program links + + glGetProgramiv(programId, GL_LINK_STATUS, &success); + + if (success == GL_FALSE) + { + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to link shader program", programId); + + int maxLength = 0; + glGetProgramiv(programId, GL_INFO_LOG_LENGTH, &maxLength); + + if (maxLength > 0) + { + int length = 0; + char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); + glGetProgramInfoLog(programId, maxLength, &length, log); + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Link error: %s", programId, log); + RL_FREE(log); + } + + glDeleteProgram(programId); + + programId = 0; + } + else + { + // Get the size of compiled shader program (not available on OpenGL ES 2.0) + // NOTE: If GL_LINK_STATUS is GL_FALSE, program binary length is zero + //GLint binarySize = 0; + //glGetProgramiv(id, GL_PROGRAM_BINARY_LENGTH, &binarySize); + + TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Program shader loaded successfully", programId); + } +#endif + return programId; +} + +// Load compute shader program +unsigned int rlLoadShaderProgramCompute(unsigned int csId) +{ + unsigned int programId = 0; + +#if defined(GRAPHICS_API_OPENGL_43) + GLint success = 0; + programId = glCreateProgram(); + + glAttachShader(programId, csId); + + glLinkProgram(programId); + + // NOTE: All uniform variables are intitialised to 0 when a program links + + glGetProgramiv(programId, GL_LINK_STATUS, &success); + + if (success == GL_FALSE) + { + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to link compute shader program", programId); + + int maxLength = 0; + glGetProgramiv(programId, GL_INFO_LOG_LENGTH, &maxLength); + + if (maxLength > 0) + { + int length = 0; + char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); + glGetProgramInfoLog(programId, maxLength, &length, log); + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Link error: %s", programId, log); + RL_FREE(log); + } + + glDeleteProgram(programId); + + programId = 0; + } + else + { + // Get the size of compiled shader program (not available on OpenGL ES 2.0) + // NOTE: If GL_LINK_STATUS is GL_FALSE, program binary length is zero + //GLint binarySize = 0; + //glGetProgramiv(id, GL_PROGRAM_BINARY_LENGTH, &binarySize); + + TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader program loaded successfully", programId); + } +#else + TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not supported, enable GRAPHICS_API_OPENGL_43"); +#endif + + return programId; +} + +// Delete shader +void rlUnloadShader(unsigned int id) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glDeleteShader(id); + + TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Unloaded shader data from VRAM (GPU)", id); +#endif +} + +// Unload shader program +void rlUnloadShaderProgram(unsigned int id) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glDeleteProgram(id); + + TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Unloaded shader program data from VRAM (GPU)", id); +#endif +} + +// Get shader location uniform +// NOTE: First parameter refers to shader program id +int rlGetLocationUniform(unsigned int id, const char *uniformName) +{ + int location = -1; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + location = glGetUniformLocation(id, uniformName); + + //if (location == -1) TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to find shader uniform: %s", shaderId, uniformName); + //else TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Shader uniform (%s) set at location: %i", shaderId, uniformName, location); +#endif + return location; +} + +// Get shader location attribute +// NOTE: First parameter refers to shader program id +int rlGetLocationAttrib(unsigned int id, const char *attribName) +{ + int location = -1; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + location = glGetAttribLocation(id, attribName); + + //if (location == -1) TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to find shader attribute: %s", shaderId, attribName); + //else TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Shader attribute (%s) set at location: %i", shaderId, attribName, location); +#endif + return location; +} + +// Set shader value uniform +void rlSetUniform(int locIndex, const void *value, int uniformType, int count) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + switch (uniformType) + { + case RL_SHADER_UNIFORM_FLOAT: glUniform1fv(locIndex, count, (float *)value); break; + case RL_SHADER_UNIFORM_VEC2: glUniform2fv(locIndex, count, (float *)value); break; + case RL_SHADER_UNIFORM_VEC3: glUniform3fv(locIndex, count, (float *)value); break; + case RL_SHADER_UNIFORM_VEC4: glUniform4fv(locIndex, count, (float *)value); break; + case RL_SHADER_UNIFORM_INT: glUniform1iv(locIndex, count, (int *)value); break; + case RL_SHADER_UNIFORM_IVEC2: glUniform2iv(locIndex, count, (int *)value); break; + case RL_SHADER_UNIFORM_IVEC3: glUniform3iv(locIndex, count, (int *)value); break; + case RL_SHADER_UNIFORM_IVEC4: glUniform4iv(locIndex, count, (int *)value); break; + #if !defined(GRAPHICS_API_OPENGL_ES2) + case RL_SHADER_UNIFORM_UINT: glUniform1uiv(locIndex, count, (unsigned int *)value); break; + case RL_SHADER_UNIFORM_UIVEC2: glUniform2uiv(locIndex, count, (unsigned int *)value); break; + case RL_SHADER_UNIFORM_UIVEC3: glUniform3uiv(locIndex, count, (unsigned int *)value); break; + case RL_SHADER_UNIFORM_UIVEC4: glUniform4uiv(locIndex, count, (unsigned int *)value); break; + #endif + case RL_SHADER_UNIFORM_SAMPLER2D: glUniform1iv(locIndex, count, (int *)value); break; + default: TRACELOG(RL_LOG_WARNING, "SHADER: Failed to set uniform value, data type not recognized"); + } +#endif +} + +// Set shader value attribute +void rlSetVertexAttributeDefault(int locIndex, const void *value, int attribType, int count) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + switch (attribType) + { + case RL_SHADER_ATTRIB_FLOAT: if (count == 1) glVertexAttrib1fv(locIndex, (float *)value); break; + case RL_SHADER_ATTRIB_VEC2: if (count == 2) glVertexAttrib2fv(locIndex, (float *)value); break; + case RL_SHADER_ATTRIB_VEC3: if (count == 3) glVertexAttrib3fv(locIndex, (float *)value); break; + case RL_SHADER_ATTRIB_VEC4: if (count == 4) glVertexAttrib4fv(locIndex, (float *)value); break; + default: TRACELOG(RL_LOG_WARNING, "SHADER: Failed to set attrib default value, data type not recognized"); + } +#endif +} + +// Set shader value uniform matrix +void rlSetUniformMatrix(int locIndex, Matrix mat) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glUniformMatrix4fv(locIndex, 1, false, rlMatrixToFloat(mat)); +#endif +} + +// Set shader value uniform matrix +void rlSetUniformMatrices(int locIndex, const Matrix *matrices, int count) +{ +#if defined(GRAPHICS_API_OPENGL_33) + glUniformMatrix4fv(locIndex, count, true, (const float *)matrices); +#elif defined(GRAPHICS_API_OPENGL_ES2) + // WARNING: WebGL does not support Matrix transpose ("true" parameter) + // REF: https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/uniformMatrix + glUniformMatrix4fv(locIndex, count, false, (const float *)matrices); +#endif +} + +// Set shader value uniform sampler +void rlSetUniformSampler(int locIndex, unsigned int textureId) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // Check if texture is already active + for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) + { + if (RLGL.State.activeTextureId[i] == textureId) + { + glUniform1i(locIndex, 1 + i); + return; + } + } + + // Register a new active texture for the internal batch system + // NOTE: Default texture is always activated as GL_TEXTURE0 + for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) + { + if (RLGL.State.activeTextureId[i] == 0) + { + glUniform1i(locIndex, 1 + i); // Activate new texture unit + RLGL.State.activeTextureId[i] = textureId; // Save texture id for binding on drawing + break; + } + } +#endif +} + +// Set shader currently active (id and locations) +void rlSetShader(unsigned int id, int *locs) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if (RLGL.State.currentShaderId != id) + { + rlDrawRenderBatch(RLGL.currentBatch); + RLGL.State.currentShaderId = id; + RLGL.State.currentShaderLocs = locs; + } +#endif +} + +// Dispatch compute shader (equivalent to *draw* for graphics pilepine) +void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned int groupZ) +{ +#if defined(GRAPHICS_API_OPENGL_43) + glDispatchCompute(groupX, groupY, groupZ); +#endif +} + +// Load shader storage buffer object (SSBO) +unsigned int rlLoadShaderBuffer(unsigned int size, const void *data, int usageHint) +{ + unsigned int ssbo = 0; + +#if defined(GRAPHICS_API_OPENGL_43) + glGenBuffers(1, &ssbo); + glBindBuffer(GL_SHADER_STORAGE_BUFFER, ssbo); + glBufferData(GL_SHADER_STORAGE_BUFFER, size, data, usageHint? usageHint : RL_STREAM_COPY); + if (data == NULL) glClearBufferData(GL_SHADER_STORAGE_BUFFER, GL_R8UI, GL_RED_INTEGER, GL_UNSIGNED_BYTE, NULL); // Clear buffer data to 0 + glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0); +#else + TRACELOG(RL_LOG_WARNING, "SSBO: SSBO not enabled. Define GRAPHICS_API_OPENGL_43"); +#endif + + return ssbo; +} + +// Unload shader storage buffer object (SSBO) +void rlUnloadShaderBuffer(unsigned int ssboId) +{ +#if defined(GRAPHICS_API_OPENGL_43) + glDeleteBuffers(1, &ssboId); +#else + TRACELOG(RL_LOG_WARNING, "SSBO: SSBO not enabled. Define GRAPHICS_API_OPENGL_43"); +#endif +} + +// Update SSBO buffer data +void rlUpdateShaderBuffer(unsigned int id, const void *data, unsigned int dataSize, unsigned int offset) +{ +#if defined(GRAPHICS_API_OPENGL_43) + glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); + glBufferSubData(GL_SHADER_STORAGE_BUFFER, offset, dataSize, data); +#endif +} + +// Get SSBO buffer size +unsigned int rlGetShaderBufferSize(unsigned int id) +{ + unsigned int result = 0; +#if defined(GRAPHICS_API_OPENGL_43) + GLint64 size = 0; + glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); + glGetBufferParameteri64v(GL_SHADER_STORAGE_BUFFER, GL_BUFFER_SIZE, &size); + if (size > 0) result = (unsigned int)size; +#endif + return result; +} + +// Read SSBO buffer data (GPU->CPU) +void rlReadShaderBuffer(unsigned int id, void *dest, unsigned int count, unsigned int offset) +{ +#if defined(GRAPHICS_API_OPENGL_43) + glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); + glGetBufferSubData(GL_SHADER_STORAGE_BUFFER, offset, count, dest); +#endif +} + +// Bind SSBO buffer +void rlBindShaderBuffer(unsigned int id, unsigned int index) +{ +#if defined(GRAPHICS_API_OPENGL_43) + glBindBufferBase(GL_SHADER_STORAGE_BUFFER, index, id); +#endif +} + +// Copy SSBO buffer data +void rlCopyShaderBuffer(unsigned int destId, unsigned int srcId, unsigned int destOffset, unsigned int srcOffset, unsigned int count) +{ +#if defined(GRAPHICS_API_OPENGL_43) + glBindBuffer(GL_COPY_READ_BUFFER, srcId); + glBindBuffer(GL_COPY_WRITE_BUFFER, destId); + glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, srcOffset, destOffset, count); +#endif +} + +// Bind image texture +void rlBindImageTexture(unsigned int id, unsigned int index, int format, bool readonly) +{ +#if defined(GRAPHICS_API_OPENGL_43) + unsigned int glInternalFormat = 0, glFormat = 0, glType = 0; + + rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); + glBindImageTexture(index, id, 0, 0, 0, readonly? GL_READ_ONLY : GL_READ_WRITE, glInternalFormat); +#else + TRACELOG(RL_LOG_WARNING, "TEXTURE: Image texture binding not enabled. Define GRAPHICS_API_OPENGL_43"); +#endif +} + +// Matrix state management +//----------------------------------------------------------------------------------------- +// Get internal modelview matrix +Matrix rlGetMatrixModelview(void) +{ + Matrix matrix = rlMatrixIdentity(); +#if defined(GRAPHICS_API_OPENGL_11) + float mat[16]; + glGetFloatv(GL_MODELVIEW_MATRIX, mat); + matrix.m0 = mat[0]; + matrix.m1 = mat[1]; + matrix.m2 = mat[2]; + matrix.m3 = mat[3]; + matrix.m4 = mat[4]; + matrix.m5 = mat[5]; + matrix.m6 = mat[6]; + matrix.m7 = mat[7]; + matrix.m8 = mat[8]; + matrix.m9 = mat[9]; + matrix.m10 = mat[10]; + matrix.m11 = mat[11]; + matrix.m12 = mat[12]; + matrix.m13 = mat[13]; + matrix.m14 = mat[14]; + matrix.m15 = mat[15]; +#else + matrix = RLGL.State.modelview; +#endif + return matrix; +} + +// Get internal projection matrix +Matrix rlGetMatrixProjection(void) +{ +#if defined(GRAPHICS_API_OPENGL_11) + float mat[16]; + glGetFloatv(GL_PROJECTION_MATRIX,mat); + Matrix m; + m.m0 = mat[0]; + m.m1 = mat[1]; + m.m2 = mat[2]; + m.m3 = mat[3]; + m.m4 = mat[4]; + m.m5 = mat[5]; + m.m6 = mat[6]; + m.m7 = mat[7]; + m.m8 = mat[8]; + m.m9 = mat[9]; + m.m10 = mat[10]; + m.m11 = mat[11]; + m.m12 = mat[12]; + m.m13 = mat[13]; + m.m14 = mat[14]; + m.m15 = mat[15]; + return m; +#else + return RLGL.State.projection; +#endif +} + +// Get internal accumulated transform matrix +Matrix rlGetMatrixTransform(void) +{ + Matrix mat = rlMatrixIdentity(); +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // TODO: Consider possible transform matrices in the RLGL.State.stack + //Matrix matStackTransform = rlMatrixIdentity(); + //for (int i = RLGL.State.stackCounter; i > 0; i--) matStackTransform = rlMatrixMultiply(RLGL.State.stack[i], matStackTransform); + + mat = RLGL.State.transform; +#endif + return mat; +} + +// Get internal projection matrix for stereo render (selected eye) +Matrix rlGetMatrixProjectionStereo(int eye) +{ + Matrix mat = rlMatrixIdentity(); +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + mat = RLGL.State.projectionStereo[eye]; +#endif + return mat; +} + +// Get internal view offset matrix for stereo render (selected eye) +Matrix rlGetMatrixViewOffsetStereo(int eye) +{ + Matrix mat = rlMatrixIdentity(); +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + mat = RLGL.State.viewOffsetStereo[eye]; +#endif + return mat; +} + +// Set a custom modelview matrix (replaces internal modelview matrix) +void rlSetMatrixModelview(Matrix view) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + RLGL.State.modelview = view; +#endif +} + +// Set a custom projection matrix (replaces internal projection matrix) +void rlSetMatrixProjection(Matrix projection) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + RLGL.State.projection = projection; +#endif +} + +// Set eyes projection matrices for stereo rendering +void rlSetMatrixProjectionStereo(Matrix right, Matrix left) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + RLGL.State.projectionStereo[0] = right; + RLGL.State.projectionStereo[1] = left; +#endif +} + +// Set eyes view offsets matrices for stereo rendering +void rlSetMatrixViewOffsetStereo(Matrix right, Matrix left) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + RLGL.State.viewOffsetStereo[0] = right; + RLGL.State.viewOffsetStereo[1] = left; +#endif +} + +// Load and draw a quad in NDC +void rlLoadDrawQuad(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + unsigned int quadVAO = 0; + unsigned int quadVBO = 0; + + float vertices[] = { + // Positions Texcoords + -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, + -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, + 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, + 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, + }; + + // Gen VAO to contain VBO + glGenVertexArrays(1, &quadVAO); + glBindVertexArray(quadVAO); + + // Gen and fill vertex buffer (VBO) + glGenBuffers(1, &quadVBO); + glBindBuffer(GL_ARRAY_BUFFER, quadVBO); + glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), &vertices, GL_STATIC_DRAW); + + // Bind vertex attributes (position, texcoords) + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, 3, GL_FLOAT, GL_FALSE, 5*sizeof(float), (void *)0); // Positions + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, 2, GL_FLOAT, GL_FALSE, 5*sizeof(float), (void *)(3*sizeof(float))); // Texcoords + + // Draw quad + glBindVertexArray(quadVAO); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); + glBindVertexArray(0); + + // Delete buffers (VBO and VAO) + glDeleteBuffers(1, &quadVBO); + glDeleteVertexArrays(1, &quadVAO); +#endif +} + +// Load and draw a cube in NDC +void rlLoadDrawCube(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + unsigned int cubeVAO = 0; + unsigned int cubeVBO = 0; + + float vertices[] = { + // Positions Normals Texcoords + -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, + 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f, + 1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f, + 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f, + -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, + -1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f, + -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, + 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, + 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, + 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, + -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, + -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, + -1.0f, 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, + -1.0f, 1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 1.0f, + -1.0f, -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, + -1.0f, -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, + -1.0f, -1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, + -1.0f, 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, + 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, + 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, + 1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, + 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, + 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, + 1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, + -1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f, + 1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 1.0f, + 1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f, + 1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f, + -1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, + -1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f, + -1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, + 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, + 1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, + 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, + -1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, + -1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f + }; + + // Gen VAO to contain VBO + glGenVertexArrays(1, &cubeVAO); + glBindVertexArray(cubeVAO); + + // Gen and fill vertex buffer (VBO) + glGenBuffers(1, &cubeVBO); + glBindBuffer(GL_ARRAY_BUFFER, cubeVBO); + glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); + + // Bind vertex attributes (position, normals, texcoords) + glBindVertexArray(cubeVAO); + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)0); // Positions + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)(3*sizeof(float))); // Normals + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, 2, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)(6*sizeof(float))); // Texcoords + glBindBuffer(GL_ARRAY_BUFFER, 0); + glBindVertexArray(0); + + // Draw cube + glBindVertexArray(cubeVAO); + glDrawArrays(GL_TRIANGLES, 0, 36); + glBindVertexArray(0); + + // Delete VBO and VAO + glDeleteBuffers(1, &cubeVBO); + glDeleteVertexArrays(1, &cubeVAO); +#endif +} + +// Get name string for pixel format +const char *rlGetPixelFormatName(unsigned int format) +{ + switch (format) + { + case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: return "GRAYSCALE"; break; // 8 bit per pixel (no alpha) + case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: return "GRAY_ALPHA"; break; // 8*2 bpp (2 channels) + case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: return "R5G6B5"; break; // 16 bpp + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: return "R8G8B8"; break; // 24 bpp + case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: return "R5G5B5A1"; break; // 16 bpp (1 bit alpha) + case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: return "R4G4B4A4"; break; // 16 bpp (4 bit alpha) + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: return "R8G8B8A8"; break; // 32 bpp + case RL_PIXELFORMAT_UNCOMPRESSED_R32: return "R32"; break; // 32 bpp (1 channel - float) + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: return "R32G32B32"; break; // 32*3 bpp (3 channels - float) + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: return "R32G32B32A32"; break; // 32*4 bpp (4 channels - float) + case RL_PIXELFORMAT_UNCOMPRESSED_R16: return "R16"; break; // 16 bpp (1 channel - half float) + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: return "R16G16B16"; break; // 16*3 bpp (3 channels - half float) + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: return "R16G16B16A16"; break; // 16*4 bpp (4 channels - half float) + case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: return "DXT1_RGB"; break; // 4 bpp (no alpha) + case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: return "DXT1_RGBA"; break; // 4 bpp (1 bit alpha) + case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: return "DXT3_RGBA"; break; // 8 bpp + case RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA: return "DXT5_RGBA"; break; // 8 bpp + case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: return "ETC1_RGB"; break; // 4 bpp + case RL_PIXELFORMAT_COMPRESSED_ETC2_RGB: return "ETC2_RGB"; break; // 4 bpp + case RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: return "ETC2_RGBA"; break; // 8 bpp + case RL_PIXELFORMAT_COMPRESSED_PVRT_RGB: return "PVRT_RGB"; break; // 4 bpp + case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: return "PVRT_RGBA"; break; // 4 bpp + case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: return "ASTC_4x4_RGBA"; break; // 8 bpp + case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: return "ASTC_8x8_RGBA"; break; // 2 bpp + default: return "UNKNOWN"; break; + } +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition +//---------------------------------------------------------------------------------- +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) +// Load default shader (just vertex positioning and texture coloring) +// NOTE: This shader program is used for internal buffers +// NOTE: Loaded: RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs +static void rlLoadShaderDefault(void) +{ + RLGL.State.defaultShaderLocs = (int *)RL_CALLOC(RL_MAX_SHADER_LOCATIONS, sizeof(int)); + + // NOTE: All locations must be reseted to -1 (no location) + for (int i = 0; i < RL_MAX_SHADER_LOCATIONS; i++) RLGL.State.defaultShaderLocs[i] = -1; + + // Vertex shader directly defined, no external file required + const char *defaultVShaderCode = +#if defined(GRAPHICS_API_OPENGL_21) + "#version 120 \n" + "attribute vec3 vertexPosition; \n" + "attribute vec2 vertexTexCoord; \n" + "attribute vec4 vertexColor; \n" + "varying vec2 fragTexCoord; \n" + "varying vec4 fragColor; \n" +#elif defined(GRAPHICS_API_OPENGL_33) + "#version 330 \n" + "in vec3 vertexPosition; \n" + "in vec2 vertexTexCoord; \n" + "in vec4 vertexColor; \n" + "out vec2 fragTexCoord; \n" + "out vec4 fragColor; \n" +#endif + +#if defined(GRAPHICS_API_OPENGL_ES3) + "#version 300 es \n" + "precision mediump float; \n" // Precision required for OpenGL ES3 (WebGL 2) (on some browsers) + "in vec3 vertexPosition; \n" + "in vec2 vertexTexCoord; \n" + "in vec4 vertexColor; \n" + "out vec2 fragTexCoord; \n" + "out vec4 fragColor; \n" +#elif defined(GRAPHICS_API_OPENGL_ES2) + "#version 100 \n" + "precision mediump float; \n" // Precision required for OpenGL ES2 (WebGL) (on some browsers) + "attribute vec3 vertexPosition; \n" + "attribute vec2 vertexTexCoord; \n" + "attribute vec4 vertexColor; \n" + "varying vec2 fragTexCoord; \n" + "varying vec4 fragColor; \n" +#endif + + "uniform mat4 mvp; \n" + "void main() \n" + "{ \n" + " fragTexCoord = vertexTexCoord; \n" + " fragColor = vertexColor; \n" + " gl_Position = mvp*vec4(vertexPosition, 1.0); \n" + "} \n"; + + // Fragment shader directly defined, no external file required + const char *defaultFShaderCode = +#if defined(GRAPHICS_API_OPENGL_21) + "#version 120 \n" + "varying vec2 fragTexCoord; \n" + "varying vec4 fragColor; \n" + "uniform sampler2D texture0; \n" + "uniform vec4 colDiffuse; \n" + "void main() \n" + "{ \n" + " vec4 texelColor = texture2D(texture0, fragTexCoord); \n" + " gl_FragColor = texelColor*colDiffuse*fragColor; \n" + "} \n"; +#elif defined(GRAPHICS_API_OPENGL_33) + "#version 330 \n" + "in vec2 fragTexCoord; \n" + "in vec4 fragColor; \n" + "out vec4 finalColor; \n" + "uniform sampler2D texture0; \n" + "uniform vec4 colDiffuse; \n" + "void main() \n" + "{ \n" + " vec4 texelColor = texture(texture0, fragTexCoord); \n" + " finalColor = texelColor*colDiffuse*fragColor; \n" + "} \n"; +#endif + +#if defined(GRAPHICS_API_OPENGL_ES3) + "#version 300 es \n" + "precision mediump float; \n" // Precision required for OpenGL ES3 (WebGL 2) + "in vec2 fragTexCoord; \n" + "in vec4 fragColor; \n" + "out vec4 finalColor; \n" + "uniform sampler2D texture0; \n" + "uniform vec4 colDiffuse; \n" + "void main() \n" + "{ \n" + " vec4 texelColor = texture(texture0, fragTexCoord); \n" + " finalColor = texelColor*colDiffuse*fragColor; \n" + "} \n"; +#elif defined(GRAPHICS_API_OPENGL_ES2) + "#version 100 \n" + "precision mediump float; \n" // Precision required for OpenGL ES2 (WebGL) + "varying vec2 fragTexCoord; \n" + "varying vec4 fragColor; \n" + "uniform sampler2D texture0; \n" + "uniform vec4 colDiffuse; \n" + "void main() \n" + "{ \n" + " vec4 texelColor = texture2D(texture0, fragTexCoord); \n" + " gl_FragColor = texelColor*colDiffuse*fragColor; \n" + "} \n"; +#endif + + // NOTE: Compiled vertex/fragment shaders are not deleted, + // they are kept for re-use as default shaders in case some shader loading fails + RLGL.State.defaultVShaderId = rlLoadShader(defaultVShaderCode, GL_VERTEX_SHADER); // Compile default vertex shader + RLGL.State.defaultFShaderId = rlLoadShader(defaultFShaderCode, GL_FRAGMENT_SHADER); // Compile default fragment shader + + RLGL.State.defaultShaderId = rlLoadShaderProgramEx(RLGL.State.defaultVShaderId, RLGL.State.defaultFShaderId); + + if (RLGL.State.defaultShaderId > 0) + { + TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Default shader loaded successfully", RLGL.State.defaultShaderId); + + // Set default shader locations: attributes locations + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_POSITION] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_COLOR] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR); + + // Set default shader locations: uniform locations + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_MATRIX_MVP] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_UNIFORM_NAME_MVP); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_COLOR_DIFFUSE] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_MAP_DIFFUSE] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0); + } + else TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to load default shader", RLGL.State.defaultShaderId); +} + +// Unload default shader +// NOTE: Unloads: RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs +static void rlUnloadShaderDefault(void) +{ + glUseProgram(0); + + glDetachShader(RLGL.State.defaultShaderId, RLGL.State.defaultVShaderId); + glDetachShader(RLGL.State.defaultShaderId, RLGL.State.defaultFShaderId); + glDeleteShader(RLGL.State.defaultVShaderId); + glDeleteShader(RLGL.State.defaultFShaderId); + + glDeleteProgram(RLGL.State.defaultShaderId); + + RL_FREE(RLGL.State.defaultShaderLocs); + + TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Default shader unloaded successfully", RLGL.State.defaultShaderId); +} + +#if RLGL_SHOW_GL_DETAILS_INFO +// Get compressed format official GL identifier name +static const char *rlGetCompressedFormatName(int format) +{ + switch (format) + { + // GL_EXT_texture_compression_s3tc + case 0x83F0: return "GL_COMPRESSED_RGB_S3TC_DXT1_EXT"; break; + case 0x83F1: return "GL_COMPRESSED_RGBA_S3TC_DXT1_EXT"; break; + case 0x83F2: return "GL_COMPRESSED_RGBA_S3TC_DXT3_EXT"; break; + case 0x83F3: return "GL_COMPRESSED_RGBA_S3TC_DXT5_EXT"; break; + // GL_3DFX_texture_compression_FXT1 + case 0x86B0: return "GL_COMPRESSED_RGB_FXT1_3DFX"; break; + case 0x86B1: return "GL_COMPRESSED_RGBA_FXT1_3DFX"; break; + // GL_IMG_texture_compression_pvrtc + case 0x8C00: return "GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG"; break; + case 0x8C01: return "GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG"; break; + case 0x8C02: return "GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG"; break; + case 0x8C03: return "GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG"; break; + // GL_OES_compressed_ETC1_RGB8_texture + case 0x8D64: return "GL_ETC1_RGB8_OES"; break; + // GL_ARB_texture_compression_rgtc + case 0x8DBB: return "GL_COMPRESSED_RED_RGTC1"; break; + case 0x8DBC: return "GL_COMPRESSED_SIGNED_RED_RGTC1"; break; + case 0x8DBD: return "GL_COMPRESSED_RG_RGTC2"; break; + case 0x8DBE: return "GL_COMPRESSED_SIGNED_RG_RGTC2"; break; + // GL_ARB_texture_compression_bptc + case 0x8E8C: return "GL_COMPRESSED_RGBA_BPTC_UNORM_ARB"; break; + case 0x8E8D: return "GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB"; break; + case 0x8E8E: return "GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB"; break; + case 0x8E8F: return "GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB"; break; + // GL_ARB_ES3_compatibility + case 0x9274: return "GL_COMPRESSED_RGB8_ETC2"; break; + case 0x9275: return "GL_COMPRESSED_SRGB8_ETC2"; break; + case 0x9276: return "GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"; break; + case 0x9277: return "GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"; break; + case 0x9278: return "GL_COMPRESSED_RGBA8_ETC2_EAC"; break; + case 0x9279: return "GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"; break; + case 0x9270: return "GL_COMPRESSED_R11_EAC"; break; + case 0x9271: return "GL_COMPRESSED_SIGNED_R11_EAC"; break; + case 0x9272: return "GL_COMPRESSED_RG11_EAC"; break; + case 0x9273: return "GL_COMPRESSED_SIGNED_RG11_EAC"; break; + // GL_KHR_texture_compression_astc_hdr + case 0x93B0: return "GL_COMPRESSED_RGBA_ASTC_4x4_KHR"; break; + case 0x93B1: return "GL_COMPRESSED_RGBA_ASTC_5x4_KHR"; break; + case 0x93B2: return "GL_COMPRESSED_RGBA_ASTC_5x5_KHR"; break; + case 0x93B3: return "GL_COMPRESSED_RGBA_ASTC_6x5_KHR"; break; + case 0x93B4: return "GL_COMPRESSED_RGBA_ASTC_6x6_KHR"; break; + case 0x93B5: return "GL_COMPRESSED_RGBA_ASTC_8x5_KHR"; break; + case 0x93B6: return "GL_COMPRESSED_RGBA_ASTC_8x6_KHR"; break; + case 0x93B7: return "GL_COMPRESSED_RGBA_ASTC_8x8_KHR"; break; + case 0x93B8: return "GL_COMPRESSED_RGBA_ASTC_10x5_KHR"; break; + case 0x93B9: return "GL_COMPRESSED_RGBA_ASTC_10x6_KHR"; break; + case 0x93BA: return "GL_COMPRESSED_RGBA_ASTC_10x8_KHR"; break; + case 0x93BB: return "GL_COMPRESSED_RGBA_ASTC_10x10_KHR"; break; + case 0x93BC: return "GL_COMPRESSED_RGBA_ASTC_12x10_KHR"; break; + case 0x93BD: return "GL_COMPRESSED_RGBA_ASTC_12x12_KHR"; break; + case 0x93D0: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR"; break; + case 0x93D1: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR"; break; + case 0x93D2: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR"; break; + case 0x93D3: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR"; break; + case 0x93D4: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR"; break; + case 0x93D5: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR"; break; + case 0x93D6: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR"; break; + case 0x93D7: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"; break; + case 0x93D8: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR"; break; + case 0x93D9: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR"; break; + case 0x93DA: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR"; break; + case 0x93DB: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"; break; + case 0x93DC: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"; break; + case 0x93DD: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"; break; + default: return "GL_COMPRESSED_UNKNOWN"; break; + } +} +#endif + +#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 + +// Get pixel data size in bytes (image or texture) +// NOTE: Size depends on pixel format +static int rlGetPixelDataSize(int width, int height, int format) +{ + int dataSize = 0; // Size in bytes + int bpp = 0; // Bits per pixel + + switch (format) + { + case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: bpp = 8; break; + case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: + case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: + case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: + case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: bpp = 16; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: bpp = 32; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: bpp = 24; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32: bpp = 32; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: bpp = 32*3; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: bpp = 32*4; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16: bpp = 16; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: bpp = 16*3; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: bpp = 16*4; break; + case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: + case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: + case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: + case RL_PIXELFORMAT_COMPRESSED_ETC2_RGB: + case RL_PIXELFORMAT_COMPRESSED_PVRT_RGB: + case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: // 8 bytes per each 4x4 block + { + int blockWidth = (width + 3)/4; + int blockHeight = (height + 3)/4; + dataSize = blockWidth*blockHeight*8; + } break; + case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: + case RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA: + case RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: + case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: // 16 bytes per each 4x4 block + { + int blockWidth = (width + 3)/4; + int blockHeight = (height + 3)/4; + dataSize = blockWidth*blockHeight*16; + } break; + case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: // 4 bytes per each 4x4 block + { + int blockWidth = (width + 3)/4; + int blockHeight = (height + 3)/4; + dataSize = blockWidth*blockHeight*4; + } break; + default: break; + } + + // Compute dataSize for uncompressed texture data (no blocks) + if ((format >= RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE) && + (format <= RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16)) + { + double bytesPerPixel = (double)bpp/8.0; + dataSize = (int)(bytesPerPixel*width*height); // Total data size in bytes + } + + return dataSize; +} + +// Auxiliar math functions +//------------------------------------------------------------------------------- +// Get identity matrix +static Matrix rlMatrixIdentity(void) +{ + Matrix matIdentity = { 0 }; + matIdentity.m0 = 1.0f; + matIdentity.m5 = 1.0f; + matIdentity.m10 = 1.0f; + matIdentity.m15 = 1.0f; + + return matIdentity; +} +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) +// Get float array of matrix data +// Explicit conversion to column-major memory layout +static rl_float16 rlMatrixToFloatV(Matrix mat) +{ + rl_float16 result = { 0 }; + + result.v[0] = mat.m0; + result.v[1] = mat.m1; + result.v[2] = mat.m2; + result.v[3] = mat.m3; + result.v[4] = mat.m4; + result.v[5] = mat.m5; + result.v[6] = mat.m6; + result.v[7] = mat.m7; + result.v[8] = mat.m8; + result.v[9] = mat.m9; + result.v[10] = mat.m10; + result.v[11] = mat.m11; + result.v[12] = mat.m12; + result.v[13] = mat.m13; + result.v[14] = mat.m14; + result.v[15] = mat.m15; + + return result; +} + +// Get two matrix multiplication +// NOTE: When multiplying matrices... the order matters! +static Matrix rlMatrixMultiply(Matrix left, Matrix right) +{ + Matrix result = { 0 }; + + result.m0 = left.m0*right.m0 + left.m1*right.m4 + left.m2*right.m8 + left.m3*right.m12; + result.m1 = left.m0*right.m1 + left.m1*right.m5 + left.m2*right.m9 + left.m3*right.m13; + result.m2 = left.m0*right.m2 + left.m1*right.m6 + left.m2*right.m10 + left.m3*right.m14; + result.m3 = left.m0*right.m3 + left.m1*right.m7 + left.m2*right.m11 + left.m3*right.m15; + result.m4 = left.m4*right.m0 + left.m5*right.m4 + left.m6*right.m8 + left.m7*right.m12; + result.m5 = left.m4*right.m1 + left.m5*right.m5 + left.m6*right.m9 + left.m7*right.m13; + result.m6 = left.m4*right.m2 + left.m5*right.m6 + left.m6*right.m10 + left.m7*right.m14; + result.m7 = left.m4*right.m3 + left.m5*right.m7 + left.m6*right.m11 + left.m7*right.m15; + result.m8 = left.m8*right.m0 + left.m9*right.m4 + left.m10*right.m8 + left.m11*right.m12; + result.m9 = left.m8*right.m1 + left.m9*right.m5 + left.m10*right.m9 + left.m11*right.m13; + result.m10 = left.m8*right.m2 + left.m9*right.m6 + left.m10*right.m10 + left.m11*right.m14; + result.m11 = left.m8*right.m3 + left.m9*right.m7 + left.m10*right.m11 + left.m11*right.m15; + result.m12 = left.m12*right.m0 + left.m13*right.m4 + left.m14*right.m8 + left.m15*right.m12; + result.m13 = left.m12*right.m1 + left.m13*right.m5 + left.m14*right.m9 + left.m15*right.m13; + result.m14 = left.m12*right.m2 + left.m13*right.m6 + left.m14*right.m10 + left.m15*right.m14; + result.m15 = left.m12*right.m3 + left.m13*right.m7 + left.m14*right.m11 + left.m15*right.m15; + + return result; +} + +// Transposes provided matrix +static Matrix rlMatrixTranspose(Matrix mat) +{ + Matrix result = { 0 }; + + result.m0 = mat.m0; + result.m1 = mat.m4; + result.m2 = mat.m8; + result.m3 = mat.m12; + result.m4 = mat.m1; + result.m5 = mat.m5; + result.m6 = mat.m9; + result.m7 = mat.m13; + result.m8 = mat.m2; + result.m9 = mat.m6; + result.m10 = mat.m10; + result.m11 = mat.m14; + result.m12 = mat.m3; + result.m13 = mat.m7; + result.m14 = mat.m11; + result.m15 = mat.m15; + + return result; +} + +// Invert provided matrix +static Matrix rlMatrixInvert(Matrix mat) +{ + Matrix result = { 0 }; + + // Cache the matrix values (speed optimization) + float a00 = mat.m0, a01 = mat.m1, a02 = mat.m2, a03 = mat.m3; + float a10 = mat.m4, a11 = mat.m5, a12 = mat.m6, a13 = mat.m7; + float a20 = mat.m8, a21 = mat.m9, a22 = mat.m10, a23 = mat.m11; + float a30 = mat.m12, a31 = mat.m13, a32 = mat.m14, a33 = mat.m15; + + float b00 = a00*a11 - a01*a10; + float b01 = a00*a12 - a02*a10; + float b02 = a00*a13 - a03*a10; + float b03 = a01*a12 - a02*a11; + float b04 = a01*a13 - a03*a11; + float b05 = a02*a13 - a03*a12; + float b06 = a20*a31 - a21*a30; + float b07 = a20*a32 - a22*a30; + float b08 = a20*a33 - a23*a30; + float b09 = a21*a32 - a22*a31; + float b10 = a21*a33 - a23*a31; + float b11 = a22*a33 - a23*a32; + + // Calculate the invert determinant (inlined to avoid double-caching) + float invDet = 1.0f/(b00*b11 - b01*b10 + b02*b09 + b03*b08 - b04*b07 + b05*b06); + + result.m0 = (a11*b11 - a12*b10 + a13*b09)*invDet; + result.m1 = (-a01*b11 + a02*b10 - a03*b09)*invDet; + result.m2 = (a31*b05 - a32*b04 + a33*b03)*invDet; + result.m3 = (-a21*b05 + a22*b04 - a23*b03)*invDet; + result.m4 = (-a10*b11 + a12*b08 - a13*b07)*invDet; + result.m5 = (a00*b11 - a02*b08 + a03*b07)*invDet; + result.m6 = (-a30*b05 + a32*b02 - a33*b01)*invDet; + result.m7 = (a20*b05 - a22*b02 + a23*b01)*invDet; + result.m8 = (a10*b10 - a11*b08 + a13*b06)*invDet; + result.m9 = (-a00*b10 + a01*b08 - a03*b06)*invDet; + result.m10 = (a30*b04 - a31*b02 + a33*b00)*invDet; + result.m11 = (-a20*b04 + a21*b02 - a23*b00)*invDet; + result.m12 = (-a10*b09 + a11*b07 - a12*b06)*invDet; + result.m13 = (a00*b09 - a01*b07 + a02*b06)*invDet; + result.m14 = (-a30*b03 + a31*b01 - a32*b00)*invDet; + result.m15 = (a20*b03 - a21*b01 + a22*b00)*invDet; + + return result; +} +#endif + +#endif // RLGL_IMPLEMENTATION diff --git a/.zig-cache/o/0de4590f4d43fe36199ba9809e5bbed7/rshapes.o b/.zig-cache/o/0de4590f4d43fe36199ba9809e5bbed7/rshapes.o new file mode 100644 index 0000000..65376f8 Binary files /dev/null and b/.zig-cache/o/0de4590f4d43fe36199ba9809e5bbed7/rshapes.o differ diff --git a/.zig-cache/o/0e4969a4f2fc023a1e0b8587beaf41e2/zig-frugg b/.zig-cache/o/0e4969a4f2fc023a1e0b8587beaf41e2/zig-frugg new file mode 100755 index 0000000..ddcad50 Binary files /dev/null and b/.zig-cache/o/0e4969a4f2fc023a1e0b8587beaf41e2/zig-frugg differ diff --git a/.zig-cache/o/1277cf9d634d29f6dddb84651b997d73/rmodels.o b/.zig-cache/o/1277cf9d634d29f6dddb84651b997d73/rmodels.o new file mode 100644 index 0000000..615befa Binary files /dev/null and b/.zig-cache/o/1277cf9d634d29f6dddb84651b997d73/rmodels.o differ diff --git a/.zig-cache/o/1345aeb7e3e4c785c0218565c9589517/rtext.o b/.zig-cache/o/1345aeb7e3e4c785c0218565c9589517/rtext.o new file mode 100644 index 0000000..e097312 Binary files /dev/null and b/.zig-cache/o/1345aeb7e3e4c785c0218565c9589517/rtext.o differ diff --git a/.zig-cache/o/1451ba024b0e0a532de0c2769ad92504/zig-frugg b/.zig-cache/o/1451ba024b0e0a532de0c2769ad92504/zig-frugg new file mode 100755 index 0000000..42e38af Binary files /dev/null and b/.zig-cache/o/1451ba024b0e0a532de0c2769ad92504/zig-frugg differ diff --git a/.zig-cache/o/1b22c10af03f9fdf2f0dde4bf9e44e7b/raudio.o b/.zig-cache/o/1b22c10af03f9fdf2f0dde4bf9e44e7b/raudio.o new file mode 100644 index 0000000..291aa8e Binary files /dev/null and b/.zig-cache/o/1b22c10af03f9fdf2f0dde4bf9e44e7b/raudio.o differ diff --git a/.zig-cache/o/1fa98ffbf0c61b2d24fcc6916194e5f5/rcore.o b/.zig-cache/o/1fa98ffbf0c61b2d24fcc6916194e5f5/rcore.o new file mode 100644 index 0000000..a086dc6 Binary files /dev/null and b/.zig-cache/o/1fa98ffbf0c61b2d24fcc6916194e5f5/rcore.o differ diff --git a/.zig-cache/o/30d6e8621de962d2180df51c6cbc56ac/raudio.o b/.zig-cache/o/30d6e8621de962d2180df51c6cbc56ac/raudio.o new file mode 100644 index 0000000..17678d2 Binary files /dev/null and b/.zig-cache/o/30d6e8621de962d2180df51c6cbc56ac/raudio.o differ diff --git a/.zig-cache/o/326e1b2ddee57e9e47113b3358a012fe/rshapes.o b/.zig-cache/o/326e1b2ddee57e9e47113b3358a012fe/rshapes.o new file mode 100644 index 0000000..c607586 Binary files /dev/null and b/.zig-cache/o/326e1b2ddee57e9e47113b3358a012fe/rshapes.o differ diff --git a/.zig-cache/o/3a56695e57c7d2f4d024bd36d8b6135a/build b/.zig-cache/o/3a56695e57c7d2f4d024bd36d8b6135a/build new file mode 100755 index 0000000..789cfbc Binary files /dev/null and b/.zig-cache/o/3a56695e57c7d2f4d024bd36d8b6135a/build differ diff --git a/.zig-cache/o/3f0653ee5084c26df38be3e5c616cdf5/raygui.o b/.zig-cache/o/3f0653ee5084c26df38be3e5c616cdf5/raygui.o new file mode 100644 index 0000000..edb99c7 Binary files /dev/null and b/.zig-cache/o/3f0653ee5084c26df38be3e5c616cdf5/raygui.o differ diff --git a/.zig-cache/o/4a370a33e939829d2b1c9523c229452b/rshapes.o b/.zig-cache/o/4a370a33e939829d2b1c9523c229452b/rshapes.o new file mode 100644 index 0000000..8a119c3 Binary files /dev/null and b/.zig-cache/o/4a370a33e939829d2b1c9523c229452b/rshapes.o differ diff --git a/.zig-cache/o/4f7c5535a0b4e6b31d45505b8251a4a7/rcore.o b/.zig-cache/o/4f7c5535a0b4e6b31d45505b8251a4a7/rcore.o new file mode 100644 index 0000000..593e6fd Binary files /dev/null and b/.zig-cache/o/4f7c5535a0b4e6b31d45505b8251a4a7/rcore.o differ diff --git a/.zig-cache/o/573dd74600dde178c50b3811d959b70f/rglfw.o b/.zig-cache/o/573dd74600dde178c50b3811d959b70f/rglfw.o new file mode 100644 index 0000000..e25a750 Binary files /dev/null and b/.zig-cache/o/573dd74600dde178c50b3811d959b70f/rglfw.o differ diff --git a/.zig-cache/o/640116ea8730bed096f3dd9e855a739d/rglfw.o b/.zig-cache/o/640116ea8730bed096f3dd9e855a739d/rglfw.o new file mode 100644 index 0000000..74b0372 Binary files /dev/null and b/.zig-cache/o/640116ea8730bed096f3dd9e855a739d/rglfw.o differ diff --git a/.zig-cache/o/6774b2f25595240bb469a8439790aef3/rcore.o b/.zig-cache/o/6774b2f25595240bb469a8439790aef3/rcore.o new file mode 100644 index 0000000..9a3bcba Binary files /dev/null and b/.zig-cache/o/6774b2f25595240bb469a8439790aef3/rcore.o differ diff --git a/.zig-cache/o/6b812c08cc864a4b2aaeff0bf41e5a67/rmodels.o b/.zig-cache/o/6b812c08cc864a4b2aaeff0bf41e5a67/rmodels.o new file mode 100644 index 0000000..81a2a19 Binary files /dev/null and b/.zig-cache/o/6b812c08cc864a4b2aaeff0bf41e5a67/rmodels.o differ diff --git a/.zig-cache/o/6e2082e860b9dc9fcf6c10636be493fe/rtext.o b/.zig-cache/o/6e2082e860b9dc9fcf6c10636be493fe/rtext.o new file mode 100644 index 0000000..a00c29d Binary files /dev/null and b/.zig-cache/o/6e2082e860b9dc9fcf6c10636be493fe/rtext.o differ diff --git a/.zig-cache/o/6ec34c0c056e76c2d2627e29e3d2e4ef/zig-frugg b/.zig-cache/o/6ec34c0c056e76c2d2627e29e3d2e4ef/zig-frugg new file mode 100755 index 0000000..0de8355 Binary files /dev/null and b/.zig-cache/o/6ec34c0c056e76c2d2627e29e3d2e4ef/zig-frugg differ diff --git a/.zig-cache/o/736d536f0b7b830d5909011eeec08887/zig-frugg b/.zig-cache/o/736d536f0b7b830d5909011eeec08887/zig-frugg new file mode 100755 index 0000000..c5db789 Binary files /dev/null and b/.zig-cache/o/736d536f0b7b830d5909011eeec08887/zig-frugg differ diff --git a/.zig-cache/o/7fe4a7cbe317740378708968ee1b85db/rtext.o b/.zig-cache/o/7fe4a7cbe317740378708968ee1b85db/rtext.o new file mode 100644 index 0000000..ed8aea1 Binary files /dev/null and b/.zig-cache/o/7fe4a7cbe317740378708968ee1b85db/rtext.o differ diff --git a/.zig-cache/o/84a662b3871c0d89148d0a9c9f8bd252/rtext.o b/.zig-cache/o/84a662b3871c0d89148d0a9c9f8bd252/rtext.o new file mode 100644 index 0000000..173e838 Binary files /dev/null and b/.zig-cache/o/84a662b3871c0d89148d0a9c9f8bd252/rtext.o differ diff --git a/.zig-cache/o/85c6bf762d93ccde7e0b5a5f29eebbd1/libraylib.a b/.zig-cache/o/85c6bf762d93ccde7e0b5a5f29eebbd1/libraylib.a new file mode 100644 index 0000000..f983453 Binary files /dev/null and b/.zig-cache/o/85c6bf762d93ccde7e0b5a5f29eebbd1/libraylib.a differ diff --git a/.zig-cache/o/85f2a5a927c45861ced76f7fcfbf8858/zig-frugg b/.zig-cache/o/85f2a5a927c45861ced76f7fcfbf8858/zig-frugg new file mode 100755 index 0000000..8385713 Binary files /dev/null and b/.zig-cache/o/85f2a5a927c45861ced76f7fcfbf8858/zig-frugg differ diff --git a/.zig-cache/o/87217d4d85a93b5ea69bbf310d47154e/dependencies.zig b/.zig-cache/o/87217d4d85a93b5ea69bbf310d47154e/dependencies.zig new file mode 100644 index 0000000..f0d75b5 --- /dev/null +++ b/.zig-cache/o/87217d4d85a93b5ea69bbf310d47154e/dependencies.zig @@ -0,0 +1,50 @@ +pub const packages = struct { + pub const @"N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF" = struct { + pub const build_root = "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF"; + pub const deps: []const struct { []const u8, []const u8 } = &.{}; + }; + pub const @"N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ" = struct { + pub const build_root = "/home/bd/Projects/zig/zig-frugg/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ"; + pub const deps: []const struct { []const u8, []const u8 } = &.{}; + }; + pub const @"N-V-__8AALShqgXkvqYU6f__FrA22SMWmi2TXCJjNTO1m8XJ" = struct { + pub const available = false; + }; + pub const @"raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb" = struct { + pub const build_root = "/home/bd/Projects/zig/zig-frugg/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb"; + pub const build_zig = @import("raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb"); + pub const deps: []const struct { []const u8, []const u8 } = &.{ + .{ "xcode_frameworks", "N-V-__8AALShqgXkvqYU6f__FrA22SMWmi2TXCJjNTO1m8XJ" }, + .{ "raygui", "N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF" }, + .{ "emsdk", "N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ" }, + .{ "zemscripten", "zemscripten-0.2.0-dev-sRlDqApRAACspTbAZnuNKWIzfWzSYgYkb2nWAXZ-tqqt" }, + }; + }; + pub const @"raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ" = struct { + pub const build_root = "/home/bd/Projects/zig/zig-frugg/zig-pkg/raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ"; + pub const build_zig = @import("raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ"); + pub const deps: []const struct { []const u8, []const u8 } = &.{ + .{ "raylib", "raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb" }, + .{ "raygui", "N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF" }, + .{ "emsdk", "N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ" }, + .{ "zemscripten", "zemscripten-0.2.0-dev-sRlDqEtQAAB_1tPdqJsxQIqXxvvklcFu6VN5p6ANy8hw" }, + }; + }; + pub const @"zemscripten-0.2.0-dev-sRlDqApRAACspTbAZnuNKWIzfWzSYgYkb2nWAXZ-tqqt" = struct { + pub const build_root = "/home/bd/Projects/zig/zig-frugg/zig-pkg/zemscripten-0.2.0-dev-sRlDqApRAACspTbAZnuNKWIzfWzSYgYkb2nWAXZ-tqqt"; + pub const build_zig = @import("zemscripten-0.2.0-dev-sRlDqApRAACspTbAZnuNKWIzfWzSYgYkb2nWAXZ-tqqt"); + pub const deps: []const struct { []const u8, []const u8 } = &.{ + }; + }; + pub const @"zemscripten-0.2.0-dev-sRlDqEtQAAB_1tPdqJsxQIqXxvvklcFu6VN5p6ANy8hw" = struct { + pub const build_root = "/home/bd/Projects/zig/zig-frugg/zig-pkg/zemscripten-0.2.0-dev-sRlDqEtQAAB_1tPdqJsxQIqXxvvklcFu6VN5p6ANy8hw"; + pub const build_zig = @import("zemscripten-0.2.0-dev-sRlDqEtQAAB_1tPdqJsxQIqXxvvklcFu6VN5p6ANy8hw"); + pub const deps: []const struct { []const u8, []const u8 } = &.{ + }; + }; +}; + +pub const root_deps: []const struct { []const u8, []const u8 } = &.{ + .{ "raylib_zig", "raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ" }, + .{ "emsdk", "N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ" }, +}; diff --git a/.zig-cache/o/87e332cbf9ae5fb65f1e4c257a9d089e/rtext.o b/.zig-cache/o/87e332cbf9ae5fb65f1e4c257a9d089e/rtext.o new file mode 100644 index 0000000..057b33e Binary files /dev/null and b/.zig-cache/o/87e332cbf9ae5fb65f1e4c257a9d089e/rtext.o differ diff --git a/.zig-cache/o/8ab2c427889f9ecdf61c51f389747de8/rtextures.o b/.zig-cache/o/8ab2c427889f9ecdf61c51f389747de8/rtextures.o new file mode 100644 index 0000000..64e0ccf Binary files /dev/null and b/.zig-cache/o/8ab2c427889f9ecdf61c51f389747de8/rtextures.o differ diff --git a/.zig-cache/o/8ff27265e020c9e87824b70e93d410c2/rglfw.o b/.zig-cache/o/8ff27265e020c9e87824b70e93d410c2/rglfw.o new file mode 100644 index 0000000..9db471b Binary files /dev/null and b/.zig-cache/o/8ff27265e020c9e87824b70e93d410c2/rglfw.o differ diff --git a/.zig-cache/o/90be52b94751e3e6af326a2ac00021af/raudio.o b/.zig-cache/o/90be52b94751e3e6af326a2ac00021af/raudio.o new file mode 100644 index 0000000..0008cd5 Binary files /dev/null and b/.zig-cache/o/90be52b94751e3e6af326a2ac00021af/raudio.o differ diff --git a/.zig-cache/o/9779bba265b40efa724f390368d3bc6e/rmodels.o b/.zig-cache/o/9779bba265b40efa724f390368d3bc6e/rmodels.o new file mode 100644 index 0000000..0d0d6cb Binary files /dev/null and b/.zig-cache/o/9779bba265b40efa724f390368d3bc6e/rmodels.o differ diff --git a/.zig-cache/o/9bcc0ae458ada236379cb9bc864ee426/rglfw.o b/.zig-cache/o/9bcc0ae458ada236379cb9bc864ee426/rglfw.o new file mode 100644 index 0000000..979903f Binary files /dev/null and b/.zig-cache/o/9bcc0ae458ada236379cb9bc864ee426/rglfw.o differ diff --git a/.zig-cache/o/9c49d8b1d1e07ead8e8d743629083fc4/libraylib.a b/.zig-cache/o/9c49d8b1d1e07ead8e8d743629083fc4/libraylib.a new file mode 100644 index 0000000..27b1233 Binary files /dev/null and b/.zig-cache/o/9c49d8b1d1e07ead8e8d743629083fc4/libraylib.a differ diff --git a/.zig-cache/o/9d02e5b9a62e18721ab13af551bf3c3e/raygui.o b/.zig-cache/o/9d02e5b9a62e18721ab13af551bf3c3e/raygui.o new file mode 100644 index 0000000..dd5f888 Binary files /dev/null and b/.zig-cache/o/9d02e5b9a62e18721ab13af551bf3c3e/raygui.o differ diff --git a/.zig-cache/o/a2a7408a4926cb3c459ba172cf03ca20/zig-frugg b/.zig-cache/o/a2a7408a4926cb3c459ba172cf03ca20/zig-frugg new file mode 100755 index 0000000..016904d Binary files /dev/null and b/.zig-cache/o/a2a7408a4926cb3c459ba172cf03ca20/zig-frugg differ diff --git a/.zig-cache/o/a3694f4287bafd874fd7f54664d82064/libraylib.a b/.zig-cache/o/a3694f4287bafd874fd7f54664d82064/libraylib.a new file mode 100644 index 0000000..8a679f5 Binary files /dev/null and b/.zig-cache/o/a3694f4287bafd874fd7f54664d82064/libraylib.a differ diff --git a/.zig-cache/o/a7ddc32124282af131f5bf2545810a65/zig-frugg b/.zig-cache/o/a7ddc32124282af131f5bf2545810a65/zig-frugg new file mode 100755 index 0000000..7ef1444 Binary files /dev/null and b/.zig-cache/o/a7ddc32124282af131f5bf2545810a65/zig-frugg differ diff --git a/.zig-cache/o/a7ddc32124282af131f5bf2545810a65/zig-frugg_zcu.o b/.zig-cache/o/a7ddc32124282af131f5bf2545810a65/zig-frugg_zcu.o new file mode 100644 index 0000000..638f6ff Binary files /dev/null and b/.zig-cache/o/a7ddc32124282af131f5bf2545810a65/zig-frugg_zcu.o differ diff --git a/.zig-cache/o/bca0ab7eb210d80fc10ccc915422527a/rmodels.o b/.zig-cache/o/bca0ab7eb210d80fc10ccc915422527a/rmodels.o new file mode 100644 index 0000000..641b2b1 Binary files /dev/null and b/.zig-cache/o/bca0ab7eb210d80fc10ccc915422527a/rmodels.o differ diff --git a/.zig-cache/o/bdb2d59080d5abddc63b93fd4d6a75b3/rtextures.o b/.zig-cache/o/bdb2d59080d5abddc63b93fd4d6a75b3/rtextures.o new file mode 100644 index 0000000..fec4ad6 Binary files /dev/null and b/.zig-cache/o/bdb2d59080d5abddc63b93fd4d6a75b3/rtextures.o differ diff --git a/.zig-cache/o/c3c300c09d8adaf6da48ba71377116c0/rcore.o b/.zig-cache/o/c3c300c09d8adaf6da48ba71377116c0/rcore.o new file mode 100644 index 0000000..ae86ecf Binary files /dev/null and b/.zig-cache/o/c3c300c09d8adaf6da48ba71377116c0/rcore.o differ diff --git a/.zig-cache/o/c4f083f6189abd47d10046bc9537f9e4/libraylib.a b/.zig-cache/o/c4f083f6189abd47d10046bc9537f9e4/libraylib.a new file mode 100644 index 0000000..8a679f5 Binary files /dev/null and b/.zig-cache/o/c4f083f6189abd47d10046bc9537f9e4/libraylib.a differ diff --git a/.zig-cache/o/c655dfdc50855fa632b92da24c7e0244/libraylib.a b/.zig-cache/o/c655dfdc50855fa632b92da24c7e0244/libraylib.a new file mode 100644 index 0000000..83072f6 Binary files /dev/null and b/.zig-cache/o/c655dfdc50855fa632b92da24c7e0244/libraylib.a differ diff --git a/.zig-cache/o/c722549b68481b413c4b915d654252c2/rcore.o b/.zig-cache/o/c722549b68481b413c4b915d654252c2/rcore.o new file mode 100644 index 0000000..2291dba Binary files /dev/null and b/.zig-cache/o/c722549b68481b413c4b915d654252c2/rcore.o differ diff --git a/.zig-cache/o/caaaa30966a4c76892c1431de36d93a8/raudio.o b/.zig-cache/o/caaaa30966a4c76892c1431de36d93a8/raudio.o new file mode 100644 index 0000000..039d08d Binary files /dev/null and b/.zig-cache/o/caaaa30966a4c76892c1431de36d93a8/raudio.o differ diff --git a/.zig-cache/o/d04603ca53bcde6f93bbc236ad097c96/raygui.o b/.zig-cache/o/d04603ca53bcde6f93bbc236ad097c96/raygui.o new file mode 100644 index 0000000..d96d294 Binary files /dev/null and b/.zig-cache/o/d04603ca53bcde6f93bbc236ad097c96/raygui.o differ diff --git a/.zig-cache/o/d177d6b2dbd3c233a5f6630ea921dffb/rmodels.o b/.zig-cache/o/d177d6b2dbd3c233a5f6630ea921dffb/rmodels.o new file mode 100644 index 0000000..60eb51e Binary files /dev/null and b/.zig-cache/o/d177d6b2dbd3c233a5f6630ea921dffb/rmodels.o differ diff --git a/.zig-cache/o/d83e58cf6952fe5ecdfd38d635443566/rtextures.o b/.zig-cache/o/d83e58cf6952fe5ecdfd38d635443566/rtextures.o new file mode 100644 index 0000000..848dc1d Binary files /dev/null and b/.zig-cache/o/d83e58cf6952fe5ecdfd38d635443566/rtextures.o differ diff --git a/.zig-cache/o/d8752287b129f92d3a80a26e3554dca6/rtextures.o b/.zig-cache/o/d8752287b129f92d3a80a26e3554dca6/rtextures.o new file mode 100644 index 0000000..2f27672 Binary files /dev/null and b/.zig-cache/o/d8752287b129f92d3a80a26e3554dca6/rtextures.o differ diff --git a/.zig-cache/o/da8bf749420ef1065612c05b8ed536b3/raygui.c b/.zig-cache/o/da8bf749420ef1065612c05b8ed536b3/raygui.c new file mode 100644 index 0000000..1878467 --- /dev/null +++ b/.zig-cache/o/da8bf749420ef1065612c05b8ed536b3/raygui.c @@ -0,0 +1,2 @@ +#define RAYGUI_IMPLEMENTATION +#include "raygui.h" diff --git a/.zig-cache/o/ddf708bd3f3fea0f6e64c2c67e0ee101/rglfw.o b/.zig-cache/o/ddf708bd3f3fea0f6e64c2c67e0ee101/rglfw.o new file mode 100644 index 0000000..74b0372 Binary files /dev/null and b/.zig-cache/o/ddf708bd3f3fea0f6e64c2c67e0ee101/rglfw.o differ diff --git a/.zig-cache/o/df0247a6ca9ea9855ed8986a1fbaf408/build b/.zig-cache/o/df0247a6ca9ea9855ed8986a1fbaf408/build new file mode 100755 index 0000000..c31cefc Binary files /dev/null and b/.zig-cache/o/df0247a6ca9ea9855ed8986a1fbaf408/build differ diff --git a/.zig-cache/o/dfdebf62c113e0e7e47e1162be57e2c1/build b/.zig-cache/o/dfdebf62c113e0e7e47e1162be57e2c1/build new file mode 100755 index 0000000..db31f57 Binary files /dev/null and b/.zig-cache/o/dfdebf62c113e0e7e47e1162be57e2c1/build differ diff --git a/.zig-cache/o/e2cba52daa08e24f7573b84f09170f7f/raygui.o b/.zig-cache/o/e2cba52daa08e24f7573b84f09170f7f/raygui.o new file mode 100644 index 0000000..86c5895 Binary files /dev/null and b/.zig-cache/o/e2cba52daa08e24f7573b84f09170f7f/raygui.o differ diff --git a/.zig-cache/o/e5a167f53f5acf236c40d0ee8261d058/zig-frugg b/.zig-cache/o/e5a167f53f5acf236c40d0ee8261d058/zig-frugg new file mode 100755 index 0000000..e3eff9f Binary files /dev/null and b/.zig-cache/o/e5a167f53f5acf236c40d0ee8261d058/zig-frugg differ diff --git a/.zig-cache/o/e5cab65254bb56ad985cd6821103f1d3/rshapes.o b/.zig-cache/o/e5cab65254bb56ad985cd6821103f1d3/rshapes.o new file mode 100644 index 0000000..5538a2a Binary files /dev/null and b/.zig-cache/o/e5cab65254bb56ad985cd6821103f1d3/rshapes.o differ diff --git a/.zig-cache/o/e75ef3248d9aad025a6d4c4184098a8b/zig-frugg b/.zig-cache/o/e75ef3248d9aad025a6d4c4184098a8b/zig-frugg new file mode 100755 index 0000000..9f4b2f8 Binary files /dev/null and b/.zig-cache/o/e75ef3248d9aad025a6d4c4184098a8b/zig-frugg differ diff --git a/.zig-cache/o/ed67d2c7d9e8fb100477d452f6e547cd/libraylib.a b/.zig-cache/o/ed67d2c7d9e8fb100477d452f6e547cd/libraylib.a new file mode 100644 index 0000000..51ae7f5 Binary files /dev/null and b/.zig-cache/o/ed67d2c7d9e8fb100477d452f6e547cd/libraylib.a differ diff --git a/.zig-cache/o/f1bbe9e120595b9f281561b036977387/libraylib.a b/.zig-cache/o/f1bbe9e120595b9f281561b036977387/libraylib.a new file mode 100644 index 0000000..a43f3c0 Binary files /dev/null and b/.zig-cache/o/f1bbe9e120595b9f281561b036977387/libraylib.a differ diff --git a/.zig-cache/o/f2863d5aa374de298dfa414727be3c0c/raudio.o b/.zig-cache/o/f2863d5aa374de298dfa414727be3c0c/raudio.o new file mode 100644 index 0000000..69e1ed8 Binary files /dev/null and b/.zig-cache/o/f2863d5aa374de298dfa414727be3c0c/raudio.o differ diff --git a/.zig-cache/o/f75cd42c175d6492038227e671f12e79/rshapes.o b/.zig-cache/o/f75cd42c175d6492038227e671f12e79/rshapes.o new file mode 100644 index 0000000..88ab92b Binary files /dev/null and b/.zig-cache/o/f75cd42c175d6492038227e671f12e79/rshapes.o differ diff --git a/.zig-cache/o/fccf7bce91428358dbe9d305da3003b1/rtextures.o b/.zig-cache/o/fccf7bce91428358dbe9d305da3003b1/rtextures.o new file mode 100644 index 0000000..0cf2c0e Binary files /dev/null and b/.zig-cache/o/fccf7bce91428358dbe9d305da3003b1/rtextures.o differ diff --git a/.zig-cache/z/1325de369354380b04efa5485aec0e9f b/.zig-cache/z/1325de369354380b04efa5485aec0e9f new file mode 100644 index 0000000..7e803ef Binary files /dev/null and b/.zig-cache/z/1325de369354380b04efa5485aec0e9f differ diff --git a/.zig-cache/z/1e219e77e62f396ffe289f18ee08e1c2 b/.zig-cache/z/1e219e77e62f396ffe289f18ee08e1c2 new file mode 100644 index 0000000..98cc89a Binary files /dev/null and b/.zig-cache/z/1e219e77e62f396ffe289f18ee08e1c2 differ diff --git a/.zig-cache/z/3226b9e796caa98fdfb6c5202f3ccacc b/.zig-cache/z/3226b9e796caa98fdfb6c5202f3ccacc new file mode 100644 index 0000000..5230b89 Binary files /dev/null and b/.zig-cache/z/3226b9e796caa98fdfb6c5202f3ccacc differ diff --git a/.zig-cache/z/41583fda9886ae725dc7824327d003d6 b/.zig-cache/z/41583fda9886ae725dc7824327d003d6 new file mode 100644 index 0000000..f75a3bb Binary files /dev/null and b/.zig-cache/z/41583fda9886ae725dc7824327d003d6 differ diff --git a/.zig-cache/z/445bdf5cc760cfdb0451cc87caa2e3ef b/.zig-cache/z/445bdf5cc760cfdb0451cc87caa2e3ef new file mode 100644 index 0000000..36ac667 Binary files /dev/null and b/.zig-cache/z/445bdf5cc760cfdb0451cc87caa2e3ef differ diff --git a/.zig-cache/z/860292bb2ae96909bb2769627641c77d b/.zig-cache/z/860292bb2ae96909bb2769627641c77d new file mode 100644 index 0000000..b5c43f3 Binary files /dev/null and b/.zig-cache/z/860292bb2ae96909bb2769627641c77d differ diff --git a/.zig-cache/z/b0e130662551046c225f147117e81eb9 b/.zig-cache/z/b0e130662551046c225f147117e81eb9 new file mode 100644 index 0000000..74a1161 Binary files /dev/null and b/.zig-cache/z/b0e130662551046c225f147117e81eb9 differ diff --git a/.zig-cache/z/b3b921c425b8d646b05755aa43580fa4 b/.zig-cache/z/b3b921c425b8d646b05755aa43580fa4 new file mode 100644 index 0000000..8580ade Binary files /dev/null and b/.zig-cache/z/b3b921c425b8d646b05755aa43580fa4 differ diff --git a/.zig-cache/z/ba3f814cbd90806b01b9bff4ffd4319f b/.zig-cache/z/ba3f814cbd90806b01b9bff4ffd4319f new file mode 100644 index 0000000..57507ce Binary files /dev/null and b/.zig-cache/z/ba3f814cbd90806b01b9bff4ffd4319f differ diff --git a/.zig-cache/z/c5dcecfd5d4986d699fa228f5b4e89a6 b/.zig-cache/z/c5dcecfd5d4986d699fa228f5b4e89a6 new file mode 100644 index 0000000..197545a Binary files /dev/null and b/.zig-cache/z/c5dcecfd5d4986d699fa228f5b4e89a6 differ diff --git a/.zig-cache/z/d5a642a913a81402a6f203dde86d30fe b/.zig-cache/z/d5a642a913a81402a6f203dde86d30fe new file mode 100644 index 0000000..7755afe Binary files /dev/null and b/.zig-cache/z/d5a642a913a81402a6f203dde86d30fe differ diff --git a/.zig-cache/z/dd5197d958c05592db748f9db36f1c3f b/.zig-cache/z/dd5197d958c05592db748f9db36f1c3f new file mode 100644 index 0000000..8c3e91f Binary files /dev/null and b/.zig-cache/z/dd5197d958c05592db748f9db36f1c3f differ diff --git a/.zig-cache/z/f1b8cc11902e79368282476610c215c2 b/.zig-cache/z/f1b8cc11902e79368282476610c215c2 new file mode 100644 index 0000000..1725423 Binary files /dev/null and b/.zig-cache/z/f1b8cc11902e79368282476610c215c2 differ diff --git a/build.zig b/build.zig new file mode 100644 index 0000000..1c9e3a0 --- /dev/null +++ b/build.zig @@ -0,0 +1,72 @@ +const std = @import("std"); +const rlz = @import("raylib_zig"); + +pub fn build(b: *std.Build) !void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + + const raylib_dep = b.dependency("raylib_zig", .{ + .target = target, + .optimize = optimize, + + // Fixes panic from weird joystick OOB crap on hello world project + // panic: index -255 out of bounds for type 'int[512]' + // js->linjs.keyMap[code - BTN_MISC] in glfw/src/linux_joystick.c + .config = "-fno-sanitize=undefined", + }); + const raylib = raylib_dep.module("raylib"); + const raylib_artifact = raylib_dep.artifact("raylib"); + + const exe_mod = b.createModule(.{ + .root_source_file = b.path("src/main.zig"), + .target = target, + .optimize = optimize, + }); + exe_mod.addImport("raylib", raylib); + + const run_step = b.step("run", "Run the app"); + + //web exports are completely separate + if (target.query.os_tag == .emscripten) { + const emsdk = rlz.emsdk; + const wasm = b.addLibrary(.{ + .name = "zig-frugg", + .root_module = exe_mod, + }); + + const install_dir: std.Build.InstallDir = .{ .custom = "web" }; + const emcc_flags = emsdk.emccDefaultFlags(b.allocator, .{ .optimize = optimize }); + const emcc_settings = emsdk.emccDefaultSettings(b.allocator, .{ .optimize = optimize }); + + const emcc_step = emsdk.emccStep(b, raylib_artifact, wasm, .{ + .optimize = optimize, + .flags = emcc_flags, + .settings = emcc_settings, + .shell_file_path = emsdk.shell(raylib_dep), + .install_dir = install_dir, + .embed_paths = &.{.{ .src_path = "resources/" }}, + }); + b.getInstallStep().dependOn(emcc_step); + + const html_filename = try std.fmt.allocPrint(b.allocator, "{s}.html", .{wasm.name}); + const emrun_step = emsdk.emrunStep( + b, + b.getInstallPath(install_dir, html_filename), + &.{}, + ); + + emrun_step.dependOn(emcc_step); + run_step.dependOn(emrun_step); + } else { + const exe = b.addExecutable(.{ + .name = "zig-frugg", + .root_module = exe_mod, + }); + b.installArtifact(exe); + + const run_cmd = b.addRunArtifact(exe); + run_cmd.step.dependOn(b.getInstallStep()); + + run_step.dependOn(&run_cmd.step); + } +} diff --git a/build.zig.zon b/build.zig.zon new file mode 100644 index 0000000..90efce6 --- /dev/null +++ b/build.zig.zon @@ -0,0 +1,52 @@ +.{ + // This is the default name used by packages depending on this one. For + // example, when a user runs `zig fetch --save `, this field is used + // as the key in the `dependencies` table. Although the user can choose a + // different name, most users will stick with this provided value. + // + // It is redundant to include "zig" in this name because it is already + // within the Zig package namespace. + .name = .zig_frugg, + // This is a [Semantic Version](https://semver.org/). + // In a future version of Zig it will be used for package deduplication. + .version = "0.0.0", + // Together with name, this represents a globally unique package + // identifier. This field is generated by the Zig toolchain when the + // package is first created, and then *never changes*. This allows + // unambiguous detection of one package being an updated version of + // another. + // + // When forking a Zig project, this id should be regenerated (delete the + // field and run `zig build`) if the upstream project is still maintained. + // Otherwise, the fork is *hostile*, attempting to take control over the + // original project's identity. Thus it is recommended to leave the comment + // on the following line intact, so that it shows up in code reviews that + // modify the field. + .fingerprint = 0x83fd67e65259ef3a, // Changing this has security and trust implications. + // Tracks the earliest Zig version that the package considers to be a + // supported use case. + .minimum_zig_version = "0.16.0", + // This field is optional. + // Each dependency must either provide a `url` and `hash`, or a `path`. + // `zig build --fetch` can be used to fetch all dependencies of a package, recursively. + // Once all dependencies are fetched, `zig build` no longer requires + // internet connectivity. + .dependencies = .{ + .raylib_zig = .{ + .url = "git+https://github.com/raylib-zig/raylib-zig?ref=devel#58f3c0fa328fc9ff48d17c2c3771ab9c5114aaa6", + .hash = "raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ", + }, + .emsdk = .{ + .url = "git+https://github.com/emscripten-core/emsdk?ref=4.0.9#3bcf1dcd01f040f370e10fe673a092d9ed79ebb5", + .hash = "N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ", + }, + }, + .paths = .{ + "build.zig", + "build.zig.zon", + "src", + // For example... + //"LICENSE", + //"README.md", + }, +} diff --git a/resources/placeholder.txt b/resources/placeholder.txt new file mode 100644 index 0000000..e69de29 diff --git a/src/main.zig b/src/main.zig new file mode 100644 index 0000000..86fa332 --- /dev/null +++ b/src/main.zig @@ -0,0 +1,31 @@ +const std = @import("std"); +const rl = @import("raylib"); + +const Frug = struct { + pos: rl.Vec3, +}; + + +pub fn main(init: std.process.Init) anyerror!void { + const io = init.io; + try std.Io.File.stdout().writeStreamingAll(io, "FRUGG!\n"); + + const screenWidth = 800; + const screenHeight = 450; + + rl.initWindow(screenWidth, screenHeight, "Zig Frugger"); + defer rl.closeWindow(); + + rl.setTargetFPS(60); + + //-------------------------------------------------------------------------------------- + // Main game loop + while (!rl.windowShouldClose()) { + rl.beginDrawing(); + defer rl.endDrawing(); + + rl.clearBackground(.white); + + rl.drawText("FRUGG!", 190, 200, 40, .green); + } +} diff --git a/zig-out/bin/zig-frugg b/zig-out/bin/zig-frugg new file mode 100755 index 0000000..e3eff9f Binary files /dev/null and b/zig-out/bin/zig-frugg differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/.gitattributes b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/.gitattributes new file mode 100644 index 0000000..15a5c58 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/.gitattributes @@ -0,0 +1 @@ +*.h linguist-language=C diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/.github/FUNDING.yml b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/.github/FUNDING.yml new file mode 100644 index 0000000..d7775fe --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: raysan5 +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/.gitignore b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/.gitignore new file mode 100644 index 0000000..18c01c5 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/.gitignore @@ -0,0 +1,64 @@ +# Object files +*.o +*.ko +*.obj +*.elf + +# Precompiled Headers +*.gch +*.pch + +# Libraries +*.lib +*.a +*.la +*.lo + +# Shared objects (inc. Windows DLLs) +*.dll +*.so +*.so.* +*.dylib + +# Executables +*.exe +*.out +*.app +*.i*86 +*.x86_64 +*.hex + +# Debug files +*.dSYM/ +*.su + +# VSCode files +.vscode/ + + +# Ignore files build by Visual Studio +[Dd]ebug +[Rr]elease +*.vs +*.obj +*.pdb +*.aps +*.user +# *.vcproj +# *.vcxproj* +# *.sln +*.vspscc +*_i.c +*.i +*.icf +*_p.c +*.ncb +*.suo +*.tlb +*.tlh +*.bak +*.cache +*.ilk +*.log + +build \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/HISTORY.md b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/HISTORY.md new file mode 100644 index 0000000..7d0f717 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/HISTORY.md @@ -0,0 +1,17 @@ +## raygui history + +raygui development started on December 2014 by two internship students (Kevin and Daniel) guided by me, objective was creating a simple and easy-to-use immediate-mode-gui module for raylib, intended for tools development. On June 2015, library was mostly functional (including basic controls) and we started working in the styling posibilities for the library, focusing on an easy way to style controls properties. Consequently, development of [rGuiStyler](https://raylibtech.itch.io/rguistyler) also started at that point... but resources were quite limited and project was stopped for several months, most of the time was invested in [raylib](https://github.com/raysan5/raylib) development. + +On June 2016, project was picked up again and raygui 1.0 was released by the end of that month. During August 2016, raygui was used to develop [rFXGen](https://github.com/raysan5/rfxgen) and also an early protoype of [rGuiLayout](https://raylibtech.itch.io/rguilayout), those tools were a testbed for the library. By the end of 2016, raygui project development was stopped again for several months. + +On June 2017, a complete redesign of the library started, almost from scratch, all functions were reviewed and mostly rewritten and a brand new styling system was developed. The objective was using raygui professionally in several tools. It was the beginning of raygui 2.0. + +On January 2018, two students (Adria and Jordi) started working on raygui and related tools; library evolved considerably in the following months. [rGuiStyler](https://raylibtech.itch.io/rguistyler) was completely redesigned and rewritten from scratch (rGuiStyler v2.0). [rGuiLayout](https://raylibtech.itch.io/rguilayout) turned from a protoype into a professional software and raygui reached version 2.0 with plenty of new controls and features. + +On July 2018, I started working full time on raygui and its tools, improving the library considerably. On October 2018 [Sergio](https://github.com/anidealgift) joined the project and focused efforts on [rGuiLayout](https://raylibtech.itch.io/rguilayout) tool redesign. We reached 2019 with continuous improvement and redesigns of mostly all raygui functions along rGuiLayout 2.0 and rGuiStyler 3.0. + +On March 2019, the first set of new raygui tools was published: [rFXGen 2.0](https://raylibtech.itch.io/rfxgen), [rTexViewer 1.0](https://raylibtech.itch.io/rtexviewer) and [rIconPacker 1.0](https://raylibtech.itch.io/riconpacker). + +From March 2019 to June 2019 raygui development decelerated, Sergio left the project and efforts were focused on raylib 2.5, during this time one external contributor, [Vlad Adrian](https://github.com/Demizdor), completely redesigned `GuiTextBox()` and related controls and version was bumped to raygui 2.5. + +During summer 2019 lots of raygui functions were reviewed, breaking compatibility to any previous version and pointing to a **raygui 2.6** update. diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/LICENSE b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/LICENSE new file mode 100644 index 0000000..3edc539 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/LICENSE @@ -0,0 +1,18 @@ +zlib License + +Copyright (c) 2014-2026 Ramon Santamaria (@raysan5) + +This software is provided "as-is", without any express or implied warranty. In no event +will the authors be held liable for any damages arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, including commercial +applications, and to alter it and redistribute it freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not claim that you + wrote the original software. If you use this software in a product, an acknowledgment + in the product documentation would be appreciated but is not required. + + 2. Altered source versions must be plainly marked as such, and must not be misrepresented + as being the original software. + + 3. This notice may not be removed or altered from any source distribution. diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/README.md b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/README.md new file mode 100644 index 0000000..94fb498 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/README.md @@ -0,0 +1,163 @@ + + +**raygui is a simple and easy-to-use immediate-mode-gui library.** + +`raygui` was originally inspired by [Unity IMGUI](https://docs.unity3d.com/Manual/GUIScriptingGuide.html) (immediate mode GUI API). + +`raygui` was designed as an auxiliary module for [raylib](https://github.com/raysan5/raylib) to create simple GUI interfaces using raylib graphic style (simple colors, plain rectangular shapes, wide borders...) but it can be adapted to other engines/frameworks. + +`raygui` is intended for **tools development**; it has already been used to develop [multiple published tools](https://raylibtech.itch.io). + +
+ +**WARNING: Latest `raygui` from master branch is always aligned with latest `raylib` from master branch. Make sure to use the appropriate versions.** + +**WARNING: Latest `raygui 4.0` is an API-BREAKING redesign from previous versions (3.x), now all functions are more consistent and coherent, you can read the details about this breaking change in issue [283](https://github.com/raysan5/raygui/issues/283)** + +*NOTE: raygui is a single-file header-only library (despite its internal dependency on raylib), so, functions definition AND implementation reside in the same file `raygui.h`, when including `raygui.h` in a module, `RAYGUI_IMPLEMENTATION` must be previously defined to include the implementation part of `raygui.h` BUT only in one compilation unit, other modules could also include `raygui.h` but `RAYGUI_IMPLEMENTATION` must not be defined again.* + +## features + + - **Immediate-mode gui, no retained data** + - **+25** controls provided (basic and advanced) + - Powerful **styling system** for colors, font and metrics + - Standalone usage mode supported (for other graphic libs) + - **Icons support**, embedding a complete 1-bit icons pack + - Multiple **tools** provided for raygui development + +## code sample +```c +#include "raylib.h" + +#define RAYGUI_IMPLEMENTATION +#include "raygui.h" + +int main() +{ + InitWindow(400, 200, "raygui - controls test suite"); + SetTargetFPS(60); + + bool showMessageBox = false; + + while (!WindowShouldClose()) + { + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); + + if (GuiButton((Rectangle){ 24, 24, 120, 30 }, "#191#Show Message")) showMessageBox = true; + + if (showMessageBox) + { + int result = GuiMessageBox((Rectangle){ 85, 70, 250, 100 }, + "#191#Message Box", "Hi! This is a message!", "Nice;Cool"); + + if (result >= 0) showMessageBox = false; + } + + EndDrawing(); + } + + CloseWindow(); + return 0; +} +``` +![screenshot000](https://github.com/raysan5/raygui/assets/5766837/170e2bce-b7ca-49dc-a263-32b673376546) + +## raygui controls + +### basic controls +``` +Label | Button | LabelButton | Toggle | ToggleGroup | ToggleSlider +CheckBox | ComboBox | DropdownBox | TextBox | ValueBox | Spinner +Slider | SliderBar | ProgressBar | StatusBar | DummyRec | Grid +``` +### container/separator controls +``` +WindowBox | GroupBox | Line | Panel | ScrollPanel | TabBar +``` +### advanced controls +``` +ListView | ColorPicker | MessageBox | TextInputBox +``` + + +## raygui styles + +`raygui` comes with a [default](styles/default) style automatically loaded at runtime: + +![raygui default style](styles/default/style_default.png) + +Some additional styles are also provided for convenience, just check [styles directory](styles) for details: + +![raygui additional styles](images/raygui_style_table_multi.png) + +Custom styles can also be created very easily using [rGuiStyler](https://raylibtech.itch.io/rguistyler) tool. + +Styles can be loaded at runtime using raygui `GuiLoadStyle()` function. Simple and easy-to-use. + +## raygui icons + +`raygui` supports custom icons, by default, a predefined set of icons is provided inside `raygui` as an array of binary data; it contains **256 possible icons** defined as **16x16 pixels** each; each pixel is codified using **1-bit**. The total size of the array is `2048 bytes`. + + + +To use any of those icons just prefix the *#iconId#* number to **any text** written within `raygui` controls: +```c +if (GuiButton(rec, "#05#Open Image")) { /* ACTION */ } +``` +It's also possible to use the provided `GuiIconText()` function to prefix it automatically, using a clearer identifier (defined in `raygui.h`). +```c +if (GuiButton(rec, GuiIconText(RICON_FILE_OPEN, "Open Image"))) { /* ACTION */ } +``` +Provided set of icons can be reviewed and customized using [rGuiIcons](https://raylibtech.itch.io/rguiicons) tool. + +## raygui support tools + + - [**rGuiStyler**](https://raylibtech.itch.io/rguistyler) - A simple and easy-to-use raygui styles editor. + + ![rGuiStyler v3.1](images/rguistyler_v300.png) + + - [**rGuiIcons**](https://raylibtech.itch.io/rguiicons) - A simple and easy-to-use raygui icons editor. + + ![rGuiIcons v1.0](images/rguiicons_v100.png) + + - [**rGuiLayout**](https://raylibtech.itch.io/rguilayout) - A simple and easy-to-use raygui layouts editor. + + ![rGuiLayout v2.2](images/rguilayout_v220.png) + +## building + +`raygui` is intended to be used as a portable single-file header-only library, to be directly integrated into any C/C++ codebase but some users could require a shared/dynamic version of the library, for example, to create bindings: + + - **Windows (MinGW, GCC)** +``` +copy src/raygui.h src/raygui.c +gcc -o src/raygui.dll src/raygui.c -shared -DRAYGUI_IMPLEMENTATION -DBUILD_LIBTYPE_SHARED -static-libgcc -lopengl32 -lgdi32 -lwinmm -Wl,--out-implib,src/librayguidll.a +``` + + - **Windows (MSVC)** +``` +copy src\raygui.h src\raygui.c +cl /O2 /I../raylib/src/ /D_USRDLL /D_WINDLL /DRAYGUI_IMPLEMENTATION /DBUILD_LIBTYPE_SHARED src/raygui.c /LD /Feraygui.dll /link /LIBPATH ../raylib/build/raylib/Release/raylib.lib /subsystem:windows /machine:x64 +``` + + - **Linux (GCC)** +``` +mv src/raygui.h src/raygui.c +gcc -o raygui.so src/raygui.c -shared -fpic -DRAYGUI_IMPLEMENTATION -lraylib -lGL -lm -lpthread -ldl -lrt -lX11 +mv src/raygui.c src/raygui.h +``` + +- **Mac (clang, homebrew installed raylib)** +``` +cp src/raygui.h src/raygui.c +brew install raylib +gcc -o raygui.dynlib src/raygui.c -shared -fpic -DRAYGUI_IMPLEMENTATION -framework OpenGL -lm -lpthread -ldl $(pkg-config --libs --cflags raylib) +``` + + +## license + +raygui is licensed under an unmodified zlib/libpng license, which is an OSI-certified, BSD-like license that allows static linking with closed source software. Check [LICENSE](LICENSE) for further details. diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/Makefile b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/Makefile new file mode 100644 index 0000000..c282701 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/Makefile @@ -0,0 +1,402 @@ +#************************************************************************************************** +# +# raylib makefile for Desktop platform and HTML5 +# +# Copyright (c) 2019 Ramon Santamaria (@raysan5) +# +# This software is provided "as-is", without any express or implied warranty. In no event +# will the authors be held liable for any damages arising from the use of this software. +# +# Permission is granted to anyone to use this software for any purpose, including commercial +# applications, and to alter it and redistribute it freely, subject to the following restrictions: +# +# 1. The origin of this software must not be misrepresented; you must not claim that you +# wrote the original software. If you use this software in a product, an acknowledgment +# in the product documentation would be appreciated but is not required. +# +# 2. Altered source versions must be plainly marked as such, and must not be misrepresented +# as being the original software. +# +# 3. This notice may not be removed or altered from any source distribution. +# +#************************************************************************************************** + +.PHONY: all clean + +# Define required raylib variables +RAYLIB_PATH ?= ../../raylib +RAYGUI_PATH ?= ../src + +# Define default options + +# One of PLATFORM_DESKTOP, PLATFORM_RPI, PLATFORM_ANDROID, PLATFORM_WEB +PLATFORM ?= PLATFORM_DESKTOP + +# Locations of your newly installed library and associated headers. See ../src/Makefile +# On Linux, if you have installed raylib but cannot compile the examples, check that +# the *_INSTALL_PATH values here are the same as those in src/Makefile or point to known locations. +# To enable system-wide compile-time and runtime linking to libraylib.so, run ../src/$ sudo make install RAYLIB_LIBTYPE_SHARED. +# To enable compile-time linking to a special version of libraylib.so, change these variables here. +# To enable runtime linking to a special version of libraylib.so, see EXAMPLE_RUNTIME_PATH below. +# If there is a libraylib in both EXAMPLE_RUNTIME_PATH and RAYLIB_INSTALL_PATH, at runtime, +# the library at EXAMPLE_RUNTIME_PATH, if present, will take precedence over the one at RAYLIB_INSTALL_PATH. +# RAYLIB_INSTALL_PATH should be the desired full path to libraylib. No relative paths. +DESTDIR ?= /usr/local +RAYLIB_INSTALL_PATH ?= $(DESTDIR)/lib +# RAYLIB_H_INSTALL_PATH locates the installed raylib header and associated source files. +RAYLIB_H_INSTALL_PATH ?= $(DESTDIR)/include + +# Library type used for raylib: STATIC (.a) or SHARED (.so/.dll) +RAYLIB_LIBTYPE ?= STATIC + +# Build mode for project: DEBUG or RELEASE +BUILD_MODE ?= RELEASE + +# Use external GLFW library instead of rglfw module +# TODO: Review usage on Linux. Target version of choice. Switch on -lglfw or -lglfw3 +USE_EXTERNAL_GLFW ?= FALSE + +# Use Wayland display server protocol on Linux desktop +# by default it uses X11 windowing system +USE_WAYLAND_DISPLAY ?= FALSE + +# Determine PLATFORM_OS in case PLATFORM_DESKTOP selected +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + # No uname.exe on MinGW!, but OS=Windows_NT on Windows! + # ifeq ($(UNAME),Msys) -> Windows + ifeq ($(OS),Windows_NT) + PLATFORM_OS=WINDOWS + else + UNAMEOS=$(shell uname) + ifeq ($(UNAMEOS),Linux) + PLATFORM_OS=LINUX + endif + ifeq ($(UNAMEOS),FreeBSD) + PLATFORM_OS=BSD + endif + ifeq ($(UNAMEOS),OpenBSD) + PLATFORM_OS=BSD + endif + ifeq ($(UNAMEOS),NetBSD) + PLATFORM_OS=BSD + endif + ifeq ($(UNAMEOS),DragonFly) + PLATFORM_OS=BSD + endif + ifeq ($(UNAMEOS),Darwin) + PLATFORM_OS=OSX + endif + endif +endif +ifeq ($(PLATFORM),PLATFORM_RPI) + UNAMEOS=$(shell uname) + ifeq ($(UNAMEOS),Linux) + PLATFORM_OS=LINUX + endif +endif + +# RAYLIB_PATH adjustment for different platforms. +# If using GNU make, we can get the full path to the top of the tree. Windows? BSD? +# Required for ldconfig or other tools that do not perform path expansion. +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),LINUX) + RAYLIB_PREFIX ?= .. + RAYLIB_PATH = $(realpath $(RAYLIB_PREFIX)) + endif +endif +# Default path for raylib on Raspberry Pi, if installed in different path, update it! +# This is not currently used by src/Makefile. Not sure of its origin or usage. Refer to wiki. +# TODO: update install: target in src/Makefile for RPI, consider relation to LINUX. +ifeq ($(PLATFORM),PLATFORM_RPI) + RAYLIB_PATH ?= /home/pi/raylib +endif + +ifeq ($(PLATFORM),PLATFORM_WEB) + # Emscripten required variables + EMSDK_PATH ?= C:/raylib/emsdk + EMSCRIPTEN_VERSION ?= 1.38.32 + CLANG_VERSION = e$(EMSCRIPTEN_VERSION)_64bit + PYTHON_VERSION = 2.7.13.1_64bit\python-2.7.13.amd64 + NODE_VERSION = 8.9.1_64bit + export PATH = $(EMSDK_PATH);$(EMSDK_PATH)\clang\$(CLANG_VERSION);$(EMSDK_PATH)\node\$(NODE_VERSION)\bin;$(EMSDK_PATH)\python\$(PYTHON_VERSION);$(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION);C:\raylib\MinGW\bin:$$(PATH) + EMSCRIPTEN = $(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION) +endif + +# Define raylib release directory for compiled library. +# RAYLIB_RELEASE_PATH points to provided binaries or your freshly built version +RAYLIB_RELEASE_PATH ?= $(RAYLIB_PATH)/src + +# EXAMPLE_RUNTIME_PATH embeds a custom runtime location of libraylib.so or other desired libraries +# into each example binary compiled with RAYLIB_LIBTYPE=SHARED. It defaults to RAYLIB_RELEASE_PATH +# so that these examples link at runtime with your version of libraylib.so in ../release/libs/linux +# without formal installation from ../src/Makefile. It aids portability and is useful if you have +# multiple versions of raylib, have raylib installed to a non-standard location, or want to +# bundle libraylib.so with your game. Change it to your liking. +# NOTE: If, at runtime, there is a libraylib.so at both EXAMPLE_RUNTIME_PATH and RAYLIB_INSTALL_PATH, +# The library at EXAMPLE_RUNTIME_PATH, if present, will take precedence over RAYLIB_INSTALL_PATH, +# Implemented for LINUX below with CFLAGS += -Wl,-rpath,$(EXAMPLE_RUNTIME_PATH) +# To see the result, run readelf -d core/core_basic_window; looking at the RPATH or RUNPATH attribute. +# To see which libraries a built example is linking to, ldd core/core_basic_window; +# Look for libraylib.so.1 => $(RAYLIB_INSTALL_PATH)/libraylib.so.1 or similar listing. +EXAMPLE_RUNTIME_PATH ?= $(RAYLIB_RELEASE_PATH) + +# Define default C compiler: gcc +# NOTE: define g++ compiler if using C++ +CC = gcc + +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),OSX) + # OSX default compiler + CC = clang + endif + ifeq ($(PLATFORM_OS),BSD) + # FreeBSD, OpenBSD, NetBSD, DragonFly default compiler + CC = clang + endif +endif +ifeq ($(PLATFORM),PLATFORM_RPI) + ifeq ($(USE_RPI_CROSS_COMPILER),TRUE) + # Define RPI cross-compiler + #CC = armv6j-hardfloat-linux-gnueabi-gcc + CC = $(RPI_TOOLCHAIN)/bin/arm-linux-gnueabihf-gcc + endif +endif +ifeq ($(PLATFORM),PLATFORM_WEB) + # HTML5 emscripten compiler + # WARNING: To compile to HTML5, code must be redesigned + # to use emscripten.h and emscripten_set_main_loop() + CC = emcc +endif + +# Define default make program: Mingw32-make +MAKE = mingw32-make + +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),LINUX) + MAKE = make + endif +endif + +# Define compiler flags: +# -O1 defines optimization level +# -g include debug information on compilation +# -s strip unnecessary data from build +# -Wall turns on most, but not all, compiler warnings +# -std=c99 defines C language mode (standard C from 1999 revision) +# -std=gnu99 defines C language mode (GNU C from 1999 revision) +# -Wno-missing-braces ignore invalid warning (GCC bug 53119) +# -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec +CFLAGS += -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces + +ifeq ($(BUILD_MODE),DEBUG) + CFLAGS += -g +endif +ifeq ($(RAYLIB_BUILD_MODE),RELEASE) + CFLAGS += -O1 -s +endif + +# Additional flags for compiler (if desired) +#CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),WINDOWS) + # resource file contains windows executable icon and properties + # -Wl,--subsystem,windows hides the console window + CFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data -Wl,--subsystem,windows + endif + ifeq ($(PLATFORM_OS),LINUX) + ifeq ($(RAYLIB_LIBTYPE),STATIC) + CFLAGS += -D_DEFAULT_SOURCE + endif + ifeq ($(RAYLIB_LIBTYPE),SHARED) + # Explicitly enable runtime link to libraylib.so + CFLAGS += -Wl,-rpath,$(EXAMPLE_RUNTIME_PATH) + endif + endif +endif +ifeq ($(PLATFORM),PLATFORM_RPI) + CFLAGS += -std=gnu99 +endif +ifeq ($(PLATFORM),PLATFORM_WEB) + # -Os # size optimization + # -O2 # optimization level 2, if used, also set --memory-init-file 0 + # -sUSE_GLFW=3 # Use glfw3 library (context/input management) + # -sALLOW_MEMORY_GROWTH=1 # to allow memory resizing -> WARNING: Audio buffers could FAIL! + # -sTOTAL_MEMORY=16777216 # to specify heap memory size (default = 16MB) (67108864 = 64MB) + # -sUSE_PTHREADS=1 # multithreading support + # -sWASM=0 # disable Web Assembly, emitted by default + # -sASYNCIFY # lets synchronous C/C++ code interact with asynchronous JS + # -sFORCE_FILESYSTEM=1 # force filesystem to load/save files data + # -sASSERTIONS=1 # enable runtime checks for common memory allocation errors (-O1 and above turn it off) + # -sMINIFY_HTML=0 # minify generated html from shell.html + # --profiling # include information for code profiling + # --memory-init-file 0 # to avoid an external memory initialization code file (.mem) + # --preload-file resources # specify a resources folder for data compilation + # --source-map-base # allow debugging in browser with source map + # --shell-file shell.html # define a custom shell .html and output extension + CFLAGS += -Os -sUSE_GLFW=3 -sFORCE_FILESYSTEM=1 -sASYNCIFY --preload-file $(dir $<)resources@resources -sMINIFY_HTML=0 + ifeq ($(BUILD_MODE), DEBUG) + CFLAGS += -sASSERTIONS=1 --profiling + endif + # NOTE: Simple raylib examples are compiled to be interpreter by emterpreter, that way, + # we can compile same code for ALL platforms with no change required, but, working on bigger + # projects, code needs to be refactored to avoid a blocking while() loop, moving Update and Draw + # logic to a self contained function: UpdateDrawFrame(), check core_basic_window_web.c for reference. + + # Define a custom shell .html and output extension + CFLAGS += --shell-file $(RAYLIB_PATH)/src/shell.html + EXT = .html +endif + +# Define include paths for required headers +# NOTE: Several external required libraries (stb and others) +INCLUDE_PATHS = -I. -I$(RAYLIB_PATH)/src -I$(RAYLIB_PATH)/src/external -I$(RAYGUI_PATH) + +# Define additional directories containing required header files +ifeq ($(PLATFORM),PLATFORM_RPI) + # RPI required libraries + INCLUDE_PATHS += -I/opt/vc/include + INCLUDE_PATHS += -I/opt/vc/include/interface/vmcs_host/linux + INCLUDE_PATHS += -I/opt/vc/include/interface/vcos/pthreads +endif +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),BSD) + # Consider -L$(RAYLIB_H_INSTALL_PATH) + INCLUDE_PATHS += -I/usr/local/include + endif + ifeq ($(PLATFORM_OS),LINUX) + # Reset everything. + # Precedence: immediately local, installed version, raysan5 provided libs -I$(RAYLIB_H_INSTALL_PATH) -I$(RAYLIB_PATH)/release/include + INCLUDE_PATHS = -I$(RAYLIB_H_INSTALL_PATH) -isystem. -isystem$(RAYLIB_PATH)/src -isystem$(RAYLIB_PATH)/release/include -isystem$(RAYLIB_PATH)/src/external + endif +endif + +# Define library paths containing required libs. +LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src + +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),BSD) + # Consider -L$(RAYLIB_INSTALL_PATH) + LDFLAGS += -L. -Lsrc -L/usr/local/lib + ifeq ($(shell uname),OpenBSD) + LDFLAGS += -L/usr/X11R6/lib + endif + endif + ifeq ($(PLATFORM_OS),LINUX) + # Reset everything. + # Precedence: immediately local, installed version, raysan5 provided libs + LDFLAGS = -L. -L$(RAYLIB_INSTALL_PATH) -L$(RAYLIB_RELEASE_PATH) + endif +endif + +ifeq ($(PLATFORM),PLATFORM_RPI) + LDFLAGS += -L/opt/vc/lib +endif + +# Define any libraries required on linking +# if you want to link libraries (libname.so or libname.a), use the -lname +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),WINDOWS) + # Libraries for Windows desktop compilation + # NOTE: WinMM library required to set high-res timer resolution + LDLIBS = -lraylib -lopengl32 -lgdi32 -lwinmm + # Required for physac examples + LDLIBS += -static -lpthread + endif + ifeq ($(PLATFORM_OS),LINUX) + # Libraries for Debian GNU/Linux desktop compiling + # NOTE: Required packages: libegl1-mesa-dev + LDLIBS = -lraylib -lGL -lm -lpthread -ldl -lrt + + # On X11 requires also below libraries + LDLIBS += -lX11 + # NOTE: It seems additional libraries are not required any more, latest GLFW just dlopen them + #LDLIBS += -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor + + # On Wayland windowing system, additional libraries requires + ifeq ($(USE_WAYLAND_DISPLAY),TRUE) + LDLIBS += -lwayland-client -lwayland-cursor -lwayland-egl -lxkbcommon + endif + # Explicit link to libc + ifeq ($(RAYLIB_LIBTYPE),SHARED) + LDLIBS += -lc + endif + endif + ifeq ($(PLATFORM_OS),OSX) + # Libraries for OSX 10.9 desktop compiling + # NOTE: Required packages: libopenal-dev libegl1-mesa-dev + LDLIBS = -lraylib -framework OpenGL -framework Cocoa -framework IOKit -framework CoreAudio -framework CoreVideo + endif + ifeq ($(PLATFORM_OS),BSD) + # Libraries for FreeBSD, OpenBSD, NetBSD, DragonFly desktop compiling + # NOTE: Required packages: mesa-libs + LDLIBS = -lraylib -lGL -lpthread -lm + + # On XWindow requires also below libraries + LDLIBS += -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor + endif + ifeq ($(USE_EXTERNAL_GLFW),TRUE) + # NOTE: It could require additional packages installed: libglfw3-dev + LDLIBS += -lglfw + endif +endif +ifeq ($(PLATFORM),PLATFORM_RPI) + # Libraries for Raspberry Pi compiling + # NOTE: Required packages: libasound2-dev (ALSA) + LDLIBS = -lraylib -lGLESv2 -lEGL -lpthread -lrt -lm -ldrm -lgbm -ldl +endif +ifeq ($(PLATFORM),PLATFORM_WEB) + # Libraries for web (HTML5) compiling + LDLIBS = $(RAYLIB_RELEASE_PATH)/libraylib.bc +endif + +# Define all source files required +EXAMPLES = \ + controls_test_suite/controls_test_suite \ + custom_file_dialog/custom_file_dialog \ + custom_input_box/custom_input_box\ + image_exporter/image_exporter \ + image_importer_raw/image_importer_raw \ + property_list/property_list \ + portable_window/portable_window \ + scroll_panel/scroll_panel \ + style_selector/style_selector \ + custom_sliders/custom_sliders \ + animation_curve/animation_curve \ + floating_window/floating_window \ + +CURRENT_MAKEFILE = $(lastword $(MAKEFILE_LIST)) + +# Default target entry +all: $(EXAMPLES) + +# Generic compilation pattern +# NOTE: Examples must be ready for Android compilation! +%: %.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +# Clean everything +clean: +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),WINDOWS) + del *.o *.exe /s + endif + ifeq ($(PLATFORM_OS),LINUX) + rm -f $(EXAMPLES) + endif + ifeq ($(PLATFORM_OS),OSX) + find . -type f -perm +ugo+x -delete + rm -f *.o + endif + ifeq ($(shell uname),OpenBSD) + find . -type f -perm 0755 -delete + rm -f *.o + endif +endif +ifeq ($(PLATFORM),PLATFORM_RPI) + find . -type f -executable -delete + rm -fv *.o +endif +ifeq ($(PLATFORM),PLATFORM_WEB) + del *.o *.html *.js +endif + @echo Cleaning done diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/animation_curve/animation_curve.c b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/animation_curve/animation_curve.c new file mode 100644 index 0000000..2f9b2f0 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/animation_curve/animation_curve.c @@ -0,0 +1,477 @@ +/******************************************************************************************* +* +* Animation curves - An example demo for animation curves +* +* DEPENDENCIES: +* raylib 4.0 - Windowing/input management and drawing. +* raygui 3.0 - Immediate-mode GUI controls. +* +* COMPILATION (Windows - MinGW): +* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99 +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2023 Pierre Jaffuer (@smallcluster) +* +**********************************************************************************************/ + +#include "raylib.h" + +#define RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT 24 +#define RAYGUI_IMPLEMENTATION +#include "../../src/raygui.h" + +// raygui embedded styles +#include "../styles/style_cyber.h" // raygui style: cyber +#include "../styles/style_jungle.h" // raygui style: jungle +#include "../styles/style_lavanda.h" // raygui style: lavanda +#include "../styles/style_dark.h" // raygui style: dark +#include "../styles/style_bluish.h" // raygui style: bluish +#include "../styles/style_terminal.h" // raygui style: terminal + +#undef RAYGUI_IMPLEMENTATION // Avoid including raygui implementation again + +#define GUI_CURVE_EDITOR_IMPLEMENTATION +#include "gui_curve_editor.h" + +//------------------------------------------------------------------------------------ +// Helper function +//------------------------------------------------------------------------------------ +void LoadCurveDefaults(GuiCurveEditorState curves[]); + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main() +{ + // Initialization + //--------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 540; + + InitWindow(screenWidth, screenHeight, "raygui - animation curves"); + SetTargetFPS(60); + + // Gui style + GuiLoadStyleDefault(); + int visualStyleActive = 0; + int prevVisualStyleActive = 0; + + float fontSize = GuiGetStyle(DEFAULT, TEXT_SIZE); + const float margin = 8; + + // Gui states + Vector2 scrollOffset = (Vector2){ 0, 0 }; + Rectangle contentRect = (Rectangle){ 0, 0, 0, 0 }; + bool moveSlider = false; + bool sectionActive[5] = { 0 }; + sectionActive[0] = true; + const char *sectionNames[5] = { "X Position", "Y Position", "Width", "Height", "Rotation" }; + bool editValueBox[5][4] = { 0 }; + char *valTextBox[5][4][20] = { 0 }; + bool playAnimation = true; + bool showHelp = true; + + Rectangle settingsRect = (Rectangle){ screenWidth - screenWidth/3, 0, screenWidth/3, screenHeight }; + + // Animation curves + // 0 -> Ball X position + // 1 -> Ball Y position + // 2 -> Ball Width + // 3 -> Ball Height + // 4 -> Ball rotation + GuiCurveEditorState curves[5] = { 0 }; + LoadCurveDefaults(curves); + + // Animation time + float time = 0.0f; + float animationTime = 4.0f; + + //SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + if (playAnimation) time += GetFrameTime(); + + // Reset timer + if (time > animationTime) time = 0; + + // Ball animation + const float t = time/animationTime; + Vector2 ballPos = (Vector2){ GuiCurveEval(&curves[0], t), GuiCurveEval(&curves[1], t) }; + Vector2 ballSize = (Vector2){ GuiCurveEval(&curves[2], t), GuiCurveEval(&curves[3], t) }; + float ballRotation = GuiCurveEval(&curves[4], t); + + // Update style + if (visualStyleActive != prevVisualStyleActive) + { + switch (visualStyleActive) + { + case 0: GuiLoadStyleDefault(); break; + case 1: GuiLoadStyleJungle(); break; + case 2: GuiLoadStyleLavanda(); break; + case 3: GuiLoadStyleDark(); break; + case 4: GuiLoadStyleBluish(); break; + case 5: GuiLoadStyleCyber(); break; + case 6: GuiLoadStyleTerminal(); break; + default: break; + } + + fontSize = GuiGetStyle(DEFAULT, TEXT_SIZE); + prevVisualStyleActive = visualStyleActive; + } + + // Update settings panel rect + Rectangle sliderRect = (Rectangle){ settingsRect.x - 4, settingsRect.y, 4, settingsRect.height }; + if (CheckCollisionPointRec(GetMousePosition(), sliderRect) && IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) moveSlider = true; + if (IsMouseButtonUp(MOUSE_BUTTON_LEFT)) moveSlider = false; + + if (moveSlider) + { + settingsRect.x = GetMouseX(); + + // Minimum-Maximum size + if (settingsRect.x > (screenWidth - 4)) settingsRect.x = screenWidth - 4; + else if (settingsRect.x < 4) settingsRect.x = 4; + + settingsRect.width = screenWidth - settingsRect.x; + } + + + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + ClearBackground(GetColor( GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); + + // Scene + //---------------------------------------------------------------------------------- + DrawRectangle(curves[0].start, curves[1].end, curves[0].end-curves[0].start, curves[1].start-curves[1].end, BLUE); // Sky + + DrawRectangle(curves[0].start, curves[1].start, curves[0].end-curves[0].start, 32, DARKGREEN); // Ground + + BeginScissorMode(curves[0].start, curves[1].end, curves[0].end-curves[0].start, curves[1].start-curves[1].end+32); + + DrawRectanglePro((Rectangle){ballPos.x, ballPos.y, ballSize.x, ballSize.y}, (Vector2){ballSize.x/2.f,ballSize.y/2.f}, ballRotation, PINK); // Ball + + DrawLine(ballPos.x, ballPos.y, ballPos.x + cosf(ballRotation*DEG2RAD)*ballSize.x, ballPos.y +sinf(ballRotation*DEG2RAD)*ballSize.y, RED); + DrawLine(ballPos.x, ballPos.y, ballPos.x + cosf((ballRotation+90)*DEG2RAD)*ballSize.x, ballPos.y +sinf((ballRotation+90)*DEG2RAD)*ballSize.y, GREEN); + + EndScissorMode(); + + // Bounds + DrawRectangleLines(curves[0].start, curves[1].end, curves[0].end-curves[0].start, curves[1].start-curves[1].end+32, GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_NORMAL))); + //---------------------------------------------------------------------------------- + + // GUI + //---------------------------------------------------------------------------------- + if (showHelp) + { + if (GuiWindowBox((Rectangle) {margin, margin, settingsRect.x-2*margin, curves[1].end-2*margin}, "help")) showHelp = false; + + Rectangle helpTextRect = (Rectangle) { 2*margin, 2*margin+RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT, settingsRect.x - 4 - 4*margin, 0 }; + GuiLabel((Rectangle) {helpTextRect.x, helpTextRect.y+helpTextRect.height, helpTextRect.width, fontSize}, "Curve widget controls:"); + helpTextRect.height += fontSize+margin; + GuiLabel((Rectangle) {helpTextRect.x, helpTextRect.y+helpTextRect.height, helpTextRect.width, fontSize}, "- Left click to move/add point or move tangents"); + helpTextRect.height += fontSize+margin/2; + GuiLabel((Rectangle) {helpTextRect.x, helpTextRect.y+helpTextRect.height, helpTextRect.width, fontSize}, "- While moving a tangent, hold SHIFT to disable tangent symetry"); + helpTextRect.height += fontSize+margin/2; + GuiLabel((Rectangle) {helpTextRect.x, helpTextRect.y+helpTextRect.height, helpTextRect.width, fontSize}, "- Right click to remove a point"); + helpTextRect.height += fontSize+margin/2; + DrawRectangleGradientV(margin, margin+curves[1].end - 2*margin, settingsRect.x - 2*margin, 12, (Color){ 0,0,0,100 }, BLANK); + } + + // Settings panel + GuiScrollPanel(settingsRect, "Settings", contentRect, &scrollOffset, NULL); + + BeginScissorMode(settingsRect.x, settingsRect.y+RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT, settingsRect.width, settingsRect.height); + + // Rebuild the content Rect + contentRect = (Rectangle){ settingsRect.x + margin, RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT+margin, settingsRect.width - 2*margin - GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH), 0 }; + + // Help button + if (GuiButton((Rectangle){ contentRect.x, contentRect.y + contentRect.height + scrollOffset.y, contentRect.width, 1.5*fontSize }, GuiIconText(showHelp? ICON_EYE_ON : ICON_EYE_OFF, "Curve controls help"))) showHelp = !showHelp; + + contentRect.height += 1.5*fontSize + margin; + + // Animation Time slider + GuiSlider((Rectangle){ contentRect.x, contentRect.y+contentRect.height+scrollOffset.y, contentRect.width/2, fontSize }, NULL, TextFormat("Animation Time: %.2fs", animationTime), &animationTime, 1, 8); + contentRect.height += fontSize + margin; + + // Load default curves + if (GuiButton((Rectangle){ contentRect.x, contentRect.y+contentRect.height+scrollOffset.y, contentRect.width, 1.5*fontSize }, "Load default")) + { + LoadCurveDefaults(curves); + animationTime = 4.0f; + time = 0.0f; + } + contentRect.height += 1.5f*fontSize + margin; + + // Styles + GuiLabel((Rectangle){ contentRect.x, contentRect.y + contentRect.height + scrollOffset.y, contentRect.width, fontSize }, "Style:"); + contentRect.height += fontSize; + GuiComboBox((Rectangle){contentRect.x, contentRect.y+contentRect.height+scrollOffset.y, contentRect.width, 1.5*fontSize }, "default;Jungle;Lavanda;Dark;Bluish;Cyber;Terminal", &visualStyleActive); + contentRect.height += 1.5f*fontSize + margin; + + // Draw curves with their controls + //---------------------------------------------------------------------------------- + for (int i = 0; i < 5; i++) + { + // Collapsing section + Rectangle headerRect = (Rectangle){ contentRect.x, contentRect.y + contentRect.height+scrollOffset.y, contentRect.width, 1.5f*fontSize }; + GuiStatusBar(headerRect, NULL); + + if (GuiLabelButton(headerRect, GuiIconText(sectionActive[i] ? ICON_ARROW_DOWN_FILL : ICON_ARROW_RIGHT_FILL, sectionNames[i]))) sectionActive[i] = !sectionActive[i]; + + contentRect.height += 1.5f*fontSize + margin; + + // Skip this section + if (!sectionActive[i]) continue; + + // Draw curve control + Rectangle curveRect = (Rectangle){ contentRect.x, contentRect.y+contentRect.height + scrollOffset.y, contentRect.width, fontSize*12 }; + EndScissorMode(); // Stop clipping from setting rect + + // Curves can leaks from control boundary... scissor it ! + BeginScissorMode(curveRect.x, curveRect.y, curveRect.width, curveRect.height); + GuiCurveEditor(&curves[i], curveRect); + EndScissorMode(); + + // Resume clipping from setting rect + BeginScissorMode(settingsRect.x, settingsRect.y + RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT, settingsRect.width, settingsRect.height); + contentRect.height += fontSize*12 + margin; + + // Draw selected point controls + GuiCurveEditorPoint *p = &(curves[i].points[curves[i].selectedIndex]); + GuiCheckBox((Rectangle){ contentRect.x, contentRect.y + contentRect.height + scrollOffset.y, 1.5f*fontSize, 1.5f*fontSize }, "Left Linear", &p->leftLinear); + GuiCheckBox((Rectangle){ contentRect.x+contentRect.width/2, contentRect.y + contentRect.height + scrollOffset.y, 1.5f*fontSize, 1.5f*fontSize }, "Right Linear", &p->rightLinear); + contentRect.height += 1.5f*fontSize + margin; + + // Positions + GuiLabel((Rectangle){ contentRect.x, contentRect.y + contentRect.height + scrollOffset.y, contentRect.width, fontSize }, "Position"); + contentRect.height += fontSize; + + if (!editValueBox[i][0]) gcvt(p->position.x, 6, (char *)valTextBox[i][0]); // Transform x position to string + + if (!editValueBox[i][1]) gcvt(curves[i].start + (curves[i].end-curves[i].start)*p->position.y, 6, (char *)valTextBox[i][1]); // Transform y position to string + + // X pos + if (GuiTextBox((Rectangle){ contentRect.x, contentRect.y + contentRect.height + scrollOffset.y, contentRect.width/2-margin, 1.5f*fontSize }, (char *)valTextBox[i][0], 20, editValueBox[i][0])) + { + editValueBox[i][0] = !editValueBox[i][0]; + + // Input ended + if (!editValueBox[i][0]) + { + // Try to convert text to float and assign it to the point + char *endPtr = NULL; + double value = strtod((char *)valTextBox[i][0], &endPtr); + + if (endPtr != (char *)valTextBox[i][0]) p->position.x = (value < 0)? 0 : (value > 1)? 1 : value; + } + } + + // Y pos + if (GuiTextBox((Rectangle){ contentRect.x + contentRect.width/2, contentRect.y + contentRect.height + scrollOffset.y, contentRect.width/2.0f, 1.5f*fontSize }, (char *)valTextBox[i][1], 20, editValueBox[i][1])) + { + editValueBox[i][1] = !editValueBox[i][1]; + + // Input ended + if (!editValueBox[i][1]) + { + // Try to convert text to float and assign it to the point + char *endPtr = NULL; + double value = strtod((char *)valTextBox[i][1], &endPtr); + + if (endPtr != (char *)valTextBox[i][1]) + { + float normalizedVal = (value - curves[i].start)/(curves[i].end - curves[i].start); + p->position.y = (normalizedVal < 0)? 0 : (normalizedVal > 1)? 1 : normalizedVal; + } + } + + } + + contentRect.height += 1.5f*fontSize + margin; + + // Tangents + GuiLabel((Rectangle){ contentRect.x, contentRect.y + contentRect.height + scrollOffset.y, contentRect.width, fontSize }, "Tangents"); + contentRect.height += fontSize; + + if (!editValueBox[i][2]) gcvt(p->tangents.x, 6, (char *)valTextBox[i][2]); // Transform left tangent to string + + if (!editValueBox[i][3]) gcvt(p->tangents.y, 6, (char *)valTextBox[i][3]); // Transform right tangent to string + + // Left tan + if (GuiTextBox((Rectangle){ contentRect.x, contentRect.y + contentRect.height + scrollOffset.y, contentRect.width/2 - margin, 1.5f*fontSize }, (char *)valTextBox[i][2], 20, editValueBox[i][2])) + { + editValueBox[i][2] = !editValueBox[i][2]; + + // Input ended + if (!editValueBox[i][2]) + { + // Try to convert text to float and assign it to the point + char *endPtr = NULL; + double value = strtod((char *)valTextBox[i][2], &endPtr); + if (endPtr != (char *)valTextBox[i][2]) p->tangents.x = value; + } + } + + // Right tan + if (GuiTextBox((Rectangle){ contentRect.x + contentRect.width/2.0f, contentRect.y + contentRect.height + scrollOffset.y, contentRect.width/2.0f, 1.5f*fontSize }, (char *)valTextBox[i][3], 20, editValueBox[i][3])) + { + editValueBox[i][3] = !editValueBox[i][3]; + + // Input ended + if (!editValueBox[i][3]) + { + // Try to convert text to float and assign it to the point + char *endPtr = NULL; + double value = strtod((char *)valTextBox[i][3], &endPtr); + if (endPtr != (char *)valTextBox[i][3]) p->tangents.y = value; + } + } + + contentRect.height += 1.5*fontSize + margin; + } + + contentRect.height += margin; + + EndScissorMode(); + + // Settings panel shadow + DrawRectangleGradientH(settingsRect.x - 12, 0, 12, settingsRect.height, BLANK, (Color){ 0, 0, 0, 100 }); + + // Slider + if (moveSlider) DrawRectangle(sliderRect.x, sliderRect.y, sliderRect.width, sliderRect.height, GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_PRESSED))); + else if(CheckCollisionPointRec(GetMousePosition(), sliderRect)) DrawRectangle(sliderRect.x, sliderRect.y, sliderRect.width, sliderRect.height, GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_FOCUSED))); + + // Draw Time controls + //---------------------------------------------------------------------------------- + Rectangle timeLineRect = (Rectangle){ 0, screenHeight-4*fontSize, settingsRect.x, 4*fontSize }; + GuiPanel((Rectangle){ timeLineRect.x, timeLineRect.y, timeLineRect.width, 2*fontSize }, NULL); + GuiLabel((Rectangle){ timeLineRect.x, timeLineRect.y, timeLineRect.width, 2*fontSize }, TextFormat("Normalized Time: %.3f", time/animationTime)); + if (GuiButton((Rectangle){ timeLineRect.x+timeLineRect.width/2 - 2*fontSize - margin/4, timeLineRect.y, 2*fontSize, 2*fontSize }, GuiIconText((playAnimation? ICON_PLAYER_PAUSE : ICON_PLAYER_PLAY), ""))) playAnimation = !playAnimation; + + if (GuiButton((Rectangle){ timeLineRect.x+timeLineRect.width/2 + margin/4, timeLineRect.y, 2*fontSize, 2*fontSize }, GuiIconText(ICON_PLAYER_STOP, ""))) + { + playAnimation = false; + time = 0; + } + + float animTime = time/animationTime; + GuiSlider((Rectangle){timeLineRect.x, timeLineRect.y + 2*fontSize, timeLineRect.width, timeLineRect.height - 2*fontSize }, NULL, NULL, &animTime, 0, 1); + time = animationTime*animTime; + + // Time panel shadow + DrawRectangleGradientV(timeLineRect.x, timeLineRect.y - 12, timeLineRect.width, 12, BLANK, (Color){ 0, 0, 0, 100 }); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + +void LoadCurveDefaults(GuiCurveEditorState curves[]) +{ + // X pos + curves[0].start = 28; + curves[0].end = 506; + curves[0].numPoints = 4; + curves[0].selectedIndex = 0; + curves[0].editLeftTangent = false; + curves[0].editRightTangent = false; + curves[0].points[0].position =(Vector2) {0.000000, 0.000000}; curves[0].points[0].tangents = (Vector2) {0.000000, 1.515101}; curves[0].points[0].leftLinear = 1;curves[0].points[0].rightLinear = 1; + curves[0].points[1].position =(Vector2) {0.422414, 0.640000}; curves[0].points[1].tangents = (Vector2) {-2.824348, -4.494999};curves[0].points[1].leftLinear = 0;curves[0].points[1].rightLinear = 0; + curves[0].points[2].position =(Vector2) {0.732759, 0.210000}; curves[0].points[2].tangents = (Vector2) {0.000000, 2.956133}; curves[0].points[2].leftLinear = 0;curves[0].points[2].rightLinear = 1; + curves[0].points[3].position =(Vector2) {1.000000, 1.000000}; curves[0].points[3].tangents = (Vector2) {2.956133, 0.000000}; curves[0].points[3].leftLinear = 1;curves[0].points[3].rightLinear = 1; + + // Y pos + curves[1].start = 405; + curves[1].end = 135; + curves[1].numPoints = 7; + curves[1].selectedIndex = 0; + curves[1].editLeftTangent = false; + curves[1].editRightTangent = false; + curves[1].points[0].position = (Vector2) {0.000000, 1.000000};curves[1].points[0].tangents = (Vector2) { 0.000000 , 0.000000};curves[1].points[0].leftLinear = 0;curves[1].points[0].rightLinear = 0; + curves[1].points[1].position = (Vector2) {0.140000, 0.000000};curves[1].points[1].tangents = (Vector2) {-10.000000 ,10.000000};curves[1].points[1].leftLinear = 0;curves[1].points[1].rightLinear = 0; + curves[1].points[2].position = (Vector2) {0.450000, 0.000000};curves[1].points[2].tangents = (Vector2) {-10.000000 ,10.000000};curves[1].points[2].leftLinear = 0;curves[1].points[2].rightLinear = 0; + curves[1].points[3].position = (Vector2) {0.670000, 0.000000};curves[1].points[3].tangents = (Vector2) {-10.000000 ,10.000000};curves[1].points[3].leftLinear = 0;curves[1].points[3].rightLinear = 0; + curves[1].points[4].position = (Vector2) {0.830000, 0.000000};curves[1].points[4].tangents = (Vector2) {-10.000000 ,10.000000};curves[1].points[4].leftLinear = 0;curves[1].points[4].rightLinear = 0; + curves[1].points[5].position = (Vector2) {0.940000, 0.000000};curves[1].points[5].tangents = (Vector2) {-10.000000 ,10.000000};curves[1].points[5].leftLinear = 0;curves[1].points[5].rightLinear = 0; + curves[1].points[6].position = (Vector2) {1.000000, 0.000000};curves[1].points[6].tangents = (Vector2) {-10.000000 , 0.000000};curves[1].points[6].leftLinear = 0;curves[1].points[6].rightLinear = 0; + + // X size + curves[2].start = 1; + curves[2].end = 64; + curves[2].numPoints = 16; + curves[2].selectedIndex = 0; + curves[2].editLeftTangent = false; + curves[2].editRightTangent = false; + curves[2].points[0].position = (Vector2) {0.000000, 0.492063}; curves[2].points[0].tangents = (Vector2) {0,0}; curves[2].points[0].leftLinear = 0; curves[2].points[0].rightLinear = 0; + curves[2].points[1].position = (Vector2) {0.130000, 0.492063}; curves[2].points[1].tangents = (Vector2) {0,0}; curves[2].points[1].leftLinear = 0; curves[2].points[1].rightLinear = 0; + curves[2].points[2].position = (Vector2) {0.140000, 0.746032}; curves[2].points[2].tangents = (Vector2) {0,0}; curves[2].points[2].leftLinear = 0; curves[2].points[2].rightLinear = 0; + curves[2].points[3].position = (Vector2) {0.150000, 0.492063}; curves[2].points[3].tangents = (Vector2) {0,0}; curves[2].points[3].leftLinear = 0; curves[2].points[3].rightLinear = 0; + curves[2].points[4].position = (Vector2) {0.440000, 0.490000}; curves[2].points[4].tangents = (Vector2) {0,0}; curves[2].points[4].leftLinear = 0; curves[2].points[4].rightLinear = 0; + curves[2].points[5].position = (Vector2) {0.450000, 0.682540}; curves[2].points[5].tangents = (Vector2) {0,0}; curves[2].points[5].leftLinear = 0; curves[2].points[5].rightLinear = 0; + curves[2].points[6].position = (Vector2) {0.460000, 0.480000}; curves[2].points[6].tangents = (Vector2) {0,0}; curves[2].points[6].leftLinear = 0; curves[2].points[6].rightLinear = 0; + curves[2].points[7].position = (Vector2) {0.660000, 0.492063}; curves[2].points[7].tangents = (Vector2) {0,0}; curves[2].points[7].leftLinear = 0; curves[2].points[7].rightLinear = 0; + curves[2].points[8].position = (Vector2) {0.670000, 0.619048}; curves[2].points[8].tangents = (Vector2) {0,0}; curves[2].points[8].leftLinear = 0; curves[2].points[8].rightLinear = 0; + curves[2].points[9].position = (Vector2) {0.680000, 0.492063}; curves[2].points[9].tangents = (Vector2) {0,0}; curves[2].points[9].leftLinear = 0; curves[2].points[9].rightLinear = 0; + curves[2].points[10].position = (Vector2) {0.820000, 0.492063}; curves[2].points[10].tangents = (Vector2) {0,0}; curves[2].points[10].leftLinear = 0; curves[2].points[10].rightLinear = 0; + curves[2].points[11].position = (Vector2) {0.830000, 0.619048}; curves[2].points[11].tangents = (Vector2) {0,0}; curves[2].points[11].leftLinear = 0; curves[2].points[11].rightLinear = 0; + curves[2].points[12].position = (Vector2) {0.840000, 0.492063}; curves[2].points[12].tangents = (Vector2) {0,0}; curves[2].points[12].leftLinear = 0; curves[2].points[12].rightLinear = 0; + curves[2].points[13].position = (Vector2) {0.930000, 0.492063}; curves[2].points[13].tangents = (Vector2) {0,0}; curves[2].points[13].leftLinear = 0; curves[2].points[13].rightLinear = 0; + curves[2].points[14].position = (Vector2) {0.940000, 0.619048}; curves[2].points[14].tangents = (Vector2) {0,0}; curves[2].points[14].leftLinear = 0; curves[2].points[14].rightLinear = 0; + curves[2].points[15].position = (Vector2) {0.950000, 0.492063}; curves[2].points[15].tangents = (Vector2) {0,0}; curves[2].points[15].leftLinear = 0; curves[2].points[15].rightLinear = 0; + + // Y Size + curves[3].start = 1; + curves[3].end = 64; + curves[3].numPoints = 16; + curves[3].selectedIndex = 0; + curves[3].editLeftTangent = false; + curves[3].editRightTangent = false; + curves[3].points[0].position = (Vector2) {0.000000, 0.492063};curves[3].points[0].tangents = (Vector2) {0,0};curves[3].points[0].leftLinear = 0;curves[3].points[0].rightLinear = 0; + curves[3].points[1].position = (Vector2) {0.130000, 0.492063};curves[3].points[1].tangents = (Vector2) {0,0};curves[3].points[1].leftLinear = 0;curves[3].points[1].rightLinear = 0; + curves[3].points[2].position = (Vector2) {0.140000, 0.238095};curves[3].points[2].tangents = (Vector2) {0,0};curves[3].points[2].leftLinear = 0;curves[3].points[2].rightLinear = 0; + curves[3].points[3].position = (Vector2) {0.150000, 0.492063};curves[3].points[3].tangents = (Vector2) {0,0};curves[3].points[3].leftLinear = 0;curves[3].points[3].rightLinear = 0; + curves[3].points[4].position = (Vector2) {0.440000, 0.492063};curves[3].points[4].tangents = (Vector2) {0,0};curves[3].points[4].leftLinear = 0;curves[3].points[4].rightLinear = 0; + curves[3].points[5].position = (Vector2) {0.450000, 0.301587};curves[3].points[5].tangents = (Vector2) {0,0};curves[3].points[5].leftLinear = 0;curves[3].points[5].rightLinear = 0; + curves[3].points[6].position = (Vector2) {0.460000, 0.492063};curves[3].points[6].tangents = (Vector2) {0,0};curves[3].points[6].leftLinear = 0;curves[3].points[6].rightLinear = 0; + curves[3].points[7].position = (Vector2) {0.660000, 0.492063};curves[3].points[7].tangents = (Vector2) {0,0};curves[3].points[7].leftLinear = 0;curves[3].points[7].rightLinear = 0; + curves[3].points[8].position = (Vector2) {0.670000, 0.365079};curves[3].points[8].tangents = (Vector2) {0,0};curves[3].points[8].leftLinear = 0;curves[3].points[8].rightLinear = 0; + curves[3].points[9].position = (Vector2) {0.680000, 0.492063};curves[3].points[9].tangents = (Vector2) {0,0};curves[3].points[9].leftLinear = 0;curves[3].points[9].rightLinear = 0; + curves[3].points[10].position = (Vector2) {0.820000, 0.492063};curves[3].points[10].tangents = (Vector2) {0,0};curves[3].points[10].leftLinear = 0;curves[3].points[10].rightLinear = 0; + curves[3].points[11].position = (Vector2) {0.830000, 0.365079};curves[3].points[11].tangents = (Vector2) {0,0};curves[3].points[11].leftLinear = 0;curves[3].points[11].rightLinear = 0; + curves[3].points[12].position = (Vector2) {0.840000, 0.492063};curves[3].points[12].tangents = (Vector2) {0,0};curves[3].points[12].leftLinear = 0;curves[3].points[12].rightLinear = 0; + curves[3].points[13].position = (Vector2) {0.930000, 0.492063};curves[3].points[13].tangents = (Vector2) {0,0};curves[3].points[13].leftLinear = 0;curves[3].points[13].rightLinear = 0; + curves[3].points[14].position = (Vector2) {0.940000, 0.365079};curves[3].points[14].tangents = (Vector2) {0,0};curves[3].points[14].leftLinear = 0;curves[3].points[14].rightLinear = 0; + curves[3].points[15].position = (Vector2) {0.950000, 0.507937};curves[3].points[15].tangents = (Vector2) {0,0};curves[3].points[15].leftLinear = 0;curves[3].points[15].rightLinear = 0; + + // Rotation + curves[4].start = -360; + curves[4].end = 360; + curves[4].numPoints = 9; + curves[4].selectedIndex = 0; + curves[4].editLeftTangent = false; + curves[4].editRightTangent = false; + curves[4].points[0].position = (Vector2) {0.140000, 0.500000};curves[4].points[0].tangents = (Vector2) {0,0};curves[4].points[0].leftLinear = 0;curves[4].points[0].rightLinear = 0; + curves[4].points[1].position = (Vector2) {0.450000, 0.500000};curves[4].points[1].tangents = (Vector2) {0,0};curves[4].points[1].leftLinear = 0;curves[4].points[1].rightLinear = 0; + curves[4].points[2].position = (Vector2) {0.670000, 0.500000};curves[4].points[2].tangents = (Vector2) {0,0};curves[4].points[2].leftLinear = 0;curves[4].points[2].rightLinear = 0; + curves[4].points[3].position = (Vector2) {0.830000, 0.500000};curves[4].points[3].tangents = (Vector2) {0,0};curves[4].points[3].leftLinear = 0;curves[4].points[3].rightLinear = 0; + curves[4].points[4].position = (Vector2) {0.940000, 0.500000};curves[4].points[4].tangents = (Vector2) {0,0};curves[4].points[4].leftLinear = 0;curves[4].points[4].rightLinear = 0; + curves[4].points[5].position = (Vector2) {1.000000, 0.500000};curves[4].points[5].tangents = (Vector2) {0,0};curves[4].points[5].leftLinear = 0;curves[4].points[5].rightLinear = 0; + curves[4].points[6].position = (Vector2) {0.000000, 0.472222};curves[4].points[6].tangents = (Vector2) {0,0};curves[4].points[6].leftLinear = 0;curves[4].points[6].rightLinear = 0; + curves[4].points[7].position = (Vector2) {0.302752, 0.527778};curves[4].points[7].tangents = (Vector2) {0,0};curves[4].points[7].leftLinear = 0;curves[4].points[7].rightLinear = 0; + curves[4].points[8].position = (Vector2) {0.577982, 0.472222};curves[4].points[8].tangents = (Vector2) {0,0};curves[4].points[8].leftLinear = 0;curves[4].points[8].rightLinear = 0; +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/animation_curve/gui_curve_editor.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/animation_curve/gui_curve_editor.h new file mode 100644 index 0000000..8cf9c0c --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/animation_curve/gui_curve_editor.h @@ -0,0 +1,543 @@ +/******************************************************************************************* +* +* CurveEdit v1.0 - A cubic Hermite editor for making animation curves +* +* MODULE USAGE: +* #define GUI_CURVE_EDITOR_IMPLEMENTATION +* #include "gui_curve_edit.h" +* +* INIT: GuiCurveEditState state = InitCurveEdit(); +* EVALUATE: float y = EvalGuiCurve(&state, t); // 0 <= t <= 1 +* DRAW: BeginScissorMode(bounds.x,bounds.y,bounds.width,bounds.height); +* GuiCurveEdit(&state, bounds, pointSize); +* EndScissorMode(); +* +* NOTE: See 'Module Structures Declaration' section for more informations. +* +* NOTE: This module uses functions of the stdlib: +* - qsort +* +* NOTE: Built-in interactions: +* - Left click to move/add point or move tangents +* - While moving a tangent, hold (left/right) SHIFT to disable tangent symetry +* - Right click to remove a point +* +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2023 Pierre Jaffuer (@smallcluster) +* +* This software is provided "as-is", without any express or implied warranty. In no event +* will the authors be held liable for any damages arising from the use of this software. +* +* Permission is granted to anyone to use this software for any purpose, including commercial +* applications, and to alter it and redistribute it freely, subject to the following restrictions: +* +* 1. The origin of this software must not be misrepresented; you must not claim that you +* wrote the original software. If you use this software in a product, an acknowledgment +* in the product documentation would be appreciated but is not required. +* +* 2. Altered source versions must be plainly marked as such, and must not be misrepresented +* as being the original software. +* +* 3. This notice may not be removed or altered from any source distribution. +* +**********************************************************************************************/ + +#include "raylib.h" + +#ifndef GUI_CURVE_EDITOR_H +#define GUI_CURVE_EDITOR_H + + +#ifndef GUI_CURVE_EDITOR_MAX_POINTS + #define GUI_CURVE_EDITOR_MAX_POINTS 30 +#endif + +//---------------------------------------------------------------------------------- +// Module Structures Declaration +//---------------------------------------------------------------------------------- + +typedef struct { + Vector2 position; // In normalized space [0.0f, 1.0f] + Vector2 tangents; // The derivatives (left/right) of the 1D curve + + // Let the curve editor calculate tangents to linearize part of the curve + bool leftLinear; + bool rightLinear; +} GuiCurveEditorPoint; + +typedef struct { + float start; // Value at y = 0 + float end; // Value at y = 1 + + // Always valid (unless you manualy change state's point array). Make sure to set it to -1 before init + int selectedIndex; + + // Unsorted array with at least one point (constant curve) + GuiCurveEditorPoint points[GUI_CURVE_EDITOR_MAX_POINTS]; + int numPoints; + + // Private variables + bool editLeftTangent; + bool editRightTangent; + Vector2 mouseOffset; +} GuiCurveEditorState; + + +#ifdef __cplusplus +extern "C" { // Prevents name mangling of functions +#endif + +//---------------------------------------------------------------------------------- +// Module Functions Declaration +//---------------------------------------------------------------------------------- +GuiCurveEditorState InitGuiCurveEditor(); // Initialize curve editor state +void GuiCurveEditor(GuiCurveEditorState *state, Rectangle bounds); // Draw and update curve control + +// 1D Interpolation +// Returns the y value (in [start, end]) of the curve at x = t +// t must be normalized [0.f, 1.f] +float GuiCurveEval(GuiCurveEditorState *state, float t); + +#ifdef __cplusplus +} +#endif + +#endif // GUI_CURVE_EDITOR_H + +/*********************************************************************************** +* +* GUI_CURVE_EDITOR IMPLEMENTATION +* +************************************************************************************/ +#if defined(GUI_CURVE_EDITOR_IMPLEMENTATION) + +#include "../../src/raygui.h" // Change this to fit your project + +#include "stdlib.h" // Required for qsort + +//---------------------------------------------------------------------------------- +// Module Functions Definition +//---------------------------------------------------------------------------------- +GuiCurveEditorState InitGuiCurveEditor() +{ + GuiCurveEditorState state = { 0 }; + + state.start = 0; + state.end = 1; + state.selectedIndex = 0; + state.editLeftTangent = false; + state.editRightTangent = false; + state.mouseOffset = (Vector2){ 0.0f, 0.0f }; + + // At least one point (AVG by default) + state.numPoints = 1; + state.points[0].position = (Vector2){ 0.5f, 0.5f }; + state.points[0].tangents = (Vector2){ 0.0f, 0.0f }; + state.points[0].leftLinear = false; + state.points[0].rightLinear = false; + + return state; +} + +static int CompareGuiCurveEditPointPtr(const void *a, const void *b) +{ + float fa = (*(GuiCurveEditorPoint**)a)->position.x; + float fb = (*(GuiCurveEditorPoint**)b)->position.x; + + return ((fa > fb) - (fa < fb)); +} + +float GuiCurveEval(GuiCurveEditorState *state, float t) +{ + // Sort points + GuiCurveEditorPoint* sortedPoints[GUI_CURVE_EDITOR_MAX_POINTS]; + + for (int i=0; i < state->numPoints; i++) sortedPoints[i] = &state->points[i]; + + qsort(sortedPoints, state->numPoints, sizeof(GuiCurveEditorPoint*), CompareGuiCurveEditPointPtr); + + if (state->numPoints == 0) return state->start; + + // Constants part on edges + if (t <= sortedPoints[0]->position.x) return state->start + (state->end-state->start)*sortedPoints[0]->position.y; + if (t >= sortedPoints[state->numPoints-1]->position.x) return state->start + (state->end-state->start)*sortedPoints[state->numPoints-1]->position.y; + + // Find curve portion + for (int i=0; i < state->numPoints-1; i++) + { + const GuiCurveEditorPoint *p1 = sortedPoints[i]; + const GuiCurveEditorPoint *p2 = sortedPoints[i+1]; + + // Skip this range + if (!((t >= p1->position.x) && (t < p2->position.x)) || (p1->position.x == p2->position.x)) continue; + + float scale = (p2->position.x-p1->position.x); + float T = (t-p1->position.x)/scale; + float startTangent = scale*p1->tangents.y; + float endTangent = scale*p2->tangents.x; + float T2 = T*T; + float T3 = T*T*T; + + return (state->start + (state->end-state->start)*((2*T3 - 3*T2 + 1)*p1->position.y + (T3 - 2*T2 + T)*startTangent + (3*T2 - 2*T3)*p2->position.y + (T3 - T2)*endTangent)); + } + + return state->start; +} + +void GuiCurveEditor(GuiCurveEditorState *state, Rectangle bounds) +{ + // CONST + //---------------------------------------------------------------------------------- + const float pointSize = 10.0f; + const float fontSize = GuiGetStyle(DEFAULT, TEXT_SIZE); + const float handleLength = pointSize*2.5f; + const float handleSize = pointSize/1.5f; + + const Rectangle innerBounds = (Rectangle){ bounds.x + fontSize, bounds.y + fontSize, bounds.width - 2*fontSize, bounds.height - 2*fontSize }; + const Vector2 mouse = GetMousePosition(); + const Vector2 mouseLocal = (Vector2){ (mouse.x - innerBounds.x)/innerBounds.width, (innerBounds.y + innerBounds.height-mouse.y)/innerBounds.height}; + //---------------------------------------------------------------------------------- + + // UPDATE STATE + //---------------------------------------------------------------------------------- + // Find first point under mouse (-1 if not found) + int hoveredPointIndex = -1; + for (int i = 0; i < state->numPoints; i++) + { + const GuiCurveEditorPoint *p = &state->points[i]; + const Vector2 screenPos = (Vector2){ p->position.x*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height-p->position.y*innerBounds.height }; + const Rectangle pointRect = (Rectangle){ screenPos.x - pointSize/2.0f, screenPos.y - pointSize/2.0f, pointSize, pointSize }; + + if (CheckCollisionPointRec(mouse, pointRect)) + { + hoveredPointIndex = i; + break; + } + } + + // Unselect tangents + if (IsMouseButtonReleased(MOUSE_BUTTON_LEFT)) + { + state->editLeftTangent = false; + state->editRightTangent = false; + } + + // Select a tangent if possible + if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT) && (state->selectedIndex != -1) && CheckCollisionPointRec(mouse, bounds)) + { + const GuiCurveEditorPoint* p = &state->points[state->selectedIndex]; + const Vector2 screenPos = (Vector2){ p->position.x*innerBounds.width+innerBounds.x, innerBounds.y+innerBounds.height-p->position.y*innerBounds.height }; + + // Left control + Vector2 target = (Vector2){ (p->position.x-1)*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - (p->position.y-p->tangents.x)*innerBounds.height }; + Vector2 dir = (Vector2){ target.x-screenPos.x, target.y-screenPos.y }; + float d = sqrt(dir.x*dir.x + dir.y*dir.y); + Vector2 control = (Vector2){ screenPos.x + dir.x/d*handleLength, screenPos.y + dir.y/d*handleLength }; + Rectangle controlRect = (Rectangle){ control.x - handleSize/2.0f, control.y - handleSize/2.0f, handleSize, handleSize }; + + // Edit left tangent + if (CheckCollisionPointRec(mouse, controlRect)) state->editLeftTangent = true; + + // Right control + target = (Vector2){ (p->position.x + 1)*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - (p->position.y + p->tangents.y)*innerBounds.height }; + dir = (Vector2){ target.x-screenPos.x, target.y-screenPos.y }; + d = sqrt(dir.x*dir.x + dir.y*dir.y); + control = (Vector2){ screenPos.x + dir.x/d*handleLength, screenPos.y + dir.y/d*handleLength }; + controlRect = (Rectangle){ control.x - handleSize/2.0f, control.y - handleSize/2.0f, handleSize, handleSize }; + + // Edit right tangent + if (CheckCollisionPointRec(mouse, controlRect)) state->editRightTangent = true; + } + + // Move tangents + if (IsMouseButtonDown(MOUSE_BUTTON_LEFT) && state->editRightTangent) + { + // editRightTangent == true implies selectedIndex != -1 + GuiCurveEditorPoint *p = &state->points[state->selectedIndex]; + const Vector2 dir = (Vector2){ mouseLocal.x - p->position.x, mouseLocal.y - p->position.y}; + + // Calculate right tangent slope + p->tangents.y = (dir.x < 0.001f)? dir.y/0.001f : dir.y/dir.x; + p->rightLinear = false; // Stop right linearization update + + // Tangents are symetric by default unless SHIFT is pressed + if (!(IsKeyDown(KEY_LEFT_SHIFT) || IsKeyDown(KEY_RIGHT_SHIFT))) + { + p->tangents.x = p->tangents.y; + p->leftLinear = false; // Stop left linearization update + } + + } + else if (IsMouseButtonDown(MOUSE_BUTTON_LEFT) && state->editLeftTangent) + { + // editLeftTangent == true implies selectedIndex != -1 + GuiCurveEditorPoint *p = &state->points[state->selectedIndex]; + const Vector2 dir = (Vector2){ mouseLocal.x - p->position.x, mouseLocal.y - p->position.y }; + + // Calculate left tangent slope + p->tangents.x = (dir.x > -0.001f)? dir.y/(-0.001f) : dir.y/dir.x; + p->leftLinear = false; // Stop left linearization update + + // Tangents are symetric by default unless SHIFT is pressed + if (!(IsKeyDown(KEY_LEFT_SHIFT) || IsKeyDown(KEY_RIGHT_SHIFT))) + { + p->tangents.y = p->tangents.x; + p->rightLinear = false; // Stop right linearization update + } + } + // Select a point + else if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT) && (hoveredPointIndex != -1) && CheckCollisionPointRec(mouse, bounds)) + { + state->selectedIndex = hoveredPointIndex; + const GuiCurveEditorPoint *p = &state->points[state->selectedIndex]; + state->mouseOffset = (Vector2){ p->position.x - mouseLocal.x, p->position.y - mouseLocal.y }; + } + // Remove a point (check against bounds) + else if (IsMouseButtonPressed(MOUSE_BUTTON_RIGHT) && (hoveredPointIndex != -1) && CheckCollisionPointRec(mouse, bounds) && (state->numPoints > 1)) + { + // Deselect everything + state->selectedIndex = 0; // select first point by default + state->editLeftTangent = false; + state->editRightTangent = false; + + // Remove point + state->numPoints -= 1; + for (int i = hoveredPointIndex; i < state->numPoints; i++) state->points[i] = state->points[i+1]; + } + // Add a point (check against innerBounds) + else if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT) && CheckCollisionPointRec(mouse, innerBounds) && (state->numPoints < GUI_CURVE_EDITOR_MAX_POINTS)) + { + state->editLeftTangent = false; + state->editRightTangent = false; + + // Create new point + GuiCurveEditorPoint p; + p.tangents = (Vector2){ 0.0f, 0.0f }; + p.position = mouseLocal; + p.leftLinear = false; + p.rightLinear = false; + + // Append point + state->points[state->numPoints] = p; + state->selectedIndex = state->numPoints; // select new point + state->numPoints += 1; + + // Point is add on mouse pos + state->mouseOffset = (Vector2){ 0, 0 }; + } + // Move selected point + else if ((state->selectedIndex != -1) && IsMouseButtonDown(MOUSE_BUTTON_LEFT) && CheckCollisionPointRec(mouse, bounds)) + { + GuiCurveEditorPoint *p = &state->points[state->selectedIndex]; + + // use mouse offset on click to prevent point teleporting to mouse + const Vector2 newLocalPos = (Vector2){ mouseLocal.x + state->mouseOffset.x, mouseLocal.y + state->mouseOffset.y }; + + // Clamp to innerbounds + p->position.x = (newLocalPos.x < 0)? 0 : ((newLocalPos.x > 1)? 1 : newLocalPos.x); + p->position.y = (newLocalPos.y < 0)? 0 : ((newLocalPos.y > 1)? 1 : newLocalPos.y); + } + + // Sort points + GuiCurveEditorPoint *sortedPoints[GUI_CURVE_EDITOR_MAX_POINTS] = { 0 }; + for (int i = 0; i < state->numPoints; i++) sortedPoints[i] = &state->points[i]; + qsort(sortedPoints, state->numPoints, sizeof(GuiCurveEditorPoint*), CompareGuiCurveEditPointPtr); + + // Update linear tangents + for (int i = 0; i < state->numPoints; i++) + { + GuiCurveEditorPoint *p = sortedPoints[i]; + + // Left tangent + if ((i > 0) && p->leftLinear) + { + const GuiCurveEditorPoint *p2 = sortedPoints[i - 1]; + Vector2 dir = (Vector2){ p2->position.x - p->position.x, p2->position.y - p->position.y }; + p->tangents.x = (dir.x == 0)? 0 : dir.y/dir.x; + } + + // Right tangent + if ((i < state->numPoints - 1) && p->rightLinear) + { + const GuiCurveEditorPoint *p2 = sortedPoints[i + 1]; + Vector2 dir = (Vector2){ p2->position.x - p->position.x, p2->position.y - p->position.y }; + p->tangents.y = (dir.x == 0)? 0 : dir.y/dir.x; + } + } + //---------------------------------------------------------------------------------- + + // DRAWING + //---------------------------------------------------------------------------------- + DrawRectangle(bounds.x, bounds.y, bounds.width, bounds.height, GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); + + // Draw grid + // H lines + const Color lineColor = GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_NORMAL)); + DrawLine(bounds.x, innerBounds.y, bounds.x+bounds.width, innerBounds.y, lineColor); // end + DrawLine(bounds.x, innerBounds.y+innerBounds.height/2, bounds.x+bounds.width, innerBounds.y+innerBounds.height/2, lineColor); // avg + DrawLine(bounds.x, innerBounds.y+innerBounds.height, bounds.x+bounds.width, innerBounds.y+innerBounds.height, lineColor); // start + + // V lines + DrawLine(innerBounds.x, bounds.y, innerBounds.x, bounds.y+bounds.height, lineColor); // 0 + DrawLine(innerBounds.x + innerBounds.width/4, bounds.y, innerBounds.x + innerBounds.width/4, bounds.y + bounds.height, lineColor); // 0.25 + DrawLine(innerBounds.x + innerBounds.width/2, bounds.y, innerBounds.x + innerBounds.width/2, bounds.y + bounds.height, lineColor); // 0.5 + DrawLine(innerBounds.x + 3*innerBounds.width/4, bounds.y, innerBounds.x + 3*innerBounds.width/4, bounds.y + bounds.height, lineColor); // 0.75 + DrawLine(innerBounds.x + innerBounds.width, bounds.y, innerBounds.x + innerBounds.width, bounds.y + bounds.height, lineColor); // 1 + + Font font = GuiGetFont(); + // V labels + DrawTextEx(font, "0", (Vector2){ innerBounds.x, bounds.y + bounds.height-fontSize}, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor); + DrawTextEx(font, "0.25", (Vector2){ innerBounds.x + innerBounds.width/4.0f, bounds.y + bounds.height - fontSize}, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor); + DrawTextEx(font, "0.5", (Vector2){ innerBounds.x + innerBounds.width/2.0f, bounds.y + bounds.height - fontSize}, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor); + DrawTextEx(font, "0.75", (Vector2){ innerBounds.x + 3.0f*innerBounds.width/4.0f, bounds.y + bounds.height-fontSize}, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor); + DrawTextEx(font, "1", (Vector2){ innerBounds.x + innerBounds.width, bounds.y+bounds.height - fontSize}, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor); + + // H labels + DrawTextEx(font, TextFormat("%.2f", state->start), (Vector2){ innerBounds.x, innerBounds.y - fontSize+innerBounds.height }, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor); + DrawTextEx(font, TextFormat("%.2f", state->start + (state->end-state->start)/2.f), (Vector2){ innerBounds.x, innerBounds.y - fontSize + innerBounds.height/2.0f }, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor); + DrawTextEx(font, TextFormat("%.2f", state->end), (Vector2){ innerBounds.x, innerBounds.y }, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor); + + // Draw contours + if (CheckCollisionPointRec(mouse, bounds)) DrawRectangleLines(bounds.x, bounds.y, bounds.width, bounds.height, GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_FOCUSED))); + else DrawRectangleLines(bounds.x, bounds.y, bounds.width, bounds.height, GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_NORMAL))); + + // Draw points + for (int i = 0; i < state->numPoints; i++) + { + const GuiCurveEditorPoint *p = sortedPoints[i]; + + const Vector2 screenPos = (Vector2){ p->position.x*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - p->position.y*innerBounds.height }; + const Rectangle pointRect = (Rectangle){ screenPos.x - pointSize/2.0f, screenPos.y - pointSize/2.0f, pointSize, pointSize }; + + Color pointColor = { 0 }; + Color pointBorderColor = { 0 }; + + // Draw point + if (&state->points[state->selectedIndex] == p) + { + // Draw left handle + if (i > 0) + { + const Vector2 target = (Vector2){ (p->position.x - 1)*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - (p->position.y - p->tangents.x)*innerBounds.height }; + const Vector2 dir = (Vector2){ target.x - screenPos.x, target.y - screenPos.y }; + const float d = sqrt(dir.x*dir.x + dir.y*dir.y); + const Vector2 control = (Vector2){ screenPos.x + dir.x/d*handleLength, screenPos.y + dir.y/d*handleLength }; + const Rectangle controlRect = (Rectangle){ control.x - handleSize/2.0f, control.y - handleSize/2.0f, handleSize, handleSize }; + + Color controlColor = { 0 }; + + if (state->editLeftTangent) + { + controlColor = GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_PRESSED)); + } + else if (CheckCollisionPointRec(mouse, controlRect)) + { + controlColor = GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_FOCUSED)); + } + else + { + controlColor = GetColor(GuiGetStyle(BUTTON, BASE_COLOR_NORMAL)); + } + + DrawLine(screenPos.x,screenPos.y, control.x, control.y, controlColor); + DrawRectangle(controlRect.x, controlRect.y, controlRect.width, controlRect.height, controlColor); + DrawRectangleLines(controlRect.x, controlRect.y, controlRect.width, controlRect.height, controlColor); + } + + // Draw right handle + if (i < state->numPoints - 1) + { + const Vector2 target = (Vector2){ (p->position.x + 1)*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - (p->position.y + p->tangents.y)*innerBounds.height }; + const Vector2 dir = (Vector2){ target.x - screenPos.x, target.y - screenPos.y }; + const float d = sqrt(dir.x*dir.x + dir.y*dir.y); + const Vector2 control = (Vector2){ screenPos.x + dir.x/d*handleLength, screenPos.y + dir.y/d*handleLength }; + const Rectangle controlRect = (Rectangle){ control.x - handleSize/2.0f, control.y - handleSize/2.0f, handleSize, handleSize }; + + Color controlColor = { 0 }; + + if (state->editRightTangent) + { + controlColor = GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_PRESSED)); + } + else if (CheckCollisionPointRec(mouse, controlRect)) + { + controlColor = GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_FOCUSED)); + } + else + { + controlColor = GetColor(GuiGetStyle(BUTTON, BASE_COLOR_NORMAL)); + } + + DrawLine(screenPos.x,screenPos.y, control.x, control.y, controlColor); + DrawRectangle(controlRect.x, controlRect.y, controlRect.width, controlRect.height, controlColor); + DrawRectangleLines(controlRect.x, controlRect.y, controlRect.width, controlRect.height, controlColor); + } + + pointColor = GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_PRESSED)); + pointBorderColor = GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_NORMAL)); + + } + else if (&state->points[hoveredPointIndex] == p) + { + pointColor = GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_FOCUSED)); + pointBorderColor = GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_NORMAL)); + } + else + { + pointColor = GetColor(GuiGetStyle(BUTTON, BASE_COLOR_NORMAL)); + pointBorderColor = GetColor(GuiGetStyle(BUTTON, BORDER_COLOR_NORMAL)); + } + + DrawRectangle(pointRect.x, pointRect.y, pointRect.width, pointRect.height, pointColor); + DrawRectangleLines(pointRect.x, pointRect.y, pointRect.width, pointRect.height, pointBorderColor); + } + + // Draw curve + Color curveColor = GetColor(GuiGetStyle(LABEL, TEXT_COLOR_FOCUSED)); + + if (state->numPoints == 1) + { + const GuiCurveEditorPoint *p = sortedPoints[0]; + const Vector2 screenPos = (Vector2){ p->position.x*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - p->position.y*innerBounds.height }; + DrawLine(innerBounds.x, screenPos.y, innerBounds.x+innerBounds.width, screenPos.y, curveColor); + } + else + { + for (int i = 0; i < state->numPoints - 1; i++) + { + const GuiCurveEditorPoint *p1 = sortedPoints[i]; + const GuiCurveEditorPoint *p2 = sortedPoints[i + 1]; + const Vector2 screenPos1 = (Vector2){ p1->position.x*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - p1->position.y*innerBounds.height }; + const Vector2 screenPos2 = (Vector2){ p2->position.x*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - p2->position.y*innerBounds.height }; + + // Constant on edge + if ((screenPos1.x > innerBounds.x) && (i == 0)) + { + DrawLine(innerBounds.x, screenPos1.y, screenPos1.x, screenPos1.y, curveColor); + } + if ((screenPos2.x < innerBounds.x + innerBounds.width) && (i == (state->numPoints - 2))) + { + DrawLine(screenPos2.x, screenPos2.y, innerBounds.x+innerBounds.width, screenPos2.y, curveColor); + } + + // Draw cubic Hermite curve + const float scale = (p2->position.x - p1->position.x)/3.0f; + const Vector2 offset1 = (Vector2){ scale, scale*p1->tangents.y }; + // negative endTangent => top part => need to invert value to calculate offset + const Vector2 offset2 = (Vector2){ -scale, -scale*p2->tangents.x }; + + const Vector2 c1 = (Vector2){ p1->position.x + offset1.x, p1->position.y + offset1.y }; + const Vector2 c2 = (Vector2){ p2->position.x + offset2.x, p2->position.y + offset2.y }; + + const Vector2 screenC1 = (Vector2){ c1.x*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - c1.y*innerBounds.height }; + const Vector2 screenC2 = (Vector2){ c2.x*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - c2.y*innerBounds.height }; + + DrawSplineSegmentBezierCubic(screenPos1, screenC1, screenC2, screenPos2, 1, curveColor); + } + } +} + +#endif // GUI_CURVE_EDITOR_IMPLEMENTATION + diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/controls_test_suite/controls_test_suite.c b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/controls_test_suite/controls_test_suite.c new file mode 100644 index 0000000..0697088 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/controls_test_suite/controls_test_suite.c @@ -0,0 +1,339 @@ +/******************************************************************************************* +* +* raygui - controls test suite +* +* TEST CONTROLS: +* - GuiDropdownBox() +* - GuiCheckBox() +* - GuiSpinner() +* - GuiValueBox() +* - GuiTextBox() +* - GuiButton() +* - GuiComboBox() +* - GuiListView() +* - GuiToggleGroup() +* - GuiColorPicker() +* - GuiSlider() +* - GuiSliderBar() +* - GuiProgressBar() +* - GuiColorBarAlpha() +* - GuiScrollPanel() +* +* +* DEPENDENCIES: +* raylib 4.5 - Windowing/input management and drawing +* raygui 3.5 - Immediate-mode GUI controls with custom styling and icons +* +* COMPILATION (Windows - MinGW): +* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99 +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2016-2024 Ramon Santamaria (@raysan5) +* +**********************************************************************************************/ + +#include "raylib.h" + +//#define RAYGUI_DEBUG_RECS_BOUNDS +//#define RAYGUI_DEBUG_TEXT_BOUNDS + +#define RAYGUI_IMPLEMENTATION +//#define RAYGUI_CUSTOM_ICONS // It requires providing gui_icons.h in the same directory +//#include "gui_icons.h" // External icons data provided, it can be generated with rGuiIcons tool +#include "../../src/raygui.h" + +// raygui embedded styles +#include "../styles/style_cyber.h" // raygui style: cyber +#include "../styles/style_jungle.h" // raygui style: jungle +#include "../styles/style_lavanda.h" // raygui style: lavanda +#include "../styles/style_dark.h" // raygui style: dark +#include "../styles/style_bluish.h" // raygui style: bluish +#include "../styles/style_terminal.h" // raygui style: terminal +#include "../styles/style_candy.h" // raygui style: candy +#include "../styles/style_cherry.h" // raygui style: cherry +#include "../styles/style_ashes.h" // raygui style: ashes +#include "../styles/style_enefete.h" // raygui style: enefete +#include "../styles/style_sunny.h" // raygui style: sunny +#include "../styles/style_amber.h" // raygui style: amber +#include "../styles/style_genesis.h" // raygui style: genesis + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main() +{ + // Initialization + //--------------------------------------------------------------------------------------- + const int screenWidth = 960; + const int screenHeight = 560; + + InitWindow(screenWidth, screenHeight, "raygui - controls test suite"); + SetExitKey(0); + + // GUI controls initialization + //---------------------------------------------------------------------------------- + int dropdownBox000Active = 0; + bool dropDown000EditMode = false; + + int dropdownBox001Active = 0; + bool dropDown001EditMode = false; + + int spinner001Value = 0; + bool spinnerEditMode = false; + + int valueBox002Value = 0; + bool valueBoxEditMode = false; + + char textBoxText[64] = "Text box"; + bool textBoxEditMode = false; + + char textBoxMultiText[1024] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n\nDuis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n\nThisisastringlongerthanexpectedwithoutspacestotestcharbreaksforthosecases,checkingifworkingasexpected.\n\nExcepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."; + bool textBoxMultiEditMode = false; + + int listViewScrollIndex = 0; + int listViewActive = -1; + + int listViewExScrollIndex = 0; + int listViewExActive = 2; + int listViewExFocus = -1; + char *listViewExList[8] = { "This", "is", "a", "list view", "with", "disable", "elements", "amazing!" }; + + Color colorPickerValue = RED; + + float sliderValue = 50.0f; + float sliderBarValue = 60; + float progressValue = 0.1f; + + bool forceSquaredChecked = false; + + float alphaValue = 0.5f; + + //int comboBoxActive = 1; + int visualStyleActive = 0; + int prevVisualStyleActive = 0; + + int toggleGroupActive = 0; + int toggleSliderActive = 0; + + Vector2 viewScroll = { 0, 0 }; + //---------------------------------------------------------------------------------- + + // Custom GUI font loading + //Font font = LoadFontEx("fonts/rainyhearts16.ttf", 12, 0, 0); + //GuiSetFont(font); + + bool exitWindow = false; + bool showMessageBox = false; + + char textInput[256] = { 0 }; + char textInputFileName[256] = { 0 }; + bool showTextInputBox = false; + + float alpha = 1.0f; + + // DEBUG: Testing how those two properties affect all controls! + //GuiSetStyle(DEFAULT, TEXT_PADDING, 0); + //GuiSetStyle(DEFAULT, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!exitWindow) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + exitWindow = WindowShouldClose(); + + if (IsKeyPressed(KEY_ESCAPE)) showMessageBox = !showMessageBox; + + if (IsKeyDown(KEY_LEFT_CONTROL) && IsKeyPressed(KEY_S)) showTextInputBox = true; + + if (IsFileDropped()) + { + FilePathList droppedFiles = LoadDroppedFiles(); + + if ((droppedFiles.count > 0) && IsFileExtension(droppedFiles.paths[0], ".rgs")) GuiLoadStyle(droppedFiles.paths[0]); + + UnloadDroppedFiles(droppedFiles); // Clear internal buffers + } + + //alpha -= 0.002f; + if (alpha < 0.0f) alpha = 0.0f; + if (IsKeyPressed(KEY_SPACE)) alpha = 1.0f; + + GuiSetAlpha(alpha); + + //progressValue += 0.002f; + if (IsKeyPressed(KEY_LEFT)) progressValue -= 0.1f; + else if (IsKeyPressed(KEY_RIGHT)) progressValue += 0.1f; + if (progressValue > 1.0f) progressValue = 1.0f; + else if (progressValue < 0.0f) progressValue = 0.0f; + + if (visualStyleActive != prevVisualStyleActive) + { + GuiLoadStyleDefault(); + + switch (visualStyleActive) + { + case 0: break; // Default style + case 1: GuiLoadStyleJungle(); break; + case 2: GuiLoadStyleLavanda(); break; + case 3: GuiLoadStyleDark(); break; + case 4: GuiLoadStyleBluish(); break; + case 5: GuiLoadStyleCyber(); break; + case 6: GuiLoadStyleTerminal(); break; + case 7: GuiLoadStyleCandy(); break; + case 8: GuiLoadStyleCherry(); break; + case 9: GuiLoadStyleAshes(); break; + case 10: GuiLoadStyleEnefete(); break; + case 11: GuiLoadStyleSunny(); break; + case 12: GuiLoadStyleAmber(); break; + case 13: GuiLoadStyleGenesis(); break; + default: break; + } + + GuiSetStyle(LABEL, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); + + prevVisualStyleActive = visualStyleActive; + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); + + // raygui: controls drawing + //---------------------------------------------------------------------------------- + // Check all possible events that require GuiLock + if (dropDown000EditMode || dropDown001EditMode) GuiLock(); + if (showTextInputBox) GuiLock(); + + // First GUI column + //GuiSetStyle(CHECKBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); + GuiCheckBox((Rectangle){ 25, 108, 15, 15 }, "FORCE CHECK!", &forceSquaredChecked); + + GuiSetStyle(TEXTBOX, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + //GuiSetStyle(VALUEBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); + if (GuiSpinner((Rectangle){ 25, 135, 125, 30 }, NULL, &spinner001Value, 0, 100, spinnerEditMode)) spinnerEditMode = !spinnerEditMode; + if (GuiValueBox((Rectangle){ 25, 175, 125, 30 }, NULL, &valueBox002Value, 0, 100, valueBoxEditMode)) valueBoxEditMode = !valueBoxEditMode; + GuiSetStyle(TEXTBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); + if (GuiTextBox((Rectangle){ 25, 215, 125, 30 }, textBoxText, 64, textBoxEditMode)) textBoxEditMode = !textBoxEditMode; + + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + + if (GuiButton((Rectangle){ 25, 255, 125, 30 }, GuiIconText(ICON_FILE_SAVE, "Save File"))) showTextInputBox = true; + + GuiGroupBox((Rectangle){ 25, 310, 125, 150 }, "STATES"); + //GuiLock(); + GuiSetState(STATE_NORMAL); if (GuiButton((Rectangle){ 30, 320, 115, 30 }, "NORMAL")) { } + GuiSetState(STATE_FOCUSED); if (GuiButton((Rectangle){ 30, 355, 115, 30 }, "FOCUSED")) { } + GuiSetState(STATE_PRESSED); if (GuiButton((Rectangle){ 30, 390, 115, 30 }, "#15#PRESSED")) { } + GuiSetState(STATE_DISABLED); if (GuiButton((Rectangle){ 30, 425, 115, 30 }, "DISABLED")) { } + GuiSetState(STATE_NORMAL); + //GuiUnlock(); + + GuiComboBox((Rectangle){ 25, 480, 125, 30 }, + "default;Jungle;Lavanda;Dark;Bluish;Cyber;Terminal;Candy;Cherry;Ashes;Enefete;Sunny;Amber;Genesis", &visualStyleActive); + + // NOTE: GuiDropdownBox must draw after any other control that can be covered on unfolding + if (dropDown000EditMode || dropDown001EditMode) GuiUnlock(); + if (showTextInputBox) GuiLock(); // Stay locked + + GuiSetStyle(DROPDOWNBOX, TEXT_PADDING, 4); + GuiSetStyle(DROPDOWNBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); + if (GuiDropdownBox((Rectangle){ 25, 65, 125, 30 }, "#01#ONE;#02#TWO;#03#THREE;#04#FOUR", &dropdownBox001Active, dropDown001EditMode)) dropDown001EditMode = !dropDown001EditMode; + GuiSetStyle(DROPDOWNBOX, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + GuiSetStyle(DROPDOWNBOX, TEXT_PADDING, 0); + + if (GuiDropdownBox((Rectangle){ 25, 25, 125, 30 }, "ONE;TWO;THREE", &dropdownBox000Active, dropDown000EditMode)) dropDown000EditMode = !dropDown000EditMode; + + // Second GUI column + //GuiSetStyle(LISTVIEW, LIST_ITEMS_BORDER_NORMAL, 1); + GuiListView((Rectangle){ 165, 25, 140, 124 }, "Charmander;Bulbasaur;#18#Squirtel;Pikachu;Eevee;Pidgey", &listViewScrollIndex, &listViewActive); + GuiListViewEx((Rectangle){ 165, 162, 140, 184 }, listViewExList, 8, &listViewExScrollIndex, &listViewExActive, &listViewExFocus); + GuiSetStyle(LISTVIEW, LIST_ITEMS_BORDER_NORMAL, 0); + + //GuiToggle((Rectangle){ 165, 400, 140, 25 }, "#1#ONE", &toggleGroupActive); + GuiToggleGroup((Rectangle){ 165, 360, 140, 24 }, "#1#ONE\n#3#TWO\n#8#THREE\n#23#", &toggleGroupActive); + //GuiDisable(); + GuiSetStyle(SLIDER, SLIDER_PADDING, 2); + GuiToggleSlider((Rectangle){ 165, 480, 140, 30 }, "ON;OFF", &toggleSliderActive); + GuiSetStyle(SLIDER, SLIDER_PADDING, 0); + + // Third GUI column + GuiPanel((Rectangle){ 320, 25, 225, 140 }, "Panel Info"); + GuiColorPicker((Rectangle){ 320, 185, 196, 192 }, NULL, &colorPickerValue); + + //GuiDisable(); + GuiSlider((Rectangle){ 355, 400, 165, 20 }, "TEST", TextFormat("%2.2f", sliderValue), &sliderValue, -50, 100); + GuiSliderBar((Rectangle){ 320, 430, 200, 20 }, NULL, TextFormat("%i", (int)sliderBarValue), &sliderBarValue, 0, 100); + + GuiProgressBar((Rectangle){ 320, 460, 200, 20 }, NULL, TextFormat("%i%%", (int)(progressValue*100)), &progressValue, 0.0f, 1.0f); + GuiEnable(); + + // NOTE: View rectangle could be used to perform some scissor test + Rectangle view = { 0 }; + GuiScrollPanel((Rectangle){ 560, 25, 102, 354 }, NULL, (Rectangle){ 560, 25, 300, 1200 }, &viewScroll, &view); + + Vector2 mouseCell = { 0 }; + GuiGrid((Rectangle) { 560, 25 + 180 + 195, 100, 120 }, NULL, 20, 3, &mouseCell); + + GuiColorBarAlpha((Rectangle){ 320, 490, 200, 30 }, NULL, &alphaValue); + + GuiSetStyle(DEFAULT, TEXT_ALIGNMENT_VERTICAL, TEXT_ALIGN_TOP); // WARNING: Word-wrap does not work as expected in case of no-top alignment + GuiSetStyle(DEFAULT, TEXT_WRAP_MODE, TEXT_WRAP_WORD); // WARNING: If wrap mode enabled, text editing is not supported + if (GuiTextBox((Rectangle){ 678, 25, 258, 492 }, textBoxMultiText, 1024, textBoxMultiEditMode)) textBoxMultiEditMode = !textBoxMultiEditMode; + GuiSetStyle(DEFAULT, TEXT_WRAP_MODE, TEXT_WRAP_NONE); + GuiSetStyle(DEFAULT, TEXT_ALIGNMENT_VERTICAL, TEXT_ALIGN_MIDDLE); + + GuiSetStyle(DEFAULT, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); + GuiStatusBar((Rectangle){ 0, (float)GetScreenHeight() - 20, (float)GetScreenWidth(), 20 }, "This is a status bar"); + GuiSetStyle(DEFAULT, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + //GuiSetStyle(STATUSBAR, TEXT_INDENTATION, 20); + + if (showMessageBox) + { + DrawRectangle(0, 0, GetScreenWidth(), GetScreenHeight(), Fade(RAYWHITE, 0.8f)); + int result = GuiMessageBox((Rectangle){ (float)GetScreenWidth()/2 - 125, (float)GetScreenHeight()/2 - 50, 250, 100 }, GuiIconText(ICON_EXIT, "Close Window"), "Do you really want to exit?", "Yes;No"); + + if ((result == 0) || (result == 2)) showMessageBox = false; + else if (result == 1) exitWindow = true; + } + + if (showTextInputBox) + { + GuiUnlock(); + + DrawRectangle(0, 0, GetScreenWidth(), GetScreenHeight(), Fade(RAYWHITE, 0.8f)); + int result = GuiTextInputBox((Rectangle){ (float)GetScreenWidth()/2 - 120, (float)GetScreenHeight()/2 - 60, 240, 140 }, GuiIconText(ICON_FILE_SAVE, "Save file as..."), "Introduce output file name:", "Ok;Cancel", textInput, 255, NULL); + + if (result == 1) + { + // TODO: Validate textInput value and save + + TextCopy(textInputFileName, textInput); + } + + if ((result == 0) || (result == 1) || (result == 2)) + { + showTextInputBox = false; + TextCopy(textInput, "\0"); + } + } + //---------------------------------------------------------------------------------- + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/controls_test_suite/controls_test_suite.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/controls_test_suite/controls_test_suite.png new file mode 100644 index 0000000..895696c Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/controls_test_suite/controls_test_suite.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/controls_test_suite/gui_value_box_float.c b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/controls_test_suite/gui_value_box_float.c new file mode 100644 index 0000000..8719375 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/controls_test_suite/gui_value_box_float.c @@ -0,0 +1,71 @@ +/******************************************************************************************* +* +* raygui - controls test suite +* +* COMPILATION (Windows - MinGW): +* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99 +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2016-2024 Ramon Santamaria (@raysan5) +* +**********************************************************************************************/ + +#include "raylib.h" + +#define RAYGUI_IMPLEMENTATION +#include "../../src/raygui.h" + +#include + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main() +{ + // Initialization + //--------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raygui - controls test suite"); + + float valueBoxValue = 0.0f; + bool valueBoxEditMode = false; + char valueBoxTextValue[32] = { 0 }; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); + + if (GuiValueBoxFloat((Rectangle){ 25, 175, 125, 30 }, NULL, valueBoxTextValue, &valueBoxValue, valueBoxEditMode)) + { + valueBoxEditMode = !valueBoxEditMode; + + printf("Value: %2.2f\n", valueBoxValue); + } + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/custom_file_dialog/cat.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/custom_file_dialog/cat.png new file mode 100644 index 0000000..d023aa2 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/custom_file_dialog/cat.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/custom_file_dialog/custom_file_dialog.c b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/custom_file_dialog/custom_file_dialog.c new file mode 100644 index 0000000..dea4f23 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/custom_file_dialog/custom_file_dialog.c @@ -0,0 +1,112 @@ +/******************************************************************************************* +* +* raygui - custom file dialog to load image +* +* DEPENDENCIES: +* raylib 4.0 - Windowing/input management and drawing. +* raygui 3.0 - Immediate-mode GUI controls. +* +* COMPILATION (Windows - MinGW): +* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99 +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2016-2024 Ramon Santamaria (@raysan5) +* +**********************************************************************************************/ + +#include "raylib.h" + +#define RAYGUI_IMPLEMENTATION +#include "../../src/raygui.h" + +#undef RAYGUI_IMPLEMENTATION // Avoid including raygui implementation again + +#define GUI_WINDOW_FILE_DIALOG_IMPLEMENTATION +#include "gui_window_file_dialog.h" + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main() +{ + // Initialization + //--------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 560; + + InitWindow(screenWidth, screenHeight, "raygui - custom modal dialog"); + SetExitKey(0); + + // Custom file dialog + GuiWindowFileDialogState fileDialogState = InitGuiWindowFileDialog(GetWorkingDirectory()); + + bool exitWindow = false; + + char fileNameToLoad[512] = { 0 }; + + Texture texture = { 0 }; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!exitWindow) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + exitWindow = WindowShouldClose(); + + if (fileDialogState.SelectFilePressed) + { + // Load image file (if supported extension) + if (IsFileExtension(fileDialogState.fileNameText, ".png")) + { + strcpy(fileNameToLoad, TextFormat("%s" PATH_SEPERATOR "%s", fileDialogState.dirPathText, fileDialogState.fileNameText)); + UnloadTexture(texture); + texture = LoadTexture(fileNameToLoad); + } + + fileDialogState.SelectFilePressed = false; + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); + + DrawTexture(texture, GetScreenWidth()/2 - texture.width/2, GetScreenHeight()/2 - texture.height/2 - 5, WHITE); + DrawRectangleLines(GetScreenWidth()/2 - texture.width/2, GetScreenHeight()/2 - texture.height/2 - 5, texture.width, texture.height, BLACK); + + DrawText(fileNameToLoad, 208, GetScreenHeight() - 20, 10, GRAY); + + // raygui: controls drawing + //---------------------------------------------------------------------------------- + if (fileDialogState.windowActive) GuiLock(); + + if (GuiButton((Rectangle){ 20, 20, 140, 30 }, GuiIconText(ICON_FILE_OPEN, "Open Image"))) fileDialogState.windowActive = true; + + GuiUnlock(); + + // GUI: Dialog Window + //-------------------------------------------------------------------------------- + GuiWindowFileDialog(&fileDialogState); + //-------------------------------------------------------------------------------- + + //---------------------------------------------------------------------------------- + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadTexture(texture); // Unload texture + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/custom_file_dialog/gui_window_file_dialog.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/custom_file_dialog/gui_window_file_dialog.h new file mode 100644 index 0000000..a1c1370 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/custom_file_dialog/gui_window_file_dialog.h @@ -0,0 +1,624 @@ +/******************************************************************************************* +* +* Window File Dialog v1.2 - Modal file dialog to open/save files +* +* MODULE USAGE: +* #define GUI_WINDOW_FILE_DIALOG_IMPLEMENTATION +* #include "gui_window_file_dialog.h" +* +* INIT: GuiWindowFileDialogState state = GuiInitWindowFileDialog(); +* DRAW: GuiWindowFileDialog(&state); +* +* NOTE: This module depends on some raylib file system functions: +* - LoadDirectoryFiles() +* - UnloadDirectoryFiles() +* - GetWorkingDirectory() +* - DirectoryExists() +* - FileExists() +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2019-2024 Ramon Santamaria (@raysan5) +* +* This software is provided "as-is", without any express or implied warranty. In no event +* will the authors be held liable for any damages arising from the use of this software. +* +* Permission is granted to anyone to use this software for any purpose, including commercial +* applications, and to alter it and redistribute it freely, subject to the following restrictions: +* +* 1. The origin of this software must not be misrepresented; you must not claim that you +* wrote the original software. If you use this software in a product, an acknowledgment +* in the product documentation would be appreciated but is not required. +* +* 2. Altered source versions must be plainly marked as such, and must not be misrepresented +* as being the original software. +* +* 3. This notice may not be removed or altered from any source distribution. +* +**********************************************************************************************/ + +#include "raylib.h" + +#ifndef GUI_WINDOW_FILE_DIALOG_H +#define GUI_WINDOW_FILE_DIALOG_H + +// Gui file dialog context data +typedef struct { + + // Window management variables + bool windowActive; + Rectangle windowBounds; + Vector2 panOffset; + bool dragMode; + bool supportDrag; + + // UI variables + bool dirPathEditMode; + char dirPathText[1024]; + + int filesListScrollIndex; + bool filesListEditMode; + int filesListActive; + + bool fileNameEditMode; + char fileNameText[1024]; + bool SelectFilePressed; + bool CancelFilePressed; + int fileTypeActive; + int itemFocused; + + // Custom state variables + FilePathList dirFiles; + char filterExt[256]; + char dirPathTextCopy[1024]; + char fileNameTextCopy[1024]; + + int prevFilesListActive; + + bool saveFileMode; + +} GuiWindowFileDialogState; + +#ifdef __cplusplus +extern "C" { // Prevents name mangling of functions +#endif + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- +//... + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +// ... + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +//... + +//---------------------------------------------------------------------------------- +// Module Functions Declaration +//---------------------------------------------------------------------------------- +GuiWindowFileDialogState InitGuiWindowFileDialog(const char *initPath); +void GuiWindowFileDialog(GuiWindowFileDialogState *state); + +#ifdef __cplusplus +} +#endif + +#endif // GUI_WINDOW_FILE_DIALOG_H + +/*********************************************************************************** +* +* GUI_WINDOW_FILE_DIALOG IMPLEMENTATION +* +************************************************************************************/ +#if defined(GUI_WINDOW_FILE_DIALOG_IMPLEMENTATION) + +#include "../../src/raygui.h" + +#include // Required for: strcpy() + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- +#define MAX_DIRECTORY_FILES 2048 +#define MAX_ICON_PATH_LENGTH 512 +#ifdef _WIN32 +#define PATH_SEPERATOR "\\" +#else +#define PATH_SEPERATOR "/" +#endif + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +#if defined(USE_CUSTOM_LISTVIEW_FILEINFO) +// Detailed file info type +typedef struct FileInfo { + const char *name; + int size; + int modTime; + int type; + int icon; +} FileInfo; +#else +// Filename only +typedef char *FileInfo; // Files are just a path string +#endif + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +FileInfo *dirFilesIcon = NULL; // Path string + icon (for fancy drawing) + +//---------------------------------------------------------------------------------- +// Internal Module Functions Definition +//---------------------------------------------------------------------------------- +// Read files in new path +static void ReloadDirectoryFiles(GuiWindowFileDialogState *state); + +#if defined(USE_CUSTOM_LISTVIEW_FILEINFO) +// List View control for files info with extended parameters +static int GuiListViewFiles(Rectangle bounds, FileInfo *files, int count, int *focus, int *scrollIndex, int active); +#endif + +//---------------------------------------------------------------------------------- +// Module Functions Definition +//---------------------------------------------------------------------------------- +GuiWindowFileDialogState InitGuiWindowFileDialog(const char *initPath) +{ + GuiWindowFileDialogState state = { 0 }; + + // Init window data + state.windowBounds = (Rectangle){ GetScreenWidth()/2 - 440/2, GetScreenHeight()/2 - 310/2, 440, 310 }; + state.windowActive = false; + state.supportDrag = true; + state.dragMode = false; + state.panOffset = (Vector2){ 0, 0 }; + + // Init path data + state.dirPathEditMode = false; + state.filesListActive = -1; + state.prevFilesListActive = state.filesListActive; + state.filesListScrollIndex = 0; + + state.fileNameEditMode = false; + + state.SelectFilePressed = false; + state.CancelFilePressed = false; + + state.fileTypeActive = 0; + + strcpy(state.fileNameText, "\0"); + + // Custom variables initialization + if (initPath && DirectoryExists(initPath)) + { + strcpy(state.dirPathText, initPath); + } + else if (initPath && FileExists(initPath)) + { + strcpy(state.dirPathText, GetDirectoryPath(initPath)); + strcpy(state.fileNameText, GetFileName(initPath)); + } + else strcpy(state.dirPathText, GetWorkingDirectory()); + + // TODO: Why we keep a copy? + strcpy(state.dirPathTextCopy, state.dirPathText); + strcpy(state.fileNameTextCopy, state.fileNameText); + + state.filterExt[0] = '\0'; + //strcpy(state.filterExt, "all"); + + state.dirFiles.count = 0; + + return state; +} + +// Update and draw file dialog +void GuiWindowFileDialog(GuiWindowFileDialogState *state) +{ + if (state->windowActive) + { + // Update window dragging + //---------------------------------------------------------------------------------------- + if (state->supportDrag) + { + Vector2 mousePosition = GetMousePosition(); + + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) + { + // Window can be dragged from the top window bar + if (CheckCollisionPointRec(mousePosition, (Rectangle){ state->windowBounds.x, state->windowBounds.y, (float)state->windowBounds.width, RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT })) + { + state->dragMode = true; + state->panOffset.x = mousePosition.x - state->windowBounds.x; + state->panOffset.y = mousePosition.y - state->windowBounds.y; + } + } + + if (state->dragMode) + { + state->windowBounds.x = (mousePosition.x - state->panOffset.x); + state->windowBounds.y = (mousePosition.y - state->panOffset.y); + + // Check screen limits to avoid moving out of screen + if (state->windowBounds.x < 0) state->windowBounds.x = 0; + else if (state->windowBounds.x > (GetScreenWidth() - state->windowBounds.width)) state->windowBounds.x = GetScreenWidth() - state->windowBounds.width; + + if (state->windowBounds.y < 0) state->windowBounds.y = 0; + else if (state->windowBounds.y > (GetScreenHeight() - state->windowBounds.height)) state->windowBounds.y = GetScreenHeight() - state->windowBounds.height; + + if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) state->dragMode = false; + } + } + //---------------------------------------------------------------------------------------- + + // Load dirFilesIcon and state->dirFiles lazily on windows open + // NOTE: They are automatically unloaded at fileDialog closing + //---------------------------------------------------------------------------------------- + if (dirFilesIcon == NULL) + { + dirFilesIcon = (FileInfo *)RL_CALLOC(MAX_DIRECTORY_FILES, sizeof(FileInfo)); // Max files to read + for (int i = 0; i < MAX_DIRECTORY_FILES; i++) dirFilesIcon[i] = (char *)RL_CALLOC(MAX_ICON_PATH_LENGTH, 1); // Max file name length + } + + // Load current directory files + if (state->dirFiles.paths == NULL) ReloadDirectoryFiles(state); + //---------------------------------------------------------------------------------------- + + // Draw window and controls + //---------------------------------------------------------------------------------------- + state->windowActive = !GuiWindowBox(state->windowBounds, "#198# Select File Dialog"); + + // Draw previous directory button + logic + if (GuiButton((Rectangle){ state->windowBounds.x + state->windowBounds.width - 48, state->windowBounds.y + 24 + 12, 40, 24 }, "< ..")) + { + // Move dir path one level up + strcpy(state->dirPathText, GetPrevDirectoryPath(state->dirPathText)); + + // Reload directory files (frees previous list) + ReloadDirectoryFiles(state); + + state->filesListActive = -1; + memset(state->fileNameText, 0, 1024); + memset(state->fileNameTextCopy, 0, 1024); + } + + // Draw current directory text box info + path editing logic + if (GuiTextBox((Rectangle){ state->windowBounds.x + 8, state->windowBounds.y + 24 + 12, state->windowBounds.width - 48 - 16, 24 }, state->dirPathText, 1024, state->dirPathEditMode)) + { + if (state->dirPathEditMode) + { + // Verify if a valid path has been introduced + if (DirectoryExists(state->dirPathText)) + { + // Reload directory files (frees previous list) + ReloadDirectoryFiles(state); + + strcpy(state->dirPathTextCopy, state->dirPathText); + } + else strcpy(state->dirPathText, state->dirPathTextCopy); + } + + state->dirPathEditMode = !state->dirPathEditMode; + } + + // List view elements are aligned left + int prevTextAlignment = GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT); + int prevElementsHeight = GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT); + GuiSetStyle(LISTVIEW, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); + GuiSetStyle(LISTVIEW, LIST_ITEMS_HEIGHT, 24); +# if defined(USE_CUSTOM_LISTVIEW_FILEINFO) + state->filesListActive = GuiListViewFiles((Rectangle){ state->position.x + 8, state->position.y + 48 + 20, state->windowBounds.width - 16, state->windowBounds.height - 60 - 16 - 68 }, fileInfo, state->dirFiles.count, &state->itemFocused, &state->filesListScrollIndex, state->filesListActive); +# else + GuiListViewEx((Rectangle){ state->windowBounds.x + 8, state->windowBounds.y + 48 + 20, state->windowBounds.width - 16, state->windowBounds.height - 60 - 16 - 68 }, + (const char**)dirFilesIcon, state->dirFiles.count, &state->filesListScrollIndex, &state->filesListActive, &state->itemFocused); +# endif + GuiSetStyle(LISTVIEW, TEXT_ALIGNMENT, prevTextAlignment); + GuiSetStyle(LISTVIEW, LIST_ITEMS_HEIGHT, prevElementsHeight); + + // Check if a path has been selected, if it is a directory, move to that directory (and reload paths) + if ((state->filesListActive >= 0) && (state->filesListActive != state->prevFilesListActive)) + //&& (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) || IsKeyPressed(KEY_ENTER) || IsKeyPressed(KEY_DPAD_A))) + { + strcpy(state->fileNameText, GetFileName(state->dirFiles.paths[state->filesListActive])); + + if (DirectoryExists(TextFormat("%s/%s", state->dirPathText, state->fileNameText))) + { + if (TextIsEqual(state->fileNameText, "..")) strcpy(state->dirPathText, GetPrevDirectoryPath(state->dirPathText)); + else strcpy(state->dirPathText, TextFormat("%s/%s", (strcmp(state->dirPathText, "/") == 0)? "" : state->dirPathText, state->fileNameText)); + + strcpy(state->dirPathTextCopy, state->dirPathText); + + // Reload directory files (frees previous list) + ReloadDirectoryFiles(state); + + strcpy(state->dirPathTextCopy, state->dirPathText); + + state->filesListActive = -1; + strcpy(state->fileNameText, "\0"); + strcpy(state->fileNameTextCopy, state->fileNameText); + } + + state->prevFilesListActive = state->filesListActive; + } + + // Draw bottom controls + //-------------------------------------------------------------------------------------- + GuiLabel((Rectangle){ state->windowBounds.x + 8, state->windowBounds.y + state->windowBounds.height - 68, 60, 24 }, "File name:"); + if (GuiTextBox((Rectangle){ state->windowBounds.x + 72, state->windowBounds.y + state->windowBounds.height - 68, state->windowBounds.width - 184, 24 }, state->fileNameText, 128, state->fileNameEditMode)) + { + if (*state->fileNameText) + { + // Verify if a valid filename has been introduced + if (FileExists(TextFormat("%s/%s", state->dirPathText, state->fileNameText))) + { + // Select filename from list view + for (unsigned int i = 0; i < state->dirFiles.count; i++) + { + if (TextIsEqual(state->fileNameText, state->dirFiles.paths[i])) + { + state->filesListActive = i; + strcpy(state->fileNameTextCopy, state->fileNameText); + break; + } + } + } + else if (!state->saveFileMode) + { + strcpy(state->fileNameText, state->fileNameTextCopy); + } + } + + state->fileNameEditMode = !state->fileNameEditMode; + } + + GuiLabel((Rectangle){ state->windowBounds.x + 8, state->windowBounds.y + state->windowBounds.height - 24 - 12, 68, 24 }, "File filter:"); + GuiComboBox((Rectangle){ state->windowBounds.x + 72, state->windowBounds.y + state->windowBounds.height - 24 - 12, state->windowBounds.width - 184, 24 }, "All files", &state->fileTypeActive); + + state->SelectFilePressed = GuiButton((Rectangle){ state->windowBounds.x + state->windowBounds.width - 96 - 8, state->windowBounds.y + state->windowBounds.height - 68, 96, 24 }, "Select"); + + if (GuiButton((Rectangle){ state->windowBounds.x + state->windowBounds.width - 96 - 8, state->windowBounds.y + state->windowBounds.height - 24 - 12, 96, 24 }, "Cancel")) state->windowActive = false; + //-------------------------------------------------------------------------------------- + + // Exit on file selected + if (state->SelectFilePressed) state->windowActive = false; + + // File dialog has been closed, free all memory before exit + if (!state->windowActive) + { + // Free dirFilesIcon memory + for (int i = 0; i < MAX_DIRECTORY_FILES; i++) RL_FREE(dirFilesIcon[i]); + + RL_FREE(dirFilesIcon); + dirFilesIcon = NULL; + + // Unload directory file paths + UnloadDirectoryFiles(state->dirFiles); + + // Reset state variables + state->dirFiles.count = 0; + state->dirFiles.paths = NULL; + } + } +} + +// Compare two files from a directory +static inline int FileCompare(const char *d1, const char *d2, const char *dir) +{ + const bool b1 = DirectoryExists(TextFormat("%s/%s", dir, d1)); + const bool b2 = DirectoryExists(TextFormat("%s/%s", dir, d2)); + + if (b1 && !b2) return -1; + if (!b1 && b2) return 1; + + if (!FileExists(TextFormat("%s/%s", dir, d1))) return 1; + if (!FileExists(TextFormat("%s/%s", dir, d2))) return -1; + + return strcmp(d1, d2); +} + +// Read files in new path +static void ReloadDirectoryFiles(GuiWindowFileDialogState *state) +{ + UnloadDirectoryFiles(state->dirFiles); + + state->dirFiles = LoadDirectoryFilesEx(state->dirPathText, (state->filterExt[0] == '\0')? NULL : state->filterExt, false); + state->itemFocused = 0; + + // Reset dirFilesIcon memory + for (int i = 0; i < MAX_DIRECTORY_FILES; i++) memset(dirFilesIcon[i], 0, MAX_ICON_PATH_LENGTH); + + // Copy paths as icon + fileNames into dirFilesIcon + for (unsigned int i = 0; i < state->dirFiles.count; i++) + { + if (IsPathFile(state->dirFiles.paths[i])) + { + // Path is a file, a file icon for convenience (for some recognized extensions) + if (IsFileExtension(state->dirFiles.paths[i], ".png;.bmp;.tga;.gif;.jpg;.jpeg;.psd;.hdr;.qoi;.dds;.pkm;.ktx;.pvr;.astc")) + { + strcpy(dirFilesIcon[i], TextFormat("#12#%s", GetFileName(state->dirFiles.paths[i]))); + } + else if (IsFileExtension(state->dirFiles.paths[i], ".wav;.mp3;.ogg;.flac;.xm;.mod;.it;.wma;.aiff")) + { + strcpy(dirFilesIcon[i], TextFormat("#11#%s", GetFileName(state->dirFiles.paths[i]))); + } + else if (IsFileExtension(state->dirFiles.paths[i], ".txt;.info;.md;.nfo;.xml;.json;.c;.cpp;.cs;.lua;.py;.glsl;.vs;.fs")) + { + strcpy(dirFilesIcon[i], TextFormat("#10#%s", GetFileName(state->dirFiles.paths[i]))); + } + else if (IsFileExtension(state->dirFiles.paths[i], ".exe;.bin;.raw;.msi")) + { + strcpy(dirFilesIcon[i], TextFormat("#200#%s", GetFileName(state->dirFiles.paths[i]))); + } + else strcpy(dirFilesIcon[i], TextFormat("#218#%s", GetFileName(state->dirFiles.paths[i]))); + } + else + { + // Path is a directory, add a directory icon + strcpy(dirFilesIcon[i], TextFormat("#1#%s", GetFileName(state->dirFiles.paths[i]))); + } + } +} + +#if defined(USE_CUSTOM_LISTVIEW_FILEINFO) +// List View control for files info with extended parameters +static int GuiListViewFiles(Rectangle bounds, FileInfo *files, int count, int *focus, int *scrollIndex, int *active) +{ + int result = 0; + GuiState state = guiState; + int itemFocused = (focus == NULL)? -1 : *focus; + int itemSelected = *active; + + // Check if we need a scroll bar + bool useScrollBar = false; + if ((GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) + GuiGetStyle(LISTVIEW, LIST_ITEMS_PADDING))*count > bounds.height) useScrollBar = true; + + // Define base item rectangle [0] + Rectangle itemBounds = { 0 }; + itemBounds.x = bounds.x + GuiGetStyle(LISTVIEW, LIST_ITEMS_PADDING); + itemBounds.y = bounds.y + GuiGetStyle(LISTVIEW, LIST_ITEMS_PADDING) + GuiGetStyle(DEFAULT, BORDER_WIDTH); + itemBounds.width = bounds.width - 2*GuiGetStyle(LISTVIEW, LIST_ITEMS_PADDING) - GuiGetStyle(DEFAULT, BORDER_WIDTH); + itemBounds.height = GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT); + if (useScrollBar) itemBounds.width -= GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH); + + // Get items on the list + int visibleItems = bounds.height/(GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) + GuiGetStyle(LISTVIEW, LIST_ITEMS_PADDING)); + if (visibleItems > count) visibleItems = count; + + int startIndex = (scrollIndex == NULL)? 0 : *scrollIndex; + if ((startIndex < 0) || (startIndex > (count - visibleItems))) startIndex = 0; + int endIndex = startIndex + visibleItems; + + // Update control + //-------------------------------------------------------------------- + if ((state != GUI_STATE_DISABLED) && !guiLocked) + { + Vector2 mousePoint = GetMousePosition(); + + // Check mouse inside list view + if (CheckCollisionPointRec(mousePoint, bounds)) + { + state = GUI_STATE_FOCUSED; + + // Check focused and selected item + for (int i = 0; i < visibleItems; i++) + { + if (CheckCollisionPointRec(mousePoint, itemBounds)) + { + itemFocused = startIndex + i; + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) itemSelected = startIndex + i; + break; + } + + // Update item rectangle y position for next item + itemBounds.y += (GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) + GuiGetStyle(LISTVIEW, LIST_ITEMS_PADDING)); + } + + if (useScrollBar) + { + int wheelMove = GetMouseWheelMove(); + startIndex -= wheelMove; + + if (startIndex < 0) startIndex = 0; + else if (startIndex > (count - visibleItems)) startIndex = count - visibleItems; + + endIndex = startIndex + visibleItems; + if (endIndex > count) endIndex = count; + } + } + else itemFocused = -1; + + // Reset item rectangle y to [0] + itemBounds.y = bounds.y + GuiGetStyle(LISTVIEW, LIST_ITEMS_PADDING) + GuiGetStyle(DEFAULT, BORDER_WIDTH); + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + DrawRectangleRec(bounds, GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); // Draw background + DrawRectangleLinesEx(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER + state*3)), guiAlpha)); + + // TODO: Draw list view header with file sections: icon+name | size | type | modTime + + // Draw visible items + for (int i = 0; i < visibleItems; i++) + { + if (state == GUI_STATE_DISABLED) + { + if ((startIndex + i) == itemSelected) + { + DrawRectangleRec(itemBounds, Fade(GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_DISABLED)), guiAlpha)); + DrawRectangleLinesEx(itemBounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_DISABLED)), guiAlpha)); + } + + // TODO: Draw full file info line: icon+name | size | type | modTime + + GuiDrawText(files[startIndex + i].name, GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_DISABLED)), guiAlpha)); + } + else + { + if ((startIndex + i) == itemSelected) + { + // Draw item selected + DrawRectangleRec(itemBounds, Fade(GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_PRESSED)), guiAlpha)); + DrawRectangleLinesEx(itemBounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_PRESSED)), guiAlpha)); + + GuiDrawText(files[startIndex + i].name, GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_PRESSED)), guiAlpha)); + } + else if ((startIndex + i) == itemFocused) + { + // Draw item focused + DrawRectangleRec(itemBounds, Fade(GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_FOCUSED)), guiAlpha)); + DrawRectangleLinesEx(itemBounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_FOCUSED)), guiAlpha)); + + GuiDrawText(files[startIndex + i].name, GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_FOCUSED)), guiAlpha)); + } + else + { + // Draw item normal + GuiDrawText(files[startIndex + i].name, GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_NORMAL)), guiAlpha)); + } + } + + // Update item rectangle y position for next item + itemBounds.y += (GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) + GuiGetStyle(LISTVIEW, LIST_ITEMS_PADDING)); + } + + if (useScrollBar) + { + Rectangle scrollBarBounds = { + bounds.x + bounds.width - GuiGetStyle(LISTVIEW, BORDER_WIDTH) - GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH), + bounds.y + GuiGetStyle(LISTVIEW, BORDER_WIDTH), (float)GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH), + bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) + }; + + // Calculate percentage of visible items and apply same percentage to scrollbar + float percentVisible = (float)(endIndex - startIndex)/count; + float sliderSize = bounds.height*percentVisible; + + int prevSliderSize = GuiGetStyle(SCROLLBAR, SLIDER_WIDTH); // Save default slider size + int prevScrollSpeed = GuiGetStyle(SCROLLBAR, SCROLL_SPEED); // Save default scroll speed + GuiSetStyle(SCROLLBAR, SLIDER_WIDTH, sliderSize); // Change slider size + GuiSetStyle(SCROLLBAR, SCROLL_SPEED, count - visibleItems); // Change scroll speed + + startIndex = GuiScrollBar(scrollBarBounds, startIndex, 0, count - visibleItems); + + GuiSetStyle(SCROLLBAR, SCROLL_SPEED, prevScrollSpeed); // Reset scroll speed to default + GuiSetStyle(SCROLLBAR, SLIDER_WIDTH, prevSliderSize); // Reset slider size to default + } + //-------------------------------------------------------------------- + + if (focus != NULL) *focus = itemFocused; + if (scrollIndex != NULL) *scrollIndex = startIndex; + + *active = itemSelected; + return result; +} +#endif // USE_CUSTOM_LISTVIEW_FILEINFO + +#endif // GUI_FILE_DIALOG_IMPLEMENTATION diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/custom_input_box/custom_input_box.c b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/custom_input_box/custom_input_box.c new file mode 100644 index 0000000..18b7ffc --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/custom_input_box/custom_input_box.c @@ -0,0 +1,223 @@ +/******************************************************************************************* +* +* raygui - basic calculator app with custom input box for float values +* +* DEPENDENCIES: +* raylib 4.5 - Windowing/input management and drawing. +* raygui 3.5 - Immediate-mode GUI controls. +* +* COMPILATION (Windows - MinGW): +* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99 +* +**********************************************************************************************/ + +#include "raylib.h" + +#define RAYGUI_IMPLEMENTATION +#include "../../src/raygui.h" + +int guiFloatingPointIndex = 0; // Global variable shared by all GuiFloatBox() + +int GuiFloatBox(Rectangle bounds, const char* text, float* value, int minValue, int maxValue, bool editMode); // Custom input box that works with float values. Basicly GuiValueBox(), but with some changes + +int main() +{ + InitWindow(250, 100, "Basic calculator"); + + // General variables + SetTargetFPS(60); + + float variableA = 0.0f; + float variableB = 0.0f; + float result = 0.0f; + char operation[2]; + operation[0] = '+'; + operation[1] = '\0'; + + bool variableAMode = false; + bool variableBMode = false; + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) + { + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + if (GuiFloatBox((Rectangle){ 10, 10, 100, 20 }, NULL, &variableA, -1000000.0, 1000000.0, variableAMode)) variableAMode = !variableAMode; + if (GuiFloatBox((Rectangle){ 140, 10, 100, 20 }, NULL, &variableB, -1000000.0, 1000000.0, variableBMode)) variableBMode = !variableBMode; + + if (GuiButton((Rectangle){ 10, 70, 50, 20 }, "+")) + { + result = variableA + variableB; + operation[0] = '+'; + } + if (GuiButton((Rectangle){ 70, 70, 50, 20 }, "-")) + { + result = variableA - variableB; + operation[0] = '-'; + } + if (GuiButton((Rectangle){ 130, 70, 50, 20 }, "*")) + { + result = variableA * variableB; + operation[0] = '*'; + } + if (GuiButton((Rectangle){ 190, 70, 50, 20 }, "/")) + { + result = variableA / variableB; + operation[0] = '/'; + } + + DrawText(operation, 123, 15, 10, DARKGRAY); + + GuiFloatBox((Rectangle){ 55, 40, 135, 20 }, "= ", &result, -2000000.0, 2000000.0, false); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + CloseWindow(); +} + +// Float Box control, updates input text with numbers +int GuiFloatBox(Rectangle bounds, const char* text, float* value, int minValue, int maxValue, bool editMode) +{ +#if !defined(RAYGUI_VALUEBOX_MAX_CHARS) +#define RAYGUI_VALUEBOX_MAX_CHARS 32 +#endif + + int result = 0; + GuiState state = guiState; + + char textValue[RAYGUI_VALUEBOX_MAX_CHARS + 1] = "\0"; + + Rectangle textBounds = { 0 }; + if (text != NULL) + { + textBounds.width = (float)GuiGetTextWidth(text) + 2; + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = bounds.x + bounds.width + GuiGetStyle(VALUEBOX, TEXT_PADDING); + textBounds.y = bounds.y + bounds.height / 2.0f - GuiGetStyle(DEFAULT, TEXT_SIZE) / 2.0f; + if (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_LEFT) textBounds.x = bounds.x - textBounds.width - GuiGetStyle(VALUEBOX, TEXT_PADDING); + } + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked && !guiControlExclusiveMode) + { + Vector2 mousePoint = GetMousePosition(); + + if (*value >= 0) sprintf(textValue, "+%.3f", *value); + else sprintf(textValue, "%.3f", *value); + + bool valueHasChanged = false; + + int keyCount = (int)strlen(textValue) - guiFloatingPointIndex; + + if (editMode) + { + state = STATE_PRESSED; + + // Only allow keys in range [48..57] + if (keyCount < RAYGUI_VALUEBOX_MAX_CHARS) + { + if (GuiGetTextWidth(textValue) < bounds.width) + { + int key = GetCharPressed(); + if ((key >= 48) && (key <= 57) && guiFloatingPointIndex) + { + if (guiFloatingPointIndex && guiFloatingPointIndex != 4) guiFloatingPointIndex--; + + textValue[keyCount] = (char)key; + textValue[++keyCount] = '\0'; + valueHasChanged = true; + } + } + } + + // Delete text + if (keyCount > 0) + { + if (IsKeyPressed(KEY_BACKSPACE)) + { + if (guiFloatingPointIndex < 4) guiFloatingPointIndex++; + + keyCount--; + textValue[keyCount] = '\0'; + valueHasChanged = true; + } + } + + // Change sign + if (IsKeyPressed(KEY_MINUS)) + { + if (textValue[0] == '+') textValue[0] = '-'; + else if (textValue[0] == '-') textValue[0] = '+'; + valueHasChanged = true; + } + + // Add decimal separator + if ((IsKeyPressed(KEY_COMMA) || IsKeyPressed(KEY_PERIOD)) && guiFloatingPointIndex == 4) + { + guiFloatingPointIndex--; + valueHasChanged = true; + } + + if (valueHasChanged) + { + *value = atof(textValue); + } + + if (IsKeyPressed(KEY_ENTER) || (!CheckCollisionPointRec(mousePoint, bounds) && IsMouseButtonPressed(MOUSE_LEFT_BUTTON))) + { + guiFloatingPointIndex = 0; + result = 1; + } + } + else + { + if (*value > maxValue) *value = maxValue; + else if (*value < minValue) *value = minValue; + + if (CheckCollisionPointRec(mousePoint, bounds)) + { + state = STATE_FOCUSED; + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) result = 1; + } + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + Color baseColor = BLANK; + sprintf(textValue, "%.3f", *value); + + if (state == STATE_PRESSED) + { + baseColor = GetColor(GuiGetStyle(VALUEBOX, BASE_COLOR_PRESSED)); + textValue[(int)strlen(textValue) - guiFloatingPointIndex] = '\0'; + } + else if (state == STATE_DISABLED) baseColor = GetColor(GuiGetStyle(VALUEBOX, BASE_COLOR_DISABLED)); + + // WARNING: BLANK color does not work properly with Fade() + GuiDrawRectangle(bounds, GuiGetStyle(VALUEBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(VALUEBOX, BORDER + (state * 3))), guiAlpha), baseColor); + GuiDrawText(textValue, GetTextBounds(VALUEBOX, bounds), TEXT_ALIGN_CENTER, Fade(GetColor(GuiGetStyle(VALUEBOX, TEXT + (state * 3))), guiAlpha)); + + // Draw cursor + if (editMode) + { + // NOTE: ValueBox internal text is always centered + Rectangle cursor = { bounds.x + GuiGetTextWidth(textValue) / 2.0f + bounds.width / 2.0f + 1, bounds.y + 2.0f * GuiGetStyle(VALUEBOX, BORDER_WIDTH), 4, bounds.height - 4 * GuiGetStyle(VALUEBOX, BORDER_WIDTH) }; + GuiDrawRectangle(cursor, 0, BLANK, Fade(GetColor(GuiGetStyle(VALUEBOX, BORDER_COLOR_PRESSED)), guiAlpha)); + } + + // Draw text label if provided + GuiDrawText(text, textBounds, (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT) ? TEXT_ALIGN_LEFT : TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(LABEL, TEXT + (state * 3))), guiAlpha)); + //-------------------------------------------------------------------- + + return result; +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/custom_sliders/custom_sliders.c b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/custom_sliders/custom_sliders.c new file mode 100644 index 0000000..ecd7e27 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/custom_sliders/custom_sliders.c @@ -0,0 +1,470 @@ +/******************************************************************************************* +* +* raygui - custom sliders +* +* DEPENDENCIES: +* raylib 4.0 - Windowing/input management and drawing. +* raygui 3.0 - Immediate-mode GUI controls. +* +* COMPILATION (Windows - MinGW): +* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99 +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2016-2024 Ramon Santamaria (@raysan5) +* +**********************************************************************************************/ + +#include "raylib.h" + +#define RAYGUI_IMPLEMENTATION +#include "../../src/raygui.h" + +//---------------------------------------------------------------------------------- +// Controls Functions Declaration +//---------------------------------------------------------------------------------- +float GuiVerticalSlider(Rectangle bounds, const char *textTop, const char *textBottom, float value, float minValue, float maxValue); +float GuiVerticalSliderBar(Rectangle bounds, const char *textTop, const char *textBottom, float value, float minValue, float maxValue); +float GuiVerticalSliderPro(Rectangle bounds, const char *textTop, const char *textBottom, float value, float minValue, float maxValue, int sliderHeight); + +bool GuiSliderOwning(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue, bool editMode); +bool GuiSliderBarOwning(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue, bool editMode); +bool GuiSliderProOwning(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue, int sliderWidth, bool editMode); + +bool GuiVerticalSliderOwning(Rectangle bounds, const char *textTop, const char *textBottom, float *value, float minValue, float maxValue, bool editMode); +bool GuiVerticalSliderBarOwning(Rectangle bounds, const char *textTop, const char *textBottom, float *value, float minValue, float maxValue, bool editMode); +bool GuiVerticalSliderProOwning(Rectangle bounds, const char *textTop, const char *textBottom, float *value, float minValue, float maxValue, int sliderHeight, bool editMode); + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main() +{ + // Initialization + //--------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raygui - custom sliders"); + + float value = 0.5f; + bool sliderEditMode = false; + bool vSliderEditMode = false; + bool vSliderBarEditMode = false; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + // TODO: Implement required update logic + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); + + if (vSliderEditMode || vSliderBarEditMode) GuiLock(); + else GuiUnlock(); + + // raygui: controls drawing + //---------------------------------------------------------------------------------- + GuiGroupBox((Rectangle){ 66, 24, 276, 312 }, "STANDARD"); + GuiSlider((Rectangle){ 96, 48, 216, 16 }, TextFormat("%0.2f", value), NULL, &value, 0.0f, 1.0f); + value = GuiVerticalSlider((Rectangle){ 120, 120, 24, 192 }, TextFormat("%0.2f", value), NULL, value, 0.0f, 1.0f); + value = GuiVerticalSliderBar((Rectangle){ 264, 120, 24, 192 }, TextFormat("%0.2f", value), NULL, value, 0.0f, 1.0f); + + GuiGroupBox((Rectangle){ 378, 24, 276, 312 }, "OWNING"); + if (GuiSliderOwning((Rectangle){ 408, 48, 216, 16 }, NULL, TextFormat("%0.2f", value), &value, 0.0f, 1.0f, sliderEditMode)) sliderEditMode = !sliderEditMode; + if (GuiVerticalSliderOwning((Rectangle){ 432, 120, 24, 192 }, NULL, TextFormat("%0.2f", value), &value, 0.0f, 1.0f, vSliderEditMode)) vSliderEditMode = !vSliderEditMode; + if (GuiVerticalSliderBarOwning((Rectangle){ 576, 120, 24, 192 }, NULL, TextFormat("%0.2f", value), &value, 0.0f, 1.0f, vSliderBarEditMode)) vSliderBarEditMode = !vSliderBarEditMode; + //---------------------------------------------------------------------------------- + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + +//------------------------------------------------------------------------------------ +// Controls Functions Definitions (local) +//------------------------------------------------------------------------------------ +float GuiVerticalSliderPro(Rectangle bounds, const char *textTop, const char *textBottom, float value, float minValue, float maxValue, int sliderHeight) +{ + GuiState state = (GuiState)GuiGetState(); + + int sliderValue = (int)(((value - minValue)/(maxValue - minValue)) * (bounds.height - 2 * GuiGetStyle(SLIDER, BORDER_WIDTH))); + + Rectangle slider = { + bounds.x + GuiGetStyle(SLIDER, BORDER_WIDTH) + GuiGetStyle(SLIDER, SLIDER_PADDING), + bounds.y + bounds.height - sliderValue, + bounds.width - 2*GuiGetStyle(SLIDER, BORDER_WIDTH) - 2*GuiGetStyle(SLIDER, SLIDER_PADDING), + 0.0f, + }; + + if (sliderHeight > 0) // Slider + { + slider.y -= sliderHeight/2; + slider.height = (float)sliderHeight; + } + else if (sliderHeight == 0) // SliderBar + { + slider.y -= GuiGetStyle(SLIDER, BORDER_WIDTH); + slider.height = (float)sliderValue; + } + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked) + { + Vector2 mousePoint = GetMousePosition(); + + if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) + { + state = STATE_PRESSED; + + // Get equivalent value and slider position from mousePoint.x + float normalizedValue = (bounds.y + bounds.height - mousePoint.y - (float)(sliderHeight / 2)) / (bounds.height - (float)sliderHeight); + value = (maxValue - minValue) * normalizedValue + minValue; + + if (sliderHeight > 0) slider.y = mousePoint.y - slider.height / 2; // Slider + else if (sliderHeight == 0) // SliderBar + { + slider.y = mousePoint.y; + slider.height = bounds.y + bounds.height - slider.y - GuiGetStyle(SLIDER, BORDER_WIDTH); + } + } + else state = STATE_FOCUSED; + } + + if (value > maxValue) value = maxValue; + else if (value < minValue) value = minValue; + } + + + // Bar limits check + if (sliderHeight > 0) // Slider + { + if (slider.y < (bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH))) slider.y = bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH); + else if ((slider.y + slider.height) >= (bounds.y + bounds.height)) slider.y = bounds.y + bounds.height - slider.height - GuiGetStyle(SLIDER, BORDER_WIDTH); + } + else if (sliderHeight == 0) // SliderBar + { + if (slider.y < (bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH))) + { + slider.y = bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH); + slider.height = bounds.height - 2*GuiGetStyle(SLIDER, BORDER_WIDTH); + } + } + + //-------------------------------------------------------------------- + // Draw control + //-------------------------------------------------------------------- + GuiDrawRectangle(bounds, GuiGetStyle(SLIDER, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(SLIDER, BORDER + (state*3))), guiAlpha), Fade(GetColor(GuiGetStyle(SLIDER, (state != STATE_DISABLED)? BASE_COLOR_NORMAL : BASE_COLOR_DISABLED)), guiAlpha)); + + // Draw slider internal bar (depends on state) + if ((state == STATE_NORMAL) || (state == STATE_PRESSED)) GuiDrawRectangle(slider, 0, BLANK, Fade(GetColor(GuiGetStyle(SLIDER, BASE_COLOR_PRESSED)), guiAlpha)); + else if (state == STATE_FOCUSED) GuiDrawRectangle(slider, 0, BLANK, Fade(GetColor(GuiGetStyle(SLIDER, TEXT_COLOR_FOCUSED)), guiAlpha)); + + // Draw top/bottom text if provided + if (textTop != NULL) + { + Rectangle textBounds = { 0 }; + textBounds.width = (float)GuiGetTextWidth(textTop); + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = bounds.x + bounds.width/2 - textBounds.width/2; + textBounds.y = bounds.y - textBounds.height - GuiGetStyle(SLIDER, TEXT_PADDING); + + GuiDrawText(textTop, textBounds, TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(SLIDER, TEXT + (state*3))), guiAlpha)); + } + + if (textBottom != NULL) + { + Rectangle textBounds = { 0 }; + textBounds.width = (float)GuiGetTextWidth(textBottom); + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = bounds.x + bounds.width/2 - textBounds.width/2; + textBounds.y = bounds.y + bounds.height + GuiGetStyle(SLIDER, TEXT_PADDING); + + GuiDrawText(textBottom, textBounds, TEXT_ALIGN_LEFT, Fade(GetColor(GuiGetStyle(SLIDER, TEXT + (state*3))), guiAlpha)); + } + //-------------------------------------------------------------------- + + return value; +} + +float GuiVerticalSlider(Rectangle bounds, const char *textTop, const char *textBottom, float value, float minValue, float maxValue) +{ + return GuiVerticalSliderPro(bounds, textTop, textBottom, value, minValue, maxValue, GuiGetStyle(SLIDER, SLIDER_WIDTH)); +} + +float GuiVerticalSliderBar(Rectangle bounds, const char *textTop, const char *textBottom, float value, float minValue, float maxValue) +{ + return GuiVerticalSliderPro(bounds, textTop, textBottom, value, minValue, maxValue, 0); +} + +bool GuiSliderProOwning(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue, int sliderWidth, bool editMode) +{ + GuiState state = (GuiState)GuiGetState(); + + float tempValue = *value; + bool pressed = false; + + int sliderValue = (int)(((tempValue - minValue)/(maxValue - minValue))*(bounds.width - 2*GuiGetStyle(SLIDER, BORDER_WIDTH))); + + Rectangle slider = { + bounds.x, + bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH) + GuiGetStyle(SLIDER, SLIDER_PADDING), + 0, + bounds.height - 2*GuiGetStyle(SLIDER, BORDER_WIDTH) - 2*GuiGetStyle(SLIDER, SLIDER_PADDING) + }; + + if (sliderWidth > 0) // Slider + { + slider.x += (sliderValue - sliderWidth/2); + slider.width = (float)sliderWidth; + } + else if (sliderWidth == 0) // SliderBar + { + slider.x += GuiGetStyle(SLIDER, BORDER_WIDTH); + slider.width = (float)sliderValue; + } + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && (editMode || !guiLocked)) + { + Vector2 mousePoint = GetMousePosition(); + + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) + { + if (CheckCollisionPointRec(mousePoint, bounds)) + { + pressed = true; + } + } + else if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON) && editMode) + { + pressed = true; + } + if (editMode) + { + state = STATE_PRESSED; + tempValue = ((maxValue - minValue)*(mousePoint.x - (float)(bounds.x + sliderWidth/2)))/(float)(bounds.width - sliderWidth) + minValue; + + if (sliderWidth > 0) slider.x = mousePoint.x - slider.width/2; // Slider + else if (sliderWidth == 0) slider.width = (float)sliderValue; // SliderBar + + } + else if (CheckCollisionPointRec(mousePoint, bounds)) + { + state = STATE_FOCUSED; + } + + if (tempValue > maxValue) tempValue = maxValue; + else if (tempValue < minValue) tempValue = minValue; + } + + + // Bar limits check + if (sliderWidth > 0) // Slider + { + if (slider.x <= (bounds.x + GuiGetStyle(SLIDER, BORDER_WIDTH))) slider.x = bounds.x + GuiGetStyle(SLIDER, BORDER_WIDTH); + else if ((slider.x + slider.width) >= (bounds.x + bounds.width)) slider.x = bounds.x + bounds.width - slider.width - GuiGetStyle(SLIDER, BORDER_WIDTH); + } + else if (sliderWidth == 0) // SliderBar + { + if (slider.width > bounds.width) slider.width = bounds.width - 2*GuiGetStyle(SLIDER, BORDER_WIDTH); + } + + //-------------------------------------------------------------------- + // Draw control + //-------------------------------------------------------------------- + GuiDrawRectangle(bounds, GuiGetStyle(SLIDER, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(SLIDER, BORDER + (state*3))), guiAlpha), Fade(GetColor(GuiGetStyle(SLIDER, (state != STATE_DISABLED)? BASE_COLOR_NORMAL : BASE_COLOR_DISABLED)), guiAlpha)); + + // Draw slider internal bar (depends on state) + if ((state == STATE_NORMAL) || (state == STATE_PRESSED)) + GuiDrawRectangle(slider, 0, BLANK, Fade(GetColor(GuiGetStyle(SLIDER, BASE_COLOR_PRESSED)), guiAlpha)); + else if (state == STATE_FOCUSED) + GuiDrawRectangle(slider, 0, BLANK, Fade(GetColor(GuiGetStyle(SLIDER, TEXT_COLOR_FOCUSED)), guiAlpha)); + + // Draw left/right text if provided + if (textLeft != NULL) + { + Rectangle textBounds = { 0 }; + textBounds.width = (float)GuiGetTextWidth(textLeft); + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = bounds.x - textBounds.width - GuiGetStyle(SLIDER, TEXT_PADDING); + textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; + + GuiDrawText(textLeft, textBounds, TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(SLIDER, TEXT + (state*3))), guiAlpha)); + } + + if (textRight != NULL) + { + Rectangle textBounds = { 0 }; + textBounds.width = (float)GuiGetTextWidth(textRight); + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = bounds.x + bounds.width + GuiGetStyle(SLIDER, TEXT_PADDING); + textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; + + GuiDrawText(textRight, textBounds, TEXT_ALIGN_LEFT, Fade(GetColor(GuiGetStyle(SLIDER, TEXT + (state*3))), guiAlpha)); + } + //-------------------------------------------------------------------- + + *value = tempValue; + return pressed; +} + +bool GuiSliderOwning(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue, bool editMode) +{ + return GuiSliderProOwning(bounds, textLeft, textRight, value, minValue, maxValue, GuiGetStyle(SLIDER, SLIDER_WIDTH), editMode); +} + +bool GuiSliderBarOwning(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue, bool editMode) +{ + return GuiSliderProOwning(bounds, textLeft, textRight, value, minValue, maxValue, 0, editMode); +} + +bool GuiVerticalSliderProOwning(Rectangle bounds, const char *textTop, const char *textBottom, float *value, float minValue, float maxValue, int sliderHeight, bool editMode) +{ + GuiState state = (GuiState)GuiGetState(); + + float tempValue = *value; + bool pressed = false; + + int sliderValue = (int)(((tempValue - minValue)/(maxValue - minValue)) * (bounds.height - 2 * GuiGetStyle(SLIDER, BORDER_WIDTH))); + + Rectangle slider = { + bounds.x + GuiGetStyle(SLIDER, BORDER_WIDTH) + GuiGetStyle(SLIDER, SLIDER_PADDING), + bounds.y + bounds.height - sliderValue, + bounds.width - 2*GuiGetStyle(SLIDER, BORDER_WIDTH) - 2*GuiGetStyle(SLIDER, SLIDER_PADDING), + 0.0f, + }; + + if (sliderHeight > 0) // Slider + { + slider.y -= sliderHeight/2; + slider.height = (float)sliderHeight; + } + else if (sliderHeight == 0) // SliderBar + { + slider.y -= GuiGetStyle(SLIDER, BORDER_WIDTH); + slider.height = (float)sliderValue; + } + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && (editMode || !guiLocked)) + { + Vector2 mousePoint = GetMousePosition(); + + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) + { + if (CheckCollisionPointRec(mousePoint, bounds)) + { + pressed = true; + } + } + else if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON) && editMode) + { + pressed = true; + } + if (editMode) + { + state = STATE_PRESSED; + + float normalizedValue = (bounds.y + bounds.height - mousePoint.y - (float)(sliderHeight / 2)) / (bounds.height - (float)sliderHeight); + tempValue = (maxValue - minValue) * normalizedValue + minValue; + + if (sliderHeight > 0) slider.y = mousePoint.y - slider.height / 2; // Slider + else if (sliderHeight == 0) // SliderBar + { + slider.y = mousePoint.y; + slider.height = bounds.y + bounds.height - slider.y - GuiGetStyle(SLIDER, BORDER_WIDTH); + } + } + else if (CheckCollisionPointRec(mousePoint, bounds)) + { + state = STATE_FOCUSED; + } + + if (tempValue > maxValue) tempValue = maxValue; + else if (tempValue < minValue) tempValue = minValue; + } + + + // Bar limits check + if (sliderHeight > 0) // Slider + { + if (slider.y < (bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH))) slider.y = bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH); + else if ((slider.y + slider.height) >= (bounds.y + bounds.height)) slider.y = bounds.y + bounds.height - slider.height - GuiGetStyle(SLIDER, BORDER_WIDTH); + } + else if (sliderHeight == 0) // SliderBar + { + if (slider.y < (bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH))) + { + slider.y = bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH); + slider.height = bounds.height - 2*GuiGetStyle(SLIDER, BORDER_WIDTH); + } + } + + //-------------------------------------------------------------------- + // Draw control + //-------------------------------------------------------------------- + GuiDrawRectangle(bounds, GuiGetStyle(SLIDER, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(SLIDER, BORDER + (state*3))), guiAlpha), Fade(GetColor(GuiGetStyle(SLIDER, (state != STATE_DISABLED)? BASE_COLOR_NORMAL : BASE_COLOR_DISABLED)), guiAlpha)); + + // Draw slider internal bar (depends on state) + if ((state == STATE_NORMAL) || (state == STATE_PRESSED)) + GuiDrawRectangle(slider, 0, BLANK, Fade(GetColor(GuiGetStyle(SLIDER, BASE_COLOR_PRESSED)), guiAlpha)); + else if (state == STATE_FOCUSED) + GuiDrawRectangle(slider, 0, BLANK, Fade(GetColor(GuiGetStyle(SLIDER, TEXT_COLOR_FOCUSED)), guiAlpha)); + + // Draw top/bottom text if provided + if (textTop != NULL) + { + Rectangle textBounds = { 0 }; + textBounds.width = (float)GuiGetTextWidth(textTop); + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = bounds.x + bounds.width/2 - textBounds.width/2; + textBounds.y = bounds.y - textBounds.height - GuiGetStyle(SLIDER, TEXT_PADDING); + + GuiDrawText(textTop, textBounds, TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(SLIDER, TEXT + (state*3))), guiAlpha)); + } + + if (textBottom != NULL) + { + Rectangle textBounds = { 0 }; + textBounds.width = (float)GuiGetTextWidth(textBottom); + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = bounds.x + bounds.width/2 - textBounds.width/2; + textBounds.y = bounds.y + bounds.height + GuiGetStyle(SLIDER, TEXT_PADDING); + + GuiDrawText(textBottom, textBounds, TEXT_ALIGN_LEFT, Fade(GetColor(GuiGetStyle(SLIDER, TEXT + (state*3))), guiAlpha)); + } + //-------------------------------------------------------------------- + + *value = tempValue; + return pressed; +} + +bool GuiVerticalSliderOwning(Rectangle bounds, const char *textTop, const char *textBottom, float *value, float minValue, float maxValue, bool editMode) +{ + return GuiVerticalSliderProOwning(bounds, textTop, textBottom, value, minValue, maxValue, GuiGetStyle(SLIDER, SLIDER_WIDTH), editMode); +} + +bool GuiVerticalSliderBarOwning(Rectangle bounds, const char *textTop, const char *textBottom, float *value, float minValue, float maxValue, bool editMode) +{ + return GuiVerticalSliderProOwning(bounds, textTop, textBottom, value, minValue, maxValue, 0, editMode); +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/floating_window/floating_window.c b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/floating_window/floating_window.c new file mode 100644 index 0000000..df6bc31 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/floating_window/floating_window.c @@ -0,0 +1,148 @@ +#include "raylib.h" + +#define RAYGUI_IMPLEMENTATION +#include "../../src/raygui.h" + +#include "../../styles/dark/style_dark.h" + +static Vector2 window_position = { 10, 10 }; +static Vector2 window_size = { 200, 400 }; +static bool minimized = false; +static bool moving = false; +static bool resizing = false; +static Vector2 scroll; + +static Vector2 window2_position = { 250, 10 }; +static Vector2 window2_size = { 200, 400 }; +static bool minimized2 = false; +static bool moving2 = false; +static bool resizing2 = false; +static Vector2 scroll2; + +void GuiWindowFloating(Vector2 *position, Vector2 *size, bool *minimized, bool *moving, bool *resizing, void (*draw_content)(Vector2, Vector2), Vector2 content_size, Vector2 *scroll, const char* title) { + #if !defined(RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT) + #define RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT 24 + #endif + + #if !defined(RAYGUI_WINDOW_CLOSEBUTTON_SIZE) + #define RAYGUI_WINDOW_CLOSEBUTTON_SIZE 18 + #endif + + int close_title_size_delta_half = (RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT - RAYGUI_WINDOW_CLOSEBUTTON_SIZE) / 2; + + // window movement and resize input and collision check + if(IsMouseButtonPressed(MOUSE_LEFT_BUTTON) && !*moving && !*resizing) { + Vector2 mouse_position = GetMousePosition(); + + Rectangle title_collision_rect = { position->x, position->y, size->x - (RAYGUI_WINDOW_CLOSEBUTTON_SIZE + close_title_size_delta_half), RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT }; + Rectangle resize_collision_rect = { position->x + size->x - 20, position->y + size->y - 20, 20, 20 }; + + if(CheckCollisionPointRec(mouse_position, title_collision_rect)) { + *moving = true; + } else if(!*minimized && CheckCollisionPointRec(mouse_position, resize_collision_rect)) { + *resizing = true; + } + } + + // window movement and resize update + if(*moving) { + Vector2 mouse_delta = GetMouseDelta(); + position->x += mouse_delta.x; + position->y += mouse_delta.y; + + if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) { + *moving = false; + + // clamp window position keep it inside the application area + if(position->x < 0) position->x = 0; + else if(position->x > GetScreenWidth() - size->x) position->x = GetScreenWidth() - size->x; + if(position->y < 0) position->y = 0; + else if(position->y > GetScreenHeight()) position->y = GetScreenHeight() - RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT; + } + + } else if(*resizing) { + Vector2 mouse = GetMousePosition(); + if (mouse.x > position->x) + size->x = mouse.x - position->x; + if (mouse.y > position->y) + size->y = mouse.y - position->y; + + // clamp window size to an arbitrary minimum value and the window size as the maximum + if(size->x < 100) size->x = 100; + else if(size->x > GetScreenWidth()) size->x = GetScreenWidth(); + if(size->y < 100) size->y = 100; + else if(size->y > GetScreenHeight()) size->y = GetScreenHeight(); + + if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) { + *resizing = false; + } + } + + // window and content drawing with scissor and scroll area + if(*minimized) { + GuiStatusBar((Rectangle){ position->x, position->y, size->x, RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT }, title); + + if (GuiButton((Rectangle){ position->x + size->x - RAYGUI_WINDOW_CLOSEBUTTON_SIZE - close_title_size_delta_half, + position->y + close_title_size_delta_half, + RAYGUI_WINDOW_CLOSEBUTTON_SIZE, + RAYGUI_WINDOW_CLOSEBUTTON_SIZE }, + "#120#")) { + *minimized = false; + } + + } else { + *minimized = GuiWindowBox((Rectangle) { position->x, position->y, size->x, size->y }, title); + + // scissor and draw content within a scroll panel + if(draw_content != NULL) { + Rectangle scissor = { 0 }; + GuiScrollPanel((Rectangle) { position->x, position->y + RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT, size->x, size->y - RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT }, + NULL, + (Rectangle) { position->x, position->y, content_size.x, content_size.y }, + scroll, + &scissor); + + bool require_scissor = size->x < content_size.x || size->y < content_size.y; + + if(require_scissor) { + BeginScissorMode(scissor.x, scissor.y, scissor.width, scissor.height); + } + + draw_content(*position, *scroll); + + if(require_scissor) { + EndScissorMode(); + } + } + + // draw the resize button/icon + GuiDrawIcon(71, position->x + size->x - 20, position->y + size->y - 20, 1, WHITE); + } +} + +static void DrawContent(Vector2 position, Vector2 scroll) { + GuiButton((Rectangle) { position.x + 20 + scroll.x, position.y + 50 + scroll.y, 100, 25 }, "Button 1"); + GuiButton((Rectangle) { position.x + 20 + scroll.x, position.y + 100 + scroll.y, 100, 25 }, "Button 2"); + GuiButton((Rectangle) { position.x + 20 + scroll.x, position.y + 150 + scroll.y, 100, 25 }, "Button 3"); + GuiLabel((Rectangle) { position.x + 20 + scroll.x, position.y + 200 + scroll.y, 250, 25 }, "A Label"); + GuiLabel((Rectangle) { position.x + 20 + scroll.x, position.y + 250 + scroll.y, 250, 25 }, "Another Label"); + GuiLabel((Rectangle) { position.x + 20 + scroll.x, position.y + 300 + scroll.y, 250, 25 }, "Yet Another Label"); +} + +int main(void) { + InitWindow(960, 560, "raygui - floating window example"); + SetTargetFPS(60); + GuiLoadStyleDark(); + + while(!WindowShouldClose()) { + BeginDrawing(); + ClearBackground(DARKGREEN); + GuiWindowFloating(&window_position, &window_size, &minimized, &moving, &resizing, &DrawContent, (Vector2) { 140, 320 }, &scroll, "Movable & Scalable Window"); + GuiWindowFloating(&window2_position, &window2_size, &minimized2, &moving2, &resizing2, &DrawContent, (Vector2) { 140, 320 }, &scroll2, "Another window"); + EndDrawing(); + } + + CloseWindow(); + + return 0; +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_exporter/image_exporter.c b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_exporter/image_exporter.c new file mode 100644 index 0000000..cf5cd58 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_exporter/image_exporter.c @@ -0,0 +1,192 @@ +/******************************************************************************************* +* +* raygui - image exporter +* +* DEPENDENCIES: +* raylib 4.0 - Windowing/input management and drawing. +* raygui 3.0 - Immediate-mode GUI controls. +* +* COMPILATION (Windows - MinGW): +* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99 +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#define RAYGUI_IMPLEMENTATION +#include "../../src/raygui.h" + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main(int argc, char *argv[]) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raygui - image exporter"); + + // GUI controls initialization + //---------------------------------------------------------------------------------- + Rectangle windowBoxRec = { screenWidth/2 - 110, screenHeight/2 - 100, 220, 190 }; + bool windowBoxActive = false; + + int fileFormatActive = 0; + const char *fileFormatTextList[3] = { "IMAGE (.png)", "DATA (.raw)", "CODE (.h)" }; + + int pixelFormatActive = 0; + const char *pixelFormatTextList[7] = { "GRAYSCALE", "GRAY ALPHA", "R5G6B5", "R8G8B8", "R5G5B5A1", "R4G4B4A4", "R8G8B8A8" }; + + bool textBoxEditMode = false; + char fileName[64] = "untitled"; + //-------------------------------------------------------------------------------------- + + Image image = { 0 }; + Texture2D texture = { 0 }; + + bool imageLoaded = false; + float imageScale = 1.0f; + Rectangle imageRec = { 0 }; + + bool btnExportPressed = false; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + if (IsFileDropped()) + { + FilePathList droppedFiles = LoadDroppedFiles(); + + if (droppedFiles.count == 1) + { + Image imTemp = LoadImage(droppedFiles.paths[0]); + + if (imTemp.data != NULL) + { + UnloadImage(image); + image = imTemp; + + UnloadTexture(texture); + texture = LoadTextureFromImage(image); + + imageLoaded = true; + pixelFormatActive = image.format - 1; + + if (texture.height > texture.width) imageScale = (float)(screenHeight - 100)/(float)texture.height; + else imageScale = (float)(screenWidth - 100)/(float)texture.width; + } + } + + UnloadDroppedFiles(droppedFiles); + } + + if (btnExportPressed) + { + if (imageLoaded) + { + ImageFormat(&image, pixelFormatActive + 1); + + if (fileFormatActive == 0) // PNG + { + if ((GetFileExtension(fileName) == NULL) || (!IsFileExtension(fileName, ".png"))) strcat(fileName, ".png\0"); // No extension provided + ExportImage(image, fileName); + } + else if (fileFormatActive == 1) // RAW + { + if ((GetFileExtension(fileName) == NULL) || (!IsFileExtension(fileName, ".raw"))) strcat(fileName, ".raw\0"); // No extension provided + + int dataSize = GetPixelDataSize(image.width, image.height, image.format); + + FILE *rawFile = fopen(fileName, "wb"); + fwrite(image.data, 1, dataSize, rawFile); + fclose(rawFile); + } + else if (fileFormatActive == 2) // CODE + { + ExportImageAsCode(image, fileName); + } + } + + windowBoxActive = false; + } + + if (imageLoaded) + { + imageScale += (float)GetMouseWheelMove()*0.05f; // Image scale control + if (imageScale <= 0.1f) imageScale = 0.1f; + else if (imageScale >= 5) imageScale = 5; + + imageRec = (Rectangle){ screenWidth/2 - (float)image.width*imageScale/2, + screenHeight/2 - (float)image.height*imageScale/2, + (float)image.width*imageScale, (float)image.height*imageScale }; + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + if (texture.id > 0) + { + DrawTextureEx(texture, (Vector2){ screenWidth/2 - (float)texture.width*imageScale/2, screenHeight/2 - (float)texture.height*imageScale/2 }, 0.0f, imageScale, WHITE); + + DrawRectangleLinesEx(imageRec, 1, CheckCollisionPointRec(GetMousePosition(), imageRec) ? RED : DARKGRAY); + DrawText(TextFormat("SCALE: %.2f%%", imageScale*100.0f), 20, screenHeight - 40, 20, GetColor(GuiGetStyle(DEFAULT, LINE_COLOR))); + } + else + { + DrawText("DRAG & DROP YOUR IMAGE!", 350, 200, 10, DARKGRAY); + GuiDisable(); + } + + if (GuiButton((Rectangle){ screenWidth - 170, screenHeight - 50, 150, 30 }, "Image Export")) windowBoxActive = true; + GuiEnable(); + + // Draw window box: windowBoxName + //----------------------------------------------------------------------------- + if (windowBoxActive) + { + DrawRectangle(0, 0, screenWidth, screenHeight, Fade(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)), 0.7f)); + windowBoxActive = !GuiWindowBox((Rectangle){ windowBoxRec.x, windowBoxRec.y, 220, 190 }, "Image Export Options"); + + GuiLabel((Rectangle){ windowBoxRec.x + 10, windowBoxRec.y + 35, 60, 25 }, "File format:"); + GuiComboBox((Rectangle){ windowBoxRec.x + 80, windowBoxRec.y + 35, 130, 25 }, TextJoin(fileFormatTextList, 3, ";"), &fileFormatActive); + GuiLabel((Rectangle){ windowBoxRec.x + 10, windowBoxRec.y + 70, 63, 25 }, "Pixel format:"); + GuiComboBox((Rectangle){ windowBoxRec.x + 80, windowBoxRec.y + 70, 130, 25 }, TextJoin(pixelFormatTextList, 7, ";"), &pixelFormatActive); + GuiLabel((Rectangle){ windowBoxRec.x + 10, windowBoxRec.y + 105, 50, 25 }, "File name:"); + if (GuiTextBox((Rectangle){ windowBoxRec.x + 80, windowBoxRec.y + 105, 130, 25 }, fileName, 64, textBoxEditMode)) textBoxEditMode = !textBoxEditMode; + + btnExportPressed = GuiButton((Rectangle){ windowBoxRec.x + 10, windowBoxRec.y + 145, 200, 30 }, "Export Image"); + } + else btnExportPressed = false; + + if (btnExportPressed) DrawText("Image exported!", 20, screenHeight - 20, 20, RED); + //----------------------------------------------------------------------------- + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadImage(image); + UnloadTexture(texture); + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_exporter/resources/cat.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_exporter/resources/cat.png new file mode 100644 index 0000000..d023aa2 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_exporter/resources/cat.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_exporter/resources/fudesumi.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_exporter/resources/fudesumi.png new file mode 100644 index 0000000..9d9038f Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_exporter/resources/fudesumi.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_exporter/resources/parrots.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_exporter/resources/parrots.png new file mode 100644 index 0000000..d6ec60b Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_exporter/resources/parrots.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_exporter/resources/scarfy.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_exporter/resources/scarfy.png new file mode 100644 index 0000000..4803ef7 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_exporter/resources/scarfy.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/design/raw_importer_REF.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/design/raw_importer_REF.png new file mode 100644 index 0000000..6f16441 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/design/raw_importer_REF.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/design/raw_importer_REV0.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/design/raw_importer_REV0.png new file mode 100644 index 0000000..884b096 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/design/raw_importer_REV0.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/design/raw_importer_REV1.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/design/raw_importer_REV1.png new file mode 100644 index 0000000..39b1b72 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/design/raw_importer_REV1.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/design/raw_importer_REV2.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/design/raw_importer_REV2.png new file mode 100644 index 0000000..0797528 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/design/raw_importer_REV2.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/design/raw_importer_REV3.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/design/raw_importer_REV3.png new file mode 100644 index 0000000..f396f6c Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/design/raw_importer_REV3.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/design/raw_importer_REV4.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/design/raw_importer_REV4.png new file mode 100644 index 0000000..b128a62 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/design/raw_importer_REV4.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/design/raw_importer_REV5.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/design/raw_importer_REV5.png new file mode 100644 index 0000000..3f5e012 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/design/raw_importer_REV5.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/image_2x2_RGBA.raw b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/image_2x2_RGBA.raw new file mode 100644 index 0000000..1aa92cd Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/image_2x2_RGBA.raw differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/image_importer_raw.c b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/image_importer_raw.c new file mode 100644 index 0000000..4f86082 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/image_importer_raw/image_importer_raw.c @@ -0,0 +1,228 @@ +/******************************************************************************************* +* +* raygui - image raw importer +* +* DEPENDENCIES: +* raylib 4.0 - Windowing/input management and drawing. +* raygui 3.0 - Immediate-mode GUI controls. +* +* COMPILATION (Windows - MinGW): +* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99 +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) +* +**********************************************************************************************/ + +#include "raylib.h" + +#define RAYGUI_IMPLEMENTATION +#include "../../src/raygui.h" + +#include // Required for: strcpy() +#include // Required for: atoi() +#include // Required for: round() + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main() +{ + // Initialization + //--------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 600; + + InitWindow(screenWidth, screenHeight, "raygui - image raw importer"); + + Texture2D texture = { 0 }; + + // GUI controls initialization + //---------------------------------------------------------------------------------- + Vector2 windowOffset = { screenWidth/2 - 200/2, screenHeight/2 - 465/2 }; + + bool importWindowActive = false; + + int widthValue = 0; + bool widthEditMode = false; + int heightValue = 0; + bool heightEditMode = false; + + int pixelFormatActive = 0; + const char *pixelFormatTextList[8] = { "CUSTOM", "GRAYSCALE", "GRAY ALPHA", "R5G6B5", "R8G8B8", "R5G5B5A1", "R4G4B4A4", "R8G8B8A8" }; + + int channelsActive = 3; + const char *channelsTextList[4] = { "1", "2", "3", "4" }; + int bitDepthActive = 0; + const char *bitDepthTextList[3] = { "8", "16", "32" }; + + int headerSizeValue = 0; + bool headerSizeEditMode = false; + //---------------------------------------------------------------------------------- + + // Image file info + int dataSize = 0; + char fileNamePath[256] = "\0"; + char fileName[64] = "\0"; + + bool btnLoadPressed = false; + + bool imageLoaded = false; + float imageScale = 1.0f; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + // Check if a file is dropped + if (IsFileDropped()) + { + FilePathList droppedFiles = LoadDroppedFiles(); + + // Check file extensions for drag-and-drop + if ((droppedFiles.count == 1) && IsFileExtension(droppedFiles.paths[0], ".raw")) + { + FILE *imageFile = fopen(droppedFiles.paths[0], "rb"); + fseek(imageFile, 0L, SEEK_END); + dataSize = ftell(imageFile); + fclose(imageFile); + + // NOTE: Returned string is just a pointer to droppedFiles[0], + // we need to make a copy of that data somewhere else: fileName + strcpy(fileNamePath, droppedFiles.paths[0]); + strcpy(fileName, GetFileName(droppedFiles.paths[0])); + + // Try to guess possible raw values + // Let's assume image is square, RGBA, 8 bit per channel + widthValue = round(sqrt(dataSize/4)); + heightValue = widthValue; + headerSizeValue = dataSize - widthValue*heightValue*4; + if (headerSizeValue < 0) headerSizeValue = 0; + + importWindowActive = true; + } + + UnloadDroppedFiles(droppedFiles); + } + + // Check if load button has been pressed + if (btnLoadPressed) + { + // Depending on channels and bit depth, select correct pixel format + if ((widthValue != 0) && (heightValue != 0)) + { + int format = -1; + + if (pixelFormatActive == 0) + { + int channels = atoi(channelsTextList[channelsActive]); + int bpp = atoi(bitDepthTextList[bitDepthActive]); + + // Select correct format depending on channels and bpp + if (bpp == 8) + { + if (channels == 1) format = PIXELFORMAT_UNCOMPRESSED_GRAYSCALE; + else if (channels == 2) format = PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA; + else if (channels == 3) format = PIXELFORMAT_UNCOMPRESSED_R8G8B8; + else if (channels == 4) format = PIXELFORMAT_UNCOMPRESSED_R8G8B8A8; + } + else if (bpp == 32) + { + if (channels == 1) format = PIXELFORMAT_UNCOMPRESSED_R32; + else if (channels == 2) TraceLog(LOG_WARNING, "Channel bit-depth not supported!"); + else if (channels == 3) format = PIXELFORMAT_UNCOMPRESSED_R32G32B32; + else if (channels == 4) format = PIXELFORMAT_UNCOMPRESSED_R32G32B32A32; + } + else if (bpp == 16) TraceLog(LOG_WARNING, "Channel bit-depth not supported!"); + } + else format = pixelFormatActive; + + if (format != -1) + { + Image image = LoadImageRaw(fileNamePath, widthValue, heightValue, format, headerSizeValue); + texture = LoadTextureFromImage(image); + UnloadImage(image); + + importWindowActive = false; + btnLoadPressed = false; + + if (texture.id > 0) + { + imageLoaded = true; + imageScale = (float)(screenHeight - 100)/texture.height; + } + } + } + } + + if (imageLoaded) imageScale += (float)GetMouseWheelMove(); // Image scale control + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); + + if (texture.id != 0) + { + DrawTextureEx(texture, (Vector2){ screenWidth/2 - texture.width*imageScale/2, screenHeight/2 - texture.height*imageScale/2 }, 0, imageScale, WHITE); + DrawText(TextFormat("SCALE x%.0f", imageScale), 20, screenHeight - 40, 20, GetColor(GuiGetStyle(DEFAULT, LINE_COLOR))); + } + else DrawText("drag & drop RAW image file", 320, 180, 10, GetColor(GuiGetStyle(DEFAULT, LINE_COLOR))); + + // raygui: controls drawing + //---------------------------------------------------------------------------------- + if (importWindowActive) + { + importWindowActive = !GuiWindowBox((Rectangle){ windowOffset.x + 0, windowOffset.y + 0, 200, 465 }, "Image RAW Import Options"); + + GuiLabel((Rectangle){ windowOffset.x + 10, windowOffset.y + 30, 65, 20 }, "Import file:"); + GuiLabel((Rectangle){ windowOffset.x + 85, windowOffset.y + 30, 75, 20 }, fileName); + GuiLabel((Rectangle){ windowOffset.x + 10, windowOffset.y + 50, 65, 20 }, "File size:"); + GuiLabel((Rectangle){ windowOffset.x + 85, windowOffset.y + 50, 75, 20 }, TextFormat("%i bytes", dataSize)); + GuiGroupBox((Rectangle){ windowOffset.x + 10, windowOffset.y + 85, 180, 80 }, "Resolution"); + GuiLabel((Rectangle){ windowOffset.x + 20, windowOffset.y + 100, 33, 25 }, "Width:"); + if (GuiValueBox((Rectangle){ windowOffset.x + 60, windowOffset.y + 100, 80, 25 }, NULL, &widthValue, 0, 8192, widthEditMode)) widthEditMode = !widthEditMode; + GuiLabel((Rectangle){ windowOffset.x + 145, windowOffset.y + 100, 30, 25 }, "pixels"); + GuiLabel((Rectangle){ windowOffset.x + 20, windowOffset.y + 130, 33, 25 }, "Height:"); + if (GuiValueBox((Rectangle){ windowOffset.x + 60, windowOffset.y + 130, 80, 25 }, NULL, &heightValue, 0, 8192, heightEditMode)) heightEditMode = !heightEditMode; + GuiLabel((Rectangle){ windowOffset.x + 145, windowOffset.y + 130, 30, 25 }, "pixels"); + GuiGroupBox((Rectangle){ windowOffset.x + 10, windowOffset.y + 180, 180, 160 }, "Pixel Format"); + GuiComboBox((Rectangle){ windowOffset.x + 20, windowOffset.y + 195, 160, 25 }, TextJoin(pixelFormatTextList, 8, ";"), &pixelFormatActive); + GuiLine((Rectangle){ windowOffset.x + 20, windowOffset.y + 220, 160, 20 }, NULL); + + if (pixelFormatActive != 0) GuiDisable(); + GuiLabel((Rectangle){ windowOffset.x + 20, windowOffset.y + 235, 50, 20 }, "Channels:"); + GuiToggleGroup((Rectangle){ windowOffset.x + 20, windowOffset.y + 255, 156/4, 25 }, TextJoin(channelsTextList, 4, ";"), &channelsActive); + GuiLabel((Rectangle){ windowOffset.x + 20, windowOffset.y + 285, 50, 20 }, "Bit Depth:"); + GuiToggleGroup((Rectangle){ windowOffset.x + 20, windowOffset.y + 305, 160/3, 25 }, TextJoin(bitDepthTextList, 3, ";"), &bitDepthActive); + GuiEnable(); + + GuiGroupBox((Rectangle){ windowOffset.x + 10, windowOffset.y + 355, 180, 50 }, "Header"); + GuiLabel((Rectangle){ windowOffset.x + 25, windowOffset.y + 370, 27, 25 }, "Size:"); + if (GuiValueBox((Rectangle){ windowOffset.x + 55, windowOffset.y + 370, 85, 25 }, NULL, &headerSizeValue, 0, 10000, headerSizeEditMode)) headerSizeEditMode = !headerSizeEditMode; + GuiLabel((Rectangle){ windowOffset.x + 145, windowOffset.y + 370, 30, 25 }, "bytes"); + + btnLoadPressed = GuiButton((Rectangle){ windowOffset.x + 10, windowOffset.y + 420, 180, 30 }, "Import RAW"); + } + //---------------------------------------------------------------------------------- + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + if (texture.id != 0) UnloadTexture(texture); + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/portable_window/portable_window.c b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/portable_window/portable_window.c new file mode 100644 index 0000000..a7d3c9a --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/portable_window/portable_window.c @@ -0,0 +1,98 @@ +/******************************************************************************************* +* +* raygui - portable window +* +* DEPENDENCIES: +* raylib 4.0 - Windowing/input management and drawing. +* raygui 3.0 - Immediate-mode GUI controls. +* +* COMPILATION (Windows - MinGW): +* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99 +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2016-2024 Ramon Santamaria (@raysan5) +* +**********************************************************************************************/ + +#include "raylib.h" + +#define RAYGUI_IMPLEMENTATION +#include "../../src/raygui.h" + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main() +{ + // Initialization + //--------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 600; + + SetConfigFlags(FLAG_WINDOW_UNDECORATED); + InitWindow(screenWidth, screenHeight, "raygui - portable window"); + + // General variables + Vector2 mousePosition = { 0 }; + Vector2 windowPosition = { 500, 200 }; + Vector2 panOffset = mousePosition; + bool dragWindow = false; + + SetWindowPosition(windowPosition.x, windowPosition.y); + + bool exitWindow = false; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!exitWindow && !WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + mousePosition = GetMousePosition(); + + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) && !dragWindow) + { + if (CheckCollisionPointRec(mousePosition, (Rectangle){ 0, 0, screenWidth, 20 })) + { + windowPosition = GetWindowPosition(); + dragWindow = true; + panOffset = mousePosition; + } + } + + if (dragWindow) + { + windowPosition.x += (mousePosition.x - panOffset.x); + windowPosition.y += (mousePosition.y - panOffset.y); + + SetWindowPosition((int)windowPosition.x, (int)windowPosition.y); + + if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) dragWindow = false; + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + exitWindow = GuiWindowBox((Rectangle){ 0, 0, screenWidth, screenHeight }, "#198# PORTABLE WINDOW"); + + DrawText(TextFormat("Mouse Position: [ %.0f, %.0f ]", mousePosition.x, mousePosition.y), 10, 40, 10, DARKGRAY); + DrawText(TextFormat("Window Position: [ %.0f, %.0f ]", windowPosition.x, windowPosition.y), 10, 60, 10, DARKGRAY); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/property_list/dm_property_list.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/property_list/dm_property_list.h new file mode 100644 index 0000000..838a161 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/property_list/dm_property_list.h @@ -0,0 +1,868 @@ +/******************************************************************************************* +* +* PropertyListControl v1.0.1 - A custom control that displays a set of properties as a list +* +* UPDATES: last updated - 10 march 2020 (v1.0.1) +* v1.0.1 - Made it work with latest raygui version +* - Added `GuiDMSaveProperties()` for saving properties to a text file +* - A `GuiDMLoadProperties()` is planed but not implemented yet +* - Added a section property that can work as a way to group multiple properties +* - Fixed issue with section not having the correct height +* v1.0.0 - Initial release +* +* +* MODULE USAGE: +* #define GUI_PROPERTY_LIST_IMPLEMENTATION +* #include "dm_property_list.h" +* +* INIT: GuiDMProperty props[] = { // initialize a set of properties first + PCOLOR(), + PINT(), + PFLOAT(), + ... + }; +* DRAW: GuiDMPropertyList(bounds, props, sizeof(props)/sizeof(props[0]), ...); +* +* +* NOTE: This module also contains 2 extra controls used internally by the property list +* - GuiDMValueBox() - a value box that supports displaying float values +* - GuiDMSpinner() - a `better` GuiSpinner() +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2020 Vlad Adrian (@Demizdor - https://github.com/Demizdor). +* +**********************************************************************************************/ + +#include "raylib.h" + +// WARNING: raygui implementation is expected to be defined before including this header +#undef RAYGUI_IMPLEMENTATION +#include "../../src/raygui.h" + + +#ifndef GUI_PROPERTY_LIST_H +#define GUI_PROPERTY_LIST_H + +#ifdef __cplusplus +extern "C" { // Prevents name mangling of functions +#endif + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- + +// A bunch of usefull macros for modifying the flags of each property + +// Set flag `F` of property `P`. `P` must be a pointer! +#define PROP_SET_FLAG(P, F) ((P)->flags |= (F)) +// Clear flag `F` of property `P`. `P` must be a pointer! +#define PROP_CLEAR_FLAG(P, F) ((P)->flags &= ~(F)) +// Toggles flag `F` of property `P`. `P` must be a pointer! +#define PROP_TOGGLE_FLAG(P, F) ((P)->flags ^= (F)) +// Checks if flag `F` of property `P` is set . `P` must be a pointer! +#define PROP_CHECK_FLAG(P, F) ((P)->flags & (F)) + +// Some usefull macros for creating properties + +// Create a bool property with name `N`, flags `F` and value `V` +#define PBOOL(N, F, V) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_BOOL, F, .value.vbool = V} +// Create a int property with name `N`, flags `F` and value `V` +#define PINT(N, F, V) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_INT, F, .value.vint = {V,0,0,1}} +// Create a ranged int property within `MIN` and `MAX` with name `N`, flags `F` value `V`. +// Pressing the spinner buttons will increase/decrease the value by `S`. +#define PINT_RANGE(N, F, V, S, MIN, MAX) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_INT, F, .value.vint = {V,MIN,MAX,S}} +// Create a float property with name `N`, flags `F` and value `V` +#define PFLOAT(N, F, V) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_FLOAT, F, .value.vfloat = {V,0.f,0.f,1.0f,3}} +// Create a ranged float property within `MIN` and `MAX` with name `N`, flags `F` value `V` with `P` decimal digits to show. +// Pressing the spinner buttons will increase/decrease the value by `S`. +#define PFLOAT_RANGE(N, F, V, S, P, MIN, MAX) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_FLOAT, F, .value.vfloat = {V,MIN,MAX,S,P}} +// Create a text property with name `N`, flags `F` value `V` and max text size `S` +#define PTEXT(N, F, V, S) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_TEXT, F, .value.vtext = {V, S} } +// Create a text property with name `N`, flags `F` value `V` and max text size `S` +#define PSELECT(N, F, V, A) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_SELECT, F, .value.vselect = {V, A} } +// Create a 2D vector property with name `N`, flags `F` and the `X`, `Y` coordinates +#define PVEC2(N, F, X, Y) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_VECTOR2, F, .value.v2 = {X, Y} } +// Create a 3D vector property with name `N`, flags `F` and the `X`, `Y`, `Z` coordinates +#define PVEC3(N, F, X, Y, Z) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_VECTOR3, F, .value.v3 = {X, Y, Z} } +// Create a 4D vector property with name `N`, flags `F` and the `X`, `Y`, `Z`, `W` coordinates +#define PVEC4(N, F, X, Y, Z, W) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_VECTOR4, F, .value.v4 = {X, Y, Z, W} } +// Create a rectangle property with name `N`, flags `F`, `X`, `Y` coordinates and `W` and `H` size +#define PRECT(N, F, X, Y, W, H) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_RECT, F, .value.vrect = {X, Y, W, H} } +// Create a 3D vector property with name `N`, flags `F` and the `R`, `G`, `B`, `A` channel values +#define PCOLOR(N, F, R, G, B, A) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_COLOR, F, .value.vcolor = {R, G, B, A} } +// Create a collapsable section named `N` with `F` flags and the next `C` properties as children. +// !! A section cannot hold another section as a child !! +#define PSECTION(N, F, C) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_SECTION, F, .value.vsection = (C)} + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +enum GuiDMPropertyTypes { + GUI_PROP_BOOL = 0, + GUI_PROP_INT, + GUI_PROP_FLOAT, + GUI_PROP_TEXT, + GUI_PROP_SELECT, + GUI_PROP_VECTOR2, + GUI_PROP_VECTOR3, + GUI_PROP_VECTOR4, + GUI_PROP_RECT, + GUI_PROP_COLOR, + GUI_PROP_SECTION, +}; + +enum GuiDMPropertyFlags { + GUI_PFLAG_COLLAPSED = 1 << 0, // is the property expanded or collapsed? + GUI_PFLAG_DISABLED = 1 << 1, // is this property disabled or enabled? +}; + +// Data structure for each property +typedef struct { + char* name; + short type; + short flags; + union { + bool vbool; + struct { int val; int min; int max; int step; } vint; + struct { float val; float min; float max; float step; int precision; } vfloat; + struct { char* val; int size; } vtext; + struct { char* val; int active; } vselect; + int vsection; + Vector2 v2; + Vector3 v3; + Vector4 v4; + Rectangle vrect; + Color vcolor; + } value; +} GuiDMProperty; + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +//... + +//---------------------------------------------------------------------------------- +// Module Functions Declaration +//---------------------------------------------------------------------------------- + +// A more advanced `GuiValueBox()` supporting float/int values with specified `precision`, cursor movements, cut/copy/paste and +// other keybord shortcuts. Needed by `GuiDMSpinner()` !! +// `precision` should be between 1-7 for float values and 0 for int values (maybe 15 for doubles but that was not tested) +// WARNING: The bounds should be set big enough else the text will overflow and things will break +// WARNING: Sometimes the last decimal value could differ, this is probably due to rounding +double GuiDMValueBox(Rectangle bounds, double value, double minValue, double maxValue, int precision, bool editMode); + +// A more advanced `GuiSpinner()` using `GuiDMValueBox()` for displaying the values. +// This was needed because `GuiSpinner()` can't display float values and editing values is somewhat hard. +// This is by no means perfect but should be more user friendly than the default control provided by raygui. +double GuiDMSpinner(Rectangle bounds, double value, double minValue, double maxValue, double step, int precision, bool editMode); + +// Works just like `GuiListViewEx()` but with an array of properties instead of text. +void GuiDMPropertyList(Rectangle bounds, GuiDMProperty* props, int count, int* focus, int* scrollIndex); + +// Handy function to save properties to a file. Returns false on failure or true otherwise. +bool GuiDMSaveProperties(const char* file, GuiDMProperty* props, int count); + +#ifdef __cplusplus +} +#endif + +#endif // GUI_PROPERTY_LIST_H + + + +/*********************************************************************************** +* +* GUI_PROPERTY_LIST_IMPLEMENTATION +* +************************************************************************************/ +#if defined(GUI_PROPERTY_LIST_IMPLEMENTATION) + +#include "../../src/raygui.h" + +#include // for calloc() +#include // for memmove(), strlen() +#include // for sscanf(), snprintf() + +#ifndef __cplusplus +#if __STDC_VERSION__ >= 199901L +#include // for bool if >= C99 +#endif +#endif + +double GuiDMValueBox(Rectangle bounds, double value, double minValue, double maxValue, int precision, bool editMode) { + // FIXME: Hope all those `memmove()` functions are correctly used so we won't leak memory or overflow the buffer !!! + static int framesCounter = 0; // Required for blinking cursor + static int cursor = 0; // Required for tracking the cursor position (only for a single active valuebox) + + enum {cursorTimer = 6, maxChars = 31, textPadding = 2}; + + GuiState state = GuiGetState(); + + // Make sure value is in range + if(maxValue != minValue){ + if(value < minValue) value = minValue; + if(value > maxValue) value = maxValue; + } + + char textValue[maxChars + 1] = "\0"; + snprintf(textValue, maxChars, "%.*f", precision, value); // NOTE: use `snprintf` here so we don't overflow the buffer + int len = strlen(textValue); + + bool valueHasChanged = false; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked) + { + if (editMode) + { + // Make sure cursor position is correct + if(cursor > len) cursor = len; + if(cursor < 0) cursor = 0; + + state = STATE_PRESSED; + framesCounter++; + + if(IsKeyPressed(KEY_RIGHT) || (IsKeyDown(KEY_RIGHT) && (framesCounter%cursorTimer == 0))) { + // MOVE CURSOR TO RIGHT + ++cursor; + framesCounter = 0; + } else if(IsKeyPressed(KEY_LEFT) || (IsKeyDown(KEY_LEFT) && (framesCounter%cursorTimer == 0))) { + // MOVE CURSOR TO LEFT + --cursor; + framesCounter = 0; + } else if (IsKeyPressed(KEY_BACKSPACE) || (IsKeyDown(KEY_BACKSPACE) && (framesCounter%cursorTimer) == 0)) { + // HANDLE BACKSPACE + if(cursor > 0) { + if(textValue[cursor-1] != '.') { + if(cursor < len ) + memmove(&textValue[cursor-1], &textValue[cursor], len-cursor); + textValue[len - 1] = '\0'; + valueHasChanged = true; + } + --cursor; + } + framesCounter = 0; + } else if (IsKeyPressed(KEY_DELETE) || (IsKeyDown(KEY_DELETE) && (framesCounter%cursorTimer) == 0)) { + // HANDLE DEL + if(len > 0 && cursor < len && textValue[cursor] != '.') { + memmove(&textValue[cursor], &textValue[cursor+1], len-cursor); + textValue[len] = '\0'; + len -= 1; + valueHasChanged = true; + } + } else if (IsKeyPressed(KEY_HOME)) { + // MOVE CURSOR TO START + cursor = 0; + } else if (IsKeyPressed(KEY_END)) { + // MOVE CURSOR TO END + cursor = len; + } else if (IsKeyDown(KEY_LEFT_CONTROL) && IsKeyPressed(KEY_C)) { + // COPY + SetClipboardText(textValue); + } else if (IsKeyDown(KEY_LEFT_CONTROL) && IsKeyPressed(KEY_X)) { + // CUT + SetClipboardText(textValue); + textValue[0] = '\0'; + cursor = len = 0; + value = 0.0; // set it to 0 and pretend the value didn't change + } else if (IsKeyDown(KEY_LEFT_CONTROL) && IsKeyPressed(KEY_V)) { + // PASTE + const char* clip = GetClipboardText(); + int clipLen = strlen(clip); + clipLen = clipLen > maxChars ? maxChars : clipLen; + memcpy(textValue, clip, clipLen); + len = clipLen; + textValue[len] = '\0'; + valueHasChanged = true; + } + else { + // HANDLE KEY PRESS + int key = GetKeyPressed(); + if( ((len < maxChars) && (key >= 48) && (key <= 57)) || (key == 46) || (key == 45) ) // only allow 0..9, minus(-) and dot(.) + { + if(precision != 0 && cursor < len) { // when we have decimals we can't insert at the end + memmove(&textValue[cursor], &textValue[cursor-1], len+1-cursor); + textValue[len+1] = '\0'; + textValue[cursor] = (char)key; + cursor++; + valueHasChanged = true; + } + else if(precision == 0) { + if(cursor < len) memmove(&textValue[cursor], &textValue[cursor-1], len+1-cursor); + len += 1; + textValue[len+1] = '\0'; + textValue[cursor] = (char)key; + cursor++; + valueHasChanged = true; + } + } + } + + // Make sure cursor position is correct + if(cursor > len) cursor = len; + if(cursor < 0) cursor = 0; + } + else + { + if (CheckCollisionPointRec(GetMousePosition(), bounds)) + { + state = STATE_FOCUSED; + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) framesCounter = 0; + } + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + DrawRectangleLinesEx(bounds, GuiGetStyle(VALUEBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(VALUEBOX, BORDER + (state*3))), guiAlpha)); + + Rectangle textBounds = {bounds.x + GuiGetStyle(VALUEBOX, BORDER_WIDTH) + textPadding, bounds.y + GuiGetStyle(VALUEBOX, BORDER_WIDTH), + bounds.width - 2*(GuiGetStyle(VALUEBOX, BORDER_WIDTH) + textPadding), bounds.height - 2*GuiGetStyle(VALUEBOX, BORDER_WIDTH)}; + + int textWidth = GuiGetTextWidth(textValue); + if(textWidth > textBounds.width) textBounds.width = textWidth; + + if (state == STATE_PRESSED) + { + DrawRectangle(bounds.x + GuiGetStyle(VALUEBOX, BORDER_WIDTH), bounds.y + GuiGetStyle(VALUEBOX, BORDER_WIDTH), bounds.width - 2*GuiGetStyle(VALUEBOX, BORDER_WIDTH), bounds.height - 2*GuiGetStyle(VALUEBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(VALUEBOX, BASE_COLOR_PRESSED)), guiAlpha)); + + // Draw blinking cursor + // NOTE: ValueBox internal text is always centered + if (editMode && ((framesCounter/20)%2 == 0)) { + // Measure text until the cursor + int textWidthCursor = -2; + if(cursor > 0) { + char c = textValue[cursor]; + textValue[cursor] = '\0'; + textWidthCursor = GuiGetTextWidth(textValue); + textValue[cursor] = c; + } + //DrawRectangle(bounds.x + textWidthCursor + textPadding + 2, bounds.y + 2*GuiGetStyle(VALUEBOX, BORDER_WIDTH), 1, bounds.height - 4*GuiGetStyle(VALUEBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(VALUEBOX, BORDER_COLOR_PRESSED)), guiAlpha)); + DrawRectangle(bounds.x + textWidthCursor + (int)((bounds.width - textWidth - textPadding)/2.0f) + 2, bounds.y + 2*GuiGetStyle(VALUEBOX, BORDER_WIDTH), 1, bounds.height - 4*GuiGetStyle(VALUEBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(VALUEBOX, BORDER_COLOR_PRESSED)), guiAlpha)); + } + } + else if (state == STATE_DISABLED) + { + DrawRectangle(bounds.x + GuiGetStyle(VALUEBOX, BORDER_WIDTH), bounds.y + GuiGetStyle(VALUEBOX, BORDER_WIDTH), bounds.width - 2*GuiGetStyle(VALUEBOX, BORDER_WIDTH), bounds.height - 2*GuiGetStyle(VALUEBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(VALUEBOX, BASE_COLOR_DISABLED)), guiAlpha)); + } + + GuiDrawText(textValue, textBounds, TEXT_ALIGN_CENTER, Fade(GetColor(GuiGetStyle(VALUEBOX, TEXT + (state*3))), guiAlpha)); + + value = valueHasChanged ? strtod(textValue, NULL) : value; + + // Make sure value is in range + if(maxValue != minValue){ + if(value < minValue) value = minValue; + if(value > maxValue) value = maxValue; + } + + return value; +} + + + +double GuiDMSpinner(Rectangle bounds, double value, double minValue, double maxValue, double step, int precision, bool editMode) { + GuiState state = GuiGetState(); + + Rectangle spinner = { bounds.x + GuiGetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH) + GuiGetStyle(VALUEBOX, SPINNER_BUTTON_SPACING), bounds.y, + bounds.width - 2*(GuiGetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH) + GuiGetStyle(VALUEBOX, SPINNER_BUTTON_SPACING)), bounds.height }; + Rectangle leftButtonBound = { (float)bounds.x, (float)bounds.y, (float)GuiGetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH), (float)bounds.height }; + Rectangle rightButtonBound = { (float)bounds.x + bounds.width - GuiGetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH), + (float)bounds.y, (float)GuiGetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH), (float)bounds.height }; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked) + { + Vector2 mousePoint = GetMousePosition(); + + // Check spinner state + if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) state = STATE_PRESSED; + else state = STATE_FOCUSED; + } + } + //-------------------------------------------------------------------- + + + // Draw control + //-------------------------------------------------------------------- + // Draw value selector custom buttons + // NOTE: BORDER_WIDTH and TEXT_ALIGNMENT forced values + int tempBorderWidth = GuiGetStyle(BUTTON, BORDER_WIDTH); + int tempTextAlign = GuiGetStyle(BUTTON, TEXT_ALIGNMENT); + GuiSetStyle(BUTTON, BORDER_WIDTH, GuiGetStyle(VALUEBOX, BORDER_WIDTH)); + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + +#if defined(RAYGUI_SUPPORT_RICONS) + if (GuiButton(leftButtonBound, GuiIconText(RICON_ARROW_LEFT_FILL, NULL))) value -= step; + if (GuiButton(rightButtonBound, GuiIconText(RICON_ARROW_RIGHT_FILL, NULL))) value += step; +#else + if (GuiButton(leftButtonBound, "<")) value -= step; + if (GuiButton(rightButtonBound, ">")) value += step; +#endif + + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, tempTextAlign); + GuiSetStyle(BUTTON, BORDER_WIDTH, tempBorderWidth); + + value = GuiDMValueBox(spinner, value, minValue, maxValue, precision, editMode); + + return value; +} + + + +void GuiDMPropertyList(Rectangle bounds, GuiDMProperty* props, int count, int* focus, int* scrollIndex) { + #ifdef RAYGUI_SUPPORT_RICONS + #define PROPERTY_COLLAPSED_ICON "#120#" + #define PROPERTY_EXPANDED_ICON "#121#" + #else + #define PROPERTY_COLLAPSED_ICON "+" + #define PROPERTY_EXPANDED_ICON "-" + #endif + + #define PROPERTY_PADDING 6 + #define PROPERTY_ICON_SIZE 16 + #define PROPERTY_DECIMAL_DIGITS 3 //how many digits to show (used only for the vector properties) + + // NOTE: Using ListView style for everything !! + GuiState state = GuiGetState(); + int propFocused = (focus == NULL)? -1 : *focus; + int scroll = *scrollIndex > 0 ? 0 : *scrollIndex; // NOTE: scroll should always be negative or 0 + + // Each property occupies a certain number of slots, highly synchronized with the properties enum (GUI_PROP_BOOL ... GUI_PROP_SECTION) + // NOTE: If you add a custom property type make sure to add the number of slots it occupies here !! + const int propSlots[] = {1,1,1,2,1,3,4,5,5,5,1}; + + Rectangle absoluteBounds = {0}; // total bounds for all of the properties (unclipped) + // We need to loop over all the properties to get total height so we can see if we need a scrollbar or not + for(int p=0; p bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) ? true : false; + if(!useScrollBar && scroll != 0) scroll = 0; // make sure scroll is 0 when there's no scrollbar + + Rectangle scrollBarBounds = {bounds.x + GuiGetStyle(LISTVIEW, BORDER_WIDTH), bounds.y + GuiGetStyle(LISTVIEW, BORDER_WIDTH), + GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH), bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH)}; + + absoluteBounds.x = bounds.x + GuiGetStyle(LISTVIEW, LIST_ITEMS_SPACING) + GuiGetStyle(DEFAULT, BORDER_WIDTH); + absoluteBounds.y = bounds.y + GuiGetStyle(LISTVIEW, LIST_ITEMS_SPACING) + GuiGetStyle(DEFAULT, BORDER_WIDTH) + scroll; + absoluteBounds.width = bounds.width - 2*(GuiGetStyle(LISTVIEW, LIST_ITEMS_SPACING) + GuiGetStyle(DEFAULT, BORDER_WIDTH)); + + if(useScrollBar) { + if(GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE) + absoluteBounds.x += GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH); // scrollbar is on the LEFT, adjust bounds + else + scrollBarBounds.x = bounds.x + bounds.width - GuiGetStyle(LISTVIEW, BORDER_WIDTH) - GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH); // scrollbar is on the RIGHT + absoluteBounds.width -= GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH); // adjust width to fit the scrollbar + } + + int maxScroll = absoluteBounds.height + 2*(GuiGetStyle(LISTVIEW, LIST_ITEMS_SPACING) + GuiGetStyle(DEFAULT, BORDER_WIDTH))-bounds.height; + + // Update control + //-------------------------------------------------------------------- + Vector2 mousePos = GetMousePosition(); + // NOTE: most of the update code is actually done in the draw control section + if ((state != STATE_DISABLED) && !guiLocked) { + if(!CheckCollisionPointRec(mousePos, bounds)) { + propFocused = -1; + } + + if (useScrollBar) + { + int wheelMove = GetMouseWheelMove(); + scroll += wheelMove*count; + if(-scroll > maxScroll) scroll = -maxScroll; + } + } + //-------------------------------------------------------------------- + + + // Draw control + //-------------------------------------------------------------------- + DrawRectangleRec(bounds, Fade(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)), guiAlpha) ); // Draw background + DrawRectangleLinesEx(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER + state*3)), guiAlpha)); // Draw border + + BeginScissorMode(absoluteBounds.x, bounds.y + GuiGetStyle(DEFAULT, BORDER_WIDTH), absoluteBounds.width, bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH)); + int currentHeight = 0; + for(int p=0; p= bounds.y && absoluteBounds.y + currentHeight <= bounds.y + bounds.height) + { + Rectangle propBounds = {absoluteBounds.x, absoluteBounds.y + currentHeight, absoluteBounds.width, height}; + Color textColor = Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_NORMAL)), guiAlpha); + int propState = STATE_NORMAL; + + // Get the state of this property and do some initial drawing + if(PROP_CHECK_FLAG(&props[p], GUI_PFLAG_DISABLED)) { + propState = STATE_DISABLED; + propBounds.height += 1; + DrawRectangleRec(propBounds, Fade(GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_DISABLED)), guiAlpha)); + propBounds.height -= 1; + textColor = Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_DISABLED)), guiAlpha); + } else { + if(CheckCollisionPointRec(mousePos, propBounds) && !guiLocked) { + if(IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) { + propState = STATE_PRESSED; + //DrawRectangleRec(propRect, Fade(GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_PRESSED)), guiAlpha)); + textColor = Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_PRESSED)), guiAlpha); + } else { + propState = STATE_FOCUSED; + propFocused = p; + //DrawRectangleRec(propRect, Fade(GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_FOCUSED)), guiAlpha)); + textColor = Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_FOCUSED)), guiAlpha); + } + } else propState = STATE_NORMAL; + } + + if(propState == STATE_DISABLED) GuiSetState(propState); + switch(props[p].type) + { + case GUI_PROP_BOOL: { + // draw property name + GuiDrawText(props[p].name, (Rectangle){propBounds.x + PROPERTY_PADDING, propBounds.y, propBounds.width/2-PROPERTY_PADDING, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)}, TEXT_ALIGN_LEFT, textColor); + if(propState == STATE_PRESSED) props[p].value.vbool = !props[p].value.vbool; // toggle the property value when clicked + + // draw property value + const bool locked = guiLocked; + GuiLock(); // lock the checkbox since we changed the value manually + GuiCheckBox((Rectangle){propBounds.x+propBounds.width/2, propBounds.y + height/4, height/2, height/2}, props[p].value.vbool? "Yes" : "No", &props[p].value.vbool); + if(!locked) GuiUnlock(); // only unlock when needed + } break; + + case GUI_PROP_INT: + // draw property name + GuiDrawText(props[p].name, (Rectangle){propBounds.x + PROPERTY_PADDING, propBounds.y, propBounds.width/2-PROPERTY_PADDING, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)}, TEXT_ALIGN_LEFT, textColor); + // draw property value + props[p].value.vint.val = GuiDMSpinner((Rectangle){propBounds.x+propBounds.width/2, propBounds.y + 1, propBounds.width/2, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) - 2}, + props[p].value.vint.val, props[p].value.vint.min, props[p].value.vint.max, props[p].value.vint.step, 0, (propState == STATE_FOCUSED) ); + break; + + case GUI_PROP_FLOAT: + // draw property name + GuiDrawText(props[p].name, (Rectangle){propBounds.x + PROPERTY_PADDING, propBounds.y, propBounds.width/2-PROPERTY_PADDING, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)}, TEXT_ALIGN_LEFT, textColor); + // draw property value + props[p].value.vfloat.val = GuiDMSpinner((Rectangle){propBounds.x+propBounds.width/2, propBounds.y + 1, propBounds.width/2, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) - 2}, + props[p].value.vfloat.val, props[p].value.vfloat.min, props[p].value.vfloat.max, props[p].value.vfloat.step, props[p].value.vfloat.precision, (propState == STATE_FOCUSED) ); + break; + + case GUI_PROP_TEXT: { + Rectangle titleBounds = { propBounds.x, propBounds.y, propBounds.width, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) }; + // Collapse/Expand property on click + if((propState == STATE_PRESSED) && CheckCollisionPointRec(mousePos, titleBounds)) + PROP_TOGGLE_FLAG(&props[p], GUI_PFLAG_COLLAPSED); + + // draw property name + GuiDrawText(PROP_CHECK_FLAG(&props[p], GUI_PFLAG_COLLAPSED) ? PROPERTY_COLLAPSED_ICON : PROPERTY_EXPANDED_ICON, titleBounds, TEXT_ALIGN_LEFT, textColor); + GuiDrawText(props[p].name, (Rectangle){propBounds.x+PROPERTY_ICON_SIZE+PROPERTY_PADDING, propBounds.y, propBounds.width-PROPERTY_ICON_SIZE-PROPERTY_PADDING, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)}, TEXT_ALIGN_LEFT, textColor); + GuiDrawText(TextFormat("%i/%i", strlen(props[p].value.vtext.val), props[p].value.vtext.size), (Rectangle){propBounds.x+propBounds.width/2, propBounds.y + 1, propBounds.width/2, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) - 2}, TEXT_ALIGN_LEFT, textColor); + + // draw property value + if(!PROP_CHECK_FLAG(&props[p], GUI_PFLAG_COLLAPSED)) + GuiTextBox((Rectangle){propBounds.x, propBounds.y + GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)+1, propBounds.width, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)-2}, props[p].value.vtext.val, props[p].value.vtext.size, (propState == STATE_FOCUSED)); + } break; + + case GUI_PROP_SELECT: { + // TODO: Create a custom dropdownbox control instead of using the raygui combobox + // draw property name + GuiDrawText(props[p].name, (Rectangle){propBounds.x + PROPERTY_PADDING, propBounds.y, propBounds.width/2-PROPERTY_PADDING, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)}, TEXT_ALIGN_LEFT, textColor); + // draw property value + GuiComboBox((Rectangle){propBounds.x+propBounds.width/2, propBounds.y + 1, propBounds.width/2, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) - 2}, + props[p].value.vselect.val, &props[p].value.vselect.active); + } break; + + case GUI_PROP_VECTOR2: case GUI_PROP_VECTOR3: case GUI_PROP_VECTOR4: { + Rectangle titleBounds = { propBounds.x, propBounds.y, propBounds.width, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) }; + // Collapse/Expand property on click + if((propState == STATE_PRESSED) && CheckCollisionPointRec(mousePos, titleBounds)) + PROP_TOGGLE_FLAG(&props[p], GUI_PFLAG_COLLAPSED); + + const char* fmt = ""; + if(props[p].type == GUI_PROP_VECTOR2) fmt = TextFormat("[%.0f, %.0f]", props[p].value.v2.x, props[p].value.v2.y); + else if(props[p].type == GUI_PROP_VECTOR3) fmt = TextFormat("[%.0f, %.0f, %.0f]", props[p].value.v3.x, props[p].value.v3.y, props[p].value.v3.z); + else fmt = TextFormat("[%.0f, %.0f, %.0f, %.0f]", props[p].value.v4.x, props[p].value.v4.y, props[p].value.v4.z, props[p].value.v4.w); + + // draw property name + GuiDrawText(PROP_CHECK_FLAG(&props[p], GUI_PFLAG_COLLAPSED) ? PROPERTY_COLLAPSED_ICON : PROPERTY_EXPANDED_ICON, titleBounds, TEXT_ALIGN_LEFT, textColor); + GuiDrawText(props[p].name, (Rectangle){propBounds.x+PROPERTY_ICON_SIZE+PROPERTY_PADDING, propBounds.y, propBounds.width-PROPERTY_ICON_SIZE-PROPERTY_PADDING, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)}, TEXT_ALIGN_LEFT, textColor); + GuiDrawText(fmt, (Rectangle){propBounds.x+propBounds.width/2, propBounds.y + 1, propBounds.width/2, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) - 2}, TEXT_ALIGN_LEFT, textColor); + + // draw X, Y, Z, W values (only when expanded) + if(!PROP_CHECK_FLAG(&props[p], GUI_PFLAG_COLLAPSED)) { + Rectangle slotBounds = { propBounds.x, propBounds.y+GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)+1, propBounds.width, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)-2}; + Rectangle lblBounds = { propBounds.x+PROPERTY_PADDING, slotBounds.y, GuiGetTextWidth("A"), slotBounds.height}; + Rectangle valBounds = { lblBounds.x+lblBounds.width+PROPERTY_PADDING, slotBounds.y, propBounds.width-lblBounds.width-2*PROPERTY_PADDING, slotBounds.height}; + GuiDrawText("X", lblBounds, TEXT_ALIGN_LEFT, textColor); + props[p].value.v2.x = GuiDMSpinner(valBounds, props[p].value.v2.x, 0.0, 0.0, 1.0, PROPERTY_DECIMAL_DIGITS, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) ); + slotBounds.y += GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT); + lblBounds.y = valBounds.y = slotBounds.y; + GuiDrawText("Y", lblBounds, TEXT_ALIGN_LEFT, textColor); + props[p].value.v2.y = GuiDMSpinner(valBounds, props[p].value.v2.y, 0.0, 0.0, 1.0, PROPERTY_DECIMAL_DIGITS, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) ); + slotBounds.y += GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT); + lblBounds.y = valBounds.y = slotBounds.y; + if(props[p].type >= GUI_PROP_VECTOR3) { + GuiDrawText("Z", lblBounds, TEXT_ALIGN_LEFT, textColor); + props[p].value.v3.z = GuiDMSpinner(valBounds, props[p].value.v3.z, 0.0, 0.0, 1.0, PROPERTY_DECIMAL_DIGITS, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) ); + slotBounds.y += GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT); + lblBounds.y = valBounds.y = slotBounds.y; + } + + if(props[p].type >= GUI_PROP_VECTOR4) { + GuiDrawText("W", lblBounds, TEXT_ALIGN_LEFT, textColor); + props[p].value.v4.w = GuiDMSpinner(valBounds, props[p].value.v4.w, 0.0, 0.0, 1.0, PROPERTY_DECIMAL_DIGITS, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) ); + } + } + } break; + + case GUI_PROP_RECT:{ + Rectangle titleBounds = { propBounds.x, propBounds.y, propBounds.width, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) }; + // Collapse/Expand property on click + if((propState == STATE_PRESSED) && CheckCollisionPointRec(mousePos, titleBounds)) + PROP_TOGGLE_FLAG(&props[p], GUI_PFLAG_COLLAPSED); + + // draw property name + GuiDrawText(PROP_CHECK_FLAG(&props[p], GUI_PFLAG_COLLAPSED) ? PROPERTY_COLLAPSED_ICON : PROPERTY_EXPANDED_ICON, titleBounds, TEXT_ALIGN_LEFT, textColor); + GuiDrawText(props[p].name, (Rectangle){propBounds.x+PROPERTY_ICON_SIZE+PROPERTY_PADDING, propBounds.y, propBounds.width-PROPERTY_ICON_SIZE-PROPERTY_PADDING, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)}, TEXT_ALIGN_LEFT, textColor); + GuiDrawText(TextFormat("[%.0f, %.0f, %.0f, %.0f]", props[p].value.vrect.x, props[p].value.vrect.y, props[p].value.vrect.width, props[p].value.vrect.height), + (Rectangle){propBounds.x+propBounds.width/2, propBounds.y + 1, propBounds.width/2, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) - 2}, TEXT_ALIGN_LEFT, textColor); + + // draw X, Y, Width, Height values (only when expanded) + if(!PROP_CHECK_FLAG(&props[p], GUI_PFLAG_COLLAPSED)) { + Rectangle slotBounds = { propBounds.x, propBounds.y+GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)+1, propBounds.width, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)-2}; + Rectangle lblBounds = { propBounds.x+PROPERTY_PADDING, slotBounds.y, GuiGetTextWidth("Height"), slotBounds.height}; + Rectangle valBounds = { lblBounds.x+lblBounds.width+PROPERTY_PADDING, slotBounds.y, propBounds.width-lblBounds.width-2*PROPERTY_PADDING, slotBounds.height}; + GuiDrawText("X", lblBounds, TEXT_ALIGN_LEFT, textColor); + props[p].value.vrect.x = GuiDMSpinner(valBounds, props[p].value.vrect.x, 0.0, 0.0, 1.0, 0, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) ); + slotBounds.y += GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT); + lblBounds.y = valBounds.y = slotBounds.y; + GuiDrawText("Y", lblBounds, TEXT_ALIGN_LEFT, textColor); + props[p].value.vrect.y = GuiDMSpinner(valBounds, props[p].value.vrect.y, 0.0, 0.0, 1.0, 0, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) ); + slotBounds.y += GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT); + lblBounds.y = valBounds.y = slotBounds.y; + GuiDrawText("Width", lblBounds, TEXT_ALIGN_LEFT, textColor); + props[p].value.vrect.width = GuiDMSpinner(valBounds, props[p].value.vrect.width, 0.0, 0.0, 1.0, 0, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) ); + slotBounds.y += GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT); + lblBounds.y = valBounds.y = slotBounds.y; + GuiDrawText("Height", lblBounds, TEXT_ALIGN_LEFT, textColor); + props[p].value.vrect.height = GuiDMSpinner(valBounds, props[p].value.vrect.height, 0.0, 0.0, 1.0, 0, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) ); + } + } break; + + + case GUI_PROP_COLOR: { + Rectangle titleBounds = { propBounds.x, propBounds.y, propBounds.width, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) }; + // Collapse/Expand property on click + if((propState == STATE_PRESSED) && CheckCollisionPointRec(mousePos, titleBounds)) + PROP_TOGGLE_FLAG(&props[p], GUI_PFLAG_COLLAPSED); + + // draw property name + GuiDrawText(PROP_CHECK_FLAG(&props[p], GUI_PFLAG_COLLAPSED) ? PROPERTY_COLLAPSED_ICON : PROPERTY_EXPANDED_ICON, titleBounds, TEXT_ALIGN_LEFT, textColor); + GuiDrawText(props[p].name, (Rectangle){propBounds.x+PROPERTY_ICON_SIZE+PROPERTY_PADDING, propBounds.y+1, propBounds.width-PROPERTY_ICON_SIZE-PROPERTY_PADDING, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)-2}, TEXT_ALIGN_LEFT, textColor); + DrawLineEx( (Vector2){propBounds.x+propBounds.width/2, propBounds.y + GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) - 5}, (Vector2){propBounds.x+propBounds.width, propBounds.y + GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) - 5}, 6.0f, props[p].value.vcolor); + const char* fmt = TextFormat("#%02X%02X%02X%02X", props[p].value.vcolor.r, props[p].value.vcolor.g, props[p].value.vcolor.b, props[p].value.vcolor.a); + char clip[10] = "\0"; + memcpy(clip, fmt, 10*sizeof(char)); // copy to temporary buffer since we can't be sure when TextFormat() will be called again and our text will be overwritten + GuiDrawText(fmt, (Rectangle){propBounds.x+propBounds.width/2, propBounds.y + 1, propBounds.width/2, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) - 2}, TEXT_ALIGN_LEFT, textColor); + + // draw R, G, B, A values (only when expanded) + if(!PROP_CHECK_FLAG(&props[p], GUI_PFLAG_COLLAPSED)) { + Rectangle slotBounds = { propBounds.x, propBounds.y+GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)+1, propBounds.width, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)-2}; + Rectangle lblBounds = { propBounds.x+PROPERTY_PADDING, slotBounds.y, GuiGetTextWidth("A"), slotBounds.height}; + Rectangle valBounds = { lblBounds.x+lblBounds.width+PROPERTY_PADDING, slotBounds.y, GuiGetTextWidth("000000"), slotBounds.height}; + Rectangle sbarBounds = { valBounds.x + valBounds.width + PROPERTY_PADDING, slotBounds.y, slotBounds.width - 3*PROPERTY_PADDING - lblBounds.width - valBounds.width, slotBounds.height }; + + if(sbarBounds.width <= GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)-2) valBounds.width = propBounds.width-lblBounds.width-2*PROPERTY_PADDING; // hide slider when no space + // save current scrollbar style + int tmpSliderPadding = GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING); + int tmpPadding = GuiGetStyle(SCROLLBAR, SCROLL_PADDING); + int tmpBorder = GuiGetStyle(SCROLLBAR, BORDER_WIDTH); + int tmpSliderSize = GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE); + int tmpArrows = GuiGetStyle(SCROLLBAR, ARROWS_VISIBLE); + Color tmpBG1 = GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_DISABLED)); + // set a custom scrollbar style + GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING, 3); + GuiSetStyle(SCROLLBAR, SCROLL_PADDING, 10); + GuiSetStyle(SCROLLBAR, BORDER_WIDTH, 0); + GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE, 6); + GuiSetStyle(SCROLLBAR, ARROWS_VISIBLE, 0); + GuiSetStyle(DEFAULT, BORDER_COLOR_DISABLED, GuiGetStyle(DEFAULT, BACKGROUND_COLOR)); // disable scrollbar background + + GuiDrawText("R", lblBounds, TEXT_ALIGN_LEFT, textColor); + props[p].value.vcolor.r = GuiDMValueBox(valBounds, props[p].value.vcolor.r, 0.0, 255.0, 0, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) ); + if(sbarBounds.width > GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)-2) + props[p].value.vcolor.r = GuiScrollBar(sbarBounds, props[p].value.vcolor.r, 0, 255); + slotBounds.y += GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT); + lblBounds.y = valBounds.y = sbarBounds.y = slotBounds.y; + + GuiDrawText("G", lblBounds, TEXT_ALIGN_LEFT, textColor); + props[p].value.vcolor.g = GuiDMValueBox(valBounds, props[p].value.vcolor.g, 0.0, 255.0, 0, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) ); + if(sbarBounds.width > GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)-2) + props[p].value.vcolor.g = GuiScrollBar(sbarBounds, props[p].value.vcolor.g, 0, 255); + slotBounds.y += GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT); + lblBounds.y = valBounds.y = sbarBounds.y = slotBounds.y; + + GuiDrawText("B", lblBounds, TEXT_ALIGN_LEFT, textColor); + props[p].value.vcolor.b = GuiDMValueBox(valBounds, props[p].value.vcolor.b, 0.0, 255.0, 0, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) ); + if(sbarBounds.width > GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)-2) + props[p].value.vcolor.b = GuiScrollBar(sbarBounds, props[p].value.vcolor.b, 0, 255); + slotBounds.y += GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT); + lblBounds.y = valBounds.y = sbarBounds.y = slotBounds.y; + + GuiDrawText("A", lblBounds, TEXT_ALIGN_LEFT, textColor); + props[p].value.vcolor.a = GuiDMValueBox(valBounds, props[p].value.vcolor.a, 0.0, 255.0, 0, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) ); + if(sbarBounds.width > GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)-2) + props[p].value.vcolor.a = GuiScrollBar(sbarBounds, props[p].value.vcolor.a, 0, 255); + + // load saved scrollbar style + GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING, tmpSliderPadding); + GuiSetStyle(SCROLLBAR, SCROLL_PADDING, tmpPadding); + GuiSetStyle(SCROLLBAR, BORDER_WIDTH, tmpBorder); + GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE, tmpSliderSize); + GuiSetStyle(SCROLLBAR, ARROWS_VISIBLE, tmpArrows); + GuiSetStyle(DEFAULT, BORDER_COLOR_DISABLED, ColorToInt(tmpBG1)); + } + + // support COPY/PASTE (need to do this here since GuiDMValueBox() also has COPY/PASTE so we need to overwrite it) + if((propState == STATE_FOCUSED)) { + if(IsKeyDown(KEY_LEFT_CONTROL) && IsKeyPressed(KEY_C)) + SetClipboardText(clip); + else if(IsKeyDown(KEY_LEFT_CONTROL) && IsKeyPressed(KEY_V)){ + unsigned int a = props[p].value.vcolor.a, r = props[p].value.vcolor.r, g=props[p].value.vcolor.g, b=props[p].value.vcolor.b; + sscanf(GetClipboardText(), "#%02X%02X%02X%02X", &r, &g, &b, &a); + props[p].value.vcolor.r=r; props[p].value.vcolor.g=g; props[p].value.vcolor.b=b; props[p].value.vcolor.a=a; + } + } + } break; + + case GUI_PROP_SECTION: { + Rectangle titleBounds = { propBounds.x, propBounds.y, propBounds.width, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) }; + // Collapse/Expand section on click + if( (propState == STATE_PRESSED) && CheckCollisionPointRec(mousePos, titleBounds) ) + PROP_TOGGLE_FLAG(&props[p], GUI_PFLAG_COLLAPSED); + + if(!PROP_CHECK_FLAG(&props[p], GUI_PFLAG_COLLAPSED)) { + GuiDrawText(PROPERTY_EXPANDED_ICON, titleBounds, TEXT_ALIGN_LEFT, textColor); + GuiDrawText(props[p].name, (Rectangle){propBounds.x+PROPERTY_ICON_SIZE+PROPERTY_PADDING, propBounds.y, propBounds.width-PROPERTY_ICON_SIZE-PROPERTY_PADDING, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)}, TEXT_ALIGN_CENTER, textColor); + } else { + GuiDrawText(PROPERTY_COLLAPSED_ICON, titleBounds, TEXT_ALIGN_LEFT, textColor); + GuiDrawText(TextFormat("%s [%i]", props[p].name, props[p].value.vsection), (Rectangle){propBounds.x+PROPERTY_ICON_SIZE+PROPERTY_PADDING, propBounds.y, propBounds.width-PROPERTY_ICON_SIZE-PROPERTY_PADDING, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)}, TEXT_ALIGN_CENTER, textColor); + } + } break; + + + // NOTE: Add your custom property here !! + default: { + // draw property name + GuiDrawText(props[p].name, (Rectangle){propBounds.x + PROPERTY_PADDING, propBounds.y, propBounds.width/2-PROPERTY_PADDING, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)}, TEXT_ALIGN_LEFT, textColor); + // draw property type + GuiDrawText(TextFormat("TYPE %i", props[p].type), (Rectangle){propBounds.x+propBounds.width/2, propBounds.y + 1, propBounds.width/2, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) - 2}, TEXT_ALIGN_LEFT, textColor); + } break; + + } // end of switch() + + GuiSetState(state); + } + + currentHeight += height + 1; + + // Skip collapsed section. Don't put this code inside the switch !! + if(props[p].type == GUI_PROP_SECTION && (PROP_CHECK_FLAG(&props[p], GUI_PFLAG_COLLAPSED))) p += props[p].value.vsection; + } // end for + EndScissorMode(); + + if(useScrollBar) { + scroll = -GuiScrollBar(scrollBarBounds, -scroll, 0, maxScroll); + *scrollIndex = scroll; + } + //-------------------------------------------------------------------- + + if(focus != NULL) *focus = propFocused; +} + +bool GuiDMSaveProperties(const char* file, GuiDMProperty* props, int count) { + if(file == NULL || props == NULL) return false; + if(count == 0) return true; + + FILE* f = fopen(file, "w"); + if(f == NULL) return false; + + // write header + fprintf(f, "#\n# Property types:\n" + "# b // Bool\n" + "# i // Int\n" + "# f // Float\n" + "# t // Text\n" + "# l // Select\n" + "# g // Section (Group)\n" + "# v2 // Vector 2D\n" + "# v3 // Vector 3D\n" + "# v4 // Vector 4D\n" + "# r // Rectangle\n" + "# c // Color\n" + "#\n\n"); + for(int p=0; p= 1) + { + DrawText(TextFormat("FOCUS:%i | SCROLL:%i | FPS:%i", focus, scroll, GetFPS()), prop[8].value.v2.x, prop[8].value.v2.y, 20, prop[11].value.vcolor); + } + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + GuiDMSaveProperties("test.props", prop, SIZEOF(prop)); // Save properties to `test.props` file at exit + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/property_list/test.props b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/property_list/test.props new file mode 100644 index 0000000..3208dd0 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/property_list/test.props @@ -0,0 +1,27 @@ +# +# Property types: +# b // Bool +# i // Int +# f // Float +# t // Text +# l // Select +# g // Section (Group) +# v2 // Vector 2D +# v3 // Vector 3D +# v4 // Vector 4D +# r // Rectangle +# c // Color +# + +b Bool 0 1 +g #102#SECTION 0 2 +i Int 0 123 0 0 1 +f Float 0 0.990000 0.000000 0.000000 1.000000 3 +t Text 1 Hello! 30 +l Select 0 ONE;TWO;THREE;FOUR 3 +i Int Range 0 32 0 100 1 +r Rect 1 0 0 100 200 +v2 Vec2 1 20.000000 20.000000 +v3 Vec3 1 12.000000 13.000000 14.000000 +v4 Vec4 1 12.000000 13.000000 14.000000 15.000000 +c Color 1 94 68 197 160 diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/raygui.ico b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/raygui.ico new file mode 100644 index 0000000..cc8498b Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/raygui.ico differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/raygui.rc b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/raygui.rc new file mode 100644 index 0000000..ddfb7f2 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/raygui.rc @@ -0,0 +1,27 @@ +GLFW_ICON ICON "raygui.ico" + +1 VERSIONINFO +FILEVERSION 4,0,0,0 +PRODUCTVERSION 4,0,0,0 +BEGIN + BLOCK "StringFileInfo" + BEGIN + //BLOCK "080904E4" // English UK + BLOCK "040904E4" // English US + BEGIN + //VALUE "CompanyName", "raylib technologies" + VALUE "FileDescription", "raygui application (www.raylib.com)" + VALUE "FileVersion", "4.0.0" + VALUE "InternalName", "raygui app" + VALUE "LegalCopyright", "(c) 2023 Ramon Santamaria (@raysan5)" + //VALUE "OriginalFilename", "raygui_app.exe" + VALUE "ProductName", "raygui app" + VALUE "ProductVersion", "4.0.0" + END + END + BLOCK "VarFileInfo" + BEGIN + //VALUE "Translation", 0x809, 1252 // English UK + VALUE "Translation", 0x409, 1252 // English US + END +END diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/scroll_panel/scroll_panel.c b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/scroll_panel/scroll_panel.c new file mode 100644 index 0000000..9c2ae1f --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/scroll_panel/scroll_panel.c @@ -0,0 +1,153 @@ +/******************************************************************************************* +* +* raygui - Controls test +* +* TEST CONTROLS: +* - GuiScrollPanel() +* +* DEPENDENCIES: +* raylib 4.0 - Windowing/input management and drawing. +* raygui 3.0 - Immediate-mode GUI controls. +* +* COMPILATION (Windows - MinGW): +* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99 +* +* COMPILATION (Linux - gcc): +* gcc -o $(NAME_PART) $(FILE_NAME) -I../../src -lraylib -lGL -lm -lpthread -ldl -lrt -lX11 -std=c99 +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2019-2024 Vlad Adrian (@Demizdor) and Ramon Santamaria (@raysan5) +* +**********************************************************************************************/ + +#include "raylib.h" + +#define RAYGUI_IMPLEMENTATION +#include "../../src/raygui.h" + + +static void DrawStyleEditControls(void); // Draw and process scroll bar style edition controls + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main() +{ + // Initialization + //--------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raygui - GuiScrollPanel()"); + + Rectangle panelRec = { 20, 40, 200, 150 }; + Rectangle panelContentRec = {0, 0, 340, 340 }; + Rectangle panelView = { 0 }; + Vector2 panelScroll = { 99, -20 }; + + bool showContentArea = true; + + SetTargetFPS(60); + //--------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + // TODO: Implement required update logic + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + DrawText(TextFormat("[%f, %f]", panelScroll.x, panelScroll.y), 4, 4, 20, RED); + + GuiScrollPanel(panelRec, NULL, panelContentRec, &panelScroll, &panelView); + + BeginScissorMode(panelView.x, panelView.y, panelView.width, panelView.height); + GuiGrid((Rectangle){panelRec.x + panelScroll.x, panelRec.y + panelScroll.y, panelContentRec.width, panelContentRec.height}, NULL, 16, 3, NULL); + EndScissorMode(); + + if (showContentArea) DrawRectangle(panelRec.x + panelScroll.x, panelRec.y + panelScroll.y, panelContentRec.width, panelContentRec.height, Fade(RED, 0.1)); + + DrawStyleEditControls(); + + GuiCheckBox((Rectangle){ 565, 80, 20, 20 }, "SHOW CONTENT AREA", &showContentArea); + + GuiSliderBar((Rectangle){ 590, 385, 145, 15}, "WIDTH", TextFormat("%i", (int)panelContentRec.width), &panelContentRec.width, 1, 600); + GuiSliderBar((Rectangle){ 590, 410, 145, 15 }, "HEIGHT", TextFormat("%i", (int)panelContentRec.height), &panelContentRec.height, 1, 400); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + +// Draw and process scroll bar style edition controls +static void DrawStyleEditControls(void) +{ + // ScrollPanel style controls + //---------------------------------------------------------- + GuiGroupBox((Rectangle){ 550, 170, 220, 205 }, "SCROLLBAR STYLE"); + + int style = GuiGetStyle(SCROLLBAR, BORDER_WIDTH); + GuiLabel((Rectangle){ 555, 195, 110, 10 }, "BORDER_WIDTH"); + GuiSpinner((Rectangle){ 670, 190, 90, 20 }, NULL, &style, 0, 6, false); + GuiSetStyle(SCROLLBAR, BORDER_WIDTH, style); + + style = GuiGetStyle(SCROLLBAR, ARROWS_SIZE); + GuiLabel((Rectangle){ 555, 220, 110, 10 }, "ARROWS_SIZE"); + GuiSpinner((Rectangle){ 670, 215, 90, 20 }, NULL, &style, 4, 14, false); + GuiSetStyle(SCROLLBAR, ARROWS_SIZE, style); + + style = GuiGetStyle(SCROLLBAR, SLIDER_PADDING); + GuiLabel((Rectangle){ 555, 245, 110, 10 }, "SLIDER_PADDING"); + GuiSpinner((Rectangle){ 670, 240, 90, 20 }, NULL, &style, 0, 14, false); + GuiSetStyle(SCROLLBAR, SLIDER_PADDING, style); + + bool scrollBarArrows = GuiGetStyle(SCROLLBAR, ARROWS_VISIBLE); + GuiCheckBox((Rectangle){ 565, 280, 20, 20 }, "ARROWS_VISIBLE", &scrollBarArrows); + GuiSetStyle(SCROLLBAR, ARROWS_VISIBLE, scrollBarArrows); + + style = GuiGetStyle(SCROLLBAR, SLIDER_PADDING); + GuiLabel((Rectangle){ 555, 325, 110, 10 }, "SLIDER_PADDING"); + GuiSpinner((Rectangle){ 670, 320, 90, 20 }, NULL, &style, 0, 14, false); + GuiSetStyle(SCROLLBAR, SLIDER_PADDING, style); + + style = GuiGetStyle(SCROLLBAR, SLIDER_WIDTH); + GuiLabel((Rectangle){ 555, 350, 110, 10 }, "SLIDER_WIDTH"); + GuiSpinner((Rectangle){ 670, 345, 90, 20 }, NULL, &style, 2, 100, false); + GuiSetStyle(SCROLLBAR, SLIDER_WIDTH, style); + + const char *text = GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE? "SCROLLBAR: LEFT" : "SCROLLBAR: RIGHT"; + bool toggleScrollBarSide = GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE); + GuiToggle((Rectangle){ 560, 110, 200, 35 }, text, &toggleScrollBarSide); + GuiSetStyle(LISTVIEW, SCROLLBAR_SIDE, toggleScrollBarSide); + //---------------------------------------------------------- + + // ScrollBar style controls + //---------------------------------------------------------- + GuiGroupBox((Rectangle){ 550, 20, 220, 135 }, "SCROLLPANEL STYLE"); + + style = GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH); + GuiLabel((Rectangle){ 555, 35, 110, 10 }, "SCROLLBAR_WIDTH"); + GuiSpinner((Rectangle){ 670, 30, 90, 20 }, NULL, &style, 6, 30, false); + GuiSetStyle(LISTVIEW, SCROLLBAR_WIDTH, style); + + style = GuiGetStyle(DEFAULT, BORDER_WIDTH); + GuiLabel((Rectangle){ 555, 60, 110, 10 }, "BORDER_WIDTH"); + GuiSpinner((Rectangle){ 670, 55, 90, 20 }, NULL, &style, 0, 20, false); + GuiSetStyle(DEFAULT, BORDER_WIDTH, style); + //---------------------------------------------------------- +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/standalone/raygui_custom_backend.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/standalone/raygui_custom_backend.h new file mode 100644 index 0000000..e430d15 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/standalone/raygui_custom_backend.h @@ -0,0 +1,181 @@ +/******************************************************************************************* +* +* raygui - Standalone mode custom backend +* +* Just edit this file to include your custom implementation to your graphic API +* +* LICENSE: +* +* Copyright (c) +* +**********************************************************************************************/ + +//#include "my_cool_graphic_api.h" + +//---------------------------------------------------------------------------------- +// Defines and Macros +// TODO: Define input keys required by raygui +//---------------------------------------------------------------------------------- +#define KEY_RIGHT 262 +#define KEY_LEFT 263 +#define KEY_DOWN 264 +#define KEY_UP 265 +#define KEY_BACKSPACE 259 +#define KEY_ENTER 257 +#define MOUSE_LEFT_BUTTON 0 + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +// TODO: Define required structures, maybe Font/Texture2D should be defined here? +//---------------------------------------------------------------------------------- +// ... + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +// ... + +//---------------------------------------------------------------------------------- +// Module Functions Definition +// TODO: Define all raygui required functions (previously provided by raylib) +//---------------------------------------------------------------------------------- + +//------------------------------------------------------------------------------- +// Input required functions +//------------------------------------------------------------------------------- +static Vector2 GetMousePosition(void) +{ + Vector2 position = { 0 }; + + // TODO: Mouse position + + return position; +} + +static int GetMouseWheelMove(void) +{ + // TODO: Mouse wheel movement variation, reseted every frame + + return 0; +} + +static bool IsMouseButtonDown(int button) +{ + // TODO: Return true while mouse button [0..2] is being down + + return false; +} + +static bool IsMouseButtonPressed(int button) +{ + // TODO: Return true when mouse button [0..2] has been pressed: up->down + + return false; +} + +static bool IsMouseButtonReleased(int button) +{ + // TODO: Return true when mouse button [0..2] has been released: down->up + + return false; +} + +static bool IsKeyDown(int key) +{ + // TODO: Return true while key is being down + + return false; +} + +static bool IsKeyPressed(int key) +{ + // TODO: Return true when key has been pressed: up->down + + return false; +} + +// USED IN: GuiTextBox(), GuiValueBox() +static int GetKeyPressed(void) +{ + // TODO: Return last key pressed (up->down) in the frame + + return 0; +} + +//------------------------------------------------------------------------------- +// Drawing required functions +//------------------------------------------------------------------------------- +static void DrawRectangle(int x, int y, int width, int height, Color color) +{ + // TODO: Draw rectangle on the screen +} + +// USED IN: GuiColorPicker() +static void DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color col3, Color col4) +{ + // TODO: Draw rectangle with gradients (4 vertex colors) on the screen +} + +// USED IN: GuiDropdownBox(), GuiScrollBar() +static void DrawTriangle(Vector2 v1, Vector2 v2, Vector2 v3, Color color) +{ + // TODO: Draw triangle on the screen, required for arrows +} + +//------------------------------------------------------------------------------- +// Text required functions +//------------------------------------------------------------------------------- +// USED IN: GuiLoadStyleDefault() +static Font GetFontDefault(void) +{ + Font font = { 0 }; + + // TODO: Return default rendering Font for the UI + + return font; +} + +// USED IN: GetTextWidth() +static Vector2 MeasureTextEx(Font font, const char *text, float fontSize, float spacing) +{ + Vector2 size = { 0 }; + + // TODO: Return text size (width, height) on screen depending on the Font, text, fontSize and spacing + + return size; +} + +// USED IN: GuiDrawText() +static void DrawTextEx(Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint) +{ + // TODO: Draw text on the screen +} + +//------------------------------------------------------------------------------- +// GuiLoadStyle() required functions +//------------------------------------------------------------------------------- +static Font LoadFontEx(const char *fileName, int fontSize, int *fontChars, int glyphCount) +{ + Font font = { 0 }; + + // TODO: Load a new font from a file + + return font; +} + +static char *LoadText(const char *fileName) +{ + // TODO: Load text file data, used by GuiLoadStyle() to load characters list required on Font generation, + // this is a .rgs feature, probably this function is not required in most cases + + return NULL; +} + +static const char *GetDirectoryPath(const char *filePath) +{ + // TODO: Get directory path for .rgs file, required to look for a possible .ttf/.otf font file referenced, + // this is a .rgs feature, probably this function is not required in most cases + + return NULL; +} + diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/standalone/raygui_standalone.c b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/standalone/raygui_standalone.c new file mode 100644 index 0000000..2fbc8a2 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/standalone/raygui_standalone.c @@ -0,0 +1,36 @@ +/******************************************************************************************* +* +* raygui - Standalone mode usage template +* +* DEPENDENCIES: +* raygui 2.6 - Immediate-mode GUI controls. +* +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2020 Ramon Santamaria (@raysan5) +* +**********************************************************************************************/ + +#define RAYGUI_IMPLEMENTATION +#define RAYGUI_STANDALONE +#include "../../src/raygui.h" + +#include "custom_backend.h" + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main() +{ + // TODO: Initialize your systems (window, graphics, inputs) + + // TODO: Create your game loop + { + // TODO: Use raygui API + } + + // TODO: De-initialize all resources + + return 0; +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/style_selector/style_selector.c b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/style_selector/style_selector.c new file mode 100644 index 0000000..b4afe66 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/style_selector/style_selector.c @@ -0,0 +1,145 @@ +/******************************************************************************************* +* +* raygui - style selector +* +* DEPENDENCIES: +* raylib 4.5 - Windowing/input management and drawing +* raygui 3.5 - Immediate-mode GUI controls with custom styling and icons +* +* COMPILATION (Windows - MinGW): +* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99 +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2016-2024 Ramon Santamaria (@raysan5) +* +**********************************************************************************************/ + +#include "raylib.h" + +#define RAYGUI_IMPLEMENTATION +//#define RAYGUI_CUSTOM_ICONS // It requires providing gui_icons.h in the same directory +//#include "gui_icons.h" // External icons data provided, it can be generated with rGuiIcons tool +#include "../../src/raygui.h" + +// raygui embedded styles +// NOTE: Included in the same order as selector +#define MAX_GUI_STYLES_AVAILABLE 12 // NOTE: Included light style +#include "../styles/style_jungle.h" // raygui style: jungle +#include "../styles/style_candy.h" // raygui style: candy +#include "../styles/style_lavanda.h" // raygui style: lavanda +#include "../styles/style_cyber.h" // raygui style: cyber +#include "../styles/style_terminal.h" // raygui style: terminal +#include "../styles/style_ashes.h" // raygui style: ashes +#include "../styles/style_bluish.h" // raygui style: bluish +#include "../styles/style_dark.h" // raygui style: dark +#include "../styles/style_cherry.h" // raygui style: cherry +#include "../styles/style_sunny.h" // raygui style: sunny +#include "../styles/style_enefete.h" // raygui style: enefete + +#include // Required for: strcpy() + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main() +{ + // Initialization + //--------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 480; + + InitWindow(screenWidth, screenHeight, "raygui - styles selector"); + SetExitKey(0); + + // Custom GUI font loading + //Font font = LoadFontEx("fonts/custom_font.ttf", 12, 0, 0); + //GuiSetFont(font); + + bool exitWindow = false; + bool showMessageBox = false; + + // Load default style + GuiLoadStyleBluish(); + int visualStyleActive = 4; + int prevVisualStyleActive = 4; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!exitWindow) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + exitWindow = WindowShouldClose(); + + if (IsKeyPressed(KEY_ESCAPE)) showMessageBox = !showMessageBox; + + if (IsFileDropped()) + { + FilePathList droppedFiles = LoadDroppedFiles(); + + if ((droppedFiles.count > 0) && IsFileExtension(droppedFiles.paths[0], ".rgs")) GuiLoadStyle(droppedFiles.paths[0]); + + UnloadDroppedFiles(droppedFiles); // Clear internal buffers + } + + if (visualStyleActive != prevVisualStyleActive) + { + // Reset to default internal style + // NOTE: Required to unload any previously loaded font texture + GuiLoadStyleDefault(); + + switch (visualStyleActive) + { + case 1: GuiLoadStyleJungle(); break; + case 2: GuiLoadStyleCandy(); break; + case 3: GuiLoadStyleLavanda(); break; + case 4: GuiLoadStyleCyber(); break; + case 5: GuiLoadStyleTerminal(); break; + case 6: GuiLoadStyleAshes(); break; + case 7: GuiLoadStyleBluish(); break; + case 8: GuiLoadStyleDark(); break; + case 9: GuiLoadStyleCherry(); break; + case 10: GuiLoadStyleSunny(); break; + case 11: GuiLoadStyleEnefete(); break; + default: break; + } + + prevVisualStyleActive = visualStyleActive; + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); + + // Visuals options + GuiLabel((Rectangle){ 10, 10, 60, 24 }, "Style:"); + GuiComboBox((Rectangle){ 60,10, 120, 24 }, "default;Jungle;Candy;Lavanda;Cyber;Terminal;Ashes;Bluish;Dark;Cherry;Sunny;Enefete", &visualStyleActive); + + DrawRectangle(10, 44, GuiGetFont().texture.width, GuiGetFont().texture.height, BLACK); + DrawTexture(GuiGetFont().texture, 10, 44, WHITE); + DrawRectangleLines(10, 44, GuiGetFont().texture.width, GuiGetFont().texture.height, + GetColor(GuiGetStyle(DEFAULT, LINE_COLOR))); + + //GuiSetIconScale(2); + //GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_RIGHT); + //GuiButton((Rectangle){ 25, 255, 300, 30 }, GuiIconText(ICON_FILE_SAVE, "Save File")); + //GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + //---------------------------------------------------------------------------------- + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_amber.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_amber.h new file mode 100644 index 0000000..abec1e3 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_amber.h @@ -0,0 +1,608 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleAmber(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define AMBER_STYLE_PROPS_COUNT 18 + +// Custom style name: Amber +static const GuiStyleProp amberStyleProps[AMBER_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0x898988ff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0x292929ff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0xd4d4d4ff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0xeb891dff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0x292929ff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0xffffffff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0xf1cf9dff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0xf39333ff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0x191410ff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0x6a6a6aff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0x818181ff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0x606060ff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE + { 0, 18, (int)0xef922aff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0x333333ff }, // DEFAULT_BACKGROUND_COLOR + { 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING + { 1, 8, (int)0xe7e0d4ff }, // LABEL_TEXT_COLOR_PRESSED + { 4, 8, (int)0xf1cf9dff }, // SLIDER_TEXT_COLOR_PRESSED +}; + +// WARNING: This style uses a custom font: "hello-world.ttf" (size: 16, spacing: 1) + +#define AMBER_STYLE_FONT_ATLAS_COMP_SIZE 2605 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char amberFontData[AMBER_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0xdd, 0x8b, 0x8e, 0x9c, 0xb8, 0x12, 0x00, 0x50, 0xf8, 0xff, 0x7f, 0x76, 0x5d, 0xe9, 0x66, 0xb3, 0xd2, 0xee, 0x8e, 0x6d, + 0xaa, 0x30, 0x8f, 0xee, 0x9c, 0x1c, 0x45, 0x91, 0x9a, 0x34, 0x18, 0xdb, 0x85, 0x0d, 0x33, 0x94, 0x63, 0x03, 0x00, 0x00, + 0x00, 0x88, 0x2d, 0x5a, 0xe7, 0xb3, 0xcc, 0xe7, 0x5b, 0xf7, 0xf3, 0xf6, 0xd7, 0xe7, 0x6d, 0xb0, 0xed, 0xe8, 0xbe, 0xfa, + 0x65, 0xda, 0x92, 0xfb, 0x89, 0xee, 0x37, 0xe2, 0x87, 0x4f, 0x7e, 0xff, 0xc9, 0xec, 0xa7, 0x77, 0xbe, 0xf9, 0xda, 0xcb, + 0x6e, 0x19, 0x1f, 0xbd, 0x25, 0x4b, 0x56, 0xff, 0xce, 0xd1, 0x7a, 0xcf, 0xd4, 0xe1, 0xef, 0x3f, 0x2d, 0xb1, 0x97, 0x71, + 0x79, 0x7e, 0xde, 0xdb, 0x36, 0x39, 0xeb, 0xdc, 0x79, 0xb7, 0xe9, 0x96, 0xda, 0xb7, 0xd6, 0xc4, 0x7f, 0xaf, 0x4d, 0x32, + 0x9f, 0x6f, 0xdd, 0x7a, 0xfc, 0x15, 0x37, 0xbd, 0xb8, 0xdd, 0x13, 0xfd, 0xa4, 0x17, 0x23, 0xfb, 0x20, 0xca, 0x23, 0xb5, + 0xff, 0x71, 0x2f, 0x5a, 0x71, 0x4d, 0xed, 0x95, 0xf6, 0xe7, 0xab, 0x4b, 0xff, 0x1b, 0x6d, 0x78, 0xe6, 0xb5, 0x6b, 0x55, + 0xbf, 0x1e, 0xf7, 0x1f, 0xbe, 0x5b, 0x2b, 0xdb, 0xf1, 0x72, 0x45, 0xba, 0x2d, 0x62, 0xd8, 0x6b, 0xf6, 0xee, 0x35, 0x23, + 0x77, 0x76, 0x51, 0x38, 0xef, 0x98, 0x6c, 0xd9, 0x52, 0xa3, 0x5a, 0x5b, 0x3c, 0xfe, 0xaf, 0x88, 0xff, 0xf8, 0x7f, 0x2d, + 0xee, 0xa9, 0xf1, 0x36, 0x92, 0x65, 0xca, 0x47, 0xed, 0xde, 0x39, 0x6e, 0x7f, 0x3c, 0xbf, 0xba, 0x4e, 0x7b, 0xdb, 0xf6, + 0x42, 0x6d, 0xf4, 0xb6, 0xb4, 0xee, 0x79, 0x6f, 0xe5, 0xab, 0x5e, 0x24, 0xce, 0x26, 0x4e, 0x5f, 0x4b, 0x63, 0xd0, 0xd2, + 0xe3, 0xb6, 0x8b, 0x74, 0x49, 0xa3, 0xf0, 0x9d, 0xf1, 0x96, 0x6d, 0xe9, 0x77, 0xae, 0x1b, 0xa3, 0xf2, 0xfb, 0x1b, 0xcf, + 0xbe, 0xa2, 0x18, 0x0f, 0xe7, 0xcb, 0xb9, 0xa7, 0xaf, 0x89, 0x71, 0xf1, 0x3d, 0x55, 0x36, 0xfe, 0xb7, 0x85, 0xf1, 0x1f, + 0xe9, 0xfa, 0xbe, 0x2f, 0xfe, 0x9f, 0x18, 0xff, 0xb7, 0x49, 0xfc, 0x6f, 0xe2, 0x3f, 0xf5, 0x7f, 0x73, 0xf7, 0x05, 0xe3, + 0x71, 0x3b, 0x12, 0xf3, 0x99, 0x58, 0x18, 0xcf, 0x71, 0x7b, 0xf4, 0x8f, 0x7a, 0x5b, 0x65, 0x26, 0xd8, 0xbf, 0xdf, 0xea, + 0xc7, 0xd9, 0xe8, 0x1e, 0x2d, 0xd2, 0x33, 0xce, 0xd1, 0xdd, 0x55, 0xe6, 0x79, 0x49, 0x2c, 0xeb, 0x99, 0x5b, 0x29, 0xfe, + 0x23, 0xf5, 0xcc, 0x27, 0x26, 0x35, 0x9f, 0x8d, 0xff, 0x18, 0x5c, 0xff, 0x46, 0xfd, 0x28, 0x2e, 0xbd, 0xff, 0xcf, 0xc6, + 0xff, 0x36, 0x99, 0x95, 0x6d, 0xa9, 0x9e, 0x5a, 0x29, 0x65, 0x7b, 0xd1, 0x13, 0xd5, 0x95, 0xf1, 0x1f, 0xc9, 0xb3, 0x8e, + 0x03, 0x4f, 0xc3, 0x7a, 0xc7, 0xa8, 0xdc, 0xbd, 0xb5, 0x93, 0xfd, 0x2a, 0x1e, 0x6c, 0x93, 0x33, 0x23, 0x76, 0x7b, 0x7c, + 0xfc, 0x8f, 0xc7, 0xe6, 0xff, 0x91, 0x9e, 0x1b, 0x5c, 0x1f, 0xff, 0xf1, 0xf2, 0xe8, 0xaf, 0xcd, 0xff, 0xa3, 0x38, 0x2f, + 0x8f, 0x45, 0x73, 0xf9, 0xea, 0xdd, 0xcc, 0xbb, 0x5a, 0x64, 0x9b, 0x3e, 0x4f, 0xf8, 0xc4, 0xf9, 0x7f, 0x3c, 0x54, 0x8f, + 0x51, 0xb8, 0x37, 0x10, 0xff, 0x95, 0xf8, 0xaf, 0xcd, 0x69, 0x67, 0x4f, 0x37, 0x63, 0xe9, 0x95, 0xe9, 0xb3, 0xe3, 0xbf, + 0x1e, 0xb1, 0xe2, 0xff, 0xe8, 0xdc, 0x36, 0x86, 0xcf, 0x65, 0x63, 0x49, 0x1b, 0x7e, 0xc6, 0x58, 0xb3, 0x2e, 0xfe, 0xe3, + 0xc4, 0x5d, 0xc3, 0x9f, 0x18, 0xff, 0xdb, 0x8d, 0xf1, 0x1f, 0x5f, 0x3b, 0xff, 0xaf, 0xdc, 0xff, 0xc7, 0xf0, 0x27, 0xd2, + 0xb1, 0x68, 0x06, 0xf0, 0xfe, 0xd1, 0xbf, 0xf2, 0xb4, 0x67, 0xfc, 0x9b, 0x47, 0x91, 0xfe, 0xb9, 0x40, 0xe5, 0x69, 0xd3, + 0x6c, 0xee, 0xbc, 0xa5, 0xcb, 0xf6, 0xe9, 0xe3, 0x7f, 0xfe, 0xbc, 0x63, 0xba, 0x25, 0x0a, 0xfd, 0xe8, 0x6d, 0xd7, 0xd7, + 0x78, 0x7c, 0x64, 0x05, 0xbe, 0x97, 0xf8, 0x07, 0x57, 0x00, 0xd1, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x77, 0x6a, 0xff, 0xfa, 0xf7, 0x9f, 0xdb, 0xda, 0x8f, 0xd9, 0x8c, 0x5b, 0x77, 0x4b, 0x6f, 0x5f, 0xad, + 0x70, 0xfc, 0x7c, 0xc9, 0x56, 0xe7, 0x60, 0xdf, 0x06, 0x67, 0x5a, 0xaf, 0x83, 0xeb, 0xb7, 0x8c, 0x4b, 0x9d, 0x69, 0x9b, + 0x7e, 0xbd, 0x6c, 0xa9, 0x77, 0x92, 0x73, 0x79, 0x02, 0xdb, 0xe4, 0x0d, 0xd7, 0xec, 0xba, 0x0e, 0xb3, 0x1c, 0x86, 0x99, + 0xcc, 0x87, 0xed, 0x50, 0x34, 0xcd, 0x3f, 0xcf, 0x96, 0x67, 0x1b, 0x66, 0xc5, 0x8c, 0x72, 0xde, 0xbf, 0x5a, 0xee, 0xe9, + 0x3d, 0x99, 0xf9, 0x69, 0xf4, 0x3e, 0x7a, 0x4b, 0x67, 0x67, 0xbe, 0x2b, 0x07, 0xfb, 0xa8, 0x3e, 0xf7, 0x74, 0xf6, 0x8b, + 0xca, 0x96, 0xbd, 0xbb, 0xae, 0xca, 0x2c, 0xd7, 0xc3, 0x7e, 0xb8, 0x15, 0x46, 0x39, 0x92, 0xf7, 0x6e, 0x1e, 0xf1, 0x5c, + 0x5f, 0x5b, 0x95, 0xfb, 0x3e, 0xa6, 0x25, 0x8e, 0xe4, 0x77, 0xda, 0xf0, 0x38, 0x71, 0xd9, 0x3b, 0x65, 0x91, 0xac, 0xad, + 0xed, 0xef, 0x1c, 0x1b, 0xb9, 0xba, 0x3c, 0x13, 0xff, 0x95, 0xfc, 0xd2, 0x5b, 0x3a, 0x03, 0xea, 0xde, 0xc9, 0x4b, 0xff, + 0xfb, 0x7a, 0x76, 0x57, 0xa6, 0x95, 0x6c, 0x5b, 0xdf, 0x11, 0xff, 0xf3, 0xdc, 0x69, 0x91, 0x1a, 0x07, 0xf3, 0x7d, 0xf1, + 0x89, 0xdc, 0x0d, 0x77, 0xe5, 0x23, 0x3f, 0xd3, 0x8a, 0x57, 0xc6, 0x7f, 0x3e, 0x4f, 0x6c, 0x3d, 0xf3, 0xcf, 0xfa, 0xf8, + 0xcf, 0xe7, 0xab, 0x8a, 0x6e, 0x3e, 0x15, 0xf1, 0x5f, 0x8d, 0xff, 0xf8, 0x80, 0xf8, 0x5f, 0x99, 0x49, 0x7b, 0xb6, 0xb7, + 0x48, 0x65, 0x3e, 0x9f, 0x65, 0xf9, 0x69, 0x83, 0xb9, 0xec, 0xb1, 0xbb, 0x8f, 0x38, 0x30, 0xff, 0xb8, 0x27, 0xfe, 0x67, + 0x99, 0x7b, 0x73, 0xfd, 0xab, 0xba, 0x9f, 0x55, 0x6b, 0x30, 0xcc, 0x7a, 0x4e, 0xb6, 0x45, 0x23, 0xb9, 0x52, 0xe0, 0xea, + 0xf8, 0x1f, 0x47, 0x6d, 0xad, 0x6c, 0xdb, 0xd2, 0x11, 0xf7, 0xec, 0x08, 0x18, 0x4b, 0xef, 0x0c, 0xee, 0xb9, 0x8a, 0xef, + 0xa7, 0x57, 0x8f, 0x8b, 0xe1, 0x1d, 0xe6, 0xba, 0xbe, 0x75, 0xef, 0xf8, 0x1f, 0x8b, 0xf3, 0xa9, 0xc7, 0x8d, 0x99, 0x56, + 0xf3, 0xab, 0x5c, 0x64, 0xeb, 0xb3, 0x92, 0x23, 0x35, 0x9f, 0x55, 0xf9, 0x5b, 0xe2, 0xff, 0xfa, 0x2d, 0xeb, 0x23, 0x2d, + 0x17, 0xff, 0x71, 0xc3, 0xdc, 0xf2, 0x13, 0xe6, 0xff, 0xdb, 0x30, 0x5f, 0xfd, 0x5d, 0xf1, 0x5f, 0x6d, 0x8d, 0x6b, 0xe3, + 0x3f, 0x0a, 0xf3, 0xf6, 0x95, 0xf3, 0xfc, 0x67, 0xe6, 0xff, 0xe3, 0x31, 0x26, 0xd2, 0xf5, 0x5e, 0xcd, 0x61, 0x7a, 0x65, + 0xfc, 0xc7, 0x2d, 0xf7, 0x96, 0xf7, 0xc7, 0xff, 0xda, 0xb8, 0x5c, 0x1b, 0xff, 0x2b, 0xd7, 0xab, 0x10, 0xff, 0xf7, 0xcf, + 0x0c, 0xd6, 0x7e, 0xa7, 0x72, 0x77, 0xf0, 0xe4, 0xf8, 0x7f, 0x7f, 0x5d, 0x3f, 0x1f, 0xff, 0x2b, 0xe7, 0xff, 0xf1, 0x70, + 0xfc, 0x57, 0xd6, 0xff, 0xba, 0x67, 0x96, 0x2f, 0xfe, 0x9f, 0x88, 0xff, 0x37, 0xd4, 0x7a, 0x7e, 0xde, 0x34, 0x7f, 0x5a, + 0x98, 0x5b, 0x35, 0xb1, 0xf6, 0x54, 0x3c, 0x8a, 0x2b, 0x87, 0x47, 0xa1, 0xd4, 0x95, 0x99, 0xe3, 0xb6, 0xe4, 0x5e, 0xbe, + 0x76, 0x35, 0xa9, 0x64, 0x8e, 0xaf, 0xae, 0x33, 0x76, 0xe7, 0x7d, 0xc1, 0x35, 0xdf, 0xca, 0xb5, 0x62, 0x4c, 0xeb, 0x7e, + 0xc5, 0x75, 0x64, 0x7b, 0x61, 0x16, 0x7f, 0x3e, 0x5d, 0xdc, 0xf4, 0x1d, 0xd4, 0x22, 0xe2, 0x1f, 0xb5, 0xc8, 0x9b, 0x7a, + 0x61, 0x24, 0xef, 0xa9, 0xcd, 0x42, 0xd7, 0xd4, 0xba, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x56, 0xfd, 0x7e, 0x72, 0x36, 0xa7, 0xf8, 0x28, 0x6f, 0x62, 0x7e, 0x7f, 0xb3, 0x2c, 0x68, 0xed, 0xc1, 0x2d, 0xa3, + 0x5a, 0x68, 0x07, 0xcf, 0xa6, 0x25, 0xf3, 0xbc, 0xf5, 0xeb, 0xa4, 0x9f, 0x5f, 0xbe, 0x25, 0xb7, 0xb5, 0xc9, 0x1e, 0x8f, + 0xee, 0xfd, 0x78, 0x1b, 0xf7, 0xb3, 0xa8, 0xe5, 0xea, 0xbd, 0x9f, 0x99, 0xbf, 0x25, 0x57, 0x2c, 0x98, 0xd5, 0xe8, 0x96, + 0x68, 0xc9, 0x23, 0xbd, 0x69, 0xb4, 0xd6, 0xc4, 0xd1, 0x76, 0x38, 0x7a, 0x0e, 0x71, 0xf0, 0xad, 0xa3, 0x59, 0xae, 0xc5, + 0xd1, 0x96, 0x4c, 0x56, 0xa3, 0x33, 0xb9, 0x27, 0x56, 0xe6, 0xd2, 0x5d, 0x95, 0x4b, 0x3f, 0x97, 0xbb, 0x71, 0x1f, 0xb6, + 0x51, 0x9c, 0xbc, 0x52, 0xb7, 0xc1, 0x31, 0x5a, 0x21, 0xef, 0xc3, 0xf1, 0xbd, 0x1f, 0x6f, 0xe3, 0x3d, 0x9d, 0xdd, 0x64, + 0x65, 0xfe, 0xfd, 0x96, 0xce, 0xd8, 0xb9, 0x27, 0x57, 0xc4, 0x38, 0x9e, 0x4f, 0x62, 0x4f, 0x67, 0xae, 0x98, 0xf5, 0xc3, + 0xfd, 0xc4, 0x15, 0xe0, 0xce, 0xfc, 0x3b, 0x6f, 0x88, 0xff, 0x55, 0xb9, 0xb4, 0xaf, 0xce, 0xca, 0xd3, 0xba, 0xa5, 0x6f, + 0x17, 0xd7, 0x6d, 0x3d, 0xe2, 0x62, 0x98, 0x01, 0x23, 0xca, 0x63, 0xd4, 0xd1, 0x63, 0x8c, 0x22, 0x67, 0xb4, 0x62, 0xd1, + 0xf1, 0xeb, 0x66, 0x2c, 0x88, 0xff, 0x33, 0x6f, 0x03, 0x1f, 0x1f, 0x5b, 0x8e, 0xd6, 0xef, 0x7d, 0x19, 0xf3, 0xc7, 0x39, + 0xd8, 0x73, 0x59, 0xd8, 0x57, 0x67, 0xcc, 0x59, 0x17, 0xe7, 0xab, 0xf2, 0xe8, 0xe4, 0xa2, 0x25, 0xd2, 0xf3, 0xf1, 0x4c, + 0xfc, 0xc7, 0xe1, 0xd9, 0x7f, 0x36, 0x9f, 0x4d, 0x3e, 0x1a, 0x62, 0xf1, 0x1b, 0xb5, 0xfd, 0xf2, 0xb6, 0x8b, 0xc6, 0xff, + 0xd5, 0xf1, 0xbf, 0x9d, 0x88, 0xfe, 0x7b, 0x57, 0xcc, 0xd8, 0x8a, 0xeb, 0x52, 0x5c, 0x9d, 0x4b, 0x33, 0x0a, 0x65, 0x7b, + 0x2e, 0xfe, 0xb3, 0x2b, 0x18, 0x8c, 0x8e, 0xd0, 0x0e, 0x97, 0xa4, 0x5d, 0x14, 0x9b, 0x51, 0xec, 0xd5, 0xf1, 0x48, 0x66, + 0x8e, 0x73, 0xe3, 0xff, 0x76, 0x3a, 0xfe, 0xd7, 0xd7, 0xab, 0xf8, 0xaf, 0xcf, 0x67, 0xee, 0x8d, 0xff, 0xad, 0xb0, 0x4e, + 0x4b, 0x14, 0x66, 0x5d, 0xf5, 0x2b, 0xc0, 0x5d, 0xfd, 0xfa, 0xed, 0xcf, 0xd3, 0x67, 0xfd, 0xe0, 0x5d, 0xe7, 0x30, 0xeb, + 0x21, 0x99, 0x7e, 0x15, 0x93, 0xa3, 0xe4, 0xef, 0x8d, 0x2b, 0x7d, 0x7e, 0x2b, 0x66, 0x88, 0xaf, 0xe4, 0x2d, 0x3d, 0x7f, + 0xbf, 0x70, 0xfe, 0x2a, 0x52, 0x5d, 0xbf, 0x2b, 0x4e, 0xf7, 0x91, 0x4c, 0x7b, 0xad, 0xed, 0xaf, 0xef, 0xbd, 0x0e, 0xcc, + 0xb3, 0xc6, 0x7e, 0x46, 0x3e, 0xa0, 0xb8, 0xed, 0x5a, 0xfc, 0x96, 0xfa, 0x88, 0x45, 0x77, 0x8e, 0x57, 0x8d, 0xff, 0x6b, + 0x9f, 0xad, 0x66, 0xe3, 0xe8, 0xfb, 0xb2, 0x58, 0xc5, 0x25, 0xd7, 0x92, 0x58, 0x7a, 0xbf, 0x23, 0xfe, 0xc5, 0xff, 0x15, + 0xf1, 0x7f, 0xfc, 0x18, 0xf1, 0xb5, 0xf1, 0xff, 0x44, 0x2f, 0x12, 0xff, 0x67, 0xe6, 0x97, 0x6f, 0x9a, 0x51, 0x5e, 0x1b, + 0xff, 0xeb, 0xc6, 0xb1, 0xca, 0x7d, 0xd7, 0x9b, 0x5a, 0x47, 0xfc, 0xf3, 0x49, 0xed, 0xfc, 0x9e, 0x75, 0x34, 0x00, 0xf1, + 0x0f, 0x5c, 0x33, 0xef, 0x3e, 0xf6, 0x93, 0x7b, 0xd1, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x59, 0xad, 0x9b, 0x59, 0x3c, 0xba, 0x59, 0xcc, 0xff, 0xf9, 0xef, 0xcf, 0x5b, 0x9f, 0x3d, 0x9f, 0x2d, 0x55, 0xb6, + 0x36, 0xcc, 0xf8, 0xde, 0x1e, 0x2e, 0xf5, 0x95, 0x47, 0x68, 0xb7, 0x9d, 0xe1, 0xda, 0x5a, 0xe9, 0xbd, 0x47, 0xdb, 0x6e, + 0xa8, 0xc9, 0x5a, 0x7b, 0xb5, 0xe1, 0xb6, 0x96, 0xee, 0xb3, 0xb5, 0x2d, 0xff, 0xfd, 0x9f, 0xfb, 0xb0, 0x86, 0xf7, 0x64, + 0x5e, 0xde, 0xda, 0x9b, 0xd1, 0xb5, 0x6c, 0x5a, 0x3f, 0x6f, 0xdb, 0xff, 0xfa, 0xdb, 0xdb, 0x96, 0xa9, 0x83, 0x71, 0xee, + 0xfb, 0x95, 0xe7, 0x33, 0x2a, 0xf5, 0x9a, 0x0c, 0xc4, 0x3f, 0x1f, 0x21, 0x06, 0x67, 0x18, 0xa5, 0x6c, 0x66, 0x77, 0xb5, + 0x65, 0x6f, 0x4d, 0x86, 0xbd, 0xb0, 0xda, 0xca, 0x1d, 0xed, 0x15, 0xa5, 0xf5, 0x1b, 0xb6, 0x49, 0xdf, 0xcc, 0xf5, 0xe7, + 0x4c, 0xdd, 0x8f, 0xf2, 0xcd, 0x8e, 0xce, 0xb3, 0x7f, 0xe4, 0xfe, 0x99, 0xec, 0xc9, 0x33, 0xf9, 0xf5, 0xf9, 0x9e, 0xbc, + 0x96, 0xb6, 0xc1, 0x3c, 0xa7, 0xf2, 0xd6, 0xee, 0xca, 0xf3, 0x19, 0x8d, 0xc3, 0xfd, 0x3a, 0xc8, 0x1f, 0xe3, 0x78, 0x5b, + 0x8e, 0xea, 0xf8, 0xf9, 0xb6, 0x1c, 0xf5, 0xcc, 0x48, 0x47, 0x52, 0xbe, 0xcc, 0xfd, 0xbe, 0xde, 0xdb, 0xdb, 0x6c, 0x3d, + 0x9d, 0x67, 0xde, 0x11, 0x9f, 0xc5, 0x7f, 0xa4, 0xe3, 0x7f, 0xbc, 0x0a, 0xcc, 0xf1, 0x4f, 0x47, 0x57, 0xd9, 0x7d, 0x30, + 0x96, 0xf7, 0x6a, 0xb9, 0x0d, 0xeb, 0xbf, 0xf6, 0xd6, 0xfe, 0xaa, 0xf3, 0xa9, 0x1c, 0x67, 0x4f, 0xd7, 0x59, 0x2e, 0x2b, + 0xea, 0x3e, 0x3c, 0x93, 0x67, 0xdb, 0x72, 0xd4, 0x9b, 0xdb, 0x20, 0x4b, 0xff, 0xea, 0xf6, 0x8a, 0xc4, 0xde, 0xaa, 0x6b, + 0xd6, 0x8c, 0xd6, 0xe0, 0xcb, 0x6e, 0xe9, 0x45, 0x79, 0x65, 0xf6, 0x97, 0x9d, 0x13, 0xe7, 0xc7, 0xe5, 0xea, 0x58, 0xbe, + 0xa5, 0xb3, 0x96, 0xcf, 0x56, 0xc9, 0xc8, 0x8c, 0xd8, 0x95, 0x2d, 0x51, 0xb8, 0x37, 0x6c, 0xe9, 0x27, 0x16, 0xa3, 0x9c, + 0xe2, 0x91, 0x1c, 0xe3, 0x9e, 0x6d, 0xcb, 0xd9, 0x68, 0x96, 0x39, 0x9b, 0xca, 0x96, 0xd1, 0xac, 0xa9, 0xff, 0x9d, 0xfc, + 0xca, 0x98, 0x67, 0x56, 0xe7, 0x6b, 0x97, 0xcd, 0xff, 0xe7, 0x39, 0xb6, 0xd7, 0x8c, 0xcb, 0xd5, 0xb1, 0x7c, 0x2b, 0xac, + 0x5a, 0x10, 0x97, 0xdf, 0x31, 0x56, 0x57, 0x47, 0xdb, 0xbb, 0xf7, 0xc6, 0xb9, 0xcf, 0xab, 0x6b, 0x1f, 0xc4, 0x0b, 0xdb, + 0x32, 0x1f, 0xff, 0xd7, 0xac, 0x73, 0xb1, 0x76, 0x6d, 0xbc, 0x76, 0x5b, 0x9f, 0x3a, 0x3e, 0xca, 0xaf, 0x5e, 0xe5, 0xee, + 0xfa, 0x5a, 0xae, 0xe5, 0xf2, 0x7f, 0x3a, 0xfe, 0x63, 0xe1, 0x8a, 0x02, 0xab, 0xe2, 0xbf, 0xbd, 0x24, 0x62, 0xfe, 0x94, + 0xf8, 0xcf, 0xad, 0xc2, 0x11, 0xa5, 0x95, 0x3b, 0x32, 0x31, 0x9e, 0x7f, 0x96, 0xff, 0x9e, 0x5a, 0xfe, 0x9e, 0xf1, 0xff, + 0xb9, 0xf8, 0x8f, 0x0f, 0x8c, 0xff, 0xf7, 0x96, 0xf9, 0xf9, 0xb1, 0xf1, 0xd9, 0xf8, 0xaf, 0x8c, 0xcb, 0xf5, 0x75, 0x79, + 0xd6, 0xc6, 0x7f, 0x24, 0x46, 0xec, 0xf5, 0x99, 0xb8, 0x9f, 0x8a, 0xff, 0xf7, 0x8e, 0xa5, 0xb3, 0xba, 0x7a, 0xb2, 0x64, + 0xb3, 0x55, 0xe6, 0xdf, 0x15, 0xff, 0xd5, 0x15, 0x55, 0x23, 0x39, 0x93, 0x7d, 0xff, 0xf8, 0x1f, 0xa9, 0x35, 0xf7, 0xbe, + 0x67, 0xfc, 0x8f, 0xc9, 0xda, 0xbc, 0x9f, 0x37, 0xff, 0x8f, 0x47, 0x63, 0x2c, 0x4a, 0x2b, 0xc9, 0x66, 0x57, 0xda, 0x5b, + 0x35, 0xff, 0xbf, 0xf3, 0xe7, 0x8c, 0x9f, 0x36, 0x9b, 0x3c, 0xf7, 0xa4, 0xe3, 0x33, 0xe2, 0x7f, 0x3e, 0x92, 0x7e, 0x5e, + 0x8b, 0x3d, 0x3d, 0xc6, 0xca, 0xf6, 0xfc, 0x4d, 0xf1, 0xbf, 0xdd, 0x32, 0xfe, 0x57, 0x57, 0x3a, 0xcd, 0xfe, 0xfe, 0xd9, + 0x27, 0xc5, 0xff, 0xca, 0x95, 0x87, 0xee, 0x2c, 0x99, 0xf8, 0x7f, 0xdb, 0x3d, 0xce, 0x8a, 0x92, 0xdf, 0xf5, 0x13, 0x99, + 0xbb, 0xc7, 0xf9, 0xf7, 0x5e, 0xb1, 0xdf, 0xdb, 0xff, 0xaa, 0xbf, 0xe7, 0x2e, 0xfe, 0x3f, 0x2f, 0xfe, 0xb3, 0x23, 0x76, + 0x65, 0xcb, 0xfc, 0x48, 0xe7, 0x3f, 0x5f, 0xd7, 0x62, 0xeb, 0x9f, 0x7e, 0xde, 0x71, 0xb7, 0x7a, 0x5f, 0xc9, 0xc4, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xad, 0x36, 0xcc, 0xe4, 0x9f, 0xcd, 0x4a, 0x3e, 0xca, 0x0c, + 0x18, 0xb7, 0xe4, 0x38, 0xaf, 0xe6, 0xff, 0x3f, 0xfe, 0x79, 0xbe, 0xc6, 0x2a, 0x65, 0x5a, 0x7b, 0xee, 0x6d, 0xd2, 0x66, + 0x3f, 0x7f, 0xde, 0x0a, 0xab, 0x3c, 0xdc, 0xd1, 0x62, 0xad, 0xd4, 0x9f, 0xf9, 0xa9, 0xb6, 0xf6, 0x85, 0xb5, 0x35, 0x5b, + 0x33, 0xe0, 0x99, 0x1c, 0xe7, 0xb3, 0xe3, 0xb4, 0x45, 0xc7, 0x18, 0x67, 0xb8, 0xce, 0x95, 0xa9, 0x72, 0xee, 0xeb, 0xdb, + 0xb2, 0x5f, 0x8a, 0x7b, 0x5a, 0xac, 0xf9, 0x0d, 0xfb, 0x47, 0xdf, 0xd9, 0xa9, 0x64, 0x18, 0x8e, 0x64, 0xf6, 0xa3, 0xfb, + 0x4a, 0xbd, 0xee, 0x08, 0xfd, 0xab, 0xd8, 0xfe, 0xd2, 0xb1, 0x67, 0x9c, 0x7b, 0x76, 0x94, 0x15, 0xb1, 0xdd, 0xf4, 0x66, + 0x58, 0x4b, 0xbf, 0xcb, 0xd3, 0x16, 0xed, 0x4d, 0x94, 0xaf, 0xca, 0x3d, 0xbc, 0x4d, 0xf3, 0x72, 0xad, 0xba, 0xce, 0xe4, + 0x4b, 0xbd, 0x0d, 0xf6, 0x95, 0xfb, 0x7c, 0x4b, 0xe6, 0x6a, 0x89, 0xc5, 0x59, 0xdc, 0xd7, 0xd6, 0xca, 0x36, 0xb9, 0x8e, + 0x47, 0x22, 0xc6, 0xce, 0x6c, 0xc9, 0x1f, 0xe7, 0x6d, 0x6b, 0x69, 0x7c, 0xee, 0x7b, 0xb9, 0xfb, 0xa2, 0xdc, 0xc3, 0xf5, + 0x4c, 0x9a, 0xab, 0x72, 0x9c, 0xd7, 0x32, 0xb3, 0xac, 0xcb, 0xa4, 0xb7, 0x77, 0xfb, 0xf1, 0xda, 0x33, 0xbc, 0xbe, 0x56, + 0x3e, 0x21, 0x97, 0xee, 0x1b, 0xdf, 0x0c, 0xff, 0xec, 0xf7, 0xf3, 0x8f, 0x8c, 0x67, 0xdb, 0x74, 0xce, 0xf8, 0x64, 0xfb, + 0x5f, 0x9f, 0x49, 0x67, 0xfb, 0xc8, 0x0c, 0x87, 0x5b, 0x39, 0x03, 0x98, 0xf8, 0xff, 0xf6, 0xf9, 0x7f, 0xdc, 0x90, 0x17, + 0x69, 0x76, 0x2d, 0x59, 0x9b, 0xff, 0x77, 0x13, 0xff, 0x27, 0xa3, 0xe2, 0xf9, 0x5c, 0x9a, 0xf3, 0xab, 0xfc, 0x26, 0xfe, + 0x17, 0x8d, 0xfb, 0xdf, 0x96, 0x49, 0xd3, 0xf8, 0x7f, 0x5d, 0x54, 0x7c, 0xea, 0x5a, 0x1a, 0x6c, 0x85, 0xb1, 0x7c, 0x65, + 0x86, 0xe1, 0xb8, 0xe1, 0x0a, 0x54, 0xc9, 0xcc, 0x98, 0xff, 0xfc, 0xd3, 0xa2, 0x7c, 0x65, 0x8e, 0xad, 0x6b, 0xca, 0xb6, + 0x26, 0xfe, 0xdf, 0x99, 0xfd, 0xfa, 0x13, 0xe7, 0xff, 0xf7, 0x3c, 0x63, 0xd8, 0x6e, 0xce, 0xcc, 0x16, 0x4b, 0x3e, 0xdf, + 0x92, 0x77, 0x38, 0x2b, 0xef, 0x97, 0x9e, 0xcf, 0xa4, 0x77, 0x5f, 0x56, 0xfa, 0xda, 0x5d, 0x9e, 0xf1, 0x1f, 0xbe, 0xfb, + 0xd9, 0xb4, 0xf8, 0x07, 0xf1, 0x6f, 0xf6, 0x0f, 0xee, 0x4c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xc7, 0xaf, 0x3f, 0xea, 0x01, 0xc4, 0x3f, 0xf0, 0xc7, + 0xc5, 0xff, 0xff, 0x00 }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle amberFontRecs[189] = { + { 4, 4, 5 , 16 }, + { 17, 4, 2 , 10 }, + { 27, 4, 4 , 4 }, + { 39, 4, 5 , 10 }, + { 52, 4, 5 , 11 }, + { 65, 4, 5 , 10 }, + { 78, 4, 5 , 10 }, + { 91, 4, 2 , 4 }, + { 101, 4, 4 , 13 }, + { 113, 4, 5 , 13 }, + { 126, 4, 4 , 4 }, + { 138, 4, 5 , 6 }, + { 151, 4, 3 , 2 }, + { 162, 4, 5 , 2 }, + { 175, 4, 2 , 1 }, + { 185, 4, 5 , 10 }, + { 198, 4, 5 , 10 }, + { 211, 4, 4 , 10 }, + { 223, 4, 5 , 10 }, + { 236, 4, 5 , 10 }, + { 249, 4, 5 , 10 }, + { 262, 4, 5 , 10 }, + { 275, 4, 5 , 10 }, + { 288, 4, 5 , 10 }, + { 301, 4, 5 , 10 }, + { 314, 4, 5 , 10 }, + { 327, 4, 2 , 6 }, + { 337, 4, 2 , 6 }, + { 347, 4, 5 , 6 }, + { 360, 4, 5 , 4 }, + { 373, 4, 5 , 6 }, + { 386, 4, 5 , 10 }, + { 399, 4, 5 , 7 }, + { 412, 4, 5 , 10 }, + { 425, 4, 5 , 10 }, + { 438, 4, 5 , 10 }, + { 451, 4, 5 , 10 }, + { 464, 4, 5 , 10 }, + { 477, 4, 5 , 10 }, + { 490, 4, 5 , 10 }, + { 4, 28, 5 , 10 }, + { 17, 28, 4 , 10 }, + { 29, 28, 5 , 10 }, + { 42, 28, 5 , 10 }, + { 55, 28, 5 , 10 }, + { 68, 28, 5 , 10 }, + { 81, 28, 5 , 10 }, + { 94, 28, 5 , 10 }, + { 107, 28, 5 , 10 }, + { 120, 28, 5 , 10 }, + { 133, 28, 5 , 10 }, + { 146, 28, 5 , 10 }, + { 159, 28, 5 , 10 }, + { 172, 28, 5 , 10 }, + { 185, 28, 5 , 10 }, + { 198, 28, 5 , 10 }, + { 211, 28, 5 , 10 }, + { 224, 28, 5 , 10 }, + { 237, 28, 5 , 10 }, + { 250, 28, 3 , 13 }, + { 261, 28, 5 , 10 }, + { 274, 28, 3 , 13 }, + { 285, 28, 4 , 3 }, + { 297, 28, 5 , 1 }, + { 310, 28, 3 , 3 }, + { 321, 28, 5 , 7 }, + { 334, 28, 5 , 10 }, + { 347, 28, 5 , 7 }, + { 360, 28, 5 , 10 }, + { 373, 28, 5 , 7 }, + { 386, 28, 5 , 10 }, + { 399, 28, 5 , 10 }, + { 412, 28, 5 , 10 }, + { 425, 28, 4 , 10 }, + { 437, 28, 3 , 13 }, + { 448, 28, 5 , 10 }, + { 461, 28, 5 , 10 }, + { 474, 28, 5 , 7 }, + { 487, 28, 5 , 7 }, + { 4, 52, 5 , 7 }, + { 17, 52, 5 , 10 }, + { 30, 52, 5 , 10 }, + { 43, 52, 5 , 7 }, + { 56, 52, 5 , 7 }, + { 69, 52, 5 , 10 }, + { 82, 52, 5 , 7 }, + { 95, 52, 5 , 7 }, + { 108, 52, 5 , 7 }, + { 121, 52, 5 , 7 }, + { 134, 52, 5 , 10 }, + { 147, 52, 5 , 7 }, + { 160, 52, 4 , 13 }, + { 172, 52, 2 , 13 }, + { 182, 52, 4 , 13 }, + { 194, 52, 5 , 4 }, + { 207, 52, 2 , 9 }, + { 217, 52, 5 , 7 }, + { 230, 52, 5 , 10 }, + { 243, 52, 5 , 10 }, + { 256, 52, 5 , 10 }, + { 269, 52, 0 , 0 }, + { 277, 52, 5 , 10 }, + { 290, 52, 0 , 0 }, + { 298, 52, 5 , 7 }, + { 311, 52, 3 , 5 }, + { 322, 52, 5 , 5 }, + { 335, 52, 5 , 3 }, + { 348, 52, 5 , 7 }, + { 361, 52, 5 , 2 }, + { 374, 52, 4 , 4 }, + { 386, 52, 5 , 8 }, + { 399, 52, 3 , 5 }, + { 410, 52, 3 , 6 }, + { 421, 52, 0 , 0 }, + { 429, 52, 5 , 10 }, + { 442, 52, 5 , 10 }, + { 455, 52, 2 , 3 }, + { 465, 52, 0 , 0 }, + { 473, 52, 3 , 5 }, + { 484, 52, 4 , 4 }, + { 496, 52, 5 , 5 }, + { 4, 76, 5 , 10 }, + { 17, 76, 5 , 7 }, + { 30, 76, 5 , 10 }, + { 43, 76, 5 , 10 }, + { 56, 76, 5 , 14 }, + { 69, 76, 5 , 14 }, + { 82, 76, 5 , 14 }, + { 95, 76, 5 , 14 }, + { 108, 76, 5 , 12 }, + { 121, 76, 5 , 12 }, + { 134, 76, 5 , 10 }, + { 147, 76, 5 , 13 }, + { 160, 76, 5 , 14 }, + { 173, 76, 5 , 14 }, + { 186, 76, 5 , 14 }, + { 199, 76, 5 , 12 }, + { 212, 76, 4 , 14 }, + { 224, 76, 4 , 14 }, + { 236, 76, 4 , 14 }, + { 248, 76, 4 , 12 }, + { 260, 76, 5 , 10 }, + { 273, 76, 5 , 14 }, + { 286, 76, 5 , 14 }, + { 299, 76, 5 , 14 }, + { 312, 76, 5 , 14 }, + { 325, 76, 5 , 14 }, + { 338, 76, 5 , 12 }, + { 351, 76, 4 , 3 }, + { 363, 76, 5 , 10 }, + { 376, 76, 5 , 14 }, + { 389, 76, 5 , 14 }, + { 402, 76, 5 , 14 }, + { 415, 76, 5 , 12 }, + { 428, 76, 5 , 14 }, + { 441, 76, 5 , 10 }, + { 454, 76, 5 , 10 }, + { 467, 76, 5 , 10 }, + { 480, 76, 5 , 10 }, + { 493, 76, 5 , 10 }, + { 4, 100, 5 , 10 }, + { 17, 100, 5 , 9 }, + { 30, 100, 5 , 9 }, + { 43, 100, 5 , 7 }, + { 56, 100, 5 , 10 }, + { 69, 100, 5 , 10 }, + { 82, 100, 5 , 10 }, + { 95, 100, 5 , 10 }, + { 108, 100, 5 , 9 }, + { 121, 100, 4 , 10 }, + { 133, 100, 4 , 10 }, + { 145, 100, 4 , 10 }, + { 157, 100, 4 , 9 }, + { 169, 100, 5 , 10 }, + { 182, 100, 5 , 10 }, + { 195, 100, 5 , 10 }, + { 208, 100, 5 , 10 }, + { 221, 100, 5 , 10 }, + { 234, 100, 5 , 10 }, + { 247, 100, 5 , 9 }, + { 260, 100, 5 , 6 }, + { 273, 100, 5 , 7 }, + { 286, 100, 5 , 10 }, + { 299, 100, 5 , 10 }, + { 312, 100, 5 , 10 }, + { 325, 100, 5 , 9 }, + { 338, 100, 5 , 13 }, + { 351, 100, 5 , 10 }, + { 364, 100, 5 , 12 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo amberFontGlyphs[189] = { + { 32, 0, 0, 5, { 0 }}, + { 33, 1, 3, 5, { 0 }}, + { 34, 0, 3, 5, { 0 }}, + { 35, 0, 3, 5, { 0 }}, + { 36, 0, 3, 5, { 0 }}, + { 37, 0, 3, 5, { 0 }}, + { 38, 0, 3, 5, { 0 }}, + { 39, 1, 4, 5, { 0 }}, + { 40, 0, 3, 5, { 0 }}, + { 41, 0, 3, 5, { 0 }}, + { 42, 0, 3, 5, { 0 }}, + { 43, 0, 7, 5, { 0 }}, + { 44, 0, 12, 5, { 0 }}, + { 45, 0, 9, 5, { 0 }}, + { 46, 1, 12, 5, { 0 }}, + { 47, 0, 3, 5, { 0 }}, + { 48, 0, 3, 5, { 0 }}, + { 49, 0, 3, 5, { 0 }}, + { 50, 0, 3, 5, { 0 }}, + { 51, 0, 3, 5, { 0 }}, + { 52, 0, 3, 5, { 0 }}, + { 53, 0, 3, 5, { 0 }}, + { 54, 0, 3, 5, { 0 }}, + { 55, 0, 3, 5, { 0 }}, + { 56, 0, 3, 5, { 0 }}, + { 57, 0, 3, 5, { 0 }}, + { 58, 0, 7, 5, { 0 }}, + { 59, 0, 7, 5, { 0 }}, + { 60, 0, 7, 5, { 0 }}, + { 61, 0, 8, 5, { 0 }}, + { 62, 0, 7, 5, { 0 }}, + { 63, 0, 3, 5, { 0 }}, + { 64, 0, 6, 5, { 0 }}, + { 65, 0, 3, 5, { 0 }}, + { 66, 0, 3, 5, { 0 }}, + { 67, 0, 3, 5, { 0 }}, + { 68, 0, 3, 5, { 0 }}, + { 69, 0, 3, 5, { 0 }}, + { 70, 0, 3, 5, { 0 }}, + { 71, 0, 3, 5, { 0 }}, + { 72, 0, 3, 5, { 0 }}, + { 73, 0, 3, 5, { 0 }}, + { 74, 0, 3, 5, { 0 }}, + { 75, 0, 3, 5, { 0 }}, + { 76, 0, 3, 5, { 0 }}, + { 77, 0, 3, 5, { 0 }}, + { 78, 0, 3, 5, { 0 }}, + { 79, 0, 3, 5, { 0 }}, + { 80, 0, 3, 5, { 0 }}, + { 81, 0, 3, 5, { 0 }}, + { 82, 0, 3, 5, { 0 }}, + { 83, 0, 3, 5, { 0 }}, + { 84, 0, 3, 5, { 0 }}, + { 85, 0, 3, 5, { 0 }}, + { 86, 0, 3, 5, { 0 }}, + { 87, 0, 3, 5, { 0 }}, + { 88, 0, 3, 5, { 0 }}, + { 89, 0, 3, 5, { 0 }}, + { 90, 0, 3, 5, { 0 }}, + { 91, 0, 3, 5, { 0 }}, + { 92, 0, 3, 5, { 0 }}, + { 93, 0, 3, 5, { 0 }}, + { 94, 0, 3, 5, { 0 }}, + { 95, 0, 12, 5, { 0 }}, + { 96, 1, 4, 5, { 0 }}, + { 97, 0, 6, 5, { 0 }}, + { 98, 0, 3, 5, { 0 }}, + { 99, 0, 6, 5, { 0 }}, + { 100, 0, 3, 5, { 0 }}, + { 101, 0, 6, 5, { 0 }}, + { 102, 0, 3, 5, { 0 }}, + { 103, 0, 6, 5, { 0 }}, + { 104, 0, 3, 5, { 0 }}, + { 105, 0, 3, 5, { 0 }}, + { 106, 0, 3, 5, { 0 }}, + { 107, 0, 3, 5, { 0 }}, + { 108, 0, 3, 5, { 0 }}, + { 109, 0, 6, 5, { 0 }}, + { 110, 0, 6, 5, { 0 }}, + { 111, 0, 6, 5, { 0 }}, + { 112, 0, 6, 5, { 0 }}, + { 113, 0, 6, 5, { 0 }}, + { 114, 0, 6, 5, { 0 }}, + { 115, 0, 6, 5, { 0 }}, + { 116, 0, 3, 5, { 0 }}, + { 117, 0, 6, 5, { 0 }}, + { 118, 0, 6, 5, { 0 }}, + { 119, 0, 6, 5, { 0 }}, + { 120, 0, 6, 5, { 0 }}, + { 121, 0, 6, 5, { 0 }}, + { 122, 0, 6, 5, { 0 }}, + { 123, 0, 3, 5, { 0 }}, + { 124, 1, 3, 5, { 0 }}, + { 125, 0, 3, 5, { 0 }}, + { 126, 0, 8, 5, { 0 }}, + { 161, 1, 4, 5, { 0 }}, + { 162, 0, 6, 5, { 0 }}, + { 163, 0, 3, 5, { 0 }}, + { 8364, 0, 3, 5, { 0 }}, + { 165, 0, 3, 5, { 0 }}, + { 352, 0, 0, 0, { 0 }}, + { 167, 0, 3, 5, { 0 }}, + { 353, 0, 0, 0, { 0 }}, + { 169, 0, 6, 5, { 0 }}, + { 170, 2, 3, 5, { 0 }}, + { 171, 0, 8, 5, { 0 }}, + { 172, 0, 6, 5, { 0 }}, + { 174, 0, 6, 5, { 0 }}, + { 175, 0, 3, 5, { 0 }}, + { 176, 1, 3, 5, { 0 }}, + { 177, 0, 5, 5, { 0 }}, + { 178, 2, 3, 5, { 0 }}, + { 179, 2, 3, 5, { 0 }}, + { 381, 0, 0, 0, { 0 }}, + { 181, 0, 6, 5, { 0 }}, + { 182, 0, 3, 5, { 0 }}, + { 183, 1, 6, 5, { 0 }}, + { 382, 0, 0, 0, { 0 }}, + { 185, 0, 3, 5, { 0 }}, + { 186, 0, 3, 5, { 0 }}, + { 187, 0, 8, 5, { 0 }}, + { 338, 0, 3, 5, { 0 }}, + { 339, 0, 6, 5, { 0 }}, + { 376, 0, 3, 5, { 0 }}, + { 191, 0, 3, 5, { 0 }}, + { 192, 0, -1, 5, { 0 }}, + { 193, 0, -1, 5, { 0 }}, + { 194, 0, -1, 5, { 0 }}, + { 195, 0, -1, 5, { 0 }}, + { 196, 0, 1, 5, { 0 }}, + { 197, 0, 1, 5, { 0 }}, + { 198, 0, 3, 5, { 0 }}, + { 199, 0, 3, 5, { 0 }}, + { 200, 0, -1, 5, { 0 }}, + { 201, 0, -1, 5, { 0 }}, + { 202, 0, -1, 5, { 0 }}, + { 203, 0, 1, 5, { 0 }}, + { 204, 0, -1, 5, { 0 }}, + { 205, 0, -1, 5, { 0 }}, + { 206, 0, -1, 5, { 0 }}, + { 207, 0, 1, 5, { 0 }}, + { 208, 0, 3, 5, { 0 }}, + { 209, 0, -1, 5, { 0 }}, + { 210, 0, -1, 5, { 0 }}, + { 211, 0, -1, 5, { 0 }}, + { 212, 0, -1, 5, { 0 }}, + { 213, 0, -1, 5, { 0 }}, + { 214, 0, 1, 5, { 0 }}, + { 215, 0, 10, 5, { 0 }}, + { 216, 0, 3, 5, { 0 }}, + { 217, 0, -1, 5, { 0 }}, + { 218, 0, -1, 5, { 0 }}, + { 219, 0, -1, 5, { 0 }}, + { 220, 0, 1, 5, { 0 }}, + { 221, 0, -1, 5, { 0 }}, + { 222, 0, 3, 5, { 0 }}, + { 223, 0, 3, 5, { 0 }}, + { 224, 0, 3, 5, { 0 }}, + { 225, 0, 3, 5, { 0 }}, + { 226, 0, 3, 5, { 0 }}, + { 227, 0, 3, 5, { 0 }}, + { 228, 0, 4, 5, { 0 }}, + { 229, 0, 4, 5, { 0 }}, + { 230, 0, 6, 5, { 0 }}, + { 231, 0, 6, 5, { 0 }}, + { 232, 0, 3, 5, { 0 }}, + { 233, 0, 3, 5, { 0 }}, + { 234, 0, 3, 5, { 0 }}, + { 235, 0, 4, 5, { 0 }}, + { 236, 0, 3, 5, { 0 }}, + { 237, 0, 3, 5, { 0 }}, + { 238, 0, 3, 5, { 0 }}, + { 239, 0, 4, 5, { 0 }}, + { 240, 0, 3, 5, { 0 }}, + { 241, 0, 3, 5, { 0 }}, + { 242, 0, 3, 5, { 0 }}, + { 243, 0, 3, 5, { 0 }}, + { 244, 0, 3, 5, { 0 }}, + { 245, 0, 3, 5, { 0 }}, + { 246, 0, 4, 5, { 0 }}, + { 247, 0, 7, 5, { 0 }}, + { 248, 0, 6, 5, { 0 }}, + { 249, 0, 3, 5, { 0 }}, + { 250, 0, 3, 5, { 0 }}, + { 251, 0, 3, 5, { 0 }}, + { 252, 0, 4, 5, { 0 }}, + { 253, 0, 3, 5, { 0 }}, + { 254, 0, 3, 5, { 0 }}, + { 255, 0, 4, 5, { 0 }}, +}; + +// Style loading function: Amber +static void GuiLoadStyleAmber(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < AMBER_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(amberStyleProps[i].controlId, amberStyleProps[i].propertyId, amberStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int amberFontDataSize = 0; + unsigned char *data = DecompressData(amberFontData, AMBER_STYLE_FONT_ATLAS_COMP_SIZE, &amberFontDataSize); + Image imFont = { data, 512, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 16; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, amberFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, amberFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 510, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_ashes.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_ashes.h new file mode 100644 index 0000000..9774760 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_ashes.h @@ -0,0 +1,565 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleAshes(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define ASHES_STYLE_PROPS_COUNT 16 + +// Custom style name: Ashes +static const GuiStyleProp ashesStyleProps[ASHES_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0xf0f0f0ff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0x868686ff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0xe6e6e6ff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0x929999ff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0xeaeaeaff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0x98a1a8ff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0x3f3f3fff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0xf6f6f6ff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0x414141ff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0x8b8b8bff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0x777777ff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0x959595ff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE + { 0, 18, (int)0x9dadb1ff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0x6b6b6bff }, // DEFAULT_BACKGROUND_COLOR + { 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING +}; + +// WARNING: This style uses a custom font: "v5loxical.ttf" (size: 16, spacing: 1) + +#define ASHES_STYLE_FONT_ATLAS_COMP_SIZE 1800 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char ashesFontData[ASHES_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0x9d, 0x51, 0xb6, 0xa4, 0x36, 0x0c, 0x44, 0xbd, 0xff, 0x4d, 0x57, 0xbe, 0x72, 0x32, 0xc9, 0x49, 0x83, 0x25, 0x97, 0xb0, + 0x0c, 0x77, 0xee, 0x5f, 0xbf, 0x1e, 0x1a, 0x5c, 0xc8, 0x06, 0xbb, 0x24, 0x6b, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0xfd, + 0xef, 0x27, 0xfa, 0xf9, 0x4d, 0x4d, 0x1f, 0xe7, 0xdf, 0x9f, 0xeb, 0xc7, 0x5f, 0x63, 0xc7, 0xd3, 0xf4, 0xef, 0x66, 0xfe, + 0xa2, 0xff, 0x3d, 0x3f, 0x2d, 0xff, 0xaa, 0xa6, 0xaf, 0xe6, 0xea, 0xbb, 0x57, 0xbf, 0xa9, 0xa6, 0xfa, 0xeb, 0xe2, 0x78, + 0xd7, 0x47, 0xd4, 0xc2, 0x3d, 0x31, 0xf7, 0xbb, 0xf3, 0x9a, 0xae, 0xb7, 0xe7, 0xaf, 0x7b, 0x6b, 0xfe, 0xbb, 0xf7, 0x6d, + 0x5c, 0xab, 0xff, 0x9f, 0xff, 0xc6, 0x8f, 0xbf, 0xe6, 0x34, 0xae, 0x89, 0xf4, 0xeb, 0x33, 0x95, 0x49, 0xed, 0xf9, 0xbb, + 0x56, 0x4b, 0xfd, 0x50, 0xe6, 0xe8, 0xf9, 0x33, 0x1e, 0x41, 0xb5, 0x74, 0x73, 0x17, 0x2a, 0x7c, 0xc4, 0xd5, 0xfe, 0x3c, + 0x13, 0xff, 0x5d, 0xf4, 0xcf, 0xdd, 0xcd, 0x6a, 0xa0, 0x7f, 0x46, 0x39, 0x19, 0xce, 0x54, 0xa6, 0xf1, 0xbf, 0x42, 0xfd, + 0xa8, 0xfe, 0x32, 0xb6, 0x80, 0x53, 0xff, 0x6c, 0xff, 0x9f, 0xe9, 0xff, 0x46, 0x13, 0x3d, 0x9f, 0xd7, 0x5f, 0x8f, 0xb7, + 0x80, 0x23, 0xfe, 0xc7, 0x6d, 0x6f, 0xab, 0x9b, 0xa7, 0x1a, 0xbd, 0x40, 0x7f, 0xc7, 0xfd, 0x9f, 0x1d, 0x29, 0xfb, 0x8e, + 0xff, 0x9a, 0xe8, 0xeb, 0xf4, 0x8a, 0xf8, 0x8f, 0x8f, 0x72, 0xf3, 0xef, 0x9b, 0x77, 0x23, 0xa5, 0xb6, 0x5f, 0x7b, 0xee, + 0x09, 0xe4, 0xef, 0xff, 0x77, 0x7e, 0xfc, 0x77, 0x19, 0x83, 0x76, 0x9d, 0xb7, 0xb6, 0xc6, 0x17, 0xfa, 0x7f, 0xe1, 0xfa, + 0x45, 0xcb, 0x73, 0x97, 0xa1, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xca, 0x59, + 0x10, 0x77, 0x22, 0x68, 0xd9, 0xe3, 0xe6, 0xf1, 0xdf, 0x2b, 0xdc, 0x02, 0x19, 0xdf, 0xfd, 0xaf, 0xf3, 0x8a, 0x7d, 0x7f, + 0x84, 0x3d, 0x75, 0x4a, 0xae, 0x83, 0x29, 0xed, 0xea, 0x5a, 0x77, 0xa8, 0x57, 0xac, 0x20, 0xe7, 0xbd, 0x76, 0x11, 0x8f, + 0xae, 0x4c, 0x3e, 0x2d, 0x99, 0x73, 0x54, 0xdc, 0xfa, 0x8f, 0xed, 0xfa, 0xab, 0xd4, 0x0f, 0xa2, 0x1b, 0xbf, 0xd9, 0x17, + 0xf4, 0xcf, 0x3a, 0x77, 0x23, 0xfd, 0xbc, 0xec, 0xde, 0xc9, 0xf8, 0xf9, 0xdd, 0xe7, 0x03, 0x7c, 0x51, 0xff, 0x11, 0x8e, + 0xdb, 0x78, 0x0f, 0x3b, 0x3b, 0x52, 0x6b, 0x63, 0xfc, 0x5f, 0x8d, 0xdb, 0x0a, 0x44, 0x4d, 0x54, 0x9d, 0xd8, 0xef, 0xfe, + 0x73, 0xae, 0xeb, 0x4f, 0x44, 0x4f, 0xe9, 0x3f, 0x16, 0x7d, 0x9c, 0xb2, 0xf5, 0x18, 0xd9, 0x71, 0xae, 0x5f, 0xfc, 0xbb, + 0x9f, 0xff, 0xea, 0xf4, 0x97, 0xc1, 0x8d, 0xa5, 0x52, 0x2f, 0x68, 0x26, 0x47, 0xe5, 0x3d, 0xfa, 0x67, 0xde, 0x70, 0x3c, + 0xc7, 0x39, 0xc1, 0x87, 0xfa, 0x05, 0xfd, 0x01, 0xfd, 0xf1, 0xa1, 0x67, 0x9e, 0xdb, 0xea, 0xe6, 0x7f, 0x14, 0xee, 0xaf, + 0xd1, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0xeb, 0xdb, 0xd9, 0x2a, + 0xe0, 0x8e, 0xef, 0x67, 0x7f, 0x41, 0x36, 0xc7, 0xa7, 0xcf, 0x3f, 0xfa, 0x7b, 0xfd, 0xd8, 0x91, 0xeb, 0x50, 0xa7, 0xff, + 0xb0, 0xbb, 0x68, 0xe3, 0x9e, 0xb4, 0x78, 0x7d, 0xfc, 0xd1, 0x4c, 0xff, 0x11, 0x68, 0x77, 0x15, 0xe6, 0x4c, 0xa0, 0x7f, + 0x7f, 0xfd, 0x7d, 0x95, 0x2f, 0xdf, 0xae, 0xff, 0x38, 0x4a, 0xff, 0xb5, 0x1d, 0x01, 0x5c, 0xfa, 0xe7, 0xfd, 0xed, 0xae, + 0x51, 0x70, 0x3d, 0xc7, 0x60, 0xa4, 0x77, 0x12, 0x72, 0xe9, 0x3f, 0x12, 0x79, 0x7f, 0x0e, 0x6f, 0xfc, 0x1b, 0xe2, 0x7f, + 0x18, 0xe2, 0x7f, 0x34, 0xed, 0xff, 0x87, 0xc9, 0x0f, 0x8a, 0xfe, 0xdf, 0xd6, 0xdf, 0x53, 0xfb, 0xf8, 0xbd, 0xfa, 0x77, + 0x7d, 0xfe, 0x43, 0xff, 0x13, 0xf5, 0x97, 0xed, 0xca, 0x7d, 0xfa, 0xaf, 0x66, 0x4d, 0x7a, 0x9e, 0xb4, 0x94, 0x7e, 0x6e, + 0x57, 0x38, 0x57, 0x2b, 0x9e, 0x7d, 0xea, 0xc8, 0x14, 0xbc, 0xab, 0x10, 0x11, 0x9b, 0x4d, 0x8a, 0x56, 0xd7, 0xa8, 0xd3, + 0xff, 0xcc, 0x8a, 0x25, 0xcc, 0xd0, 0x56, 0x64, 0xbb, 0xc0, 0x3b, 0xee, 0xf9, 0x2f, 0x46, 0x08, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xad, 0x84, 0xc7, 0x56, 0x23, 0x5d, 0x6b, 0xb9, 0xc3, 0xb2, 0xbb, 0x80, + 0x0c, 0xeb, 0xeb, 0x6b, 0xff, 0x5f, 0x7f, 0xac, 0x0c, 0xbb, 0x72, 0x1c, 0x1c, 0x9f, 0xcf, 0x3a, 0x1b, 0x32, 0xeb, 0x8b, + 0x55, 0x8e, 0x06, 0x25, 0x7c, 0xd1, 0x15, 0xeb, 0xe2, 0x0a, 0xaf, 0xc1, 0xef, 0xf2, 0x44, 0x2b, 0x78, 0x45, 0xb2, 0xac, + 0x51, 0x3a, 0x9c, 0xc4, 0x5a, 0x76, 0x0a, 0xc7, 0x7d, 0xc2, 0x2a, 0xb8, 0x0f, 0xcf, 0xd0, 0xdf, 0x3b, 0x86, 0x54, 0x45, + 0xae, 0x37, 0xfe, 0xb5, 0xa0, 0x7f, 0x74, 0x37, 0x1b, 0xf4, 0xf7, 0xe8, 0x1f, 0x7b, 0x12, 0xa9, 0xd3, 0x9f, 0xf8, 0xdf, + 0x17, 0xff, 0xab, 0x1e, 0x3e, 0xf4, 0xff, 0x86, 0xfe, 0x32, 0xd5, 0xe1, 0x46, 0xff, 0x75, 0x8f, 0x5a, 0xcc, 0x01, 0xeb, + 0x72, 0x0a, 0xf7, 0x89, 0xff, 0x61, 0xf3, 0x44, 0xfb, 0x2a, 0x88, 0x77, 0xe8, 0x17, 0x1c, 0xdf, 0xee, 0x3d, 0xfe, 0x3f, + 0xe9, 0x00, 0xee, 0xec, 0xf7, 0xac, 0xf4, 0xae, 0x76, 0xd1, 0xbf, 0x5e, 0x81, 0x73, 0xf5, 0x3f, 0x37, 0x47, 0xa0, 0x53, + 0xab, 0xa2, 0x7f, 0xff, 0xac, 0x0b, 0xa0, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, + 0x3c, 0xd3, 0x9d, 0xf3, 0x4f, 0xc8, 0xe4, 0x82, 0x88, 0xfa, 0x00, 0xc7, 0x74, 0x8d, 0x7c, 0xa5, 0x9c, 0xc7, 0xab, 0xbe, + 0x93, 0xbb, 0x56, 0x96, 0x71, 0x45, 0x42, 0x97, 0xad, 0x54, 0xeb, 0xcf, 0xda, 0x55, 0x1f, 0x3d, 0x53, 0xe3, 0x71, 0x25, + 0x0b, 0xc2, 0xed, 0x3b, 0x90, 0xcd, 0x19, 0xa3, 0xe0, 0xfa, 0xa5, 0xcb, 0x87, 0x9f, 0xd3, 0x3f, 0xee, 0x1a, 0xab, 0xfb, + 0xd4, 0x91, 0x8b, 0x94, 0xcd, 0x1b, 0x91, 0x6d, 0x2d, 0x5a, 0x97, 0xf9, 0x4f, 0xbb, 0xfa, 0xff, 0xea, 0xfa, 0xf8, 0x4f, + 0xea, 0x1f, 0xf7, 0x00, 0x5d, 0x8f, 0x5a, 0x6b, 0x3a, 0x5d, 0x1d, 0x4f, 0xcb, 0x57, 0xd9, 0x4f, 0x7f, 0x5f, 0x8d, 0x6f, + 0x6f, 0xcb, 0xdc, 0xab, 0xbc, 0x16, 0xd9, 0x91, 0xfe, 0x5f, 0xe1, 0xfe, 0xdf, 0x93, 0x59, 0x51, 0xef, 0x82, 0x7e, 0x7e, + 0x7f, 0x04, 0x19, 0x7a, 0xf9, 0xbb, 0x2c, 0x58, 0xa1, 0x7f, 0x59, 0x1e, 0x48, 0x07, 0xfd, 0xaf, 0x9f, 0xc7, 0x65, 0x75, + 0x24, 0xd5, 0x8e, 0xff, 0xf9, 0x7a, 0xda, 0xae, 0x3a, 0xe3, 0x8e, 0x7d, 0x53, 0x6a, 0xfa, 0xff, 0xda, 0xf8, 0x1f, 0x45, + 0xcf, 0xff, 0x9d, 0xbd, 0x8f, 0x2e, 0x27, 0xf8, 0xb3, 0xcf, 0x7f, 0x9e, 0xf7, 0x99, 0x7c, 0x66, 0x44, 0xec, 0xfd, 0xbf, + 0xb3, 0x03, 0xb2, 0xa7, 0xfe, 0xf1, 0x3d, 0x25, 0x73, 0xfd, 0xe6, 0xb7, 0x1d, 0xa9, 0xeb, 0x7b, 0x58, 0x56, 0xf6, 0x6d, + 0x78, 0x83, 0x4f, 0xbd, 0x63, 0xde, 0x97, 0x19, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x10, 0xf3, 0xc8, 0xac, 0xae, 0x38, 0x2b, 0x51, 0x01, 0xdc, 0xb7, 0x6e, 0x73, 0xe7, 0x2f, 0xd1, 0x42, 0x2d, 0xb7, 0x4c, + 0x1d, 0xe8, 0x2b, 0x77, 0x8c, 0x82, 0xde, 0x19, 0xdf, 0xba, 0x94, 0x16, 0xd5, 0xcf, 0xfa, 0xaa, 0x64, 0x73, 0xd1, 0x64, + 0xdc, 0x6d, 0x0a, 0xd6, 0x88, 0x9f, 0xcb, 0x36, 0xf1, 0xf9, 0x42, 0xee, 0xbd, 0xf3, 0x75, 0xeb, 0xa6, 0x0a, 0xc6, 0x81, + 0x42, 0x8e, 0xb3, 0xdf, 0x6d, 0xb5, 0x1e, 0x95, 0xeb, 0xfa, 0xe7, 0xe3, 0x5f, 0xb6, 0xba, 0xf6, 0x59, 0xfd, 0x73, 0x11, + 0xb2, 0x1e, 0xff, 0x4a, 0x65, 0xd0, 0x54, 0x79, 0x76, 0x56, 0xf5, 0x1f, 0x66, 0xfd, 0x9f, 0x8b, 0x7f, 0x6d, 0x18, 0xff, + 0xff, 0x1c, 0xa1, 0x64, 0xfb, 0xdd, 0x35, 0x9f, 0xe4, 0x1e, 0xfd, 0xb3, 0xde, 0x3f, 0xdd, 0xb8, 0x63, 0xf5, 0xa8, 0xb7, + 0x25, 0xdb, 0x83, 0xa8, 0xa1, 0x2f, 0xe6, 0x2e, 0xef, 0xac, 0x87, 0xc3, 0x71, 0xfd, 0x09, 0x7c, 0xa5, 0x87, 0x5c, 0xbd, + 0x6b, 0x9c, 0xfa, 0xbb, 0xbc, 0xab, 0xb3, 0xb1, 0x87, 0xfe, 0xde, 0xf7, 0xc7, 0x7e, 0xf1, 0x7f, 0xed, 0xbb, 0xed, 0xad, + 0x7f, 0xec, 0xfd, 0x4f, 0x9b, 0x5b, 0xb9, 0xa3, 0x3f, 0x59, 0xa9, 0x27, 0xd0, 0x3e, 0xfa, 0xef, 0x3a, 0xd6, 0xdb, 0xe7, + 0xb6, 0xba, 0xe8, 0x7f, 0x37, 0xff, 0x73, 0x5a, 0xc6, 0xc6, 0x49, 0xfa, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x71, 0x8d, 0x74, 0x76, 0x95, 0x51, 0x41, 0x27, 0xf1, 0x75, 0xa5, 0xb4, 0xeb, 0x7c, + 0x82, 0xaa, 0xab, 0x58, 0xdd, 0x1f, 0x3e, 0x5a, 0x1b, 0x55, 0x41, 0xb7, 0xa3, 0x4b, 0xab, 0xbc, 0x13, 0x53, 0x26, 0xef, + 0xab, 0xaf, 0xf2, 0xbf, 0xfb, 0x2a, 0x66, 0x75, 0x55, 0xc0, 0xd5, 0xee, 0x69, 0x4b, 0xd7, 0x55, 0xf6, 0xf1, 0x66, 0x0d, + 0xa3, 0xfe, 0xa7, 0xf6, 0xbc, 0xfb, 0x3d, 0x48, 0x6a, 0xf4, 0x79, 0x56, 0xff, 0xf8, 0x78, 0xb1, 0x3a, 0xbe, 0xac, 0xef, + 0x38, 0xa2, 0xcb, 0x2c, 0x98, 0xca, 0xb6, 0xf7, 0xf7, 0xcf, 0xbe, 0xcf, 0x65, 0xcb, 0x19, 0x74, 0xd6, 0x05, 0xf7, 0xeb, + 0xbf, 0xaf, 0x8d, 0x7b, 0xeb, 0xbf, 0x53, 0x67, 0xf4, 0x47, 0xff, 0xaf, 0xe9, 0x1f, 0xab, 0xb4, 0x5f, 0xff, 0x79, 0x4e, + 0xb7, 0xda, 0xd1, 0x9f, 0xf8, 0x27, 0xfe, 0xd1, 0xff, 0xc9, 0xcf, 0x63, 0x11, 0x7a, 0xaa, 0xfe, 0x2a, 0x9d, 0x33, 0x39, + 0x51, 0x7f, 0x5f, 0xde, 0x6d, 0x7f, 0xfd, 0x77, 0x69, 0x72, 0xb6, 0xfe, 0xe3, 0x35, 0xf1, 0x8f, 0xfe, 0xbe, 0x7a, 0x05, + 0xe7, 0xcd, 0xff, 0xe4, 0xb3, 0xd6, 0x9d, 0xf3, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x5e, 0xff, 0xbf, 0xc2, 0xf3, 0xf6, 0x19, 0x27, 0x7a, 0xa5, 0x3f, 0x7f, 0x7e, 0x96, 0x5d, 0xa9, 0x19, 0xfa, 0xbd, 0x79, + 0x10, 0xb3, 0xd7, 0x91, 0x5d, 0x4d, 0x89, 0xd7, 0xac, 0x8e, 0xfa, 0x70, 0xea, 0xfd, 0xf9, 0x91, 0xbd, 0x0a, 0x1c, 0xfb, + 0x0e, 0x54, 0xe7, 0x41, 0x64, 0xf2, 0x51, 0x9e, 0xf2, 0x92, 0x5f, 0x57, 0x54, 0xed, 0xbc, 0xe2, 0x94, 0xe9, 0x3f, 0xb4, + 0xd1, 0x7f, 0x1f, 0xd5, 0x3f, 0xb7, 0x03, 0x80, 0xc2, 0x3d, 0xa5, 0xc2, 0xeb, 0x96, 0x3d, 0x56, 0x93, 0xcf, 0xa9, 0x91, + 0xaa, 0x54, 0xfc, 0xfb, 0x22, 0x22, 0x33, 0xfe, 0x9f, 0xa1, 0xbf, 0x8e, 0xca, 0x83, 0x89, 0xfa, 0xdd, 0x54, 0xac, 0x7f, + 0xd6, 0xb7, 0x70, 0x46, 0xfc, 0xf7, 0xf1, 0x9d, 0xe6, 0x47, 0x2a, 0xa1, 0xff, 0xad, 0xbe, 0xda, 0xe2, 0x20, 0x8a, 0x3b, + 0x5a, 0xd1, 0x3f, 0xf2, 0x16, 0xb5, 0xa2, 0x7f, 0x3f, 0x1f, 0x5c, 0xf6, 0xfd, 0xef, 0x9b, 0xfa, 0xaf, 0xc6, 0xff, 0x69, + 0x3e, 0xc8, 0xd8, 0x5e, 0x8b, 0x4f, 0xe9, 0xaf, 0x03, 0xf4, 0x57, 0xab, 0x11, 0xca, 0xe9, 0x83, 0xd5, 0x03, 0xcf, 0xff, + 0xf1, 0x99, 0xc4, 0x8e, 0xf1, 0x7f, 0xbe, 0xfe, 0x4f, 0xec, 0x90, 0xe8, 0xd9, 0xcf, 0xed, 0x0c, 0xfd, 0xbb, 0xbd, 0xff, + 0x79, 0xe7, 0x92, 0x9c, 0xf3, 0x3f, 0x67, 0x55, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x72, 0x0e, 0xc0, 0xaa, 0x03, 0x5f, 0xcb, 0x2b, 0x55, 0x0a, 0x38, 0xf8, 0xd5, 0xc8, 0xbf, 0x3f, 0x26, 0x6b, 0x2c, + 0x57, 0x9c, 0xad, 0xa7, 0x5a, 0x7a, 0x55, 0x85, 0xfc, 0x61, 0xa9, 0x92, 0x1f, 0x73, 0x1f, 0x3f, 0xed, 0xdf, 0x5f, 0x5b, + 0x11, 0xdf, 0x9d, 0x0f, 0x51, 0xe1, 0x25, 0x7e, 0x3e, 0x1f, 0x61, 0xa7, 0x7f, 0xff, 0xae, 0x5a, 0xb9, 0x36, 0x65, 0x1b, + 0xb0, 0x1a, 0xda, 0x3d, 0xdb, 0xa4, 0x53, 0xfe, 0x9f, 0x67, 0xa5, 0x7d, 0x35, 0x4f, 0x49, 0x8b, 0x3d, 0xea, 0x2e, 0x87, + 0x81, 0x8e, 0xf5, 0x43, 0x7b, 0x8f, 0xfc, 0x8c, 0xfe, 0xe7, 0xf8, 0xb4, 0xd0, 0x1f, 0xfd, 0xd1, 0xff, 0xcb, 0xfa, 0xeb, + 0x00, 0xfd, 0x3d, 0xfb, 0x36, 0xa0, 0x7f, 0x27, 0x3f, 0x74, 0x34, 0xfe, 0x87, 0x25, 0xc3, 0x1c, 0xfd, 0xbb, 0xf8, 0xa1, + 0xd1, 0xbf, 0x4f, 0x9e, 0x46, 0x6f, 0xfd, 0xcf, 0x7b, 0xff, 0x1b, 0xc5, 0xb5, 0xd1, 0xdf, 0xe3, 0x87, 0x67, 0x0e, 0x88, + 0xf9, 0x27, 0x40, 0x7f, 0xf8, 0xa2, 0xf6, 0xa8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x7a, 0x16, + 0x01, 0xfd, 0x01, 0x00, 0x80, 0xfe, 0x1f, 0xd0, 0x1f, 0xd0, 0x1f, 0xd0, 0x1f, 0xd0, 0x1f, 0xd0, 0x1f, 0xd0, 0x1f, 0xb2, + 0x15, 0x0d, 0x68, 0x07, 0x7a, 0x01, 0x40, 0x7f, 0xc0, 0x39, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xbb, 0x01, 0xfd, 0x61, 0xab, 0xfe, 0x7f, 0x01 }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle ashesFontRecs[189] = { + { 4, 4, 4 , 16 }, + { 16, 4, 1 , 10 }, + { 25, 4, 3 , 3 }, + { 36, 4, 6 , 8 }, + { 50, 4, 5 , 11 }, + { 63, 4, 7 , 8 }, + { 78, 4, 6 , 9 }, + { 92, 4, 1 , 3 }, + { 101, 4, 3 , 12 }, + { 112, 4, 3 , 12 }, + { 123, 4, 5 , 5 }, + { 136, 4, 5 , 5 }, + { 149, 4, 2 , 2 }, + { 159, 4, 4 , 1 }, + { 171, 4, 1 , 1 }, + { 180, 4, 5 , 10 }, + { 193, 4, 4 , 8 }, + { 205, 4, 2 , 8 }, + { 215, 4, 4 , 8 }, + { 227, 4, 4 , 8 }, + { 239, 4, 6 , 8 }, + { 4, 28, 4 , 8 }, + { 16, 28, 4 , 8 }, + { 28, 28, 4 , 8 }, + { 40, 28, 4 , 8 }, + { 52, 28, 4 , 8 }, + { 64, 28, 1 , 5 }, + { 73, 28, 2 , 6 }, + { 83, 28, 4 , 7 }, + { 95, 28, 4 , 4 }, + { 107, 28, 4 , 7 }, + { 119, 28, 4 , 10 }, + { 131, 28, 8 , 7 }, + { 147, 28, 4 , 10 }, + { 159, 28, 4 , 10 }, + { 171, 28, 4 , 10 }, + { 183, 28, 4 , 10 }, + { 195, 28, 4 , 10 }, + { 207, 28, 5 , 10 }, + { 220, 28, 4 , 10 }, + { 232, 28, 4 , 10 }, + { 244, 28, 1 , 10 }, + { 4, 52, 3 , 10 }, + { 15, 52, 4 , 10 }, + { 27, 52, 4 , 10 }, + { 39, 52, 7 , 10 }, + { 54, 52, 4 , 10 }, + { 66, 52, 4 , 10 }, + { 78, 52, 4 , 10 }, + { 90, 52, 5 , 11 }, + { 103, 52, 4 , 10 }, + { 115, 52, 4 , 10 }, + { 127, 52, 5 , 10 }, + { 140, 52, 4 , 10 }, + { 152, 52, 4 , 10 }, + { 164, 52, 7 , 10 }, + { 179, 52, 4 , 10 }, + { 191, 52, 4 , 10 }, + { 203, 52, 4 , 10 }, + { 215, 52, 2 , 12 }, + { 225, 52, 5 , 10 }, + { 238, 52, 2 , 12 }, + { 4, 76, 5 , 3 }, + { 17, 76, 5 , 1 }, + { 30, 76, 2 , 2 }, + { 40, 76, 4 , 8 }, + { 52, 76, 4 , 10 }, + { 64, 76, 3 , 8 }, + { 75, 76, 4 , 10 }, + { 87, 76, 4 , 8 }, + { 99, 76, 3 , 10 }, + { 110, 76, 5 , 11 }, + { 123, 76, 4 , 10 }, + { 135, 76, 1 , 10 }, + { 144, 76, 3 , 13 }, + { 155, 76, 4 , 10 }, + { 167, 76, 2 , 10 }, + { 177, 76, 7 , 8 }, + { 192, 76, 4 , 8 }, + { 204, 76, 4 , 8 }, + { 216, 76, 4 , 11 }, + { 228, 76, 4 , 11 }, + { 240, 76, 3 , 8 }, + { 4, 100, 4 , 8 }, + { 16, 100, 3 , 10 }, + { 27, 100, 4 , 8 }, + { 39, 100, 5 , 8 }, + { 52, 100, 7 , 8 }, + { 67, 100, 4 , 8 }, + { 79, 100, 4 , 11 }, + { 91, 100, 4 , 8 }, + { 103, 100, 4 , 12 }, + { 115, 100, 1 , 10 }, + { 124, 100, 4 , 12 }, + { 136, 100, 4 , 2 }, + { 148, 100, 1 , 10 }, + { 157, 100, 4 , 12 }, + { 169, 100, 5 , 10 }, + { 182, 100, 5 , 10 }, + { 195, 100, 5 , 10 }, + { 208, 100, 0 , 0 }, + { 216, 100, 4 , 10 }, + { 228, 100, 0 , 0 }, + { 236, 100, 7 , 9 }, + { 4, 124, 3 , 7 }, + { 15, 124, 6 , 5 }, + { 29, 124, 0 , 0 }, + { 37, 124, 7 , 9 }, + { 52, 124, 4 , 1 }, + { 64, 124, 3 , 5 }, + { 75, 124, 5 , 7 }, + { 88, 124, 3 , 5 }, + { 99, 124, 0 , 0 }, + { 107, 124, 0 , 0 }, + { 115, 124, 4 , 11 }, + { 127, 124, 6 , 10 }, + { 141, 124, 3 , 3 }, + { 152, 124, 0 , 0 }, + { 160, 124, 2 , 5 }, + { 170, 124, 3 , 5 }, + { 181, 124, 6 , 5 }, + { 195, 124, 7 , 10 }, + { 210, 124, 7 , 8 }, + { 225, 124, 0 , 0 }, + { 233, 124, 4 , 10 }, + { 4, 148, 4 , 13 }, + { 16, 148, 4 , 13 }, + { 28, 148, 4 , 13 }, + { 40, 148, 4 , 13 }, + { 52, 148, 4 , 13 }, + { 64, 148, 4 , 13 }, + { 76, 148, 7 , 10 }, + { 91, 148, 4 , 13 }, + { 103, 148, 4 , 13 }, + { 115, 148, 4 , 13 }, + { 127, 148, 4 , 13 }, + { 139, 148, 4 , 13 }, + { 151, 148, 2 , 13 }, + { 161, 148, 2 , 13 }, + { 171, 148, 3 , 13 }, + { 182, 148, 3 , 13 }, + { 193, 148, 5 , 10 }, + { 206, 148, 4 , 13 }, + { 218, 148, 4 , 13 }, + { 230, 148, 4 , 13 }, + { 242, 148, 4 , 13 }, + { 4, 172, 4 , 13 }, + { 16, 172, 4 , 13 }, + { 28, 172, 5 , 5 }, + { 41, 172, 6 , 12 }, + { 55, 172, 4 , 13 }, + { 67, 172, 4 , 13 }, + { 79, 172, 4 , 13 }, + { 91, 172, 4 , 13 }, + { 103, 172, 4 , 13 }, + { 115, 172, 0 , 0 }, + { 123, 172, 5 , 12 }, + { 136, 172, 4 , 12 }, + { 148, 172, 4 , 12 }, + { 160, 172, 4 , 12 }, + { 172, 172, 4 , 12 }, + { 184, 172, 4 , 12 }, + { 196, 172, 4 , 12 }, + { 208, 172, 7 , 8 }, + { 223, 172, 3 , 11 }, + { 234, 172, 4 , 12 }, + { 4, 196, 4 , 12 }, + { 16, 196, 4 , 12 }, + { 28, 196, 4 , 12 }, + { 40, 196, 3 , 12 }, + { 51, 196, 3 , 12 }, + { 62, 196, 3 , 12 }, + { 73, 196, 3 , 12 }, + { 84, 196, 0 , 0 }, + { 92, 196, 4 , 12 }, + { 104, 196, 4 , 12 }, + { 116, 196, 4 , 12 }, + { 128, 196, 4 , 12 }, + { 140, 196, 4 , 12 }, + { 152, 196, 4 , 12 }, + { 164, 196, 5 , 5 }, + { 177, 196, 6 , 10 }, + { 191, 196, 4 , 12 }, + { 203, 196, 4 , 12 }, + { 215, 196, 4 , 12 }, + { 227, 196, 4 , 12 }, + { 239, 196, 4 , 15 }, + { 4, 220, 0 , 0 }, + { 12, 220, 4 , 15 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo ashesFontGlyphs[189] = { + { 32, 0, 0, 4, { 0 }}, + { 33, 0, 3, 4, { 0 }}, + { 34, 0, 1, 5, { 0 }}, + { 35, 0, 4, 8, { 0 }}, + { 36, 0, 2, 7, { 0 }}, + { 37, 0, 5, 9, { 0 }}, + { 38, 0, 4, 8, { 0 }}, + { 39, 0, 1, 3, { 0 }}, + { 40, 0, 2, 5, { 0 }}, + { 41, 0, 2, 5, { 0 }}, + { 42, 0, 3, 7, { 0 }}, + { 43, 0, 6, 7, { 0 }}, + { 44, 0, 12, 4, { 0 }}, + { 45, 0, 9, 5, { 0 }}, + { 46, 0, 12, 3, { 0 }}, + { 47, 0, 3, 7, { 0 }}, + { 48, 0, 5, 6, { 0 }}, + { 49, 0, 5, 4, { 0 }}, + { 50, 0, 5, 6, { 0 }}, + { 51, 0, 5, 6, { 0 }}, + { 52, 0, 5, 8, { 0 }}, + { 53, 0, 5, 6, { 0 }}, + { 54, 0, 5, 6, { 0 }}, + { 55, 0, 5, 6, { 0 }}, + { 56, 0, 5, 6, { 0 }}, + { 57, 0, 5, 6, { 0 }}, + { 58, 0, 8, 3, { 0 }}, + { 59, 0, 8, 4, { 0 }}, + { 60, 0, 5, 6, { 0 }}, + { 61, 0, 7, 7, { 0 }}, + { 62, 0, 5, 6, { 0 }}, + { 63, 1, 3, 7, { 0 }}, + { 64, 0, 5, 10, { 0 }}, + { 65, 0, 3, 6, { 0 }}, + { 66, 0, 3, 6, { 0 }}, + { 67, 0, 3, 6, { 0 }}, + { 68, 0, 3, 6, { 0 }}, + { 69, 0, 3, 6, { 0 }}, + { 70, 0, 3, 6, { 0 }}, + { 71, 0, 3, 6, { 0 }}, + { 72, 0, 3, 6, { 0 }}, + { 73, 0, 3, 3, { 0 }}, + { 74, 0, 3, 5, { 0 }}, + { 75, 0, 3, 6, { 0 }}, + { 76, 0, 3, 6, { 0 }}, + { 77, 0, 3, 9, { 0 }}, + { 78, 0, 3, 6, { 0 }}, + { 79, 0, 3, 6, { 0 }}, + { 80, 0, 3, 6, { 0 }}, + { 81, 0, 3, 7, { 0 }}, + { 82, 0, 3, 6, { 0 }}, + { 83, 0, 3, 6, { 0 }}, + { 84, 0, 3, 6, { 0 }}, + { 85, 0, 3, 6, { 0 }}, + { 86, 0, 3, 6, { 0 }}, + { 87, 0, 3, 9, { 0 }}, + { 88, 0, 3, 6, { 0 }}, + { 89, 0, 3, 6, { 0 }}, + { 90, 0, 3, 6, { 0 }}, + { 91, 0, 2, 4, { 0 }}, + { 92, 0, 3, 7, { 0 }}, + { 93, 0, 2, 4, { 0 }}, + { 94, 0, 3, 7, { 0 }}, + { 95, 0, 12, 7, { 0 }}, + { 96, 0, 1, 4, { 0 }}, + { 97, 0, 5, 6, { 0 }}, + { 98, 0, 3, 6, { 0 }}, + { 99, 0, 5, 5, { 0 }}, + { 100, 0, 3, 6, { 0 }}, + { 101, 0, 5, 6, { 0 }}, + { 102, 0, 3, 5, { 0 }}, + { 103, 0, 5, 6, { 0 }}, + { 104, 0, 3, 6, { 0 }}, + { 105, 0, 3, 3, { 0 }}, + { 106, 0, 3, 5, { 0 }}, + { 107, 0, 3, 6, { 0 }}, + { 108, 0, 3, 4, { 0 }}, + { 109, 0, 5, 9, { 0 }}, + { 110, 0, 5, 6, { 0 }}, + { 111, 0, 5, 6, { 0 }}, + { 112, 0, 5, 6, { 0 }}, + { 113, 0, 5, 6, { 0 }}, + { 114, 0, 5, 5, { 0 }}, + { 115, 0, 5, 6, { 0 }}, + { 116, 0, 3, 5, { 0 }}, + { 117, 0, 5, 6, { 0 }}, + { 118, 0, 5, 7, { 0 }}, + { 119, 0, 5, 9, { 0 }}, + { 120, 0, 5, 6, { 0 }}, + { 121, 0, 5, 6, { 0 }}, + { 122, 0, 5, 6, { 0 }}, + { 123, 0, 2, 6, { 0 }}, + { 124, 0, 3, 3, { 0 }}, + { 125, 0, 2, 6, { 0 }}, + { 126, 0, 1, 6, { 0 }}, + { 161, 0, 4, 4, { 0 }}, + { 162, 0, 3, 6, { 0 }}, + { 163, 0, 3, 7, { 0 }}, + { 8364, 0, 3, 7, { 0 }}, + { 165, 0, 3, 7, { 0 }}, + { 352, 0, 0, 0, { 0 }}, + { 167, 0, 3, 6, { 0 }}, + { 353, 0, 0, 0, { 0 }}, + { 169, 0, 1, 9, { 0 }}, + { 170, 0, 1, 5, { 0 }}, + { 171, 0, 6, 8, { 0 }}, + { 172, 0, 0, 0, { 0 }}, + { 174, 0, 1, 9, { 0 }}, + { 175, 0, 0, 6, { 0 }}, + { 176, 0, 1, 5, { 0 }}, + { 177, 0, 5, 7, { 0 }}, + { 178, 0, 1, 5, { 0 }}, + { 179, 0, 0, 0, { 0 }}, + { 381, 0, 0, 0, { 0 }}, + { 181, 0, 5, 6, { 0 }}, + { 182, 0, 3, 8, { 0 }}, + { 183, 0, 7, 5, { 0 }}, + { 382, 0, 0, 0, { 0 }}, + { 185, 0, 1, 4, { 0 }}, + { 186, 0, 1, 5, { 0 }}, + { 187, 0, 6, 8, { 0 }}, + { 338, 0, 3, 9, { 0 }}, + { 339, 0, 5, 9, { 0 }}, + { 376, 0, 0, 0, { 0 }}, + { 191, 0, 4, 6, { 0 }}, + { 192, 0, 0, 6, { 0 }}, + { 193, 0, 0, 6, { 0 }}, + { 194, 0, 0, 6, { 0 }}, + { 195, 0, 0, 6, { 0 }}, + { 196, 0, 0, 6, { 0 }}, + { 197, 0, 0, 6, { 0 }}, + { 198, 0, 3, 9, { 0 }}, + { 199, 0, 3, 6, { 0 }}, + { 200, 0, 0, 6, { 0 }}, + { 201, 0, 0, 6, { 0 }}, + { 202, 0, 0, 6, { 0 }}, + { 203, 0, 0, 6, { 0 }}, + { 204, 0, 0, 4, { 0 }}, + { 205, 0, 0, 4, { 0 }}, + { 206, 0, 0, 5, { 0 }}, + { 207, 0, 0, 5, { 0 }}, + { 208, 0, 3, 7, { 0 }}, + { 209, 0, 0, 6, { 0 }}, + { 210, 0, 0, 6, { 0 }}, + { 211, 0, 0, 6, { 0 }}, + { 212, 0, 0, 6, { 0 }}, + { 213, 0, 0, 6, { 0 }}, + { 214, 0, 0, 6, { 0 }}, + { 215, 0, 7, 7, { 0 }}, + { 216, 0, 2, 8, { 0 }}, + { 217, 0, 0, 6, { 0 }}, + { 218, 0, 0, 6, { 0 }}, + { 219, 0, 0, 6, { 0 }}, + { 220, 0, 0, 6, { 0 }}, + { 221, 0, 0, 6, { 0 }}, + { 222, 0, 0, 0, { 0 }}, + { 223, 0, 3, 7, { 0 }}, + { 224, 0, 1, 6, { 0 }}, + { 225, 0, 1, 6, { 0 }}, + { 226, 0, 1, 6, { 0 }}, + { 227, 0, 1, 6, { 0 }}, + { 228, 0, 1, 6, { 0 }}, + { 229, 0, 1, 6, { 0 }}, + { 230, 0, 5, 9, { 0 }}, + { 231, 0, 5, 5, { 0 }}, + { 232, 0, 1, 6, { 0 }}, + { 233, 0, 1, 6, { 0 }}, + { 234, 0, 1, 6, { 0 }}, + { 235, 0, 1, 6, { 0 }}, + { 236, 0, 1, 5, { 0 }}, + { 237, 0, 1, 5, { 0 }}, + { 238, 0, 1, 5, { 0 }}, + { 239, 0, 1, 5, { 0 }}, + { 240, 0, 0, 0, { 0 }}, + { 241, 0, 1, 6, { 0 }}, + { 242, 0, 1, 6, { 0 }}, + { 243, 0, 1, 6, { 0 }}, + { 244, 0, 1, 6, { 0 }}, + { 245, 0, 1, 6, { 0 }}, + { 246, 0, 1, 6, { 0 }}, + { 247, 0, 7, 7, { 0 }}, + { 248, 0, 4, 8, { 0 }}, + { 249, 0, 1, 6, { 0 }}, + { 250, 0, 1, 6, { 0 }}, + { 251, 0, 1, 6, { 0 }}, + { 252, 0, 1, 6, { 0 }}, + { 253, 0, 1, 6, { 0 }}, + { 254, 0, 0, 0, { 0 }}, + { 255, 0, 1, 6, { 0 }}, +}; + +// Style loading function: Ashes +static void GuiLoadStyleAshes(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < ASHES_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(ashesStyleProps[i].controlId, ashesStyleProps[i].propertyId, ashesStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int ashesFontDataSize = 0; + unsigned char *data = DecompressData(ashesFontData, ASHES_STYLE_FONT_ATLAS_COMP_SIZE, &ashesFontDataSize); + Image imFont = { data, 256, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 16; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, ashesFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, ashesFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 254, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_bluish.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_bluish.h new file mode 100644 index 0000000..d95ab8c --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_bluish.h @@ -0,0 +1,610 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleBluish(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define BLUISH_STYLE_PROPS_COUNT 14 + +// Custom style name: Bluish +static const GuiStyleProp bluishStyleProps[BLUISH_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0x5ca6a6ff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0xb4e8f3ff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0x447e77ff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0x5f8792ff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0xcdeff7ff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0x4c6c74ff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0x3b5b5fff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0xeaffffff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0x275057ff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0x96aaacff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0xc8d7d9ff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0x8c9c9eff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 18, (int)0x84adb7ff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0xe8eef1ff }, // DEFAULT_BACKGROUND_COLOR +}; + +// WARNING: This style uses a custom font: "homespun.ttf" (size: 10, spacing: 1) + +#define BLUISH_STYLE_FONT_ATLAS_COMP_SIZE 2730 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char bluishFontData[BLUISH_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0x9d, 0xdb, 0x92, 0xdb, 0x38, 0x0c, 0x44, 0x45, 0xee, 0xff, 0xff, 0xf1, 0x90, 0xdc, 0xca, 0xc8, 0x33, 0xa9, 0x4d, 0xd4, + 0x10, 0x01, 0x41, 0x17, 0xef, 0x9c, 0x9c, 0x4a, 0x1e, 0x44, 0x8b, 0x26, 0x09, 0x4a, 0x76, 0x84, 0x76, 0x63, 0x2c, 0x00, + 0x00, 0x00, 0x00, 0x7f, 0x51, 0xc5, 0xb1, 0x2a, 0x5f, 0x5d, 0x1d, 0x3d, 0xad, 0xc7, 0xab, 0xd1, 0xee, 0xeb, 0xad, 0x3a, + 0x7a, 0xb0, 0x5a, 0xec, 0xb6, 0x3f, 0x29, 0x2f, 0x32, 0x56, 0xb6, 0x7e, 0xaf, 0xc7, 0xf6, 0x2a, 0x79, 0x5e, 0x5f, 0x5d, + 0xb3, 0xd8, 0x66, 0x88, 0x63, 0x7d, 0x73, 0xbe, 0x63, 0x14, 0xd1, 0x52, 0xc7, 0x10, 0xe3, 0x19, 0x9f, 0x67, 0x6d, 0xf7, + 0x68, 0x9d, 0xb5, 0xf5, 0x1e, 0x6d, 0xa3, 0x8f, 0x26, 0x77, 0xc5, 0xaf, 0x77, 0x54, 0x2b, 0xd4, 0x45, 0x3c, 0xc7, 0xe6, + 0x6b, 0x57, 0xca, 0xd4, 0xab, 0xad, 0x77, 0x18, 0xa3, 0x8d, 0xf6, 0x5a, 0x8f, 0x3f, 0x67, 0x31, 0x5c, 0xaf, 0xd7, 0x2d, + 0xc7, 0xe3, 0xdf, 0x3f, 0xc7, 0x53, 0x36, 0xae, 0x83, 0x5f, 0xd1, 0xea, 0x22, 0x5e, 0x6a, 0x3c, 0xeb, 0xca, 0x95, 0xcd, + 0x1e, 0xad, 0xb3, 0x96, 0xe9, 0xd5, 0xde, 0x3e, 0x7f, 0x1d, 0xe9, 0xf6, 0x3c, 0xca, 0x67, 0xdb, 0xd6, 0xda, 0xb5, 0xa4, + 0xfb, 0xaa, 0x9a, 0xef, 0x62, 0x5e, 0x5b, 0xdb, 0xab, 0xd0, 0x5d, 0x2d, 0xc7, 0xe3, 0xaf, 0x77, 0xf4, 0x78, 0xfd, 0x55, + 0x33, 0x6b, 0x62, 0x3c, 0x45, 0xb4, 0xd8, 0x67, 0x1d, 0x89, 0x7f, 0x79, 0x8d, 0xb4, 0x8a, 0xeb, 0x79, 0x88, 0x2b, 0xfa, + 0xcc, 0xe8, 0xfb, 0xe3, 0x5f, 0x5e, 0x7b, 0xb5, 0x88, 0x4f, 0xa5, 0x6b, 0xe3, 0x5f, 0x5e, 0xf7, 0xff, 0x2a, 0x46, 0x5f, + 0x64, 0xf4, 0xf5, 0xdd, 0xd6, 0xf3, 0xb9, 0xea, 0xbb, 0xfe, 0xd7, 0x75, 0x56, 0x7b, 0xeb, 0xbc, 0xd8, 0xdb, 0xf3, 0xf5, + 0xc5, 0x7f, 0xc8, 0x4f, 0x9e, 0xaf, 0x5d, 0x7c, 0x74, 0x16, 0x3d, 0xe9, 0xfa, 0xef, 0x72, 0x3c, 0xe5, 0x75, 0xff, 0xdf, + 0x9e, 0xb3, 0xe7, 0x2a, 0xf4, 0xc4, 0x7f, 0x2f, 0xc6, 0x67, 0x5e, 0xfb, 0xba, 0x6f, 0x7f, 0xfc, 0xd7, 0x1e, 0xb7, 0xde, + 0xe5, 0xec, 0x5d, 0xbc, 0xb8, 0xbe, 0xff, 0x15, 0xe3, 0x3b, 0xcf, 0xd7, 0xde, 0xf1, 0xcc, 0x2f, 0x2b, 0xce, 0xd7, 0x33, + 0x76, 0x67, 0xe0, 0x89, 0x7f, 0x91, 0xab, 0x5a, 0x2e, 0xff, 0xfc, 0xb7, 0xe2, 0x6f, 0x8d, 0xd4, 0x8a, 0xbf, 0x6f, 0x16, + 0xc3, 0xf9, 0x1d, 0xfc, 0x79, 0xf1, 0x1f, 0xdf, 0xff, 0x1f, 0x9a, 0x9b, 0x9b, 0x7a, 0xbd, 0xd5, 0xd3, 0x3d, 0xb3, 0x8e, + 0x8c, 0xe7, 0x69, 0xb3, 0x80, 0x23, 0x7c, 0x04, 0xe2, 0xf8, 0x41, 0xec, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xd2, 0x54, 0x3e, 0x59, 0x0a, 0x93, 0xec, 0x96, 0x63, 0xaa, 0x20, 0xad, 0xce, 0xb1, 0x14, 0x49, 0xf6, 0x28, 0xaf, 0x5a, + 0x8f, 0xe5, 0x22, 0xcd, 0xcf, 0x08, 0x28, 0x52, 0xae, 0x6a, 0x69, 0xd3, 0x2a, 0x8c, 0xed, 0x6c, 0xae, 0x56, 0xe7, 0x74, + 0xb1, 0x56, 0x7b, 0xa3, 0xbc, 0x6e, 0x3d, 0x6a, 0x60, 0x74, 0x91, 0xa7, 0xe5, 0x63, 0x27, 0x3b, 0xd7, 0x5c, 0x2d, 0x7d, + 0x37, 0xd7, 0xe7, 0x53, 0xbe, 0x1c, 0xcb, 0xab, 0x5a, 0xea, 0x3c, 0xa5, 0xff, 0xb0, 0x46, 0xa9, 0x74, 0x15, 0x23, 0x3c, + 0xeb, 0x96, 0x7a, 0x4e, 0x0b, 0xc5, 0x5f, 0xcf, 0x4a, 0xe7, 0xe6, 0x6d, 0xd5, 0xa3, 0xee, 0xcd, 0xd7, 0x32, 0xaf, 0x3e, + 0x50, 0x31, 0xd6, 0x1a, 0x09, 0xaf, 0x76, 0x66, 0x18, 0xba, 0x8a, 0xbd, 0xb9, 0x35, 0x57, 0x6e, 0x72, 0xec, 0xac, 0xe1, + 0x71, 0xb5, 0xcc, 0x9c, 0x3a, 0xa3, 0x1b, 0xf3, 0xb5, 0x15, 0x26, 0xdd, 0x75, 0x4e, 0x4f, 0xd0, 0xab, 0x78, 0x77, 0x8f, + 0xa5, 0xc3, 0xe9, 0x46, 0xfc, 0xab, 0x73, 0x6e, 0x6b, 0x4b, 0x75, 0xe5, 0x82, 0xc7, 0xce, 0x1a, 0x1e, 0x57, 0xcb, 0xcc, + 0xad, 0x5f, 0x09, 0xdf, 0xb1, 0xb3, 0xce, 0x39, 0x6f, 0x07, 0x0c, 0x77, 0x3f, 0xe3, 0x7b, 0xa7, 0x66, 0xde, 0xff, 0x4b, + 0xe0, 0x13, 0xb9, 0x1c, 0xd6, 0x6a, 0xcc, 0xdf, 0xb1, 0x63, 0x0a, 0x93, 0xac, 0x73, 0x9e, 0xa5, 0xdd, 0x28, 0xc1, 0x3b, + 0xf6, 0x35, 0x2d, 0x67, 0xc4, 0x3f, 0xaa, 0x30, 0xe9, 0x69, 0xe7, 0x2c, 0x97, 0x6b, 0x7a, 0x86, 0xbc, 0xfe, 0xad, 0xf5, + 0xc8, 0x5c, 0x43, 0x4b, 0x07, 0x64, 0x8f, 0xe0, 0x27, 0xd0, 0x78, 0x66, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xd0, 0xff, 0xd8, 0xea, 0x1b, 0x9f, 0x42, 0xc5, 0x56, 0xed, 0x78, 0x3d, 0x7a, 0xea, 0xe5, 0xaa, 0x9b, 0xec, + 0x96, 0xc8, 0x5a, 0xec, 0xb5, 0xf8, 0xce, 0xdc, 0x7f, 0xde, 0xad, 0x35, 0x25, 0xea, 0xa9, 0x76, 0xfb, 0x3c, 0x2b, 0x27, + 0xfb, 0x37, 0x76, 0x47, 0xb6, 0xfe, 0x5b, 0x1f, 0xa8, 0x4f, 0xb2, 0x94, 0x4b, 0x5f, 0x23, 0xcf, 0xcc, 0x16, 0xae, 0x2d, + 0x6d, 0x73, 0x2d, 0xa2, 0x39, 0xb4, 0x88, 0x0e, 0xc5, 0xce, 0x86, 0xe5, 0xc5, 0x3f, 0x3a, 0xe7, 0x6b, 0x5b, 0xbc, 0x3e, + 0x22, 0xcf, 0x8b, 0xbf, 0xa5, 0xf2, 0xc9, 0x8a, 0xff, 0x31, 0x1d, 0x4c, 0x5e, 0xfc, 0x23, 0x1a, 0x2e, 0x3d, 0x76, 0x4b, + 0x07, 0x75, 0x65, 0xfc, 0xb5, 0x8f, 0xd6, 0x4c, 0xfc, 0xfd, 0x2a, 0x1f, 0x7f, 0xfc, 0x8f, 0xe9, 0x60, 0xf2, 0xe2, 0x1f, + 0xd1, 0x70, 0x74, 0xc3, 0x2d, 0xaa, 0xbb, 0xbd, 0x47, 0xc6, 0x8e, 0xc6, 0xb0, 0x05, 0xe2, 0x5f, 0xe4, 0x18, 0x8f, 0xea, + 0x3f, 0x3d, 0xd7, 0x7f, 0x39, 0x4d, 0x07, 0x93, 0x7b, 0xff, 0xcf, 0x5a, 0x87, 0xb2, 0xa3, 0x3e, 0x2c, 0x01, 0xb5, 0x48, + 0x4f, 0x5e, 0x8b, 0x39, 0xbd, 0x43, 0x4e, 0xfc, 0x23, 0x7d, 0xcd, 0x9d, 0xe3, 0x8d, 0x7f, 0x09, 0xc4, 0x3f, 0x73, 0xec, + 0x76, 0xfc, 0x8b, 0xa1, 0x16, 0xd9, 0x3f, 0x27, 0x3b, 0xfe, 0x51, 0x55, 0x4b, 0x49, 0xec, 0x6b, 0x24, 0xc7, 0xdf, 0xaf, + 0x93, 0xc9, 0x1d, 0xbb, 0x1d, 0xff, 0xf8, 0xe8, 0xd6, 0x3f, 0xf5, 0x04, 0x0d, 0x3d, 0xe0, 0x38, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x2c, 0x46, 0x45, 0x2a, 0x5b, 0x65, 0x34, 0xaf, 0x16, 0xfa, 0x52, 0x50, 0x6c, + 0xeb, 0x27, 0x72, 0x9c, 0x7e, 0xf6, 0x6b, 0x77, 0x79, 0xdf, 0x47, 0xad, 0x56, 0x64, 0x6c, 0x67, 0xd7, 0x38, 0x9b, 0x53, + 0xf9, 0x58, 0xba, 0x17, 0xdf, 0x6f, 0x50, 0x95, 0x37, 0x4d, 0x15, 0x4e, 0x37, 0xde, 0xdf, 0xee, 0x5b, 0x5e, 0x15, 0xba, + 0x9f, 0x4c, 0x17, 0x8b, 0x21, 0xf7, 0xeb, 0x08, 0x8c, 0xad, 0x89, 0xa3, 0xaa, 0x8f, 0x1a, 0xfe, 0xa5, 0x74, 0xdc, 0xcb, + 0x61, 0xd6, 0x53, 0x49, 0x67, 0x0c, 0xd7, 0x5c, 0xb7, 0x77, 0x07, 0x74, 0x79, 0x8d, 0x6d, 0x8f, 0xb5, 0x4a, 0x7d, 0xcb, + 0x22, 0xab, 0x99, 0xf9, 0xbd, 0x6a, 0x86, 0xa8, 0x1a, 0x66, 0xe7, 0x8f, 0xd4, 0xd8, 0x54, 0xb5, 0xa4, 0x45, 0xf4, 0xd1, + 0xc2, 0xbf, 0x09, 0x1f, 0x3b, 0x75, 0xa4, 0x3c, 0x3d, 0x5b, 0x3b, 0xc0, 0xaa, 0xe4, 0xd6, 0x12, 0x6a, 0x95, 0xf8, 0xbd, + 0x6a, 0x2c, 0xe5, 0x81, 0xdd, 0x9b, 0xd7, 0x9b, 0x45, 0xef, 0x19, 0xdf, 0x9d, 0x21, 0xcb, 0x61, 0x66, 0xee, 0xce, 0x59, + 0x8c, 0x19, 0x2d, 0xee, 0x1d, 0x70, 0x6e, 0x25, 0x8f, 0xf3, 0x94, 0x07, 0xb3, 0xb3, 0xc8, 0xce, 0x2c, 0xcf, 0xc7, 0x7f, + 0x39, 0xe4, 0x09, 0x52, 0xc2, 0x5a, 0x19, 0xdf, 0x0e, 0x38, 0x3b, 0xfe, 0x67, 0x29, 0x0f, 0xb2, 0x1c, 0x38, 0xfa, 0x43, + 0xe3, 0xbf, 0xe7, 0x36, 0xe3, 0x8f, 0xa5, 0x5f, 0x31, 0xba, 0xdc, 0x72, 0x67, 0xc8, 0x3e, 0x67, 0x71, 0xff, 0x4f, 0xe6, + 0x19, 0xf1, 0x8f, 0x39, 0xd4, 0x14, 0xb7, 0x97, 0xd0, 0x5d, 0xf1, 0xf7, 0xd7, 0x91, 0x8a, 0x9d, 0x93, 0xaf, 0xbd, 0xbc, + 0x22, 0xfe, 0xf0, 0x3e, 0xce, 0x47, 0x0d, 0x7d, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x29, 0xff, + 0xc1, 0xa3, 0x5e, 0xb9, 0xbf, 0xa5, 0xee, 0x64, 0xb5, 0x4a, 0xb8, 0xa5, 0xa4, 0xf5, 0x69, 0x69, 0x8c, 0x8e, 0xd6, 0x3c, + 0xfb, 0xea, 0xbb, 0x84, 0xd5, 0x3f, 0xbf, 0x73, 0xd0, 0xeb, 0xbf, 0x35, 0x29, 0xb3, 0x9e, 0xdf, 0x72, 0xfe, 0xaf, 0xf9, + 0xcf, 0xf0, 0x1b, 0xb0, 0x1c, 0x22, 0xea, 0xb4, 0xb6, 0xa2, 0xc9, 0x9c, 0x6a, 0x97, 0x9e, 0x01, 0x2d, 0x90, 0x83, 0xb8, + 0xdf, 0x65, 0xa7, 0x39, 0xeb, 0x50, 0xd5, 0x0b, 0x3d, 0x36, 0xfa, 0x8e, 0x1e, 0xc6, 0xa7, 0xa1, 0xd1, 0x1e, 0x0a, 0x8b, + 0xeb, 0xb5, 0xaa, 0x26, 0x51, 0x79, 0xcb, 0xf8, 0x2f, 0x4e, 0x6d, 0x5f, 0x9f, 0xf0, 0xcb, 0xc8, 0xf2, 0xd8, 0x28, 0x01, + 0x85, 0x4f, 0x31, 0xea, 0x8f, 0xf9, 0xe2, 0xaf, 0xaa, 0xd5, 0xf9, 0xef, 0x8d, 0x57, 0xb8, 0x6c, 0xe4, 0x57, 0xb0, 0xc9, + 0x73, 0xf3, 0xc8, 0xf7, 0xd8, 0xb0, 0x32, 0xe5, 0x5a, 0x57, 0xe9, 0x8b, 0xbf, 0xd7, 0xdb, 0xe1, 0x8a, 0xf8, 0x47, 0x6b, + 0xdb, 0xe4, 0x3a, 0x73, 0x94, 0x87, 0x78, 0x6c, 0x78, 0x1d, 0x42, 0x8e, 0xdf, 0xff, 0xb3, 0xf5, 0x08, 0x79, 0x99, 0xea, + 0x6b, 0x7c, 0x36, 0x22, 0x3a, 0x9d, 0xb3, 0x32, 0xf3, 0xfe, 0xec, 0xbc, 0x47, 0x5b, 0xd9, 0xdf, 0x2a, 0xfe, 0x4f, 0xd6, + 0xf6, 0x3c, 0x89, 0x33, 0x6b, 0x9e, 0xa1, 0xfe, 0x79, 0xd7, 0x3d, 0xcd, 0x1a, 0xfc, 0x6c, 0x95, 0x17, 0x6b, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x38, 0x00, 0x2d, 0xd2, 0xd3, 0x66, 0xbe, 0x87, 0x9a, 0xe6, 0x2f, 0xb4, 0x77, + 0x4e, 0x75, 0xd6, 0x25, 0x2b, 0x6e, 0x7d, 0xce, 0xb1, 0xda, 0x63, 0xbe, 0x95, 0x8e, 0xf4, 0x35, 0xb7, 0x5e, 0x33, 0xfa, + 0x2f, 0x4b, 0x45, 0xd1, 0xa6, 0x9e, 0xae, 0x0f, 0xe3, 0x79, 0x76, 0xfb, 0x9c, 0xc3, 0x87, 0xb3, 0x7a, 0x96, 0x7d, 0x8e, + 0xaa, 0x08, 0xa6, 0xfa, 0x2b, 0x9f, 0x2a, 0x89, 0xe6, 0xd2, 0xe7, 0xec, 0xbf, 0x93, 0xfa, 0x4d, 0x77, 0x73, 0x57, 0x04, + 0xb0, 0xab, 0x88, 0x95, 0xc3, 0x1e, 0x3e, 0x31, 0xe7, 0x94, 0x35, 0xbf, 0xd6, 0xa6, 0xde, 0xbf, 0x1a, 0x2e, 0x32, 0x4d, + 0xea, 0x5f, 0xb4, 0xf7, 0x8b, 0x75, 0x4e, 0x79, 0x65, 0xfd, 0xea, 0xe6, 0xf5, 0xb2, 0xad, 0xc2, 0x2a, 0xa6, 0x37, 0x8d, + 0xd6, 0x09, 0x95, 0x5d, 0x5f, 0xa3, 0xad, 0xb5, 0xe8, 0xc2, 0x53, 0xa8, 0x8b, 0x2b, 0x4d, 0x8d, 0x5b, 0x1d, 0xcf, 0x8d, + 0xbf, 0x76, 0x41, 0x1a, 0x93, 0x33, 0xff, 0xad, 0x20, 0x2c, 0x8e, 0x3b, 0xa5, 0xe5, 0x7e, 0x54, 0x0c, 0xcf, 0xa6, 0x2e, + 0xe3, 0xa9, 0xaf, 0xbd, 0x2e, 0x77, 0xa7, 0xb5, 0x2e, 0x7d, 0x77, 0xe7, 0xa8, 0x5c, 0x70, 0x71, 0xad, 0x91, 0xaa, 0x14, + 0x78, 0xcd, 0xf5, 0xaf, 0x34, 0x14, 0x7d, 0x5a, 0x75, 0x62, 0xed, 0xed, 0x3d, 0xc7, 0x24, 0xbf, 0xe2, 0x73, 0x8d, 0xc7, + 0x76, 0xfc, 0x6b, 0x9a, 0x1a, 0x60, 0x7c, 0xaf, 0x68, 0x0f, 0x7e, 0xb2, 0xce, 0xdf, 0xff, 0xd5, 0x27, 0x70, 0x99, 0xdc, + 0xb5, 0xc7, 0xe2, 0x5f, 0x4c, 0xcf, 0x96, 0x72, 0xf0, 0xfa, 0xb7, 0xd4, 0x9b, 0xb6, 0xcb, 0x9a, 0xff, 0xfa, 0xef, 0x52, + 0x6d, 0xf7, 0xec, 0xf8, 0xab, 0x71, 0xcf, 0xce, 0xe7, 0x58, 0xfc, 0x6d, 0x85, 0xd2, 0x6c, 0xaf, 0xf6, 0xdc, 0x86, 0xeb, + 0xbb, 0x97, 0xf5, 0xad, 0xac, 0x7c, 0xbf, 0xa6, 0x5e, 0xe0, 0x1b, 0x74, 0xc5, 0x3b, 0xdd, 0xad, 0x83, 0xfa, 0x70, 0xd7, + 0xa9, 0xd2, 0xca, 0x39, 0x6f, 0x8d, 0xbc, 0xa8, 0x9e, 0x6e, 0x4c, 0x7f, 0x37, 0x39, 0xaa, 0x2d, 0xca, 0x7a, 0xa7, 0x71, + 0xa2, 0x5a, 0xe9, 0xc9, 0x3a, 0xa8, 0x98, 0xcb, 0xde, 0x7b, 0xeb, 0xba, 0xd0, 0x8c, 0xcc, 0xc4, 0x32, 0xa6, 0x9a, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0xfa, 0xc7, 0xaa, 0x5c, 0x35, 0x77, 0xfe, 0xbc, 0x72, 0xa5, 0xc8, + 0x5e, 0xeb, 0x44, 0x05, 0xad, 0xe2, 0xd6, 0xbe, 0x54, 0xb7, 0xe6, 0xc9, 0x56, 0xe9, 0xe8, 0xe3, 0x79, 0xda, 0xa7, 0x88, + 0xea, 0x68, 0x09, 0x3f, 0xa3, 0x5e, 0xff, 0x34, 0xb3, 0x3e, 0x8f, 0xfd, 0xec, 0x71, 0x38, 0x54, 0x30, 0x5d, 0xd6, 0x7b, + 0x5a, 0xcf, 0x68, 0x32, 0x1f, 0x3c, 0x44, 0x46, 0xa8, 0x99, 0x39, 0x8c, 0x26, 0x8f, 0xff, 0x23, 0xa3, 0xfc, 0x21, 0xdd, + 0x7a, 0xb6, 0xcf, 0x1a, 0x9f, 0xc7, 0xbb, 0x6b, 0x6c, 0xc3, 0xac, 0xad, 0x36, 0x8c, 0x36, 0xa5, 0x08, 0xd0, 0x33, 0x9a, + 0x89, 0x7f, 0x39, 0x90, 0x37, 0x1d, 0x32, 0x4f, 0xbf, 0xad, 0xc4, 0xd2, 0x1e, 0x3a, 0x76, 0x9b, 0xd2, 0xc8, 0x2c, 0xa6, + 0x43, 0x96, 0xde, 0xb7, 0xde, 0x1d, 0xa3, 0x62, 0xd9, 0xa4, 0x5e, 0xc9, 0xd6, 0xbe, 0x54, 0x43, 0xe1, 0x60, 0xf9, 0x0c, + 0x79, 0x47, 0xfe, 0xa4, 0xf8, 0x77, 0xd3, 0xf7, 0x40, 0x6b, 0x48, 0xf6, 0x7c, 0x6e, 0xb4, 0xe2, 0xaa, 0x84, 0xee, 0xbe, + 0x39, 0x2d, 0xf6, 0x55, 0xde, 0x64, 0x86, 0xdb, 0x5a, 0x07, 0xfb, 0x53, 0x3c, 0xa2, 0x49, 0xe8, 0xa7, 0xc4, 0xbf, 0x06, + 0xf5, 0x56, 0x3e, 0xcf, 0x26, 0x3b, 0x8b, 0xa8, 0xfd, 0x9a, 0xae, 0x72, 0xae, 0x5b, 0x02, 0xb9, 0x4f, 0x4b, 0x4b, 0xb3, + 0x98, 0x15, 0xeb, 0xa2, 0x31, 0xec, 0x87, 0xe2, 0x7f, 0x44, 0xb9, 0xf2, 0xf7, 0x1d, 0xa3, 0x38, 0x73, 0xe7, 0x96, 0x8a, + 0x48, 0xaf, 0x56, 0xa4, 0xbe, 0xe3, 0x55, 0x2d, 0xd6, 0x3a, 0xd8, 0xfd, 0x1d, 0xd1, 0x25, 0xdd, 0xed, 0xa2, 0xf3, 0x75, + 0x8d, 0x77, 0xb7, 0x8b, 0x8e, 0xad, 0x15, 0xea, 0xb7, 0x3b, 0x57, 0xfa, 0xef, 0x19, 0x5d, 0x46, 0x59, 0x5f, 0x05, 0xfd, + 0xe0, 0x15, 0x7c, 0x7f, 0xfc, 0x63, 0xaa, 0x8f, 0x12, 0x50, 0x91, 0x5c, 0xeb, 0x69, 0xe8, 0x6f, 0xe9, 0xc6, 0x3a, 0x58, + 0xae, 0x51, 0x3f, 0x51, 0x49, 0x11, 0xaf, 0xd5, 0xf7, 0xcc, 0xf8, 0xef, 0x69, 0xf5, 0x2c, 0x2f, 0xd1, 0xfb, 0x9d, 0xd0, + 0x9e, 0xa4, 0x2f, 0xfa, 0x3f, 0xc6, 0xff, 0x1d, 0x15, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x64, 0x07, + 0x20, 0x5b, 0x6b, 0x52, 0x53, 0x74, 0x35, 0xfa, 0x68, 0x75, 0x7a, 0x12, 0x55, 0xf3, 0xac, 0x7b, 0xf5, 0x3e, 0xc5, 0x7c, + 0x3a, 0x7b, 0xfe, 0x98, 0xed, 0xe8, 0x7b, 0x15, 0x2f, 0x96, 0x16, 0xa2, 0xba, 0xde, 0xa5, 0x1a, 0xef, 0xf0, 0x21, 0x9e, + 0x74, 0xfa, 0x75, 0x38, 0xf7, 0xeb, 0x7d, 0x94, 0xa2, 0xa3, 0x1a, 0x1e, 0x2f, 0x99, 0x63, 0xb6, 0x15, 0x5c, 0x5e, 0xc5, + 0x8b, 0xa5, 0x36, 0xf0, 0xa9, 0x53, 0x9a, 0x68, 0xd1, 0xfd, 0xeb, 0x27, 0xdd, 0xcd, 0xf0, 0x0d, 0xba, 0x5b, 0xef, 0xa3, + 0x6b, 0x4e, 0x29, 0x1d, 0x48, 0x95, 0x3b, 0x60, 0x75, 0xb2, 0xaa, 0xae, 0x31, 0x2f, 0x01, 0xe5, 0x48, 0x44, 0xd7, 0xe2, + 0x75, 0x32, 0x53, 0xc7, 0x57, 0x0d, 0x9c, 0xf6, 0x24, 0xf2, 0x39, 0x0d, 0xdd, 0xaf, 0xf7, 0xe9, 0xa6, 0xcb, 0x54, 0x56, + 0xee, 0x20, 0xe2, 0x03, 0xb7, 0xe7, 0xcf, 0xe3, 0xab, 0xd5, 0xa7, 0x3c, 0x83, 0xbc, 0xc7, 0x17, 0xe9, 0xe3, 0x34, 0x8c, + 0xec, 0xf8, 0x13, 0x72, 0xf7, 0xbe, 0xac, 0xce, 0xaa, 0x7a, 0x18, 0x37, 0x66, 0x95, 0xb4, 0x72, 0x24, 0xd2, 0xb2, 0xec, + 0x54, 0x57, 0xcb, 0x3a, 0xfe, 0xdc, 0xdc, 0xbd, 0x37, 0xfe, 0xe3, 0xf6, 0xf8, 0xdb, 0x2a, 0x39, 0x5f, 0x0b, 0xf1, 0xf7, + 0xc6, 0xbf, 0x27, 0xde, 0xff, 0x63, 0xf1, 0xd7, 0x2a, 0x39, 0x7f, 0xcb, 0x15, 0xf1, 0x1f, 0x66, 0xe5, 0xbc, 0x77, 0x8b, + 0x7f, 0xb9, 0x59, 0x55, 0x90, 0x5b, 0xc5, 0xf3, 0xfc, 0xf8, 0xc7, 0x54, 0x1d, 0xe5, 0xe6, 0x16, 0xbf, 0x6e, 0xe3, 0x9a, + 0xf7, 0xcf, 0xaf, 0xe2, 0x79, 0xee, 0xf1, 0x68, 0xfc, 0xf3, 0xe7, 0x38, 0x52, 0x7c, 0xab, 0xda, 0x45, 0x71, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x3f, 0x35, 0x49, 0x99, 0x12, 0x75, 0xa8, 0xb9, 0xd7, 0x73, 0xc7, 0xf2, 0x17, + 0xd2, 0x2d, 0xd9, 0x33, 0xf2, 0x6a, 0xaa, 0x72, 0x7c, 0x80, 0x2c, 0xcd, 0x40, 0x95, 0x1a, 0x1c, 0x7f, 0x06, 0xdc, 0xd6, + 0x06, 0xb5, 0x80, 0x06, 0xa7, 0x1a, 0x1a, 0x9c, 0xe6, 0xf2, 0xdc, 0xe8, 0x86, 0xbf, 0x90, 0xe5, 0xac, 0x90, 0x39, 0x23, + 0x3d, 0xee, 0x26, 0x76, 0x45, 0x13, 0x7a, 0xaa, 0x9a, 0x74, 0xfd, 0x6b, 0x9d, 0x49, 0x34, 0x03, 0x1e, 0xd3, 0xe0, 0x34, + 0x97, 0x06, 0xc7, 0xaa, 0x1d, 0x55, 0x77, 0x6a, 0x73, 0xe9, 0x9c, 0x4a, 0xae, 0x8b, 0x90, 0x6f, 0xdc, 0x7a, 0x05, 0xe6, + 0xf5, 0x54, 0xd7, 0xfd, 0x16, 0xb6, 0x08, 0xa5, 0x5b, 0xe4, 0x0e, 0x1b, 0x69, 0xd1, 0x7e, 0x10, 0x56, 0xcd, 0xbe, 0x48, + 0xfd, 0xa2, 0xdc, 0x71, 0x5b, 0x75, 0xf8, 0x8a, 0xc3, 0xd9, 0x2a, 0x33, 0x6b, 0x16, 0x73, 0xaf, 0xd9, 0xae, 0x97, 0x93, + 0x5b, 0x07, 0x48, 0xb7, 0x14, 0xe9, 0x91, 0x52, 0xcc, 0x4a, 0x54, 0xdd, 0x5d, 0x05, 0x27, 0x5b, 0x3b, 0x54, 0x0c, 0x95, + 0xe0, 0xfc, 0x7d, 0x29, 0x33, 0x6b, 0x16, 0x73, 0xaf, 0x59, 0x8c, 0xd5, 0x3f, 0xbf, 0x65, 0x84, 0xaa, 0x4a, 0xd9, 0x99, + 0xb3, 0x7e, 0x89, 0x8b, 0x50, 0x37, 0xf4, 0x36, 0x77, 0xc4, 0x7f, 0x7f, 0xbd, 0xfc, 0x77, 0x86, 0x6b, 0xae, 0x23, 0xef, + 0x0e, 0x8c, 0x7a, 0x6e, 0x44, 0x94, 0x93, 0x96, 0xc7, 0x99, 0xcf, 0x61, 0xed, 0xec, 0xf8, 0x97, 0x9d, 0xfb, 0xbf, 0x76, + 0xf1, 0x1a, 0xb7, 0x6a, 0x30, 0xfc, 0xf7, 0xeb, 0x3c, 0xdf, 0xbb, 0x23, 0x2d, 0x76, 0x1d, 0xbe, 0xf3, 0xe2, 0x9f, 0xa9, + 0x26, 0xb9, 0x56, 0x67, 0x32, 0x92, 0x94, 0x4e, 0x4f, 0x98, 0x91, 0x77, 0xa7, 0xe5, 0xc5, 0xff, 0xa7, 0xa8, 0x49, 0x50, + 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xcf, 0xd5, 0xff, 0xf8, 0x3c, 0x78, 0x9e, 0xec, 0xb3, 0x93, 0xe7, + 0x40, 0x94, 0xad, 0xe2, 0x89, 0xa9, 0xa9, 0x96, 0x03, 0x95, 0xbd, 0xe6, 0xf5, 0x3f, 0x4d, 0xaa, 0x5b, 0x54, 0xed, 0xaa, + 0x7a, 0x81, 0x22, 0x26, 0xa2, 0xf1, 0x51, 0x47, 0xad, 0xdc, 0xcf, 0x35, 0x2a, 0x1e, 0xdd, 0xdb, 0xd8, 0xd1, 0x66, 0xb5, + 0x93, 0x9f, 0x58, 0x16, 0x63, 0xf6, 0x55, 0xee, 0x98, 0xf6, 0x48, 0x8d, 0x4f, 0x44, 0x5d, 0x91, 0xab, 0xe2, 0xd1, 0x2b, + 0xda, 0xa4, 0xc2, 0xc0, 0xae, 0xbf, 0x58, 0x4e, 0x7f, 0x2e, 0xae, 0xc7, 0xdb, 0x6f, 0x54, 0xf2, 0x44, 0xb4, 0x32, 0xdd, + 0x54, 0xf1, 0x74, 0x57, 0xc4, 0x22, 0x2d, 0x7b, 0xd9, 0xd4, 0x92, 0xa8, 0xa6, 0x3b, 0x37, 0xfe, 0x11, 0x85, 0xc5, 0x13, + 0x7c, 0x76, 0x8a, 0xe1, 0x72, 0xf2, 0x8e, 0xb5, 0x60, 0xee, 0x8a, 0xff, 0x7b, 0xae, 0x98, 0xed, 0x4a, 0xf1, 0x6e, 0x51, + 0x1e, 0x41, 0xc5, 0x4a, 0x4e, 0xfc, 0x9f, 0xbd, 0x2e, 0x79, 0x3e, 0x1b, 0xd7, 0x8c, 0x2c, 0xa6, 0x09, 0xbb, 0x22, 0x63, + 0x3d, 0x12, 0xaf, 0x98, 0xbb, 0x35, 0x3e, 0x11, 0x9f, 0x8d, 0xab, 0xd4, 0x47, 0x51, 0x9d, 0xc5, 0x3d, 0x55, 0x9d, 0x62, + 0x57, 0xcc, 0xdd, 0x1a, 0x9f, 0x27, 0xab, 0x78, 0xfc, 0x6a, 0x3a, 0xad, 0x58, 0x87, 0x77, 0x43, 0xc7, 0xb2, 0xb1, 0x3a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xd6, 0x3f, + 0xac, 0x03, 0xf1, 0x87, 0x1f, 0x1b, 0xff, 0x7f, 0x01 }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle bluishFontRecs[189] = { + { 4, 4, 5 , 10 }, + { 17, 4, 2 , 8 }, + { 27, 4, 4 , 3 }, + { 39, 4, 6 , 8 }, + { 53, 4, 5 , 10 }, + { 66, 4, 6 , 8 }, + { 80, 4, 5 , 10 }, + { 93, 4, 2 , 3 }, + { 103, 4, 3 , 8 }, + { 114, 4, 3 , 8 }, + { 125, 4, 6 , 6 }, + { 139, 4, 6 , 6 }, + { 153, 4, 2 , 3 }, + { 163, 4, 5 , 2 }, + { 176, 4, 2 , 2 }, + { 186, 4, 6 , 8 }, + { 200, 4, 5 , 8 }, + { 213, 4, 3 , 8 }, + { 224, 4, 5 , 8 }, + { 237, 4, 5 , 8 }, + { 4, 22, 5 , 8 }, + { 17, 22, 5 , 8 }, + { 30, 22, 5 , 8 }, + { 43, 22, 5 , 8 }, + { 56, 22, 5 , 8 }, + { 69, 22, 5 , 8 }, + { 82, 22, 2 , 8 }, + { 92, 22, 2 , 9 }, + { 102, 22, 4 , 6 }, + { 114, 22, 5 , 4 }, + { 127, 22, 4 , 6 }, + { 139, 22, 5 , 8 }, + { 152, 22, 6 , 8 }, + { 166, 22, 5 , 8 }, + { 179, 22, 5 , 8 }, + { 192, 22, 5 , 8 }, + { 205, 22, 5 , 8 }, + { 218, 22, 5 , 8 }, + { 231, 22, 5 , 8 }, + { 4, 40, 5 , 8 }, + { 17, 40, 5 , 8 }, + { 30, 40, 4 , 8 }, + { 42, 40, 5 , 8 }, + { 55, 40, 5 , 8 }, + { 68, 40, 5 , 8 }, + { 81, 40, 8 , 8 }, + { 97, 40, 5 , 8 }, + { 110, 40, 5 , 8 }, + { 123, 40, 5 , 8 }, + { 136, 40, 5 , 9 }, + { 149, 40, 5 , 8 }, + { 162, 40, 5 , 8 }, + { 175, 40, 6 , 8 }, + { 189, 40, 5 , 8 }, + { 202, 40, 5 , 8 }, + { 215, 40, 8 , 8 }, + { 231, 40, 5 , 8 }, + { 4, 58, 5 , 8 }, + { 17, 58, 5 , 8 }, + { 30, 58, 3 , 8 }, + { 41, 58, 6 , 8 }, + { 55, 58, 3 , 8 }, + { 66, 58, 6 , 4 }, + { 80, 58, 5 , 1 }, + { 93, 58, 2 , 3 }, + { 103, 58, 5 , 6 }, + { 116, 58, 5 , 8 }, + { 129, 58, 5 , 6 }, + { 142, 58, 5 , 8 }, + { 155, 58, 5 , 6 }, + { 168, 58, 5 , 8 }, + { 181, 58, 5 , 7 }, + { 194, 58, 5 , 8 }, + { 207, 58, 2 , 8 }, + { 217, 58, 3 , 9 }, + { 228, 58, 5 , 8 }, + { 241, 58, 2 , 8 }, + { 4, 76, 8 , 6 }, + { 20, 76, 5 , 6 }, + { 33, 76, 5 , 6 }, + { 46, 76, 5 , 7 }, + { 59, 76, 5 , 7 }, + { 72, 76, 5 , 6 }, + { 85, 76, 5 , 6 }, + { 98, 76, 5 , 8 }, + { 111, 76, 5 , 6 }, + { 124, 76, 5 , 6 }, + { 137, 76, 8 , 6 }, + { 153, 76, 5 , 6 }, + { 166, 76, 5 , 7 }, + { 179, 76, 5 , 6 }, + { 192, 76, 4 , 8 }, + { 204, 76, 2 , 10 }, + { 214, 76, 4 , 8 }, + { 226, 76, 6 , 4 }, + { 240, 76, 2 , 8 }, + { 4, 94, 5 , 8 }, + { 17, 94, 5 , 8 }, + { 30, 94, 0 , 0 }, + { 38, 94, 6 , 8 }, + { 52, 94, 5 , 10 }, + { 65, 94, 5 , 10 }, + { 78, 94, 5 , 9 }, + { 91, 94, 7 , 8 }, + { 106, 94, 4 , 6 }, + { 118, 94, 5 , 4 }, + { 131, 94, 5 , 3 }, + { 144, 94, 7 , 8 }, + { 159, 94, 5 , 2 }, + { 172, 94, 4 , 4 }, + { 184, 94, 6 , 8 }, + { 198, 94, 4 , 6 }, + { 210, 94, 4 , 6 }, + { 222, 94, 0 , 0 }, + { 230, 94, 5 , 9 }, + { 4, 112, 6 , 8 }, + { 18, 112, 2 , 2 }, + { 28, 112, 0 , 0 }, + { 36, 112, 3 , 6 }, + { 47, 112, 4 , 6 }, + { 59, 112, 5 , 4 }, + { 72, 112, 6 , 8 }, + { 86, 112, 6 , 6 }, + { 100, 112, 5 , 10 }, + { 113, 112, 5 , 8 }, + { 126, 112, 5 , 10 }, + { 139, 112, 5 , 10 }, + { 152, 112, 5 , 10 }, + { 165, 112, 5 , 10 }, + { 178, 112, 5 , 10 }, + { 191, 112, 5 , 10 }, + { 204, 112, 6 , 8 }, + { 218, 112, 5 , 9 }, + { 231, 112, 5 , 10 }, + { 4, 130, 5 , 10 }, + { 17, 130, 5 , 10 }, + { 30, 130, 5 , 10 }, + { 43, 130, 4 , 10 }, + { 55, 130, 4 , 10 }, + { 67, 130, 4 , 10 }, + { 79, 130, 4 , 10 }, + { 91, 130, 6 , 8 }, + { 105, 130, 5 , 10 }, + { 118, 130, 5 , 10 }, + { 131, 130, 5 , 10 }, + { 144, 130, 5 , 10 }, + { 157, 130, 5 , 10 }, + { 170, 130, 5 , 10 }, + { 183, 130, 4 , 4 }, + { 195, 130, 5 , 10 }, + { 208, 130, 5 , 10 }, + { 221, 130, 5 , 10 }, + { 234, 130, 5 , 10 }, + { 4, 148, 5 , 10 }, + { 17, 148, 5 , 10 }, + { 30, 148, 5 , 8 }, + { 43, 148, 5 , 8 }, + { 56, 148, 5 , 9 }, + { 69, 148, 5 , 9 }, + { 82, 148, 5 , 9 }, + { 95, 148, 5 , 9 }, + { 108, 148, 5 , 8 }, + { 121, 148, 5 , 10 }, + { 134, 148, 6 , 6 }, + { 148, 148, 5 , 7 }, + { 161, 148, 5 , 9 }, + { 174, 148, 5 , 9 }, + { 187, 148, 5 , 9 }, + { 200, 148, 5 , 8 }, + { 213, 148, 3 , 9 }, + { 224, 148, 3 , 9 }, + { 235, 148, 4 , 9 }, + { 4, 166, 4 , 8 }, + { 16, 166, 5 , 9 }, + { 29, 166, 5 , 9 }, + { 42, 166, 5 , 9 }, + { 55, 166, 5 , 9 }, + { 68, 166, 5 , 9 }, + { 81, 166, 5 , 9 }, + { 94, 166, 5 , 8 }, + { 107, 166, 4 , 6 }, + { 119, 166, 5 , 8 }, + { 132, 166, 5 , 9 }, + { 145, 166, 5 , 9 }, + { 158, 166, 5 , 9 }, + { 171, 166, 5 , 8 }, + { 184, 166, 5 , 10 }, + { 197, 166, 5 , 10 }, + { 210, 166, 5 , 9 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo bluishFontGlyphs[189] = { + { 32, 0, 0, 5, { 0 }}, + { 33, 0, 1, 2, { 0 }}, + { 34, 0, 1, 4, { 0 }}, + { 35, 0, 1, 6, { 0 }}, + { 36, 0, 0, 5, { 0 }}, + { 37, 0, 1, 6, { 0 }}, + { 38, 0, 0, 5, { 0 }}, + { 39, 0, 1, 2, { 0 }}, + { 40, 0, 1, 3, { 0 }}, + { 41, 0, 1, 3, { 0 }}, + { 42, 0, 1, 6, { 0 }}, + { 43, 0, 2, 6, { 0 }}, + { 44, 0, 7, 2, { 0 }}, + { 45, 0, 4, 5, { 0 }}, + { 46, 0, 7, 2, { 0 }}, + { 47, 0, 1, 6, { 0 }}, + { 48, 0, 1, 5, { 0 }}, + { 49, 0, 1, 3, { 0 }}, + { 50, 0, 1, 5, { 0 }}, + { 51, 0, 1, 5, { 0 }}, + { 52, 0, 1, 5, { 0 }}, + { 53, 0, 1, 5, { 0 }}, + { 54, 0, 1, 5, { 0 }}, + { 55, 0, 1, 5, { 0 }}, + { 56, 0, 1, 5, { 0 }}, + { 57, 0, 1, 5, { 0 }}, + { 58, 0, 1, 2, { 0 }}, + { 59, 0, 1, 2, { 0 }}, + { 60, 0, 2, 4, { 0 }}, + { 61, 0, 3, 5, { 0 }}, + { 62, 0, 2, 4, { 0 }}, + { 63, 0, 1, 5, { 0 }}, + { 64, 0, 1, 6, { 0 }}, + { 65, 0, 1, 5, { 0 }}, + { 66, 0, 1, 5, { 0 }}, + { 67, 0, 1, 5, { 0 }}, + { 68, 0, 1, 5, { 0 }}, + { 69, 0, 1, 5, { 0 }}, + { 70, 0, 1, 5, { 0 }}, + { 71, 0, 1, 5, { 0 }}, + { 72, 0, 1, 5, { 0 }}, + { 73, 0, 1, 4, { 0 }}, + { 74, 0, 1, 5, { 0 }}, + { 75, 0, 1, 5, { 0 }}, + { 76, 0, 1, 5, { 0 }}, + { 77, 0, 1, 8, { 0 }}, + { 78, 0, 1, 5, { 0 }}, + { 79, 0, 1, 5, { 0 }}, + { 80, 0, 1, 5, { 0 }}, + { 81, 0, 1, 5, { 0 }}, + { 82, 0, 1, 5, { 0 }}, + { 83, 0, 1, 5, { 0 }}, + { 84, 0, 1, 6, { 0 }}, + { 85, 0, 1, 5, { 0 }}, + { 86, 0, 1, 5, { 0 }}, + { 87, 0, 1, 8, { 0 }}, + { 88, 0, 1, 5, { 0 }}, + { 89, 0, 1, 5, { 0 }}, + { 90, 0, 1, 5, { 0 }}, + { 91, 0, 1, 3, { 0 }}, + { 92, 0, 1, 6, { 0 }}, + { 93, 0, 1, 3, { 0 }}, + { 94, 0, 1, 6, { 0 }}, + { 95, 0, 9, 5, { 0 }}, + { 96, 0, 1, 2, { 0 }}, + { 97, 0, 3, 5, { 0 }}, + { 98, 0, 1, 5, { 0 }}, + { 99, 0, 3, 5, { 0 }}, + { 100, 0, 1, 5, { 0 }}, + { 101, 0, 3, 5, { 0 }}, + { 102, 0, 1, 5, { 0 }}, + { 103, 0, 3, 5, { 0 }}, + { 104, 0, 1, 5, { 0 }}, + { 105, 0, 1, 2, { 0 }}, + { 106, 0, 1, 3, { 0 }}, + { 107, 0, 1, 5, { 0 }}, + { 108, 0, 1, 2, { 0 }}, + { 109, 0, 3, 8, { 0 }}, + { 110, 0, 3, 5, { 0 }}, + { 111, 0, 3, 5, { 0 }}, + { 112, 0, 3, 5, { 0 }}, + { 113, 0, 3, 5, { 0 }}, + { 114, 0, 3, 5, { 0 }}, + { 115, 0, 3, 5, { 0 }}, + { 116, 0, 1, 5, { 0 }}, + { 117, 0, 3, 5, { 0 }}, + { 118, 0, 3, 5, { 0 }}, + { 119, 0, 3, 8, { 0 }}, + { 120, 0, 3, 5, { 0 }}, + { 121, 0, 3, 5, { 0 }}, + { 122, 0, 3, 5, { 0 }}, + { 123, 0, 1, 4, { 0 }}, + { 124, 0, 0, 2, { 0 }}, + { 125, 0, 1, 4, { 0 }}, + { 126, 0, 3, 6, { 0 }}, + { 161, 0, 1, 2, { 0 }}, + { 162, 0, 2, 5, { 0 }}, + { 163, 0, 1, 5, { 0 }}, + { 8364, 0, 0, 0, { 0 }}, + { 165, 0, 1, 6, { 0 }}, + { 352, 0, -1, 5, { 0 }}, + { 167, 0, 0, 5, { 0 }}, + { 353, 0, 0, 5, { 0 }}, + { 169, 0, 1, 7, { 0 }}, + { 170, 0, -1, 4, { 0 }}, + { 171, 0, 3, 5, { 0 }}, + { 172, 0, 4, 5, { 0 }}, + { 174, 0, 1, 7, { 0 }}, + { 175, 0, -1, 5, { 0 }}, + { 176, 0, -1, 4, { 0 }}, + { 177, 0, 1, 6, { 0 }}, + { 178, 0, -1, 4, { 0 }}, + { 179, 0, -1, 4, { 0 }}, + { 381, 0, 0, 0, { 0 }}, + { 181, 0, 1, 5, { 0 }}, + { 182, 0, 1, 6, { 0 }}, + { 183, 0, 4, 2, { 0 }}, + { 382, 0, 0, 0, { 0 }}, + { 185, 0, -1, 3, { 0 }}, + { 186, 0, -1, 4, { 0 }}, + { 187, 0, 3, 5, { 0 }}, + { 338, 0, 1, 6, { 0 }}, + { 339, 0, 3, 6, { 0 }}, + { 376, 0, -1, 5, { 0 }}, + { 191, 0, 1, 5, { 0 }}, + { 192, 0, -1, 5, { 0 }}, + { 193, 0, -1, 5, { 0 }}, + { 194, 0, -1, 5, { 0 }}, + { 195, 0, -1, 5, { 0 }}, + { 196, 0, -1, 5, { 0 }}, + { 197, 0, -1, 5, { 0 }}, + { 198, 0, 1, 6, { 0 }}, + { 199, 0, 1, 5, { 0 }}, + { 200, 0, -1, 5, { 0 }}, + { 201, 0, -1, 5, { 0 }}, + { 202, 0, -1, 5, { 0 }}, + { 203, 0, -1, 5, { 0 }}, + { 204, 0, -1, 4, { 0 }}, + { 205, 0, -1, 4, { 0 }}, + { 206, 0, -1, 4, { 0 }}, + { 207, 0, -1, 4, { 0 }}, + { 208, 0, 1, 6, { 0 }}, + { 209, 0, -1, 5, { 0 }}, + { 210, 0, -1, 5, { 0 }}, + { 211, 0, -1, 5, { 0 }}, + { 212, 0, -1, 5, { 0 }}, + { 213, 0, -1, 5, { 0 }}, + { 214, 0, -1, 5, { 0 }}, + { 215, 0, 3, 4, { 0 }}, + { 216, 0, 0, 5, { 0 }}, + { 217, 0, -1, 5, { 0 }}, + { 218, 0, -1, 5, { 0 }}, + { 219, 0, -1, 5, { 0 }}, + { 220, 0, -1, 5, { 0 }}, + { 221, 0, -1, 5, { 0 }}, + { 222, 0, 1, 5, { 0 }}, + { 223, 0, 1, 5, { 0 }}, + { 224, 0, 0, 5, { 0 }}, + { 225, 0, 0, 5, { 0 }}, + { 226, 0, 0, 5, { 0 }}, + { 227, 0, 0, 5, { 0 }}, + { 228, 0, 1, 5, { 0 }}, + { 229, 0, -1, 5, { 0 }}, + { 230, 0, 3, 6, { 0 }}, + { 231, 0, 3, 5, { 0 }}, + { 232, 0, 0, 5, { 0 }}, + { 233, 0, 0, 5, { 0 }}, + { 234, 0, 0, 5, { 0 }}, + { 235, 0, 1, 5, { 0 }}, + { 236, 0, 0, 3, { 0 }}, + { 237, 0, 0, 2, { 0 }}, + { 238, 0, 0, 3, { 0 }}, + { 239, 0, 1, 3, { 0 }}, + { 240, 0, 0, 5, { 0 }}, + { 241, 0, 0, 5, { 0 }}, + { 242, 0, 0, 5, { 0 }}, + { 243, 0, 0, 5, { 0 }}, + { 244, 0, 0, 5, { 0 }}, + { 245, 0, 0, 5, { 0 }}, + { 246, 0, 1, 5, { 0 }}, + { 247, 0, 2, 4, { 0 }}, + { 248, 0, 2, 5, { 0 }}, + { 249, 0, 0, 5, { 0 }}, + { 250, 0, 0, 5, { 0 }}, + { 251, 0, 0, 5, { 0 }}, + { 252, 0, 1, 5, { 0 }}, + { 253, 0, 0, 5, { 0 }}, + { 254, 0, 0, 5, { 0 }}, + { 255, 0, 1, 5, { 0 }}, +}; + +// Style loading function: Bluish +static void GuiLoadStyleBluish(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < BLUISH_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(bluishStyleProps[i].controlId, bluishStyleProps[i].propertyId, bluishStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int bluishFontDataSize = 0; + unsigned char *data = DecompressData(bluishFontData, BLUISH_STYLE_FONT_ATLAS_COMP_SIZE, &bluishFontDataSize); + Image imFont = { data, 256, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 10; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, bluishFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, bluishFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 254, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_candy.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_candy.h new file mode 100644 index 0000000..dc0351e --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_candy.h @@ -0,0 +1,582 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleCandy(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define CANDY_STYLE_PROPS_COUNT 17 + +// Custom style name: Candy +static const GuiStyleProp candyStyleProps[CANDY_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0xe58b68ff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0xfeda96ff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0xe59b5fff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0xee813fff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0xfcd85bff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0xfc6955ff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0xb34848ff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0xeb7272ff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0xbd4a4aff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0x94795dff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0xc2a37aff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0x9c8369ff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x0000000f }, // DEFAULT_TEXT_SIZE + { 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING + { 0, 18, (int)0xd77575ff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0xfff5e1ff }, // DEFAULT_BACKGROUND_COLOR + { 0, 20, (int)0x00000007 }, // DEFAULT_TEXT_LINE_SPACING +}; + +// WARNING: This style uses a custom font: "v5easter.ttf" (size: 15, spacing: 0) + +#define CANDY_STYLE_FONT_ATLAS_COMP_SIZE 2110 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char candyFontData[CANDY_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0xdd, 0x5b, 0x76, 0xa4, 0x36, 0x10, 0x00, 0x50, 0xad, 0x2b, 0xfb, 0xdf, 0x97, 0x72, 0x92, 0x7c, 0xe4, 0xcc, 0x8c, 0x1b, + 0x54, 0xa5, 0x12, 0x08, 0xfa, 0xfa, 0xfe, 0x19, 0xbb, 0x1b, 0x10, 0xa5, 0x07, 0xa0, 0x52, 0x6f, 0x00, 0x00, 0x00, 0xc0, + 0x97, 0xfb, 0xe7, 0xe7, 0xcf, 0xdf, 0xb5, 0x1f, 0x7e, 0xfb, 0xff, 0xdf, 0xf6, 0x1f, 0xb7, 0x1e, 0x6d, 0xc9, 0xff, 0xe7, + 0xf1, 0x9e, 0x8c, 0x7d, 0x42, 0x3b, 0xd8, 0x72, 0xbe, 0xcf, 0xbf, 0xff, 0xae, 0x97, 0x7c, 0xfb, 0xa7, 0xcf, 0x39, 0xdb, + 0xa3, 0xcc, 0xb6, 0xa3, 0x4f, 0xed, 0x07, 0xc7, 0xd4, 0x06, 0xb6, 0xf4, 0xd4, 0xd1, 0xf5, 0xe9, 0x52, 0x8d, 0x95, 0xce, + 0xf9, 0xf1, 0xb7, 0xf0, 0x31, 0xb6, 0x05, 0xdb, 0xfa, 0x64, 0x19, 0xaf, 0x8c, 0xff, 0xdf, 0x7f, 0x2a, 0xe3, 0xff, 0xf8, + 0x33, 0x67, 0xae, 0x89, 0xff, 0x8f, 0xa6, 0x17, 0xc4, 0x7f, 0xbc, 0x16, 0x39, 0x3e, 0x82, 0xcf, 0x57, 0x71, 0x0b, 0xff, + 0xcf, 0x79, 0xfd, 0x5a, 0xf9, 0xa9, 0x2b, 0xb7, 0x8d, 0x45, 0xed, 0xfc, 0x75, 0x7e, 0xb6, 0x37, 0x73, 0x65, 0x78, 0xe5, + 0xb6, 0xda, 0xf8, 0x3f, 0xfb, 0xdb, 0x6c, 0xcd, 0x9e, 0xef, 0x1d, 0x8c, 0xb6, 0xe6, 0x3d, 0x74, 0xed, 0x9f, 0xb7, 0x62, + 0x35, 0x67, 0x38, 0x7a, 0xc4, 0xc7, 0x75, 0xc9, 0xd9, 0xd6, 0xf9, 0x36, 0x37, 0x72, 0x6d, 0xdc, 0x71, 0x15, 0x9f, 0x97, + 0x66, 0x45, 0xbb, 0xd4, 0x7f, 0x39, 0xdb, 0xe2, 0x7f, 0xf4, 0xaa, 0xed, 0x8b, 0x5b, 0xda, 0x16, 0x6e, 0x69, 0x73, 0x7d, + 0x96, 0xba, 0x33, 0x5c, 0x15, 0xff, 0x7d, 0x22, 0xfa, 0x5b, 0xa2, 0xc7, 0x79, 0x5c, 0x6b, 0x9f, 0xed, 0x7f, 0xf6, 0x2a, + 0xa9, 0xbd, 0x66, 0x67, 0xe3, 0xff, 0xb8, 0x3f, 0xdc, 0x0e, 0xeb, 0x9b, 0xeb, 0x7a, 0x5c, 0x3b, 0xc5, 0x7f, 0xb6, 0x87, + 0x3c, 0x3e, 0xba, 0xa9, 0x6b, 0xff, 0xd7, 0xc7, 0xff, 0x59, 0x44, 0xf6, 0xe0, 0x48, 0xb5, 0xb6, 0x35, 0x1e, 0x19, 0x4f, + 0x67, 0x6b, 0xf4, 0xf8, 0x18, 0xf7, 0xfa, 0xfe, 0xff, 0xf9, 0xb8, 0xb1, 0x2f, 0x1b, 0x39, 0xd5, 0x47, 0xd8, 0xbe, 0xfd, + 0xff, 0xb1, 0x7e, 0xc1, 0x9a, 0xfe, 0xff, 0xd9, 0xf8, 0xbf, 0x5d, 0xde, 0xfa, 0x9f, 0x45, 0x56, 0xbe, 0xf4, 0x7b, 0xaa, + 0x07, 0x34, 0x77, 0x57, 0x21, 0x57, 0x9e, 0x73, 0xf1, 0xbf, 0xa2, 0x0f, 0x10, 0x1d, 0xfd, 0xbd, 0xa3, 0xff, 0x9f, 0x39, + 0x83, 0xd9, 0xfb, 0xcc, 0x55, 0x47, 0x16, 0xbf, 0xcf, 0x7f, 0xdf, 0x19, 0xab, 0xab, 0xe7, 0x67, 0xcf, 0x60, 0xfd, 0xa7, + 0xe6, 0x7a, 0xd5, 0xd1, 0xab, 0xb8, 0xdf, 0xfa, 0x6c, 0xac, 0x3f, 0xe2, 0xce, 0xe9, 0x15, 0xed, 0xff, 0xd9, 0xfd, 0xff, + 0x99, 0xbb, 0x03, 0xb1, 0x27, 0x1b, 0x7d, 0xc3, 0x6b, 0x45, 0xfc, 0x3f, 0xa5, 0x15, 0xab, 0xea, 0x55, 0xbb, 0xff, 0x97, + 0x79, 0xa6, 0x5d, 0xd1, 0x9f, 0x7b, 0x4a, 0xfc, 0xf7, 0x81, 0xda, 0x74, 0x7c, 0x4b, 0xfe, 0x89, 0xfb, 0xaa, 0xb7, 0x0a, + 0xce, 0x9e, 0x36, 0x5e, 0xf7, 0x14, 0x7b, 0xc7, 0xf8, 0x7f, 0xc6, 0xf3, 0xff, 0x3d, 0xce, 0xe5, 0xda, 0x91, 0xdc, 0x8e, + 0xf1, 0x0f, 0xdf, 0xf1, 0x36, 0xe1, 0x75, 0x6f, 0x2d, 0x8a, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x9e, 0x3e, 0x3b, 0x27, 0x9f, 0x21, 0x32, 0x36, 0xe7, 0xa6, 0x2f, 0xc9, 0x8b, 0x94, 0x9b, 0x1b, 0x7d, + 0x6d, 0x0e, 0xe7, 0x6c, 0xd6, 0xec, 0xb9, 0x79, 0xe1, 0x9f, 0xf3, 0x09, 0xcd, 0x7c, 0xee, 0xf1, 0x5c, 0xe4, 0xc8, 0xbc, + 0xec, 0x6c, 0xae, 0xf3, 0x68, 0x4e, 0xa0, 0x4c, 0xee, 0xa4, 0xd9, 0xdc, 0xe9, 0xf1, 0x23, 0xce, 0xcc, 0x60, 0x9d, 0x9d, + 0xf3, 0x76, 0x55, 0xc6, 0xe6, 0x6c, 0x9c, 0x8e, 0x65, 0xbd, 0xed, 0xe1, 0x4c, 0x75, 0xbb, 0xe5, 0x69, 0xa8, 0xce, 0x9a, + 0xb1, 0x32, 0xfe, 0xdb, 0x50, 0x6e, 0xec, 0xb1, 0xf9, 0xce, 0xbd, 0x70, 0x46, 0xfb, 0x75, 0x39, 0xf7, 0xda, 0x74, 0x99, + 0x44, 0x5b, 0xaa, 0xf7, 0xc7, 0x7f, 0xf6, 0xd8, 0xcf, 0xce, 0x6a, 0xdf, 0x36, 0x8b, 0xfd, 0x9d, 0xf1, 0x9f, 0xed, 0xdb, + 0x1d, 0xb7, 0x7c, 0xf1, 0x8c, 0x07, 0xd7, 0x64, 0xb4, 0xe9, 0x1b, 0xc5, 0x7f, 0xfc, 0xdb, 0x56, 0xce, 0x61, 0x9f, 0x6b, + 0x7b, 0x7b, 0x59, 0xfc, 0xe7, 0xfb, 0x3e, 0xbb, 0xb5, 0xf1, 0xb5, 0x59, 0x73, 0xd6, 0xc5, 0x7f, 0x2b, 0xcf, 0xca, 0xb4, + 0x67, 0xfc, 0x8f, 0xb4, 0x0f, 0x99, 0xb1, 0x41, 0xfc, 0x3f, 0xb3, 0x35, 0x6e, 0xf4, 0xdb, 0x32, 0xed, 0xff, 0xf1, 0x51, + 0x3e, 0xb9, 0xfd, 0xdf, 0x25, 0xfe, 0xdb, 0x56, 0xfd, 0xff, 0xd9, 0xab, 0x31, 0x16, 0xe7, 0xf7, 0xe5, 0x66, 0xdb, 0x7d, + 0x25, 0xa3, 0xc8, 0x19, 0x9f, 0xcd, 0x8e, 0x9c, 0xbd, 0xef, 0x50, 0xb9, 0x62, 0xd3, 0xb3, 0xee, 0x71, 0xb5, 0xaf, 0x1c, + 0xff, 0xe7, 0xef, 0xfb, 0x8a, 0xff, 0xd9, 0xfe, 0x74, 0xbb, 0x21, 0xfe, 0x57, 0x9d, 0xbb, 0x27, 0xc7, 0xff, 0x4c, 0xcf, + 0xef, 0xaa, 0xf8, 0x6f, 0x1f, 0x57, 0xa1, 0x9a, 0x8d, 0xff, 0xfc, 0xda, 0x38, 0xd1, 0x38, 0xef, 0x37, 0x3e, 0xdf, 0x5a, + 0x51, 0x07, 0xe6, 0x9f, 0x37, 0x34, 0xf1, 0xff, 0xa8, 0xf8, 0xbf, 0xbf, 0xfd, 0x1f, 0x5d, 0x5b, 0xf1, 0xbb, 0xe3, 0xbf, + 0x4d, 0xdd, 0xe3, 0x5b, 0xf1, 0x7f, 0xbb, 0xf5, 0xff, 0xab, 0xeb, 0xce, 0x6b, 0xeb, 0xd3, 0x75, 0x7d, 0xdc, 0xdc, 0xfd, + 0xa4, 0xdc, 0x6a, 0x06, 0xb9, 0xac, 0xd9, 0x6b, 0xae, 0xa9, 0x96, 0x5e, 0xc3, 0xab, 0x85, 0x6b, 0x00, 0xf1, 0xff, 0xeb, + 0x96, 0x75, 0xab, 0x23, 0xc3, 0xea, 0x78, 0x7a, 0x56, 0xfc, 0xcf, 0xbd, 0x69, 0x50, 0xbf, 0xda, 0x60, 0xbf, 0xa1, 0xfd, + 0x87, 0xb5, 0x4f, 0xd9, 0xeb, 0xfe, 0x9e, 0x8a, 0x3e, 0x3d, 0xf0, 0xbd, 0xfd, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x8d, 0x73, 0x05, 0x3e, 0xcf, 0xf2, 0x3c, 0xce, 0x82, 0xd1, 0x92, 0x59, 0xb0, 0xdb, 0x40, + 0xe6, 0xe4, 0x9e, 0xfc, 0xbe, 0xc8, 0x2c, 0xe5, 0xdd, 0x72, 0x11, 0x44, 0xf3, 0x23, 0x46, 0x72, 0x63, 0xb7, 0x70, 0x9e, + 0xaf, 0x6c, 0x16, 0x9b, 0x36, 0x99, 0x73, 0x34, 0x3f, 0xff, 0x2e, 0x3b, 0x83, 0x7a, 0x2c, 0xa3, 0xdb, 0xd8, 0xf7, 0xf4, + 0xa1, 0x19, 0x7e, 0xb3, 0xa5, 0x50, 0x3f, 0x27, 0xb1, 0x5d, 0x9e, 0x75, 0xe3, 0xde, 0x6c, 0x4c, 0x4f, 0xca, 0xb7, 0x1d, + 0xc9, 0xc3, 0x7b, 0x9e, 0xcf, 0x63, 0x3e, 0xfe, 0x47, 0x73, 0x0a, 0xf4, 0xc9, 0xac, 0x9f, 0xd1, 0xba, 0xe2, 0xf8, 0xbc, + 0x1c, 0xcd, 0x4d, 0x8e, 0x45, 0x7f, 0x76, 0xfe, 0xcd, 0xf9, 0x3e, 0xac, 0x9b, 0x51, 0xfd, 0x1d, 0xf1, 0x1f, 0xaf, 0x41, + 0x9f, 0x90, 0x6f, 0xbb, 0x15, 0xfc, 0xb6, 0x72, 0xe6, 0x7b, 0x36, 0xa7, 0x48, 0x36, 0xfe, 0x23, 0xb1, 0xf5, 0xb9, 0x96, + 0x6b, 0x03, 0x19, 0xd4, 0xe6, 0xbf, 0x27, 0x13, 0xff, 0x3d, 0x9c, 0x6d, 0x25, 0xdb, 0xfe, 0xc7, 0x5a, 0x97, 0x3d, 0xe3, + 0x3f, 0xd3, 0xe3, 0xec, 0x17, 0xc6, 0xff, 0x5c, 0x8e, 0xaf, 0x76, 0x79, 0xfc, 0xd7, 0xae, 0x53, 0x31, 0x36, 0x92, 0xa9, + 0xe8, 0x69, 0xff, 0x34, 0x3a, 0x3c, 0x1a, 0x19, 0xd5, 0xc5, 0x7f, 0xff, 0xe1, 0x1b, 0x57, 0xb5, 0xff, 0x55, 0x19, 0x55, + 0xfb, 0xc1, 0xfe, 0xbe, 0x21, 0xfe, 0xdb, 0x26, 0xfd, 0xff, 0xfa, 0xb5, 0xd4, 0xf6, 0x8c, 0xff, 0x78, 0x8f, 0x2b, 0xde, + 0x7a, 0xc5, 0xfa, 0x0a, 0xe7, 0x23, 0x80, 0x5e, 0x50, 0x03, 0xf4, 0xdf, 0xd6, 0xa3, 0xaa, 0x1a, 0x85, 0xc7, 0x56, 0x12, + 0xcb, 0xb5, 0xff, 0xfd, 0xb5, 0xed, 0x7f, 0xed, 0xf8, 0x7f, 0x55, 0x2e, 0xc2, 0xda, 0xf5, 0xb6, 0xaa, 0x72, 0x6d, 0xe6, + 0xfa, 0x5a, 0xd9, 0xf6, 0xff, 0xac, 0x77, 0x30, 0x13, 0xff, 0x6d, 0x32, 0x2e, 0x63, 0xf5, 0x4c, 0x7f, 0x54, 0x06, 0x8e, + 0x91, 0x35, 0xf2, 0xea, 0xae, 0xf4, 0xd1, 0x08, 0x8a, 0x6c, 0x9d, 0xcd, 0xaa, 0x36, 0xfe, 0xa4, 0x61, 0xa4, 0xa6, 0xfe, + 0xfc, 0x94, 0x62, 0xe4, 0xac, 0x54, 0x8c, 0x01, 0x77, 0xed, 0xff, 0xdf, 0xd3, 0xfe, 0x8f, 0xb4, 0xfe, 0x35, 0x79, 0xc8, + 0x7a, 0x79, 0xfe, 0x9d, 0x5e, 0xb8, 0x77, 0x75, 0x2d, 0xe4, 0x1d, 0x4f, 0x22, 0x57, 0xec, 0xd1, 0x7e, 0x59, 0xd2, 0x7a, + 0xf2, 0xce, 0xf1, 0x5e, 0xfd, 0xff, 0xfc, 0xd8, 0x2a, 0x32, 0xaa, 0xaf, 0x7b, 0xfe, 0x57, 0xdd, 0x96, 0x3e, 0x2b, 0xfb, + 0x96, 0xf8, 0xdf, 0xbb, 0x0c, 0xf6, 0x8a, 0xff, 0xd1, 0x55, 0xcc, 0x7b, 0xf9, 0x93, 0xf8, 0x67, 0xd4, 0xe0, 0xcf, 0x7d, + 0xff, 0xe7, 0xfa, 0x95, 0x47, 0xef, 0x8e, 0xff, 0xdd, 0x6a, 0x80, 0xaa, 0x15, 0xaf, 0xdb, 0xe2, 0x37, 0x43, 0xee, 0x3f, + 0x6b, 0x2b, 0x56, 0x08, 0x86, 0xb7, 0xbc, 0xbf, 0xd9, 0x5f, 0xdf, 0x6f, 0x7a, 0x62, 0x4f, 0x1b, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xd5, 0xfc, 0xbf, 0x3e, 0x39, 0x37, 0x30, 0x97, 0x59, 0xa8, 0x9d, 0xce, + 0x30, 0xed, 0xe9, 0xbf, 0x89, 0x1c, 0x4b, 0x3e, 0x67, 0x45, 0x26, 0xe7, 0x76, 0x3b, 0xc9, 0x53, 0x53, 0x73, 0x6e, 0xae, + 0x39, 0xce, 0xf3, 0xdc, 0x7a, 0xb1, 0xeb, 0x22, 0x72, 0xa6, 0xce, 0x73, 0xa6, 0x5c, 0x77, 0x1e, 0xb2, 0xe5, 0xdd, 0x4f, + 0x66, 0x73, 0xf7, 0xc3, 0x4c, 0x35, 0x15, 0xb9, 0x54, 0xce, 0x3e, 0x3f, 0x9f, 0x79, 0xaf, 0x25, 0x32, 0xae, 0xf5, 0x3f, + 0x72, 0x39, 0xf5, 0xd4, 0xdf, 0x44, 0x4b, 0x3d, 0xb7, 0x6d, 0x24, 0xa7, 0x63, 0x5d, 0x9e, 0xe8, 0xcc, 0xb9, 0x59, 0x7f, + 0x9c, 0xf1, 0xeb, 0xa2, 0x17, 0x7d, 0xc3, 0x68, 0x1e, 0x92, 0xfd, 0xcb, 0xfb, 0x3c, 0x63, 0xec, 0x5c, 0x36, 0x85, 0xd5, + 0xf1, 0x1f, 0xcb, 0xb9, 0x1a, 0xc9, 0x2b, 0x56, 0x19, 0xff, 0x7b, 0xf5, 0xc7, 0xf2, 0xab, 0x41, 0x54, 0x65, 0xd8, 0x7f, + 0xc6, 0x2c, 0xdd, 0xfc, 0x4a, 0x04, 0xcf, 0x29, 0xef, 0xd5, 0xc7, 0x37, 0x52, 0x53, 0xce, 0xe5, 0x81, 0xb8, 0x2b, 0xfe, + 0xeb, 0xfa, 0xff, 0xd9, 0xfe, 0x74, 0x66, 0x0d, 0xa4, 0xd9, 0xdc, 0x89, 0x33, 0x2b, 0x89, 0x5c, 0x7d, 0x2c, 0x73, 0xa3, + 0x82, 0x91, 0x31, 0xeb, 0x0e, 0xe7, 0x61, 0xe6, 0x1c, 0xb5, 0xc9, 0x95, 0x16, 0xce, 0x23, 0xa0, 0x0f, 0x8c, 0x4f, 0xfa, + 0x64, 0x0d, 0x13, 0x2d, 0xd1, 0xf3, 0x73, 0x55, 0x5b, 0x2f, 0xe6, 0x3e, 0x6f, 0xd7, 0x6d, 0x7d, 0x62, 0x1c, 0x73, 0xef, + 0xca, 0x45, 0x35, 0xf1, 0x3f, 0xde, 0xab, 0xdd, 0xbd, 0x4c, 0xdb, 0xc0, 0x38, 0x79, 0xff, 0xf8, 0x8f, 0xc6, 0x61, 0x65, + 0x1f, 0x77, 0x36, 0x9b, 0xf4, 0x3d, 0xdb, 0xe6, 0x57, 0x26, 0xd9, 0xfd, 0xda, 0xbe, 0x3b, 0xfe, 0xd7, 0xac, 0xfe, 0x52, + 0x7d, 0x8e, 0xce, 0x46, 0x0d, 0x55, 0xed, 0xff, 0xd9, 0x08, 0xa4, 0x6f, 0x31, 0x2e, 0x1c, 0x8b, 0xed, 0xf8, 0xfd, 0xff, + 0xb9, 0x6b, 0x65, 0xc5, 0xb6, 0xf9, 0xeb, 0x76, 0xdf, 0x18, 0xdf, 0x25, 0xfe, 0x9f, 0x50, 0x47, 0xce, 0xb4, 0xda, 0xd1, + 0xf6, 0xbf, 0x5d, 0x18, 0xff, 0x35, 0x77, 0x2a, 0x7a, 0xe1, 0x8a, 0x76, 0x4f, 0xbf, 0x56, 0xe6, 0xef, 0xff, 0xad, 0x78, + 0x02, 0xb2, 0x73, 0xfb, 0x2f, 0xfe, 0x9f, 0x16, 0xff, 0xd9, 0x67, 0xfb, 0x33, 0xfd, 0x91, 0x67, 0x8e, 0xff, 0x6b, 0xef, + 0x43, 0x3d, 0xb5, 0xff, 0xff, 0xf4, 0x32, 0x9d, 0xeb, 0xb5, 0xcb, 0x90, 0xfc, 0x4d, 0x7d, 0x83, 0xd9, 0x3b, 0x9d, 0x6f, + 0x8b, 0xff, 0x77, 0x97, 0x69, 0xf5, 0x0a, 0xe9, 0x7c, 0x4b, 0xfc, 0xb7, 0x0b, 0xdb, 0xc4, 0xf8, 0xfb, 0x86, 0xdf, 0x17, + 0xff, 0xab, 0xde, 0x91, 0x10, 0xff, 0xcf, 0x8c, 0xff, 0xd5, 0x65, 0x7a, 0xed, 0x7b, 0x0e, 0x35, 0xef, 0xff, 0xad, 0x5a, + 0xf5, 0x65, 0x87, 0xe7, 0xff, 0xcf, 0x7d, 0xf7, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, + 0xfb, 0x3d, 0xf7, 0xd8, 0x96, 0xe3, 0xb9, 0x48, 0xb1, 0xec, 0x7b, 0xbb, 0x67, 0x63, 0x6e, 0xb2, 0x6f, 0x87, 0x4a, 0x7f, + 0xf4, 0x7c, 0xef, 0x54, 0xbe, 0x9f, 0x4b, 0xac, 0xdf, 0x5e, 0x66, 0xb1, 0x98, 0x8a, 0x1f, 0x67, 0xc5, 0xe7, 0xe4, 0xa3, + 0xff, 0xca, 0xac, 0xd4, 0xb2, 0x6f, 0xaf, 0xce, 0xbe, 0x1d, 0x39, 0xdf, 0xfb, 0x94, 0x6f, 0x7c, 0xbe, 0xd5, 0xb5, 0x65, + 0xb6, 0xd7, 0x6c, 0xbe, 0xaa, 0x19, 0x86, 0x7b, 0xcd, 0x54, 0xec, 0x13, 0x19, 0xd5, 0xbb, 0xec, 0xdb, 0x8f, 0xe8, 0xe7, + 0x56, 0xac, 0x8c, 0xf1, 0x9e, 0x98, 0xba, 0x7b, 0x86, 0xeb, 0x73, 0xb2, 0x31, 0x8f, 0xf5, 0x61, 0x72, 0xab, 0x25, 0xbd, + 0x27, 0xfb, 0xf6, 0x4f, 0xad, 0xdd, 0xb5, 0x33, 0x6a, 0xab, 0xca, 0xf7, 0x38, 0xc7, 0xee, 0xce, 0xd9, 0x1f, 0x9e, 0x17, + 0xff, 0xbb, 0x64, 0xa5, 0x6a, 0x27, 0x25, 0x9e, 0xbf, 0xae, 0xbe, 0x29, 0xfb, 0xee, 0x3b, 0x32, 0xa8, 0xf4, 0xad, 0xae, + 0xcd, 0x77, 0xc7, 0x7f, 0x26, 0x1e, 0x57, 0x6c, 0xab, 0xc9, 0x0c, 0xff, 0xed, 0xd9, 0x77, 0xdf, 0x13, 0xff, 0x4d, 0xfc, + 0xdf, 0xde, 0xff, 0xbf, 0x6e, 0xdb, 0x7c, 0xdf, 0x60, 0xc5, 0xfd, 0xff, 0xe7, 0x65, 0xdf, 0x7d, 0x53, 0xfb, 0xbf, 0x4b, + 0xc6, 0xc4, 0x68, 0x4c, 0xf5, 0x17, 0xc4, 0xff, 0x8e, 0xed, 0xa9, 0xec, 0x9b, 0xdf, 0x11, 0xff, 0x7d, 0xc3, 0xe3, 0xea, + 0x45, 0x75, 0xd7, 0x35, 0xd7, 0x57, 0xf4, 0x2e, 0xcb, 0x2e, 0x71, 0x51, 0x7d, 0x6f, 0x70, 0xfc, 0x09, 0xfb, 0x1b, 0xb3, + 0x6f, 0xbe, 0x35, 0xdb, 0xe6, 0xca, 0xfd, 0x6b, 0xe1, 0xb5, 0xf8, 0xf3, 0x4f, 0x68, 0x56, 0xd5, 0xa5, 0x15, 0x2b, 0x6f, + 0xef, 0x94, 0x8d, 0x51, 0xf6, 0xcd, 0x15, 0xcf, 0xa2, 0x9e, 0x9c, 0x6d, 0xf3, 0x3c, 0x56, 0xe3, 0xdb, 0xd6, 0xc7, 0xf4, + 0x55, 0x75, 0xe9, 0xfb, 0x72, 0x8f, 0xca, 0xa8, 0xca, 0x33, 0xde, 0xb7, 0xc9, 0xdd, 0xe7, 0xa8, 0xbd, 0xe6, 0x45, 0x0a, + 0xdc, 0xf5, 0x6e, 0x90, 0xb6, 0x8a, 0xdd, 0xfc, 0xe5, 0x1c, 0xe8, 0x7f, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfa, 0xef, 0xc7, + 0x79, 0x00, 0xf1, 0x0f, 0x7c, 0x5d, 0xfc, 0xff, 0x0d }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle candyFontRecs[189] = { + { 4, 4, 3 , 15 }, + { 15, 4, 2 , 9 }, + { 25, 4, 3 , 2 }, + { 36, 4, 8 , 9 }, + { 52, 4, 6 , 11 }, + { 66, 4, 7 , 9 }, + { 81, 4, 7 , 9 }, + { 96, 4, 1 , 2 }, + { 105, 4, 3 , 11 }, + { 116, 4, 3 , 11 }, + { 127, 4, 7 , 7 }, + { 142, 4, 6 , 5 }, + { 156, 4, 2 , 3 }, + { 166, 4, 5 , 1 }, + { 179, 4, 2 , 2 }, + { 189, 4, 5 , 10 }, + { 202, 4, 6 , 9 }, + { 216, 4, 4 , 9 }, + { 228, 4, 6 , 9 }, + { 242, 4, 6 , 9 }, + { 256, 4, 7 , 9 }, + { 271, 4, 6 , 9 }, + { 285, 4, 6 , 9 }, + { 299, 4, 6 , 9 }, + { 313, 4, 6 , 9 }, + { 327, 4, 6 , 9 }, + { 341, 4, 2 , 6 }, + { 351, 4, 2 , 7 }, + { 361, 4, 4 , 6 }, + { 373, 4, 5 , 3 }, + { 386, 4, 4 , 6 }, + { 398, 4, 6 , 9 }, + { 412, 4, 8 , 7 }, + { 428, 4, 6 , 9 }, + { 442, 4, 6 , 9 }, + { 456, 4, 6 , 9 }, + { 470, 4, 6 , 9 }, + { 484, 4, 6 , 9 }, + { 4, 27, 6 , 9 }, + { 18, 27, 6 , 9 }, + { 32, 27, 6 , 9 }, + { 46, 27, 2 , 9 }, + { 56, 27, 6 , 9 }, + { 70, 27, 6 , 9 }, + { 84, 27, 6 , 9 }, + { 98, 27, 8 , 9 }, + { 114, 27, 6 , 9 }, + { 128, 27, 6 , 9 }, + { 142, 27, 6 , 9 }, + { 156, 27, 6 , 9 }, + { 170, 27, 6 , 9 }, + { 184, 27, 6 , 9 }, + { 198, 27, 6 , 9 }, + { 212, 27, 6 , 9 }, + { 226, 27, 6 , 9 }, + { 240, 27, 8 , 9 }, + { 256, 27, 6 , 9 }, + { 270, 27, 6 , 9 }, + { 284, 27, 6 , 9 }, + { 298, 27, 3 , 11 }, + { 309, 27, 5 , 10 }, + { 322, 27, 3 , 11 }, + { 333, 27, 6 , 4 }, + { 347, 27, 6 , 1 }, + { 361, 27, 3 , 2 }, + { 372, 27, 6 , 7 }, + { 386, 27, 6 , 10 }, + { 400, 27, 6 , 7 }, + { 414, 27, 6 , 10 }, + { 428, 27, 6 , 7 }, + { 442, 27, 5 , 10 }, + { 455, 27, 7 , 10 }, + { 470, 27, 6 , 10 }, + { 484, 27, 2 , 10 }, + { 494, 27, 2 , 12 }, + { 4, 50, 6 , 10 }, + { 18, 50, 3 , 10 }, + { 29, 50, 8 , 7 }, + { 45, 50, 6 , 7 }, + { 59, 50, 6 , 7 }, + { 73, 50, 6 , 10 }, + { 87, 50, 6 , 10 }, + { 101, 50, 6 , 7 }, + { 115, 50, 6 , 7 }, + { 129, 50, 3 , 10 }, + { 140, 50, 6 , 7 }, + { 154, 50, 6 , 7 }, + { 168, 50, 8 , 7 }, + { 184, 50, 6 , 7 }, + { 198, 50, 6 , 10 }, + { 212, 50, 6 , 7 }, + { 226, 50, 4 , 11 }, + { 238, 50, 1 , 11 }, + { 247, 50, 4 , 11 }, + { 259, 50, 6 , 2 }, + { 273, 50, 2 , 10 }, + { 283, 50, 6 , 11 }, + { 297, 50, 8 , 9 }, + { 313, 50, 7 , 9 }, + { 328, 50, 6 , 9 }, + { 342, 50, 0 , 0 }, + { 350, 50, 6 , 11 }, + { 364, 50, 0 , 0 }, + { 372, 50, 8 , 8 }, + { 388, 50, 5 , 7 }, + { 401, 50, 7 , 6 }, + { 416, 50, 0 , 0 }, + { 424, 50, 8 , 8 }, + { 440, 50, 6 , 1 }, + { 454, 50, 4 , 5 }, + { 466, 50, 6 , 7 }, + { 480, 50, 3 , 5 }, + { 491, 50, 3 , 5 }, + { 502, 50, 0 , 0 }, + { 4, 73, 6 , 9 }, + { 18, 73, 6 , 9 }, + { 32, 73, 4 , 4 }, + { 44, 73, 0 , 0 }, + { 52, 73, 2 , 5 }, + { 62, 73, 4 , 7 }, + { 74, 73, 7 , 6 }, + { 89, 73, 10 , 9 }, + { 107, 73, 10 , 7 }, + { 125, 73, 0 , 0 }, + { 133, 73, 6 , 9 }, + { 147, 73, 6 , 12 }, + { 161, 73, 6 , 12 }, + { 175, 73, 6 , 12 }, + { 189, 73, 6 , 12 }, + { 203, 73, 6 , 11 }, + { 217, 73, 6 , 12 }, + { 231, 73, 10 , 9 }, + { 249, 73, 6 , 12 }, + { 263, 73, 6 , 12 }, + { 277, 73, 6 , 12 }, + { 291, 73, 6 , 12 }, + { 305, 73, 6 , 11 }, + { 319, 73, 3 , 12 }, + { 330, 73, 3 , 12 }, + { 341, 73, 4 , 12 }, + { 353, 73, 4 , 11 }, + { 365, 73, 8 , 9 }, + { 381, 73, 6 , 12 }, + { 395, 73, 6 , 12 }, + { 409, 73, 6 , 12 }, + { 423, 73, 6 , 12 }, + { 437, 73, 6 , 12 }, + { 451, 73, 6 , 11 }, + { 465, 73, 5 , 5 }, + { 478, 73, 9 , 10 }, + { 495, 73, 6 , 12 }, + { 4, 96, 6 , 12 }, + { 18, 96, 6 , 12 }, + { 32, 96, 6 , 11 }, + { 46, 96, 6 , 12 }, + { 60, 96, 0 , 0 }, + { 68, 96, 6 , 10 }, + { 82, 96, 6 , 10 }, + { 96, 96, 6 , 10 }, + { 110, 96, 6 , 10 }, + { 124, 96, 6 , 10 }, + { 138, 96, 6 , 9 }, + { 152, 96, 6 , 11 }, + { 166, 96, 10 , 7 }, + { 184, 96, 6 , 10 }, + { 198, 96, 6 , 10 }, + { 212, 96, 6 , 10 }, + { 226, 96, 6 , 10 }, + { 240, 96, 6 , 9 }, + { 254, 96, 3 , 10 }, + { 265, 96, 3 , 10 }, + { 276, 96, 4 , 10 }, + { 288, 96, 4 , 9 }, + { 300, 96, 0 , 0 }, + { 308, 96, 6 , 13 }, + { 322, 96, 6 , 10 }, + { 336, 96, 6 , 10 }, + { 350, 96, 6 , 10 }, + { 364, 96, 6 , 10 }, + { 378, 96, 6 , 9 }, + { 392, 96, 0 , 0 }, + { 400, 96, 8 , 8 }, + { 416, 96, 6 , 10 }, + { 430, 96, 6 , 10 }, + { 444, 96, 6 , 10 }, + { 458, 96, 6 , 9 }, + { 472, 96, 6 , 13 }, + { 486, 96, 0 , 0 }, + { 494, 96, 6 , 12 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo candyFontGlyphs[189] = { + { 32, 0, 0, 3, { 0 }}, + { 33, 0, 3, 3, { 0 }}, + { 34, 0, 2, 4, { 0 }}, + { 35, 0, 3, 9, { 0 }}, + { 36, 0, 2, 7, { 0 }}, + { 37, 0, 3, 8, { 0 }}, + { 38, 0, 3, 8, { 0 }}, + { 39, 0, 2, 2, { 0 }}, + { 40, 1, 2, 5, { 0 }}, + { 41, 1, 2, 5, { 0 }}, + { 42, 0, 4, 8, { 0 }}, + { 43, 0, 6, 7, { 0 }}, + { 44, 0, 10, 3, { 0 }}, + { 45, 0, 7, 6, { 0 }}, + { 46, 0, 10, 3, { 0 }}, + { 47, 1, 3, 7, { 0 }}, + { 48, 0, 3, 7, { 0 }}, + { 49, 0, 3, 5, { 0 }}, + { 50, 0, 3, 7, { 0 }}, + { 51, 0, 3, 7, { 0 }}, + { 52, 0, 3, 8, { 0 }}, + { 53, 0, 3, 7, { 0 }}, + { 54, 0, 3, 7, { 0 }}, + { 55, 0, 3, 7, { 0 }}, + { 56, 0, 3, 7, { 0 }}, + { 57, 0, 3, 7, { 0 }}, + { 58, 0, 6, 3, { 0 }}, + { 59, 0, 6, 3, { 0 }}, + { 60, 1, 5, 6, { 0 }}, + { 61, 1, 7, 7, { 0 }}, + { 62, 1, 5, 6, { 0 }}, + { 63, 0, 3, 7, { 0 }}, + { 64, 0, 4, 9, { 0 }}, + { 65, 0, 3, 7, { 0 }}, + { 66, 0, 3, 7, { 0 }}, + { 67, 0, 3, 7, { 0 }}, + { 68, 0, 3, 7, { 0 }}, + { 69, 0, 3, 7, { 0 }}, + { 70, 0, 3, 7, { 0 }}, + { 71, 0, 3, 7, { 0 }}, + { 72, 0, 3, 7, { 0 }}, + { 73, 0, 3, 3, { 0 }}, + { 74, 0, 3, 7, { 0 }}, + { 75, 0, 3, 7, { 0 }}, + { 76, 0, 3, 7, { 0 }}, + { 77, 0, 3, 9, { 0 }}, + { 78, 0, 3, 7, { 0 }}, + { 79, 0, 3, 7, { 0 }}, + { 80, 0, 3, 7, { 0 }}, + { 81, 0, 3, 7, { 0 }}, + { 82, 0, 3, 7, { 0 }}, + { 83, 0, 3, 7, { 0 }}, + { 84, 0, 3, 7, { 0 }}, + { 85, 0, 3, 7, { 0 }}, + { 86, 0, 3, 7, { 0 }}, + { 87, 0, 3, 9, { 0 }}, + { 88, 0, 3, 7, { 0 }}, + { 89, 0, 3, 7, { 0 }}, + { 90, 0, 3, 7, { 0 }}, + { 91, 1, 2, 5, { 0 }}, + { 92, 1, 3, 7, { 0 }}, + { 93, 1, 2, 5, { 0 }}, + { 94, 0, 3, 7, { 0 }}, + { 95, 0, 11, 7, { 0 }}, + { 96, 0, 0, 4, { 0 }}, + { 97, 0, 5, 7, { 0 }}, + { 98, 0, 2, 7, { 0 }}, + { 99, 0, 5, 7, { 0 }}, + { 100, 0, 2, 7, { 0 }}, + { 101, 0, 5, 7, { 0 }}, + { 102, 0, 2, 6, { 0 }}, + { 103, 0, 5, 7, { 0 }}, + { 104, 0, 2, 7, { 0 }}, + { 105, 0, 2, 3, { 0 }}, + { 106, 0, 2, 3, { 0 }}, + { 107, 0, 2, 7, { 0 }}, + { 108, 0, 2, 4, { 0 }}, + { 109, 0, 5, 9, { 0 }}, + { 110, 0, 5, 7, { 0 }}, + { 111, 0, 5, 7, { 0 }}, + { 112, 0, 5, 7, { 0 }}, + { 113, 0, 5, 7, { 0 }}, + { 114, 0, 5, 7, { 0 }}, + { 115, 0, 5, 7, { 0 }}, + { 116, 0, 2, 4, { 0 }}, + { 117, 0, 5, 7, { 0 }}, + { 118, 0, 5, 7, { 0 }}, + { 119, 0, 5, 9, { 0 }}, + { 120, 0, 5, 7, { 0 }}, + { 121, 0, 5, 7, { 0 }}, + { 122, 0, 5, 7, { 0 }}, + { 123, 1, 2, 6, { 0 }}, + { 124, 1, 2, 3, { 0 }}, + { 125, 1, 2, 6, { 0 }}, + { 126, 0, 0, 7, { 0 }}, + { 161, 0, 3, 3, { 0 }}, + { 162, 0, 2, 7, { 0 }}, + { 163, 0, 3, 9, { 0 }}, + { 8364, 0, 3, 8, { 0 }}, + { 165, 0, 3, 7, { 0 }}, + { 352, 0, 0, 0, { 0 }}, + { 167, 0, 2, 7, { 0 }}, + { 353, 0, 0, 0, { 0 }}, + { 169, 0, 0, 9, { 0 }}, + { 170, 0, 0, 6, { 0 }}, + { 171, 1, 5, 9, { 0 }}, + { 172, 0, 0, 0, { 0 }}, + { 174, 0, 0, 9, { 0 }}, + { 175, 0, 0, 7, { 0 }}, + { 176, 0, 0, 5, { 0 }}, + { 177, 0, 4, 7, { 0 }}, + { 178, 0, 0, 4, { 0 }}, + { 179, 0, 0, 4, { 0 }}, + { 381, 0, 0, 0, { 0 }}, + { 181, 0, 5, 7, { 0 }}, + { 182, 0, 3, 7, { 0 }}, + { 183, 0, 6, 5, { 0 }}, + { 382, 0, 0, 0, { 0 }}, + { 185, 0, 0, 3, { 0 }}, + { 186, 0, 0, 5, { 0 }}, + { 187, 1, 5, 9, { 0 }}, + { 338, 0, 3, 11, { 0 }}, + { 339, 0, 5, 11, { 0 }}, + { 376, 0, 0, 0, { 0 }}, + { 191, 0, 4, 7, { 0 }}, + { 192, 0, 0, 7, { 0 }}, + { 193, 0, 0, 7, { 0 }}, + { 194, 0, 0, 7, { 0 }}, + { 195, 0, 0, 7, { 0 }}, + { 196, 0, 1, 7, { 0 }}, + { 197, 0, 0, 7, { 0 }}, + { 198, 0, 3, 11, { 0 }}, + { 199, 0, 3, 7, { 0 }}, + { 200, 0, 0, 7, { 0 }}, + { 201, 0, 0, 7, { 0 }}, + { 202, 0, 0, 7, { 0 }}, + { 203, 0, 1, 7, { 0 }}, + { 204, -1, 0, 3, { 0 }}, + { 205, 0, 0, 3, { 0 }}, + { 206, -1, 0, 3, { 0 }}, + { 207, -1, 1, 3, { 0 }}, + { 208, 0, 3, 9, { 0 }}, + { 209, 0, 0, 7, { 0 }}, + { 210, 0, 0, 7, { 0 }}, + { 211, 0, 0, 7, { 0 }}, + { 212, 0, 0, 7, { 0 }}, + { 213, 0, 0, 7, { 0 }}, + { 214, 0, 1, 7, { 0 }}, + { 215, 0, 7, 6, { 0 }}, + { 216, 0, 3, 10, { 0 }}, + { 217, 0, 0, 7, { 0 }}, + { 218, 0, 0, 7, { 0 }}, + { 219, 0, 0, 7, { 0 }}, + { 220, 0, 1, 7, { 0 }}, + { 221, 0, 0, 7, { 0 }}, + { 222, 0, 0, 0, { 0 }}, + { 223, 0, 3, 7, { 0 }}, + { 224, 0, 2, 7, { 0 }}, + { 225, 0, 2, 7, { 0 }}, + { 226, 0, 2, 7, { 0 }}, + { 227, 0, 2, 7, { 0 }}, + { 228, 0, 3, 7, { 0 }}, + { 229, 0, 1, 7, { 0 }}, + { 230, 0, 5, 11, { 0 }}, + { 231, 0, 5, 7, { 0 }}, + { 232, 0, 2, 7, { 0 }}, + { 233, 0, 2, 7, { 0 }}, + { 234, 0, 2, 7, { 0 }}, + { 235, 0, 3, 7, { 0 }}, + { 236, 0, 2, 4, { 0 }}, + { 237, 0, 2, 4, { 0 }}, + { 238, 0, 2, 4, { 0 }}, + { 239, 0, 3, 4, { 0 }}, + { 240, 0, 0, 0, { 0 }}, + { 241, 0, 2, 7, { 0 }}, + { 242, 0, 2, 7, { 0 }}, + { 243, 0, 2, 7, { 0 }}, + { 244, 0, 2, 7, { 0 }}, + { 245, 0, 2, 7, { 0 }}, + { 246, 0, 3, 7, { 0 }}, + { 247, 0, 0, 0, { 0 }}, + { 248, 0, 5, 9, { 0 }}, + { 249, 0, 2, 7, { 0 }}, + { 250, 0, 2, 7, { 0 }}, + { 251, 0, 2, 7, { 0 }}, + { 252, 0, 3, 7, { 0 }}, + { 253, 0, 2, 7, { 0 }}, + { 254, 0, 0, 0, { 0 }}, + { 255, 0, 3, 7, { 0 }}, +}; + +// Style loading function: Candy +static void GuiLoadStyleCandy(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < CANDY_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(candyStyleProps[i].controlId, candyStyleProps[i].propertyId, candyStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int candyFontDataSize = 0; + unsigned char *data = DecompressData(candyFontData, CANDY_STYLE_FONT_ATLAS_COMP_SIZE, &candyFontDataSize); + Image imFont = { data, 512, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 15; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, candyFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, candyFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 510, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_cherry.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_cherry.h new file mode 100644 index 0000000..dd8bdd7 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_cherry.h @@ -0,0 +1,617 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleCherry(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define CHERRY_STYLE_PROPS_COUNT 17 + +// Custom style name: Cherry +static const GuiStyleProp cherryStyleProps[CHERRY_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0xda5757ff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0x753233ff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0xe17373ff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0xfaaa97ff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0xe06262ff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0xfdb4aaff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0xe03c46ff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0x5b1e20ff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0xc2474fff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0xa19292ff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0x706060ff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0x9e8585ff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x0000000f }, // DEFAULT_TEXT_SIZE + { 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING + { 0, 18, (int)0xfb8170ff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0x3a1720ff }, // DEFAULT_BACKGROUND_COLOR + { 0, 20, (int)0x00000007 }, // DEFAULT_TEXT_LINE_SPACING +}; + +// WARNING: This style uses a custom font: "Westington.ttf" (size: 15, spacing: 0) + +#define CHERRY_STYLE_FONT_ATLAS_COMP_SIZE 2821 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char cherryFontData[CHERRY_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0xdd, 0x59, 0x92, 0xdc, 0xba, 0x11, 0x05, 0x50, 0xee, 0x7f, 0xd3, 0xd7, 0xe1, 0x70, 0x84, 0xed, 0x27, 0xa9, 0x09, 0x20, + 0x91, 0x20, 0xab, 0x5b, 0x47, 0xe7, 0xaf, 0xa1, 0x1a, 0x38, 0x24, 0x26, 0x16, 0x12, 0xb9, 0x00, 0x00, 0x00, 0x00, 0xf2, + 0xef, 0x7f, 0x5f, 0xfd, 0xf5, 0xcf, 0x65, 0xff, 0xff, 0xaa, 0xdc, 0xbe, 0x73, 0xfd, 0xb3, 0xb3, 0xf8, 0xae, 0x59, 0xf8, + 0x7f, 0xf9, 0xf2, 0xbb, 0x64, 0xfa, 0x33, 0xd7, 0x8f, 0x7b, 0xfd, 0x58, 0xef, 0xce, 0xfd, 0xfa, 0x31, 0x5c, 0x37, 0x9f, + 0xbf, 0xf6, 0xdd, 0x2a, 0xaf, 0xb9, 0x2f, 0x59, 0xbf, 0x7b, 0x3a, 0xae, 0xc8, 0xdc, 0x35, 0xb8, 0x3f, 0xa7, 0xd7, 0xf0, + 0x95, 0xeb, 0xef, 0x9c, 0xe1, 0x59, 0x1c, 0x7f, 0xab, 0xb5, 0x1a, 0xe0, 0xeb, 0xbf, 0x8e, 0xee, 0xa6, 0x14, 0xee, 0xab, + 0xff, 0xbd, 0x22, 0x8b, 0x65, 0xa3, 0xd7, 0xec, 0xdd, 0x57, 0x59, 0xa8, 0xa5, 0x2a, 0x57, 0x21, 0x8b, 0xe7, 0x61, 0xf5, + 0xdc, 0xa5, 0x54, 0xff, 0x8c, 0xbe, 0x6d, 0x5a, 0x8e, 0xe7, 0xae, 0x24, 0xd3, 0x7f, 0x1d, 0xbf, 0xa2, 0xf2, 0x6e, 0x33, + 0xf7, 0xd5, 0xdd, 0xab, 0xfb, 0xdf, 0x39, 0x53, 0xf7, 0xef, 0xd9, 0xf8, 0x1f, 0xd5, 0x97, 0xf7, 0xe7, 0xfb, 0xee, 0x28, + 0xf2, 0xdf, 0xde, 0x45, 0xed, 0xbe, 0xdb, 0x89, 0xf4, 0xdc, 0xdc, 0x9d, 0x29, 0x9e, 0x8d, 0xfa, 0xff, 0xbb, 0x8f, 0x97, + 0x14, 0x7b, 0x5e, 0x59, 0xb8, 0x4f, 0xb3, 0x54, 0xeb, 0xcd, 0xf4, 0x26, 0x2a, 0x35, 0xdd, 0x6e, 0x2f, 0x6a, 0xbf, 0xa7, + 0xfb, 0xf5, 0x35, 0xb8, 0x3b, 0xdf, 0x99, 0x3c, 0x82, 0x94, 0xe2, 0xff, 0x5a, 0xac, 0xb1, 0x9f, 0x8a, 0xff, 0x71, 0xac, + 0x8c, 0xe2, 0x29, 0xc3, 0x2b, 0x9c, 0x96, 0xef, 0x9f, 0x52, 0x8d, 0x76, 0x6a, 0x9c, 0x55, 0xbf, 0x7f, 0x66, 0xcf, 0x5e, + 0x06, 0xa3, 0xb9, 0xee, 0x5e, 0xe8, 0x7c, 0xaf, 0x2f, 0xc5, 0xda, 0x75, 0xa5, 0x8f, 0x9f, 0xad, 0xde, 0xfa, 0x28, 0x7e, + 0xb3, 0x5c, 0x17, 0x67, 0xa2, 0x3f, 0x74, 0xa2, 0x4f, 0xf2, 0x09, 0xf1, 0x9f, 0xc2, 0x08, 0xae, 0x5a, 0xc7, 0xa7, 0xa9, + 0x6d, 0xce, 0xa1, 0xfa, 0xb5, 0x3b, 0xfe, 0xd7, 0xcb, 0xc6, 0x91, 0x91, 0xd6, 0x71, 0x58, 0x4a, 0x23, 0xe9, 0x7a, 0x1b, + 0xbe, 0xfb, 0xda, 0xbb, 0xb9, 0xa2, 0x4c, 0xd4, 0x9e, 0x59, 0x9e, 0x01, 0xd8, 0x89, 0xff, 0xfe, 0xf1, 0x7f, 0x4a, 0xaf, + 0x98, 0xab, 0x8d, 0x6b, 0x35, 0x71, 0x16, 0xbe, 0x59, 0x9a, 0x6a, 0xb6, 0x1c, 0x9d, 0x65, 0xbd, 0x1a, 0xe3, 0xbf, 0x36, + 0x72, 0x4a, 0xdb, 0xdc, 0x44, 0x7d, 0xec, 0x96, 0xa6, 0xfb, 0x35, 0xad, 0xaf, 0xb8, 0x8f, 0xff, 0xbb, 0xf6, 0x7f, 0xbf, + 0xff, 0xff, 0x7e, 0xfb, 0xdf, 0x3d, 0xfa, 0x9f, 0x9f, 0xc5, 0x18, 0x9f, 0xd3, 0xe7, 0xe2, 0xff, 0x64, 0xdf, 0xbf, 0x36, + 0x96, 0x4f, 0x71, 0x9e, 0x32, 0x4d, 0x23, 0xf6, 0x94, 0x47, 0xe7, 0x69, 0x99, 0xd5, 0xe9, 0xab, 0xab, 0x53, 0xfe, 0x8c, + 0xfa, 0x3c, 0xf6, 0x4f, 0x1d, 0xff, 0x67, 0xe9, 0xd9, 0xc0, 0xb8, 0x6f, 0x75, 0x77, 0x66, 0xd2, 0x3e, 0xff, 0xf7, 0xde, + 0x53, 0xd6, 0xb5, 0x5a, 0x27, 0x85, 0x31, 0x76, 0x65, 0xd6, 0xbc, 0xfa, 0x34, 0xb1, 0xf3, 0xd9, 0xe4, 0xfb, 0xd7, 0xa9, + 0x3a, 0xd7, 0x98, 0x72, 0xed, 0x9e, 0x89, 0x67, 0x3f, 0xeb, 0xb3, 0x0a, 0x4f, 0xf5, 0xa6, 0x66, 0xe6, 0x62, 0xae, 0xe2, + 0xbc, 0x69, 0x0a, 0x3d, 0x9c, 0x4f, 0x8f, 0xff, 0x4f, 0xaa, 0x89, 0x3e, 0xf1, 0xf7, 0x27, 0x69, 0x1e, 0xe9, 0x77, 0x45, + 0x40, 0x26, 0x46, 0xe2, 0x57, 0xa1, 0x9e, 0xfe, 0x0e, 0xcf, 0xff, 0xc7, 0xf1, 0x5f, 0x1d, 0xff, 0x67, 0xea, 0xf7, 0x18, + 0x6b, 0xcf, 0x01, 0xf2, 0xe1, 0xad, 0xbf, 0x1a, 0xa0, 0x67, 0x4e, 0xfe, 0xe9, 0xfa, 0x39, 0x87, 0xc7, 0x85, 0x7f, 0xe3, + 0x75, 0x05, 0xf7, 0x0f, 0x20, 0xfa, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x5e, 0x37, + 0xb8, 0xbe, 0x16, 0xb1, 0x3b, 0x4b, 0x6b, 0xe5, 0xfd, 0x7e, 0x2f, 0x1d, 0xbd, 0x47, 0xf5, 0x68, 0x2b, 0xb9, 0xa0, 0x33, + 0xf5, 0xdd, 0xb3, 0xbc, 0xa2, 0x73, 0x74, 0x34, 0xf9, 0xc7, 0x1a, 0xd5, 0x99, 0x73, 0xba, 0x73, 0x5d, 0xc6, 0x99, 0x77, + 0x57, 0xf2, 0xfb, 0xae, 0xad, 0x06, 0x5e, 0x5d, 0x21, 0xd0, 0x99, 0xed, 0x60, 0xf6, 0xfa, 0x56, 0xee, 0xa8, 0x95, 0x4f, + 0xdb, 0x59, 0x8b, 0x78, 0x9f, 0x81, 0xf9, 0x1a, 0x66, 0x88, 0xee, 0xca, 0x51, 0x97, 0x8d, 0x35, 0xfb, 0xbf, 0xdf, 0xc9, + 0x95, 0x55, 0xdb, 0xe3, 0x7b, 0xaa, 0x92, 0x77, 0xa9, 0x9a, 0xb3, 0x39, 0x2d, 0x9f, 0x3b, 0xf3, 0xcd, 0xe6, 0x32, 0xfa, + 0xd4, 0x33, 0xb6, 0x5f, 0x8b, 0xfb, 0x30, 0xac, 0xad, 0xe5, 0xce, 0xf2, 0x5a, 0xf8, 0xb4, 0xe5, 0x8b, 0x48, 0xf1, 0x3d, + 0x6b, 0xf7, 0xda, 0x99, 0xec, 0x3f, 0xd5, 0x2c, 0x59, 0x67, 0xe2, 0x3f, 0xe5, 0xef, 0x92, 0xdb, 0x7b, 0xe2, 0x1a, 0x66, + 0x28, 0xaa, 0x66, 0x5e, 0xca, 0x46, 0xbd, 0x96, 0x8d, 0xb5, 0xee, 0x5d, 0xf1, 0xbf, 0x13, 0xe1, 0xb3, 0xf9, 0x7b, 0xd3, + 0xb2, 0xba, 0x7f, 0x25, 0x1b, 0x7a, 0xb5, 0x1f, 0xdc, 0x19, 0x21, 0x77, 0xc7, 0x9e, 0x8d, 0x33, 0x73, 0x26, 0xfe, 0xf3, + 0x01, 0xf1, 0xbf, 0x53, 0x17, 0x7d, 0xcf, 0xf8, 0x4f, 0x43, 0xed, 0x9c, 0xd2, 0x15, 0xfa, 0x3d, 0x76, 0x2b, 0x7b, 0x59, + 0x5c, 0xe5, 0x8c, 0xce, 0x69, 0x6e, 0x8f, 0x3a, 0xd6, 0x14, 0x3f, 0x19, 0xff, 0xeb, 0xf5, 0xcd, 0xa9, 0xf8, 0xbf, 0xdb, + 0xad, 0x23, 0xa5, 0xdd, 0x9e, 0xfa, 0xf6, 0xc1, 0x5a, 0xa9, 0x8b, 0x32, 0x9d, 0x5b, 0xb4, 0x12, 0xff, 0x19, 0xee, 0xa0, + 0x51, 0xd9, 0xb7, 0xa0, 0x9a, 0x0d, 0xb9, 0x23, 0xfe, 0xe7, 0xf3, 0x9b, 0x67, 0xb2, 0xee, 0xed, 0x88, 0xf3, 0x77, 0xe2, + 0x7f, 0x74, 0x05, 0x53, 0xcc, 0xd6, 0xb7, 0x9e, 0xe5, 0x7b, 0xfc, 0x69, 0xbd, 0x59, 0xd4, 0x67, 0xf6, 0x9a, 0xc9, 0x37, + 0x68, 0xff, 0xcf, 0xc7, 0x7f, 0xe5, 0x5d, 0x67, 0xe7, 0x66, 0xf2, 0x5a, 0xfc, 0x67, 0xbb, 0x85, 0x4f, 0xf3, 0xe8, 0xf2, + 0x8d, 0xbc, 0x5f, 0x33, 0xf3, 0x05, 0xb5, 0x18, 0x4f, 0xeb, 0x78, 0xa3, 0xf6, 0x69, 0x27, 0x7a, 0x98, 0xeb, 0xf1, 0x9f, + 0xa3, 0xe3, 0xff, 0x95, 0x4f, 0xa8, 0xf7, 0xff, 0xef, 0x3e, 0xbb, 0x77, 0xfe, 0xaf, 0x6b, 0xee, 0x69, 0xa6, 0xed, 0x4e, + 0x43, 0x2f, 0xe2, 0x7c, 0xcd, 0x90, 0xd7, 0x9e, 0x91, 0x55, 0x3e, 0xff, 0x44, 0x44, 0x56, 0x63, 0xab, 0x1a, 0xff, 0xbd, + 0xf3, 0xff, 0x1d, 0xf3, 0xcc, 0x73, 0x47, 0x9f, 0x42, 0xa4, 0xa6, 0x38, 0xbe, 0xca, 0xd6, 0x0c, 0x79, 0x36, 0xe2, 0x3f, + 0x0d, 0xf1, 0x7f, 0xf7, 0xfc, 0x6e, 0x37, 0xfe, 0x33, 0x78, 0xbe, 0x91, 0x6f, 0x13, 0xff, 0x29, 0xc5, 0x7f, 0x9a, 0x23, + 0x32, 0xe5, 0xd8, 0xba, 0x96, 0x9f, 0x4f, 0x9e, 0x79, 0xfe, 0x3f, 0x7e, 0xca, 0xba, 0xf3, 0x24, 0x79, 0xf6, 0x3b, 0xd5, + 0x7f, 0xed, 0x30, 0x3a, 0x4b, 0x59, 0x8e, 0xb0, 0x94, 0x72, 0xf3, 0xcf, 0x8f, 0xf9, 0xb2, 0xd9, 0x4a, 0x8d, 0x6b, 0x88, + 0x6a, 0x4e, 0xea, 0xd5, 0x7d, 0xd5, 0xf3, 0xfa, 0xbe, 0x36, 0xcf, 0xbc, 0x72, 0x67, 0xaf, 0x06, 0x39, 0x89, 0xf9, 0x19, + 0xbf, 0x49, 0x73, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7a, 0xd6, 0x60, + 0xa6, 0x94, 0xd5, 0x6b, 0xf6, 0x7f, 0x55, 0x73, 0x90, 0xe5, 0x36, 0xcb, 0xf4, 0xda, 0x5a, 0xdf, 0x0c, 0x8f, 0xb1, 0x63, + 0xa5, 0xf4, 0xd9, 0x2c, 0xdc, 0xf3, 0xe7, 0xb6, 0x76, 0xf5, 0xb3, 0x98, 0xcf, 0x32, 0xed, 0x2b, 0xd3, 0xc7, 0xeb, 0xad, + 0xef, 0xd7, 0xd0, 0xd7, 0x5f, 0x77, 0x15, 0x56, 0x38, 0xaf, 0x5e, 0xad, 0x99, 0x5c, 0xf1, 0x6f, 0xd4, 0x15, 0xd7, 0x44, + 0x86, 0xbb, 0x9d, 0x1c, 0xfa, 0x77, 0xe7, 0xfe, 0xeb, 0xfb, 0xf5, 0xee, 0x7b, 0xf5, 0xe5, 0x2d, 0xbc, 0xb6, 0x33, 0xe8, + 0x5e, 0x8f, 0x64, 0xe1, 0xce, 0xe2, 0x7d, 0x38, 0xfb, 0x3f, 0x47, 0x59, 0x04, 0x53, 0xc8, 0xf4, 0x71, 0xee, 0x78, 0x67, + 0xf2, 0x3f, 0x8d, 0xf2, 0x3c, 0xfe, 0xf9, 0xef, 0x2b, 0xf7, 0x53, 0x2d, 0x67, 0x72, 0x06, 0xb9, 0x24, 0x7b, 0xd7, 0x5a, + 0xe7, 0xf6, 0x5e, 0x5d, 0xef, 0x47, 0x9c, 0xb9, 0xa2, 0xf5, 0xf8, 0x5f, 0x6f, 0x77, 0x4e, 0xc5, 0xff, 0x7e, 0x16, 0xde, + 0x9d, 0x1c, 0x3d, 0xfb, 0x7f, 0xbf, 0x6f, 0xfd, 0xaf, 0xe5, 0xde, 0xd9, 0xb5, 0x95, 0xeb, 0x76, 0x9c, 0x09, 0x67, 0x9c, + 0x61, 0x6a, 0xf5, 0x38, 0xae, 0xc5, 0xfc, 0xce, 0x9f, 0x13, 0xff, 0x57, 0x29, 0xfe, 0xaf, 0x0f, 0x8a, 0xff, 0xbb, 0x76, + 0xe7, 0x2a, 0xee, 0x27, 0x72, 0xd7, 0x33, 0xbb, 0x1a, 0xdb, 0x9c, 0xdf, 0x6b, 0xd5, 0x94, 0xfa, 0xc3, 0x29, 0x67, 0x4f, + 0x7c, 0x2b, 0x07, 0xd7, 0x78, 0x77, 0x93, 0x71, 0xdf, 0xbf, 0x56, 0x53, 0xd6, 0x32, 0x31, 0xdd, 0x8f, 0x28, 0xb2, 0xb4, + 0x3b, 0x41, 0x3d, 0x2f, 0x58, 0x0e, 0x64, 0x47, 0x59, 0xad, 0xe9, 0x53, 0xe8, 0xff, 0x5f, 0x5b, 0xfb, 0x48, 0x54, 0xf3, + 0x1e, 0xd7, 0x72, 0xac, 0xa7, 0xd0, 0xee, 0xcc, 0xc4, 0xdf, 0x5e, 0x16, 0xde, 0x4c, 0x8e, 0xb2, 0xae, 0xc5, 0x3a, 0xf2, + 0x6a, 0xab, 0x31, 0xd6, 0x7a, 0x98, 0xd9, 0x1a, 0x6d, 0xcd, 0xd4, 0x0d, 0x59, 0xdc, 0xab, 0xa1, 0xde, 0x5e, 0x54, 0xf2, + 0xc9, 0xd5, 0x6b, 0x80, 0xbc, 0x36, 0xff, 0x77, 0x15, 0x32, 0xd5, 0xaf, 0xe5, 0xe6, 0xab, 0xcc, 0xbd, 0x55, 0x8e, 0xaf, + 0x96, 0x73, 0x6f, 0x26, 0x6b, 0x7b, 0x4f, 0xfe, 0xe2, 0xd5, 0xf3, 0x73, 0x4d, 0xcd, 0x6a, 0xe5, 0xa5, 0xf6, 0x7f, 0x3d, + 0x02, 0xe6, 0x76, 0xa5, 0xdc, 0xe9, 0xd5, 0x54, 0x33, 0x76, 0xf7, 0xf7, 0x7e, 0xde, 0x9f, 0xff, 0x5f, 0xcb, 0xe0, 0xfd, + 0x59, 0xd9, 0x59, 0xd3, 0xf0, 0x3f, 0xfa, 0x3e, 0xeb, 0xed, 0x67, 0x38, 0x39, 0x5a, 0xfb, 0xf7, 0xc6, 0x7f, 0x8a, 0xe3, + 0xc9, 0xd9, 0x7a, 0x38, 0x4b, 0x39, 0x87, 0xc7, 0xf3, 0x5b, 0xe7, 0xc6, 0x3f, 0x9f, 0x78, 0x3f, 0xed, 0xe4, 0xb2, 0x7f, + 0xf6, 0x7b, 0xe6, 0xb1, 0x1e, 0xd3, 0x89, 0xd9, 0x97, 0xe7, 0xce, 0xc4, 0xda, 0x31, 0xa5, 0xf1, 0x8e, 0xad, 0xcd, 0xff, + 0x65, 0x63, 0x8e, 0x6f, 0x77, 0xbf, 0xde, 0x14, 0x66, 0x15, 0xff, 0x86, 0x5f, 0x0a, 0x7c, 0x3d, 0x03, 0x91, 0xbf, 0x22, + 0xf7, 0xf0, 0x4f, 0x3c, 0xc6, 0x8e, 0xe7, 0xff, 0xd5, 0x7e, 0x53, 0x6d, 0xe7, 0x80, 0xb9, 0x79, 0x9f, 0xca, 0xfc, 0x6e, + 0x75, 0xcc, 0x08, 0x54, 0x9e, 0x31, 0x57, 0x76, 0x0e, 0xe8, 0x18, 0xc1, 0x65, 0xf9, 0xf9, 0x3f, 0xf0, 0x53, 0x6a, 0xa2, + 0xda, 0xbc, 0x22, 0xf0, 0xfd, 0x47, 0x3b, 0x22, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0x9e, 0xbf, 0x88, 0x5e, 0x5f, 0xeb, 0xba, 0x9e, 0xeb, 0xb0, 0x9e, 0x71, 0x65, 0x76, 0x7d, 0xea, 0x55, 0xca, 0x1a, 0xb9, + 0x97, 0x9b, 0x66, 0x2e, 0x5b, 0x73, 0x3d, 0x5b, 0x5d, 0x35, 0x43, 0xd6, 0x5e, 0xe9, 0xf8, 0x95, 0xf5, 0x57, 0x5f, 0xd3, + 0xe7, 0x2d, 0xaf, 0x1c, 0x77, 0x16, 0x73, 0x18, 0xac, 0xdc, 0x53, 0xfd, 0xc7, 0xba, 0x77, 0x2e, 0xae, 0x62, 0x46, 0x9f, + 0x4a, 0xb6, 0xe3, 0x4a, 0xbc, 0xde, 0xe5, 0x3b, 0xcd, 0xe2, 0x67, 0x65, 0x39, 0xa7, 0xf3, 0xa8, 0x16, 0xc9, 0x60, 0xc5, + 0x68, 0x26, 0xd6, 0x9c, 0xee, 0xe5, 0x1b, 0xa8, 0x96, 0x8d, 0xaf, 0x7a, 0x3d, 0xcf, 0x49, 0x16, 0xeb, 0x8f, 0xb5, 0x1c, + 0x7d, 0x27, 0x8f, 0x7b, 0x7d, 0x0d, 0x73, 0x96, 0x73, 0x64, 0x5d, 0x8b, 0xad, 0x4d, 0x26, 0xda, 0x87, 0xea, 0xb9, 0x98, + 0x6d, 0x01, 0x57, 0xdb, 0xcd, 0xd5, 0x9a, 0xa4, 0x1a, 0xff, 0xd5, 0xcf, 0x3a, 0x13, 0xff, 0x77, 0xc7, 0x96, 0xdb, 0x9c, + 0x13, 0xd9, 0xcc, 0x6f, 0xf8, 0x6c, 0xaf, 0xb0, 0xa7, 0xfd, 0x4d, 0x71, 0x8d, 0xfe, 0xf9, 0x75, 0x81, 0xa7, 0x56, 0x07, + 0xd6, 0x73, 0x47, 0xbf, 0x71, 0x0f, 0xa4, 0x2d, 0x6b, 0xe4, 0x5c, 0x3e, 0xd6, 0xf5, 0xf8, 0x5f, 0x1d, 0x2f, 0xac, 0xe6, + 0x33, 0xcc, 0x44, 0xeb, 0x34, 0xdb, 0xfe, 0x67, 0xeb, 0xea, 0x3f, 0xdf, 0xff, 0xbf, 0x36, 0xda, 0xd0, 0xb9, 0xd1, 0xc1, + 0x6c, 0x1e, 0x8e, 0xd5, 0xbb, 0xa9, 0x5e, 0x3a, 0xce, 0x0d, 0xbc, 0xf7, 0xd7, 0xf1, 0xfd, 0x77, 0xf7, 0x4e, 0x95, 0x91, + 0x52, 0xb6, 0x33, 0x36, 0x65, 0xf9, 0x6c, 0xdc, 0x1f, 0xf5, 0x7a, 0xce, 0xe5, 0xd5, 0xf8, 0x1f, 0xd5, 0x26, 0x6b, 0x23, + 0xb8, 0x71, 0xfb, 0x3f, 0x93, 0x6b, 0x72, 0x6f, 0xb7, 0x8a, 0x1c, 0x89, 0xc3, 0x7a, 0xe9, 0xce, 0x4e, 0x27, 0x7f, 0xaa, + 0x13, 0x53, 0xae, 0x99, 0x72, 0xac, 0xf4, 0xc4, 0xf8, 0x7f, 0x9c, 0x71, 0x24, 0x85, 0x7c, 0x25, 0x3b, 0xa3, 0xa8, 0xdd, + 0xf6, 0xa5, 0xe3, 0xdd, 0xb2, 0xb5, 0x97, 0xc3, 0xb9, 0x6f, 0xdd, 0x31, 0xfe, 0x3f, 0x3b, 0xff, 0xb7, 0xbf, 0xe3, 0x58, + 0xcf, 0x6e, 0x45, 0xab, 0xb5, 0xd9, 0xaf, 0xe7, 0x22, 0x1f, 0xd2, 0xab, 0xa9, 0xd5, 0x0e, 0xfb, 0x7f, 0x1d, 0xcf, 0x59, + 0xe7, 0xa5, 0xf8, 0xef, 0x1d, 0x09, 0xe5, 0xc0, 0xfc, 0xe4, 0xf3, 0xd1, 0xbf, 0x32, 0xfe, 0xef, 0x98, 0x31, 0xab, 0xee, + 0x38, 0x72, 0xb6, 0xb4, 0xb2, 0xe3, 0xea, 0xfc, 0x3d, 0xf9, 0x44, 0x0b, 0xdf, 0xb5, 0x4f, 0xc2, 0x4f, 0x8d, 0xff, 0x37, + 0xf7, 0x18, 0xd9, 0x89, 0xff, 0xf3, 0x59, 0x9a, 0xf3, 0x87, 0x79, 0xbd, 0xdd, 0x4f, 0x1c, 0xed, 0x11, 0x9b, 0xf6, 0x38, + 0xdc, 0x8f, 0xe1, 0x9d, 0xd2, 0xb9, 0x7d, 0x78, 0x6a, 0x51, 0xba, 0x53, 0xfa, 0x56, 0xfb, 0x3f, 0x33, 0x0b, 0xf5, 0x74, + 0xfc, 0x77, 0xce, 0x86, 0xe6, 0x50, 0xeb, 0xb8, 0x3e, 0x9a, 0xe8, 0x9f, 0x1b, 0xed, 0xf8, 0xc4, 0x6a, 0xcb, 0xf0, 0x4e, + 0xff, 0xbf, 0xfe, 0xfb, 0x8b, 0x7f, 0xce, 0x66, 0xa5, 0x38, 0xab, 0xf5, 0x93, 0xc6, 0xff, 0xd7, 0xd4, 0xae, 0x51, 0x79, + 0x69, 0xfc, 0xff, 0x19, 0xaf, 0xff, 0x7b, 0x7f, 0x81, 0x75, 0x1d, 0x6e, 0x87, 0x9f, 0x2e, 0x3d, 0xdf, 0x63, 0xdc, 0x2b, + 0xcd, 0x2b, 0xed, 0xff, 0xdc, 0x48, 0xf4, 0xbd, 0xf8, 0xef, 0xea, 0x2f, 0xab, 0x09, 0x3a, 0xe7, 0x59, 0xde, 0x6d, 0xc3, + 0x6b, 0xbb, 0x38, 0xee, 0xfd, 0xda, 0x66, 0x76, 0x74, 0x50, 0x2b, 0xcd, 0xe1, 0xf1, 0xff, 0xee, 0x55, 0xae, 0x1c, 0xcf, + 0xa7, 0xc4, 0xbf, 0xbc, 0xea, 0xa7, 0xea, 0x8c, 0x4a, 0x1c, 0x3e, 0x15, 0xc3, 0xcf, 0xdf, 0x4d, 0x7b, 0xcf, 0xff, 0xd7, + 0xeb, 0xe8, 0xb5, 0xe7, 0xff, 0x3b, 0x2d, 0xc3, 0xd3, 0xcf, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xef, 0xb7, 0xfe, 0x6c, 0x9c, 0x99, 0xa6, 0x9e, 0xd5, 0x7b, 0x37, 0x2b, 0xc0, 0xde, 0x11, 0xa5, 0xb4, 0xf6, + 0x6c, 0x36, 0xb7, 0x75, 0xf7, 0xfa, 0xb4, 0x7a, 0x7e, 0xf0, 0x6c, 0xac, 0x3a, 0xac, 0xff, 0xba, 0xfc, 0xd4, 0x71, 0x9e, + 0xca, 0xc2, 0x55, 0xb9, 0x1f, 0x9e, 0xbb, 0x96, 0x69, 0xbf, 0xc2, 0xb3, 0xef, 0x51, 0xcd, 0x05, 0x9d, 0xa5, 0x1c, 0x10, + 0xab, 0x71, 0x96, 0xcd, 0x0c, 0xf5, 0xf5, 0xb5, 0x67, 0xb3, 0xb5, 0x4e, 0x6f, 0xe6, 0xea, 0x6c, 0xe4, 0x87, 0xae, 0x9f, + 0xa3, 0x9d, 0xd5, 0xa5, 0xdd, 0xc7, 0xb9, 0x7e, 0xc5, 0x3a, 0x72, 0x73, 0x67, 0xe3, 0xcc, 0x67, 0xf9, 0xcc, 0x64, 0x50, + 0x3b, 0xe5, 0x91, 0x75, 0xa5, 0xbd, 0x99, 0x0b, 0x56, 0x57, 0x34, 0x3e, 0xb7, 0xd6, 0xb6, 0xbe, 0x0a, 0x6c, 0x37, 0xbf, + 0xd5, 0x73, 0xfd, 0xb7, 0x6a, 0x5f, 0xe4, 0xd7, 0xa3, 0xcc, 0x07, 0xe4, 0x74, 0x38, 0xbb, 0x9a, 0xed, 0xcc, 0x5e, 0x23, + 0xe7, 0xbf, 0xe1, 0xde, 0xde, 0x21, 0x3b, 0x6b, 0x08, 0x53, 0xec, 0x51, 0x8d, 0x32, 0x1a, 0xdc, 0xc7, 0xe7, 0x6e, 0xf9, + 0x5c, 0x0e, 0xb8, 0x6b, 0x22, 0x33, 0x6d, 0x0a, 0xd9, 0x2f, 0x32, 0x58, 0xd7, 0xde, 0x5d, 0x56, 0xbb, 0x47, 0x67, 0xf2, + 0x96, 0xe7, 0xc0, 0x1d, 0x75, 0xbd, 0x98, 0x9b, 0xeb, 0x5a, 0x6e, 0x93, 0x53, 0x6c, 0x7b, 0x3b, 0x4b, 0x3a, 0xea, 0xe7, + 0x6a, 0x2f, 0x6f, 0xa6, 0x6c, 0x3d, 0xa3, 0xe1, 0x4c, 0xcf, 0xf2, 0x99, 0xf2, 0xf5, 0x5c, 0xe6, 0xb3, 0xd9, 0x6f, 0xf2, + 0x58, 0x59, 0xca, 0x77, 0xdb, 0x35, 0x91, 0x87, 0xff, 0xd4, 0x5d, 0xf3, 0x7c, 0x36, 0x8b, 0x4a, 0x0d, 0x5a, 0xcb, 0x91, + 0xf8, 0x5c, 0xc9, 0x6c, 0xae, 0x83, 0x13, 0x57, 0xeb, 0x2a, 0xde, 0x39, 0x9f, 0x11, 0xff, 0xb9, 0xbd, 0xe6, 0xd7, 0x56, + 0xdd, 0xd6, 0xdd, 0x2e, 0xce, 0xb4, 0x99, 0xf5, 0x7a, 0xa3, 0xfa, 0xb9, 0xb5, 0xac, 0x34, 0x73, 0xd9, 0x79, 0xae, 0xe9, + 0x91, 0x7e, 0x65, 0x8f, 0xca, 0x95, 0x4f, 0xad, 0xb4, 0x03, 0x4f, 0x95, 0x54, 0x46, 0x30, 0x4f, 0xc5, 0xff, 0x67, 0xb4, + 0xef, 0xb5, 0xdd, 0x0d, 0xc7, 0xe3, 0xff, 0x94, 0x7b, 0x45, 0xfd, 0x65, 0x29, 0xcf, 0xde, 0x74, 0xcc, 0x0b, 0xa5, 0xb5, + 0xec, 0x6a, 0x9a, 0x9f, 0xaf, 0xec, 0x66, 0xf7, 0xb9, 0xf1, 0x5f, 0xdd, 0x3b, 0xe6, 0xad, 0xf8, 0xcf, 0xc7, 0xb7, 0xff, + 0xeb, 0xbb, 0x9b, 0xfe, 0xf9, 0x19, 0x55, 0x4a, 0x3d, 0x8b, 0xce, 0xb2, 0xab, 0xb8, 0xef, 0xda, 0x6e, 0xaf, 0xf9, 0xc4, + 0xf8, 0x66, 0x36, 0x27, 0xf0, 0x93, 0xf1, 0x5f, 0xb9, 0x2a, 0xbd, 0x25, 0xbb, 0x33, 0x43, 0x6f, 0xb4, 0xff, 0xf3, 0xcf, + 0x0d, 0xde, 0x8a, 0xff, 0xea, 0xf3, 0xff, 0x99, 0xbd, 0x3c, 0x4f, 0xb4, 0x8c, 0x95, 0x96, 0xfc, 0xec, 0x3e, 0x09, 0x27, + 0xc6, 0x39, 0xa7, 0xdb, 0xff, 0xca, 0x78, 0xe4, 0x1a, 0xee, 0xfc, 0x7e, 0xba, 0xe4, 0xda, 0x9e, 0xf9, 0xfd, 0xb4, 0x19, + 0x99, 0xa7, 0xc6, 0xf7, 0x9f, 0xb5, 0xdf, 0xea, 0xf5, 0xda, 0xf3, 0xb4, 0x9f, 0x70, 0xac, 0x1d, 0x33, 0x00, 0xcf, 0x3f, + 0x73, 0xfc, 0xb4, 0x73, 0x57, 0xdd, 0x89, 0xe5, 0xb9, 0xef, 0xd3, 0x51, 0x3e, 0xf3, 0xbd, 0xe5, 0x4c, 0xe5, 0x6f, 0xfa, + 0xf5, 0xef, 0x67, 0xe5, 0x10, 0x1e, 0xff, 0x86, 0x76, 0xaf, 0xfc, 0xb9, 0xdf, 0x4d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xa9, 0xdf, 0xde, 0xd7, 0xd7, 0xbd, 0x57, 0xd7, 0x7c, 0xf7, 0x67, 0xe2, 0x8e, 0x35, + 0x3c, 0xd0, 0xb6, 0x16, 0x34, 0x93, 0xb9, 0xe0, 0xba, 0x63, 0x31, 0x5b, 0x99, 0x4d, 0x80, 0xf9, 0x36, 0xff, 0x8d, 0x75, + 0x7e, 0xd5, 0xcf, 0xcd, 0x30, 0xf3, 0x82, 0x55, 0x7c, 0x30, 0x1f, 0xff, 0x19, 0xe6, 0x32, 0xea, 0x2e, 0xbd, 0x26, 0xb2, + 0x0b, 0x5c, 0x85, 0xfc, 0x55, 0xd1, 0x47, 0x80, 0xa5, 0xf8, 0x9f, 0xc9, 0xc8, 0xfd, 0x49, 0xa5, 0x29, 0xef, 0x3e, 0x06, + 0xfc, 0x79, 0x94, 0xfd, 0xbd, 0xe2, 0x7f, 0x27, 0x7f, 0x3d, 0xf0, 0x7e, 0xfc, 0xa7, 0x58, 0x5a, 0xcf, 0x15, 0x0b, 0xfc, + 0xda, 0xfb, 0x9f, 0x99, 0xfd, 0x4f, 0x7b, 0xe9, 0xd5, 0xb0, 0xc7, 0x44, 0xf5, 0xa9, 0x24, 0xd0, 0xf1, 0x7c, 0x70, 0xa7, + 0xb4, 0xfe, 0x9b, 0x84, 0x99, 0xe7, 0x19, 0xae, 0x1c, 0x7c, 0xff, 0xe7, 0x92, 0xb5, 0xfa, 0xca, 0x19, 0x84, 0xef, 0xdf, + 0xef, 0x70, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x79, 0xff, 0xf9, 0xe7, 0x3c, 0x80, 0xf8, 0x07, 0xfe, 0xba, 0xf8, 0xff, 0x17 }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle cherryFontRecs[189] = { + { 4, 4, 5 , 15 }, + { 17, 4, 3 , 10 }, + { 28, 4, 5 , 2 }, + { 41, 4, 10 , 10 }, + { 59, 4, 7 , 11 }, + { 74, 4, 7 , 10 }, + { 89, 4, 8 , 10 }, + { 105, 4, 1 , 2 }, + { 114, 4, 3 , 10 }, + { 125, 4, 3 , 10 }, + { 136, 4, 3 , 3 }, + { 147, 4, 7 , 7 }, + { 162, 4, 2 , 2 }, + { 172, 4, 6 , 3 }, + { 186, 4, 1 , 1 }, + { 195, 4, 4 , 10 }, + { 207, 4, 5 , 8 }, + { 220, 4, 5 , 8 }, + { 233, 4, 5 , 8 }, + { 246, 4, 5 , 8 }, + { 259, 4, 5 , 8 }, + { 272, 4, 5 , 8 }, + { 285, 4, 5 , 8 }, + { 298, 4, 5 , 8 }, + { 311, 4, 5 , 8 }, + { 324, 4, 5 , 8 }, + { 337, 4, 3 , 10 }, + { 348, 4, 3 , 12 }, + { 359, 4, 6 , 7 }, + { 373, 4, 6 , 4 }, + { 387, 4, 6 , 7 }, + { 401, 4, 5 , 10 }, + { 414, 4, 8 , 10 }, + { 430, 4, 7 , 9 }, + { 445, 4, 7 , 9 }, + { 460, 4, 6 , 9 }, + { 474, 4, 6 , 9 }, + { 488, 4, 7 , 9 }, + { 4, 27, 6 , 9 }, + { 18, 27, 6 , 9 }, + { 32, 27, 7 , 9 }, + { 47, 27, 3 , 9 }, + { 58, 27, 6 , 9 }, + { 72, 27, 7 , 9 }, + { 87, 27, 7 , 9 }, + { 102, 27, 11 , 9 }, + { 121, 27, 8 , 9 }, + { 137, 27, 6 , 9 }, + { 151, 27, 6 , 9 }, + { 165, 27, 7 , 9 }, + { 180, 27, 7 , 9 }, + { 195, 27, 6 , 9 }, + { 209, 27, 7 , 9 }, + { 224, 27, 8 , 9 }, + { 240, 27, 9 , 9 }, + { 257, 27, 11 , 9 }, + { 276, 27, 7 , 9 }, + { 291, 27, 7 , 9 }, + { 306, 27, 7 , 9 }, + { 321, 27, 3 , 9 }, + { 332, 27, 4 , 10 }, + { 344, 27, 3 , 9 }, + { 355, 27, 3 , 3 }, + { 366, 27, 7 , 2 }, + { 381, 27, 2 , 2 }, + { 391, 27, 6 , 6 }, + { 405, 27, 6 , 9 }, + { 419, 27, 6 , 6 }, + { 433, 27, 6 , 9 }, + { 447, 27, 6 , 6 }, + { 461, 27, 5 , 9 }, + { 474, 27, 5 , 9 }, + { 487, 27, 7 , 9 }, + { 4, 50, 3 , 7 }, + { 15, 50, 3 , 8 }, + { 26, 50, 6 , 9 }, + { 40, 50, 4 , 9 }, + { 52, 50, 11 , 6 }, + { 71, 50, 7 , 6 }, + { 86, 50, 5 , 6 }, + { 99, 50, 6 , 8 }, + { 113, 50, 6 , 8 }, + { 127, 50, 5 , 6 }, + { 140, 50, 5 , 6 }, + { 153, 50, 5 , 9 }, + { 166, 50, 7 , 6 }, + { 181, 50, 7 , 6 }, + { 196, 50, 11 , 6 }, + { 215, 50, 7 , 6 }, + { 230, 50, 7 , 8 }, + { 245, 50, 6 , 6 }, + { 259, 50, 5 , 9 }, + { 272, 50, 1 , 9 }, + { 281, 50, 5 , 9 }, + { 294, 50, 7 , 3 }, + { 309, 50, 3 , 10 }, + { 320, 50, 7 , 10 }, + { 335, 50, 7 , 10 }, + { 350, 50, 6 , 9 }, + { 364, 50, 7 , 9 }, + { 379, 50, 6 , 12 }, + { 393, 50, 7 , 11 }, + { 408, 50, 5 , 9 }, + { 421, 50, 5 , 5 }, + { 434, 50, 4 , 5 }, + { 446, 50, 6 , 7 }, + { 460, 50, 6 , 3 }, + { 474, 50, 5 , 5 }, + { 487, 50, 6 , 1 }, + { 4, 73, 3 , 3 }, + { 15, 73, 7 , 10 }, + { 30, 73, 3 , 5 }, + { 41, 73, 3 , 5 }, + { 52, 73, 7 , 12 }, + { 67, 73, 6 , 8 }, + { 81, 73, 7 , 9 }, + { 96, 73, 2 , 3 }, + { 106, 73, 6 , 9 }, + { 120, 73, 3 , 5 }, + { 131, 73, 3 , 5 }, + { 142, 73, 6 , 7 }, + { 156, 73, 13 , 9 }, + { 177, 73, 10 , 6 }, + { 195, 73, 7 , 11 }, + { 210, 73, 5 , 10 }, + { 223, 73, 7 , 12 }, + { 238, 73, 7 , 12 }, + { 253, 73, 7 , 12 }, + { 268, 73, 7 , 12 }, + { 283, 73, 7 , 11 }, + { 298, 73, 7 , 11 }, + { 313, 73, 12 , 9 }, + { 333, 73, 6 , 11 }, + { 347, 73, 7 , 12 }, + { 362, 73, 7 , 12 }, + { 377, 73, 7 , 12 }, + { 392, 73, 7 , 11 }, + { 407, 73, 3 , 12 }, + { 418, 73, 3 , 12 }, + { 429, 73, 3 , 12 }, + { 440, 73, 3 , 11 }, + { 451, 73, 7 , 9 }, + { 466, 73, 8 , 12 }, + { 482, 73, 6 , 12 }, + { 496, 73, 6 , 12 }, + { 4, 96, 6 , 12 }, + { 18, 96, 6 , 12 }, + { 32, 96, 6 , 11 }, + { 46, 96, 5 , 5 }, + { 59, 96, 8 , 9 }, + { 75, 96, 8 , 12 }, + { 91, 96, 8 , 12 }, + { 107, 96, 8 , 12 }, + { 123, 96, 8 , 11 }, + { 139, 96, 7 , 12 }, + { 154, 96, 7 , 9 }, + { 169, 96, 8 , 9 }, + { 185, 96, 6 , 9 }, + { 199, 96, 6 , 9 }, + { 213, 96, 6 , 9 }, + { 227, 96, 6 , 9 }, + { 241, 96, 6 , 8 }, + { 255, 96, 6 , 10 }, + { 269, 96, 10 , 6 }, + { 287, 96, 6 , 8 }, + { 301, 96, 6 , 9 }, + { 315, 96, 6 , 9 }, + { 329, 96, 6 , 9 }, + { 343, 96, 6 , 8 }, + { 357, 96, 3 , 10 }, + { 368, 96, 3 , 10 }, + { 379, 96, 3 , 10 }, + { 390, 96, 3 , 9 }, + { 401, 96, 6 , 10 }, + { 415, 96, 7 , 9 }, + { 430, 96, 5 , 9 }, + { 443, 96, 5 , 9 }, + { 456, 96, 5 , 9 }, + { 469, 96, 5 , 9 }, + { 482, 96, 5 , 8 }, + { 495, 96, 7 , 9 }, + { 4, 119, 8 , 8 }, + { 20, 119, 7 , 9 }, + { 35, 119, 7 , 9 }, + { 50, 119, 7 , 9 }, + { 65, 119, 7 , 8 }, + { 80, 119, 7 , 11 }, + { 95, 119, 5 , 8 }, + { 108, 119, 7 , 10 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo cherryFontGlyphs[189] = { + { 32, 0, 0, 5, { 0 }}, + { 33, 0, 2, 4, { 0 }}, + { 34, 0, 2, 6, { 0 }}, + { 35, 0, 2, 11, { 0 }}, + { 36, 0, 2, 8, { 0 }}, + { 37, 0, 2, 8, { 0 }}, + { 38, 0, 2, 9, { 0 }}, + { 39, 0, 2, 2, { 0 }}, + { 40, 0, 2, 4, { 0 }}, + { 41, 0, 2, 4, { 0 }}, + { 42, 0, 2, 4, { 0 }}, + { 43, 0, 4, 8, { 0 }}, + { 44, 0, 11, 3, { 0 }}, + { 45, 0, 6, 7, { 0 }}, + { 46, 0, 11, 2, { 0 }}, + { 47, 0, 2, 5, { 0 }}, + { 48, 0, 4, 6, { 0 }}, + { 49, 0, 4, 6, { 0 }}, + { 50, 0, 4, 6, { 0 }}, + { 51, 0, 4, 6, { 0 }}, + { 52, 0, 4, 6, { 0 }}, + { 53, 0, 4, 6, { 0 }}, + { 54, 0, 4, 6, { 0 }}, + { 55, 0, 4, 6, { 0 }}, + { 56, 0, 4, 6, { 0 }}, + { 57, 0, 4, 6, { 0 }}, + { 58, 0, 2, 4, { 0 }}, + { 59, 0, 2, 4, { 0 }}, + { 60, 0, 4, 7, { 0 }}, + { 61, 0, 5, 7, { 0 }}, + { 62, 0, 4, 7, { 0 }}, + { 63, 0, 2, 6, { 0 }}, + { 64, 0, 2, 9, { 0 }}, + { 65, 0, 3, 8, { 0 }}, + { 66, 0, 3, 8, { 0 }}, + { 67, 0, 3, 7, { 0 }}, + { 68, 0, 3, 7, { 0 }}, + { 69, 0, 3, 8, { 0 }}, + { 70, 0, 3, 7, { 0 }}, + { 71, 0, 3, 7, { 0 }}, + { 72, 0, 3, 8, { 0 }}, + { 73, 0, 3, 4, { 0 }}, + { 74, 0, 3, 7, { 0 }}, + { 75, 0, 3, 8, { 0 }}, + { 76, 0, 3, 8, { 0 }}, + { 77, 0, 3, 12, { 0 }}, + { 78, 0, 3, 9, { 0 }}, + { 79, 0, 3, 7, { 0 }}, + { 80, 0, 3, 7, { 0 }}, + { 81, 0, 3, 8, { 0 }}, + { 82, 0, 3, 8, { 0 }}, + { 83, 0, 3, 7, { 0 }}, + { 84, 0, 3, 8, { 0 }}, + { 85, 0, 3, 9, { 0 }}, + { 86, 0, 3, 10, { 0 }}, + { 87, 0, 3, 12, { 0 }}, + { 88, 0, 3, 8, { 0 }}, + { 89, 0, 3, 8, { 0 }}, + { 90, 0, 3, 8, { 0 }}, + { 91, 0, 3, 4, { 0 }}, + { 92, 0, 2, 5, { 0 }}, + { 93, 0, 3, 4, { 0 }}, + { 94, 0, 3, 4, { 0 }}, + { 95, 0, 10, 8, { 0 }}, + { 96, 0, 2, 3, { 0 }}, + { 97, 0, 6, 7, { 0 }}, + { 98, 0, 3, 7, { 0 }}, + { 99, 0, 6, 7, { 0 }}, + { 100, 0, 3, 7, { 0 }}, + { 101, 0, 6, 7, { 0 }}, + { 102, 0, 3, 6, { 0 }}, + { 103, 0, 5, 6, { 0 }}, + { 104, 0, 3, 8, { 0 }}, + { 105, 0, 5, 4, { 0 }}, + { 106, 0, 5, 4, { 0 }}, + { 107, 0, 3, 7, { 0 }}, + { 108, 0, 3, 5, { 0 }}, + { 109, 0, 6, 12, { 0 }}, + { 110, 0, 6, 8, { 0 }}, + { 111, 0, 6, 6, { 0 }}, + { 112, 0, 6, 7, { 0 }}, + { 113, 0, 6, 7, { 0 }}, + { 114, 0, 6, 6, { 0 }}, + { 115, 0, 6, 6, { 0 }}, + { 116, 0, 3, 6, { 0 }}, + { 117, 0, 6, 8, { 0 }}, + { 118, 0, 6, 8, { 0 }}, + { 119, 0, 6, 12, { 0 }}, + { 120, 0, 6, 8, { 0 }}, + { 121, 0, 6, 8, { 0 }}, + { 122, 0, 6, 7, { 0 }}, + { 123, 0, 3, 6, { 0 }}, + { 124, 0, 3, 2, { 0 }}, + { 125, 0, 3, 6, { 0 }}, + { 126, 0, 6, 8, { 0 }}, + { 161, 0, 4, 4, { 0 }}, + { 162, 0, 4, 8, { 0 }}, + { 163, 0, 2, 8, { 0 }}, + { 8364, 0, 3, 7, { 0 }}, + { 165, 0, 3, 8, { 0 }}, + { 352, 0, 0, 7, { 0 }}, + { 167, 0, 2, 8, { 0 }}, + { 353, 0, 3, 6, { 0 }}, + { 169, 0, 1, 6, { 0 }}, + { 170, 0, 2, 5, { 0 }}, + { 171, 0, 5, 7, { 0 }}, + { 172, 0, 6, 7, { 0 }}, + { 174, 0, 1, 6, { 0 }}, + { 175, 0, 2, 7, { 0 }}, + { 176, 0, 2, 4, { 0 }}, + { 177, 0, 3, 8, { 0 }}, + { 178, 0, 2, 4, { 0 }}, + { 179, 0, 2, 4, { 0 }}, + { 381, 0, 0, 8, { 0 }}, + { 181, 0, 6, 7, { 0 }}, + { 182, 0, 3, 8, { 0 }}, + { 183, 0, 6, 3, { 0 }}, + { 382, 0, 3, 7, { 0 }}, + { 185, 0, 2, 4, { 0 }}, + { 186, 0, 2, 4, { 0 }}, + { 187, 0, 5, 7, { 0 }}, + { 338, 0, 3, 14, { 0 }}, + { 339, 0, 6, 11, { 0 }}, + { 376, 0, 1, 8, { 0 }}, + { 191, 0, 4, 6, { 0 }}, + { 192, 0, 0, 8, { 0 }}, + { 193, 0, 0, 8, { 0 }}, + { 194, 0, 0, 8, { 0 }}, + { 195, 0, 0, 8, { 0 }}, + { 196, 0, 1, 8, { 0 }}, + { 197, 0, 1, 8, { 0 }}, + { 198, 0, 3, 13, { 0 }}, + { 199, 0, 3, 7, { 0 }}, + { 200, 0, 0, 8, { 0 }}, + { 201, 0, 0, 8, { 0 }}, + { 202, 0, 0, 8, { 0 }}, + { 203, 0, 1, 8, { 0 }}, + { 204, 0, 0, 4, { 0 }}, + { 205, 0, 0, 4, { 0 }}, + { 206, 0, 0, 4, { 0 }}, + { 207, 0, 1, 4, { 0 }}, + { 208, 0, 3, 8, { 0 }}, + { 209, 0, 0, 9, { 0 }}, + { 210, 0, 0, 7, { 0 }}, + { 211, 0, 0, 7, { 0 }}, + { 212, 0, 0, 7, { 0 }}, + { 213, 0, 0, 7, { 0 }}, + { 214, 0, 1, 7, { 0 }}, + { 215, 1, 5, 7, { 0 }}, + { 216, 0, 3, 9, { 0 }}, + { 217, 0, 0, 9, { 0 }}, + { 218, 0, 0, 9, { 0 }}, + { 219, 0, 0, 9, { 0 }}, + { 220, 0, 1, 9, { 0 }}, + { 221, 0, 0, 8, { 0 }}, + { 222, 0, 2, 8, { 0 }}, + { 223, 0, 3, 9, { 0 }}, + { 224, 0, 3, 7, { 0 }}, + { 225, 0, 3, 7, { 0 }}, + { 226, 0, 3, 7, { 0 }}, + { 227, 0, 3, 7, { 0 }}, + { 228, 0, 4, 7, { 0 }}, + { 229, 0, 2, 7, { 0 }}, + { 230, 0, 6, 11, { 0 }}, + { 231, 0, 6, 7, { 0 }}, + { 232, 0, 3, 7, { 0 }}, + { 233, 0, 3, 7, { 0 }}, + { 234, 0, 3, 7, { 0 }}, + { 235, 0, 4, 7, { 0 }}, + { 236, 0, 2, 4, { 0 }}, + { 237, 0, 2, 4, { 0 }}, + { 238, 0, 2, 4, { 0 }}, + { 239, 0, 3, 4, { 0 }}, + { 240, 0, 2, 7, { 0 }}, + { 241, 0, 3, 8, { 0 }}, + { 242, 0, 3, 6, { 0 }}, + { 243, 0, 3, 6, { 0 }}, + { 244, 0, 3, 6, { 0 }}, + { 245, 0, 3, 6, { 0 }}, + { 246, 0, 4, 6, { 0 }}, + { 247, 0, 3, 8, { 0 }}, + { 248, 0, 4, 9, { 0 }}, + { 249, 0, 3, 8, { 0 }}, + { 250, 0, 3, 8, { 0 }}, + { 251, 0, 3, 8, { 0 }}, + { 252, 0, 4, 8, { 0 }}, + { 253, 0, 3, 8, { 0 }}, + { 254, 0, 4, 6, { 0 }}, + { 255, 0, 4, 8, { 0 }}, +}; + +// Style loading function: Cherry +static void GuiLoadStyleCherry(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < CHERRY_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(cherryStyleProps[i].controlId, cherryStyleProps[i].propertyId, cherryStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int cherryFontDataSize = 0; + unsigned char *data = DecompressData(cherryFontData, CHERRY_STYLE_FONT_ATLAS_COMP_SIZE, &cherryFontDataSize); + Image imFont = { data, 512, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 15; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, cherryFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, cherryFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 510, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_cyber.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_cyber.h new file mode 100644 index 0000000..5e7bf85 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_cyber.h @@ -0,0 +1,592 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleCyber(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define CYBER_STYLE_PROPS_COUNT 17 + +// Custom style name: Cyber +static const GuiStyleProp cyberStyleProps[CYBER_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0x2f7486ff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0x024658ff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0x51bfd3ff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0x82cde0ff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0x3299b4ff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0xb6e1eaff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0xeb7630ff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0xffbc51ff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0xd86f36ff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0x134b5aff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0x02313dff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0x17505fff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x0000000e }, // DEFAULT_TEXT_SIZE + { 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING + { 0, 18, (int)0x81c0d0ff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0x00222bff }, // DEFAULT_BACKGROUND_COLOR + { 0, 20, (int)0x00000007 }, // DEFAULT_TEXT_LINE_SPACING +}; + +// WARNING: This style uses a custom font: "Kyrou7Wide.ttf" (size: 14, spacing: 0) + +#define CYBER_STYLE_FONT_ATLAS_COMP_SIZE 2306 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char cyberFontData[CYBER_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0xdd, 0xdd, 0x72, 0xe3, 0x36, 0x12, 0x06, 0x50, 0x96, 0x6b, 0xdf, 0xff, 0x85, 0x1d, 0xec, 0xb7, 0xb5, 0x93, 0x4c, 0xe2, + 0xa9, 0x8c, 0x88, 0x7f, 0x8a, 0x92, 0xcf, 0x9c, 0xaa, 0xb9, 0x30, 0x2d, 0x89, 0x04, 0xd1, 0x40, 0x93, 0x34, 0x5a, 0x39, + 0x00, 0x00, 0x00, 0x00, 0x16, 0xcb, 0xc5, 0x9f, 0x96, 0xe6, 0x9f, 0xae, 0x3b, 0xa2, 0x9f, 0xff, 0x9e, 0x7b, 0xec, 0xfa, + 0x57, 0x7f, 0xbb, 0xe7, 0xe1, 0xb9, 0xd3, 0x9e, 0x5f, 0x7f, 0x92, 0xd3, 0xdf, 0xcd, 0x50, 0xeb, 0xa6, 0x7a, 0xc6, 0xce, + 0xcf, 0x4c, 0x5f, 0xbc, 0x3d, 0xde, 0x87, 0x74, 0xbf, 0x62, 0xe7, 0xc8, 0xf8, 0xf3, 0x5f, 0xe9, 0xea, 0xef, 0xe7, 0xbd, + 0xb8, 0xad, 0x97, 0xa7, 0xb2, 0x47, 0x69, 0xf8, 0x8d, 0xda, 0xeb, 0x8f, 0x89, 0xbd, 0x2f, 0x97, 0xce, 0x45, 0xa9, 0x8e, + 0x19, 0xc7, 0x86, 0xa3, 0xc9, 0xe4, 0xb9, 0xcc, 0xf4, 0x88, 0xd6, 0x1e, 0xff, 0xb5, 0x7e, 0x91, 0x7f, 0xfd, 0x7f, 0x0c, + 0x45, 0x5a, 0x36, 0xc6, 0xff, 0xd1, 0x35, 0xbe, 0xec, 0xcf, 0x8b, 0xd2, 0x10, 0xe9, 0xfd, 0xaf, 0x69, 0x3d, 0xda, 0xb1, + 0x11, 0x2f, 0xcd, 0xbf, 0x9b, 0xa1, 0x23, 0x5e, 0x75, 0x46, 0x7a, 0x47, 0xce, 0x5a, 0x6b, 0xec, 0x38, 0x9a, 0xaf, 0x3f, + 0xfb, 0x9c, 0x7c, 0x7d, 0xd9, 0x3e, 0x46, 0x96, 0x86, 0x96, 0x2a, 0xc3, 0x9f, 0x98, 0x81, 0x6c, 0x6e, 0xd5, 0xd9, 0xdf, + 0x9d, 0x17, 0x66, 0x38, 0x96, 0x32, 0x75, 0xf6, 0xce, 0x3f, 0x77, 0x74, 0xfe, 0xde, 0x3b, 0xe2, 0xf5, 0xe7, 0xfa, 0x59, + 0x34, 0x9a, 0x8f, 0x8d, 0x66, 0x3f, 0x5b, 0x2a, 0x1b, 0xe2, 0x77, 0xdd, 0x58, 0xbc, 0x32, 0x47, 0x9a, 0xc9, 0x3b, 0xcf, + 0xb6, 0x7d, 0xfe, 0xd0, 0xbe, 0x57, 0xaf, 0x32, 0xff, 0x67, 0xe2, 0xfc, 0x65, 0xa8, 0x9d, 0x6b, 0x39, 0x65, 0xeb, 0x11, + 0x9f, 0x7f, 0x7a, 0x19, 0x38, 0xe6, 0x8f, 0x94, 0xbf, 0x1d, 0x4b, 0x72, 0xda, 0x2c, 0x3c, 0x97, 0xe9, 0xbe, 0x56, 0xfa, + 0x33, 0x6e, 0xc7, 0x73, 0xe6, 0xe4, 0xbf, 0x3f, 0x94, 0xcd, 0xb9, 0xd8, 0x15, 0xf1, 0xff, 0xcf, 0x28, 0x96, 0x89, 0x88, + 0xcd, 0xe4, 0x0c, 0xb3, 0xf6, 0xfa, 0x7f, 0x5e, 0x99, 0x3a, 0x7f, 0x59, 0x7e, 0x55, 0xfb, 0x4f, 0xf4, 0x66, 0x28, 0x7f, + 0xc8, 0xb2, 0x51, 0xb6, 0x6c, 0xbc, 0x97, 0x9c, 0x4d, 0x59, 0xda, 0xa3, 0xf9, 0xff, 0xba, 0x6c, 0x67, 0xcf, 0xd5, 0x52, + 0xcf, 0xbd, 0xd3, 0xd1, 0xeb, 0xff, 0x34, 0x8e, 0x2e, 0xfb, 0xe2, 0xff, 0x7a, 0x7f, 0x4c, 0x9e, 0xbf, 0x5c, 0x7c, 0x7d, + 0xbe, 0xe6, 0x0a, 0x7d, 0x3c, 0xe3, 0xd9, 0x7b, 0xfd, 0x7f, 0xd5, 0x88, 0xb1, 0x23, 0xff, 0xcf, 0x8b, 0xe7, 0xff, 0x3d, + 0xf7, 0xff, 0xf3, 0x26, 0xf1, 0x9f, 0xe9, 0x27, 0x52, 0x59, 0x7e, 0x7f, 0xbe, 0x2d, 0xdb, 0x9d, 0x7b, 0xbe, 0x90, 0xa9, + 0x23, 0x5e, 0x75, 0x2f, 0x26, 0x8b, 0x7e, 0x37, 0x8d, 0xb3, 0xe2, 0xd8, 0xfd, 0xdd, 0xe7, 0xde, 0xff, 0xf7, 0xfc, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x9e, 0xd5, 0x9d, 0xb9, 0xe0, 0x75, + 0x23, 0xab, 0x68, 0x67, 0x56, 0xdd, 0xce, 0xac, 0xd9, 0x1d, 0x7d, 0x65, 0xbd, 0x0e, 0xd1, 0xf8, 0x3a, 0xe3, 0xf6, 0x55, + 0xce, 0x7d, 0xeb, 0x86, 0xe7, 0xaa, 0xa3, 0xa4, 0xba, 0x8e, 0xbe, 0xad, 0x1e, 0x41, 0xbd, 0x76, 0x6b, 0xad, 0x92, 0xd5, + 0xfe, 0xda, 0xaf, 0x3b, 0x6b, 0x53, 0x66, 0xb8, 0x05, 0x7b, 0x56, 0xbf, 0xa7, 0xab, 0x3e, 0xc1, 0xe8, 0x3a, 0xf4, 0xeb, + 0xaa, 0x02, 0xce, 0xaf, 0x90, 0x3f, 0x7f, 0xe7, 0xb2, 0xfd, 0x28, 0xda, 0xf7, 0x38, 0x0b, 0xce, 0xd9, 0x8e, 0xf8, 0xcf, + 0x69, 0x45, 0x80, 0x5c, 0x58, 0xdb, 0x75, 0x5f, 0x25, 0xdc, 0x7d, 0x95, 0x76, 0xea, 0xf1, 0xdf, 0x5e, 0xb3, 0x39, 0x8b, + 0xa3, 0x35, 0xc3, 0xd1, 0xb3, 0x6a, 0x04, 0x18, 0x19, 0xb7, 0x56, 0xc4, 0xff, 0x68, 0xee, 0xf0, 0xda, 0xf1, 0x3f, 0x5a, + 0x4f, 0x2c, 0x27, 0xe7, 0x3d, 0x8d, 0x7d, 0xfb, 0x0e, 0xdb, 0x8f, 0x9b, 0xc6, 0x7f, 0x3d, 0xa6, 0x32, 0x5d, 0xa5, 0x78, + 0x5d, 0x7f, 0x5a, 0xa7, 0x34, 0x45, 0xe9, 0x58, 0x4d, 0xcf, 0x32, 0x3c, 0xb2, 0xec, 0xca, 0xff, 0x53, 0xb9, 0xf2, 0x48, + 0x53, 0x2e, 0xbb, 0x76, 0x8c, 0x6d, 0x1d, 0xb5, 0x1e, 0x57, 0x14, 0xab, 0xd5, 0x2b, 0x7c, 0xfe, 0xfc, 0x3e, 0x57, 0x4f, + 0xf9, 0x9a, 0xf8, 0x9f, 0x8f, 0xc4, 0x3c, 0x65, 0xce, 0x5a, 0x73, 0x6f, 0x22, 0x83, 0xf3, 0xd6, 0x9e, 0xd7, 0x5e, 0x31, + 0xff, 0xe7, 0xa5, 0xe6, 0xff, 0x96, 0xeb, 0xff, 0x2c, 0xb8, 0x7a, 0x1d, 0x6b, 0xb5, 0xd2, 0x7c, 0x2e, 0x77, 0xe4, 0xff, + 0x2d, 0x33, 0xfb, 0xfc, 0xfc, 0x3f, 0xb3, 0x35, 0xcd, 0xb3, 0xf0, 0xf5, 0xf1, 0xdf, 0x76, 0x4c, 0xb9, 0xf4, 0xb5, 0xaf, + 0x17, 0xff, 0xb9, 0xc5, 0xfd, 0xbf, 0x6c, 0xac, 0xcd, 0x9c, 0x25, 0xa3, 0xdb, 0x9e, 0xf8, 0x6f, 0xab, 0x87, 0x3e, 0x73, + 0xfd, 0x3f, 0x17, 0xe1, 0xf5, 0x08, 0xf8, 0x43, 0xfc, 0x2f, 0xca, 0xff, 0x57, 0xbd, 0xba, 0xff, 0x5e, 0xc9, 0xcc, 0x0c, + 0xda, 0x7e, 0x4c, 0x59, 0x9e, 0x7f, 0xcf, 0xd6, 0xf6, 0xdd, 0x9d, 0xff, 0xaf, 0x7a, 0xfd, 0x31, 0x7c, 0xde, 0xeb, 0x5b, + 0xe6, 0x7a, 0xe5, 0xf1, 0x84, 0x6f, 0x73, 0xd8, 0xfd, 0x7c, 0xcf, 0x77, 0x94, 0xbe, 0xdf, 0x53, 0x6c, 0x6d, 0x70, 0xef, + 0xe7, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x5e, 0x65, 0x75, 0xbf, + 0x15, 0x53, 0x69, 0x58, 0x1f, 0xda, 0x52, 0x3f, 0xf3, 0xbc, 0xfa, 0xe6, 0xa3, 0x1a, 0x12, 0xa5, 0xa9, 0xf6, 0xe6, 0xaa, + 0xd6, 0x6c, 0xad, 0x83, 0x30, 0x5b, 0xa7, 0x73, 0xe4, 0xdd, 0x5b, 0x5a, 0xb9, 0xbe, 0xe6, 0x31, 0x95, 0x75, 0xc0, 0xc7, + 0xc2, 0x1e, 0x58, 0x5f, 0xf3, 0x9c, 0x89, 0x9a, 0x0b, 0x33, 0x55, 0x04, 0xb3, 0x71, 0x85, 0x69, 0x86, 0x5a, 0xa5, 0xbd, + 0x02, 0x47, 0xeb, 0xd6, 0x2c, 0xaa, 0xf2, 0xb0, 0xbb, 0x5f, 0xaf, 0xd8, 0xda, 0x5f, 0x47, 0xe1, 0x19, 0xf1, 0x7f, 0xde, + 0x43, 0xb2, 0xf8, 0x6c, 0xf7, 0xfd, 0xb4, 0x16, 0xfb, 0x8f, 0x6b, 0x2b, 0x7f, 0x34, 0xf6, 0x9b, 0x9e, 0xed, 0x99, 0x3e, + 0xcb, 0x99, 0xac, 0x84, 0x50, 0x3a, 0xe7, 0x9b, 0xf6, 0xe8, 0x9f, 0xeb, 0x79, 0xfb, 0x56, 0xc0, 0xbf, 0x53, 0xfc, 0x1f, + 0x83, 0x15, 0x0b, 0x77, 0xc7, 0xff, 0xd1, 0xb4, 0x4f, 0x59, 0x76, 0x44, 0xeb, 0xaa, 0x6f, 0x7f, 0x74, 0xe7, 0x58, 0x6b, + 0x6a, 0x59, 0xe5, 0xc2, 0x5a, 0x0f, 0xe9, 0xe8, 0x5d, 0xa3, 0x23, 0x40, 0x06, 0xe7, 0xff, 0xfe, 0x96, 0x5e, 0x95, 0x63, + 0xbc, 0x66, 0xfc, 0x8f, 0xb5, 0x66, 0x26, 0xce, 0xf0, 0xde, 0xf9, 0x7f, 0x65, 0xe5, 0xee, 0x91, 0xe8, 0x28, 0x0f, 0xde, + 0xa5, 0x0c, 0xcf, 0xce, 0xe3, 0x57, 0x07, 0x47, 0xd3, 0x77, 0x32, 0x94, 0xee, 0xd7, 0xe5, 0x97, 0xf8, 0xcc, 0x96, 0x6b, + 0xf4, 0x9c, 0xb4, 0xf0, 0x68, 0x35, 0xd2, 0xde, 0xf8, 0xcf, 0xa5, 0xf3, 0xff, 0xd1, 0xf8, 0xed, 0x19, 0xc7, 0xd0, 0xf9, + 0x3a, 0x06, 0xdf, 0x75, 0xfc, 0x95, 0xa9, 0xf6, 0xd8, 0x3d, 0xf5, 0x68, 0x57, 0x7e, 0x43, 0x47, 0x16, 0xf4, 0xdb, 0x54, + 0x3e, 0x21, 0x83, 0x39, 0x78, 0x6f, 0xe6, 0xdf, 0x33, 0xce, 0xa6, 0xe3, 0xce, 0x40, 0x4e, 0xc6, 0xc0, 0x6c, 0xca, 0xc1, + 0x57, 0xce, 0x83, 0x59, 0x9a, 0xaf, 0xed, 0xbb, 0xbb, 0xb8, 0x33, 0xa3, 0xbb, 0xe6, 0xdd, 0x9e, 0xd5, 0x26, 0x57, 0xce, + 0xff, 0xe9, 0xce, 0x76, 0x67, 0xe6, 0xff, 0x4c, 0xd7, 0xc9, 0xac, 0xe5, 0x7e, 0xc7, 0xed, 0xe6, 0xff, 0xb6, 0xd8, 0xcc, + 0xe5, 0xf9, 0xbf, 0xf8, 0xbf, 0xfa, 0x49, 0xcb, 0xf1, 0x12, 0xf1, 0xbf, 0xf7, 0xfa, 0x7f, 0xcd, 0x08, 0x32, 0x3a, 0xcb, + 0x1e, 0x9b, 0x9f, 0x11, 0x8c, 0xbf, 0x6a, 0x5f, 0xfc, 0x1f, 0xdf, 0xaa, 0x5a, 0xe3, 0xbb, 0xd5, 0xa6, 0x7c, 0x46, 0xfc, + 0xb7, 0xe4, 0xff, 0x19, 0xbc, 0xff, 0xdf, 0xfe, 0x0d, 0x5b, 0xe9, 0xca, 0x59, 0xda, 0xf3, 0x8e, 0xf7, 0xec, 0x11, 0xbc, + 0xf3, 0x88, 0x36, 0xf7, 0xfc, 0xff, 0x6e, 0x63, 0xf0, 0xdc, 0x77, 0xaa, 0x7c, 0xe7, 0xfe, 0xaf, 0xee, 0x32, 0xfe, 0x5a, + 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xd9, 0xeb, 0x16, 0x72, 0xe9, 0x7a, 0xf9, + 0xd1, 0xba, 0x75, 0xfd, 0x2b, 0x56, 0xb3, 0xa8, 0x65, 0xb2, 0xe8, 0x6c, 0x95, 0x86, 0xd5, 0xf9, 0x99, 0x6c, 0xf7, 0x4c, + 0xff, 0x4e, 0x1a, 0x56, 0x84, 0x65, 0xe8, 0x0c, 0xdf, 0x6f, 0xdd, 0xea, 0xcc, 0xaa, 0xc1, 0x2c, 0x6d, 0xdd, 0x95, 0xe7, + 0x3b, 0xd5, 0x6a, 0xd8, 0x5f, 0x95, 0xc1, 0xea, 0x2b, 0x19, 0x5a, 0x31, 0x99, 0xe1, 0xda, 0x04, 0xbd, 0xe3, 0x5d, 0x3a, + 0xdb, 0xac, 0xf7, 0x5c, 0x7f, 0x6d, 0xe3, 0xd6, 0x2a, 0x33, 0x5f, 0xb7, 0x97, 0xc1, 0x33, 0xfe, 0x91, 0xcf, 0xa9, 0x7e, + 0x9f, 0xe1, 0x11, 0xfa, 0x58, 0x52, 0xd7, 0xbb, 0xa5, 0x1a, 0x47, 0x69, 0x58, 0x43, 0x9f, 0xe9, 0xda, 0x60, 0x19, 0x6e, + 0x87, 0x95, 0x3d, 0x6f, 0xee, 0xd3, 0x6a, 0x6b, 0xb5, 0x33, 0x31, 0x83, 0x66, 0xb0, 0xfe, 0x5d, 0x26, 0x2b, 0x43, 0xe4, + 0x64, 0x8d, 0x77, 0xb6, 0xad, 0x6f, 0x4f, 0x67, 0xf4, 0xb7, 0x1f, 0x6f, 0x9a, 0xdb, 0xb4, 0xad, 0x5e, 0xf5, 0xc7, 0xed, + 0xb3, 0xd2, 0x32, 0x34, 0xdb, 0x8c, 0xb5, 0xe9, 0xd5, 0xf9, 0xc6, 0xdd, 0x6b, 0x7b, 0xd4, 0xab, 0x8f, 0xed, 0xbf, 0x36, + 0x18, 0xa9, 0xc5, 0xb2, 0x2e, 0xfe, 0xd3, 0x5d, 0x51, 0xaa, 0x4c, 0x5d, 0x75, 0xf4, 0xc5, 0x7f, 0xdb, 0xfb, 0x66, 0x68, + 0xfe, 0xaf, 0xc5, 0xdf, 0xde, 0xed, 0xb3, 0xd5, 0xf6, 0x47, 0xe3, 0xbf, 0xbf, 0x0f, 0x64, 0x43, 0x8d, 0xd4, 0x5a, 0x56, + 0x32, 0xb2, 0x65, 0xfe, 0x1a, 0x7b, 0x5f, 0xfc, 0x9f, 0xb5, 0xde, 0x6c, 0xbe, 0xb1, 0x6a, 0xfe, 0xcf, 0x74, 0xfe, 0xdf, + 0xda, 0x57, 0xd3, 0xfc, 0xfd, 0x42, 0x2d, 0x39, 0x55, 0x1e, 0xc6, 0x7e, 0xc9, 0x67, 0xf5, 0x9b, 0x32, 0x8e, 0xc1, 0x6f, + 0xc3, 0xd8, 0xbd, 0xbd, 0x67, 0xdc, 0x5e, 0x53, 0xb9, 0xf3, 0xfa, 0xad, 0x2b, 0xc6, 0xbe, 0x7b, 0xc4, 0x7f, 0x36, 0x65, + 0x3a, 0x99, 0x6a, 0xd7, 0x74, 0xed, 0xfb, 0x35, 0x77, 0x97, 0x72, 0x59, 0x55, 0xd1, 0xff, 0xc7, 0xfe, 0xc7, 0x70, 0x4e, + 0xbc, 0x7f, 0x7b, 0xeb, 0x38, 0x58, 0x2e, 0x98, 0xff, 0x77, 0xde, 0x01, 0x1d, 0xaf, 0x0a, 0x7f, 0x4d, 0xfc, 0x3f, 0xeb, + 0xda, 0xe8, 0xd8, 0x32, 0x36, 0xf6, 0xc6, 0x7f, 0x2e, 0x3e, 0x8e, 0xeb, 0xe2, 0xbf, 0x9c, 0x5e, 0x03, 0xa4, 0x23, 0xaf, + 0xdd, 0xb3, 0x7d, 0xe5, 0xf8, 0x32, 0xfb, 0xbd, 0x3f, 0xcf, 0xc9, 0xff, 0x9f, 0x1f, 0xff, 0x77, 0xbe, 0x43, 0x91, 0x37, + 0xba, 0x43, 0x93, 0x5f, 0xee, 0xb2, 0x5c, 0xf3, 0x3c, 0xf6, 0x3f, 0x29, 0x3f, 0x7c, 0x3e, 0xf8, 0x1e, 0xad, 0x7b, 0xe7, + 0xff, 0xbd, 0xf1, 0x3f, 0x73, 0xff, 0xff, 0xfb, 0xe6, 0xff, 0x77, 0xfe, 0x9b, 0x05, 0x7f, 0xb7, 0xb1, 0xb3, 0x9d, 0xee, + 0x1f, 0xdf, 0xeb, 0x47, 0xe6, 0xf2, 0xe0, 0x7a, 0xe8, 0xfb, 0xe6, 0xff, 0xf7, 0xff, 0x8b, 0x25, 0xd5, 0x56, 0xaf, 0xb8, + 0x26, 0xb9, 0xe3, 0xfd, 0xbd, 0xd5, 0xfd, 0xbd, 0x9c, 0xdc, 0x0b, 0xdd, 0x95, 0xff, 0x1f, 0x37, 0xbf, 0xff, 0x0f, 0xaf, + 0x39, 0x3e, 0x01, 0xe2, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x7d, 0xff, 0x9a, 0x32, 0xc3, + 0xeb, 0x26, 0xf2, 0xa3, 0x96, 0xcc, 0xc7, 0xc4, 0x6a, 0xa4, 0x7d, 0x55, 0x64, 0xcf, 0x6b, 0x60, 0x7d, 0x4e, 0xfc, 0xfd, + 0xe8, 0xde, 0xe3, 0xca, 0xa2, 0xf5, 0xa3, 0xcf, 0x38, 0xb2, 0x0c, 0x9e, 0xab, 0xb9, 0xcf, 0xfc, 0x77, 0x55, 0xa4, 0x63, + 0xf9, 0x5a, 0xdf, 0xe3, 0xaf, 0xba, 0x49, 0xab, 0xcf, 0x48, 0xcf, 0xca, 0xc3, 0x7b, 0x55, 0x28, 0x2c, 0x3f, 0xda, 0x23, + 0xa7, 0x75, 0x24, 0xef, 0x5c, 0x45, 0xb6, 0x0c, 0x55, 0x97, 0xd9, 0x7f, 0x5c, 0x73, 0xf1, 0x90, 0x4a, 0x5d, 0xcf, 0xe7, + 0x54, 0xbb, 0xad, 0x9d, 0xab, 0xf3, 0x5a, 0xd8, 0xa5, 0x71, 0xbd, 0xfc, 0x79, 0x55, 0xe4, 0x4c, 0x8e, 0x7e, 0xf5, 0xe8, + 0xcf, 0xd0, 0xd1, 0xfd, 0xee, 0x8c, 0xa5, 0xf9, 0x13, 0xb2, 0xa8, 0x3a, 0xd7, 0x79, 0x6b, 0x94, 0x17, 0x5e, 0x29, 0x5c, + 0xba, 0xe2, 0x3f, 0x5f, 0x32, 0x84, 0xbc, 0xe0, 0xea, 0x96, 0xd6, 0xf1, 0xf8, 0xb5, 0x56, 0xce, 0xa4, 0x79, 0x45, 0xf8, + 0x4c, 0xc5, 0x1d, 0xeb, 0xa9, 0xda, 0x7b, 0x62, 0xbd, 0x9f, 0xde, 0xbb, 0x8a, 0xec, 0x67, 0xe5, 0xb8, 0xf2, 0xb2, 0xd5, + 0x6f, 0xda, 0x5a, 0x25, 0x03, 0xd9, 0xc1, 0xb3, 0xb6, 0x9e, 0x67, 0x71, 0xbf, 0x9b, 0xff, 0xc7, 0x32, 0x9b, 0x67, 0x1d, + 0x7b, 0xeb, 0xbe, 0x66, 0xcb, 0x95, 0x60, 0x4b, 0x4f, 0xc8, 0x69, 0xb6, 0xf5, 0x8a, 0x71, 0xd2, 0x92, 0x89, 0xde, 0x73, + 0xbf, 0xd3, 0xd8, 0x1b, 0x72, 0x92, 0x87, 0xdf, 0xb5, 0xee, 0xed, 0xcc, 0xa8, 0x94, 0x86, 0x2b, 0xfc, 0x96, 0xec, 0xa0, + 0x5c, 0xba, 0xf5, 0xae, 0xf1, 0xdf, 0x32, 0xff, 0xe7, 0x4d, 0xe3, 0xbf, 0xdc, 0x7c, 0xbf, 0xc7, 0xbf, 0xff, 0xac, 0x75, + 0xfe, 0xbf, 0xd7, 0xd6, 0x95, 0x19, 0xfc, 0xe3, 0xfb, 0x6d, 0xfb, 0x2a, 0x7d, 0xf6, 0xdf, 0x77, 0x7c, 0x8d, 0xf8, 0xbf, + 0xf3, 0x3c, 0x39, 0x1e, 0xff, 0x9f, 0x2f, 0xb0, 0xdf, 0x19, 0xba, 0xa3, 0x53, 0x8b, 0xff, 0x72, 0xcb, 0xad, 0x2b, 0x2b, + 0x5b, 0x8d, 0x3e, 0xab, 0xda, 0x59, 0xe9, 0xf3, 0xbe, 0xf1, 0xdf, 0x92, 0x2f, 0xbd, 0xea, 0x75, 0xf2, 0x31, 0x1d, 0x41, + 0x77, 0x8d, 0xff, 0xfa, 0x93, 0x87, 0xf1, 0x27, 0x64, 0xcf, 0xd8, 0x5a, 0x2e, 0xba, 0x83, 0xf7, 0xbc, 0x63, 0x7f, 0x5e, + 0xfc, 0xcf, 0x54, 0x28, 0x3c, 0xbf, 0xef, 0x72, 0x87, 0xeb, 0xe4, 0x1d, 0xf5, 0x10, 0xef, 0xb1, 0xdf, 0xd9, 0x34, 0x17, + 0xdd, 0xfb, 0x49, 0x8e, 0x3b, 0xf8, 0xf7, 0x7c, 0x6a, 0x30, 0xd6, 0x8f, 0x77, 0x6f, 0x7f, 0x56, 0x6f, 0xbc, 0x62, 0xbf, + 0x45, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x77, 0x5a, 0xc9, 0x93, 0xca, 0x2a, + 0xe0, 0xa3, 0xab, 0x76, 0xd1, 0xaf, 0x46, 0x6b, 0xa6, 0x66, 0x41, 0x95, 0xcc, 0x47, 0x6b, 0x6f, 0xca, 0xe5, 0x47, 0x73, + 0x4c, 0xbe, 0x33, 0x5c, 0xb5, 0x9a, 0xef, 0x77, 0xeb, 0xc5, 0x47, 0xfb, 0xfc, 0x68, 0xcd, 0xd4, 0xb9, 0x7a, 0xb1, 0xb5, + 0x95, 0xd2, 0x9f, 0x83, 0xe3, 0xd9, 0xae, 0x0a, 0xb0, 0x67, 0xef, 0x5c, 0xaf, 0xe7, 0x6b, 0x3d, 0x20, 0xf3, 0xd1, 0xff, + 0x1d, 0x7a, 0x50, 0xb6, 0xe5, 0x15, 0x3b, 0xf7, 0xf9, 0x43, 0x0f, 0xe5, 0x49, 0x39, 0x40, 0xdb, 0x5a, 0xf6, 0x72, 0xab, + 0xad, 0x8f, 0xf7, 0x39, 0x8d, 0x95, 0xfd, 0xee, 0xb5, 0x75, 0xa6, 0x9e, 0x2f, 0xb4, 0x5c, 0x11, 0xd7, 0xab, 0xa2, 0xbe, + 0xce, 0xd6, 0x96, 0xa3, 0x3d, 0xde, 0xe4, 0x58, 0xc5, 0x3f, 0xab, 0xe6, 0xfc, 0x77, 0xea, 0xf5, 0x99, 0x6a, 0x0b, 0xf1, + 0x8f, 0xf8, 0xff, 0x6e, 0xbd, 0x5e, 0xfc, 0xf3, 0x7d, 0xf3, 0xff, 0x32, 0x55, 0x2f, 0xfe, 0xb8, 0xd5, 0xd6, 0xf9, 0x6b, + 0xa1, 0xfb, 0x6c, 0xbd, 0x6b, 0x15, 0x44, 0xe0, 0x8a, 0x3b, 0xb0, 0x73, 0x4f, 0x70, 0x81, 0xd7, 0xc8, 0xc1, 0x46, 0xe2, + 0xda, 0xec, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8b, 0x3f, 0xff, 0x69, 0x07, 0x10, 0xff, 0xc0, + 0xb7, 0x8b, 0xff, 0xff, 0x01 }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle cyberFontRecs[189] = { + { 4, 4, 4 , 14 }, + { 16, 4, 1 , 8 }, + { 25, 4, 4 , 3 }, + { 37, 4, 8 , 8 }, + { 53, 4, 8 , 9 }, + { 69, 4, 8 , 8 }, + { 85, 4, 8 , 8 }, + { 101, 4, 1 , 3 }, + { 110, 4, 4 , 9 }, + { 122, 4, 4 , 9 }, + { 134, 4, 5 , 6 }, + { 147, 4, 5 , 6 }, + { 160, 4, 2 , 2 }, + { 170, 4, 4 , 1 }, + { 182, 4, 1 , 1 }, + { 191, 4, 8 , 8 }, + { 207, 4, 8 , 8 }, + { 223, 4, 2 , 8 }, + { 233, 4, 8 , 8 }, + { 249, 4, 8 , 8 }, + { 265, 4, 8 , 8 }, + { 281, 4, 8 , 8 }, + { 297, 4, 8 , 8 }, + { 313, 4, 7 , 8 }, + { 328, 4, 8 , 8 }, + { 344, 4, 8 , 8 }, + { 360, 4, 1 , 4 }, + { 369, 4, 2 , 5 }, + { 379, 4, 4 , 8 }, + { 391, 4, 5 , 3 }, + { 404, 4, 4 , 8 }, + { 416, 4, 7 , 8 }, + { 431, 4, 8 , 8 }, + { 447, 4, 8 , 8 }, + { 463, 4, 8 , 8 }, + { 479, 4, 8 , 8 }, + { 495, 4, 8 , 8 }, + { 4, 26, 7 , 8 }, + { 19, 26, 7 , 8 }, + { 34, 26, 8 , 8 }, + { 50, 26, 8 , 8 }, + { 66, 26, 5 , 8 }, + { 79, 26, 7 , 8 }, + { 94, 26, 8 , 8 }, + { 110, 26, 7 , 8 }, + { 125, 26, 8 , 8 }, + { 141, 26, 8 , 8 }, + { 157, 26, 8 , 8 }, + { 173, 26, 8 , 8 }, + { 189, 26, 8 , 9 }, + { 205, 26, 8 , 8 }, + { 221, 26, 8 , 8 }, + { 237, 26, 8 , 8 }, + { 253, 26, 8 , 8 }, + { 269, 26, 8 , 8 }, + { 285, 26, 9 , 8 }, + { 302, 26, 8 , 8 }, + { 318, 26, 8 , 8 }, + { 334, 26, 8 , 8 }, + { 350, 26, 4 , 9 }, + { 362, 26, 8 , 8 }, + { 378, 26, 4 , 9 }, + { 390, 26, 4 , 3 }, + { 402, 26, 7 , 1 }, + { 417, 26, 2 , 3 }, + { 427, 26, 7 , 5 }, + { 442, 26, 7 , 8 }, + { 457, 26, 7 , 5 }, + { 472, 26, 7 , 8 }, + { 487, 26, 7 , 5 }, + { 4, 48, 4 , 8 }, + { 16, 48, 7 , 7 }, + { 31, 48, 7 , 8 }, + { 46, 48, 1 , 8 }, + { 55, 48, 3 , 10 }, + { 66, 48, 7 , 8 }, + { 81, 48, 4 , 8 }, + { 93, 48, 9 , 5 }, + { 110, 48, 7 , 5 }, + { 125, 48, 7 , 5 }, + { 140, 48, 7 , 7 }, + { 155, 48, 7 , 7 }, + { 170, 48, 5 , 5 }, + { 183, 48, 7 , 5 }, + { 198, 48, 5 , 8 }, + { 211, 48, 7 , 5 }, + { 226, 48, 7 , 5 }, + { 241, 48, 9 , 5 }, + { 258, 48, 7 , 5 }, + { 273, 48, 7 , 7 }, + { 288, 48, 7 , 5 }, + { 303, 48, 4 , 9 }, + { 315, 48, 1 , 9 }, + { 324, 48, 4 , 9 }, + { 336, 48, 8 , 2 }, + { 352, 48, 1 , 8 }, + { 361, 48, 7 , 8 }, + { 376, 48, 7 , 8 }, + { 391, 48, 8 , 9 }, + { 407, 48, 8 , 9 }, + { 423, 48, 8 , 10 }, + { 439, 48, 4 , 9 }, + { 451, 48, 7 , 8 }, + { 466, 48, 8 , 8 }, + { 482, 48, 7 , 6 }, + { 497, 48, 5 , 3 }, + { 4, 70, 5 , 3 }, + { 17, 70, 8 , 8 }, + { 33, 70, 0 , 0 }, + { 41, 70, 4 , 3 }, + { 53, 70, 8 , 6 }, + { 69, 70, 4 , 5 }, + { 81, 70, 4 , 5 }, + { 93, 70, 8 , 10 }, + { 109, 70, 7 , 7 }, + { 124, 70, 5 , 7 }, + { 137, 70, 1 , 1 }, + { 146, 70, 7 , 8 }, + { 161, 70, 2 , 5 }, + { 171, 70, 4 , 5 }, + { 183, 70, 5 , 3 }, + { 196, 70, 14 , 8 }, + { 218, 70, 13 , 5 }, + { 239, 70, 8 , 9 }, + { 255, 70, 7 , 8 }, + { 270, 70, 8 , 10 }, + { 286, 70, 8 , 10 }, + { 302, 70, 8 , 10 }, + { 318, 70, 8 , 10 }, + { 334, 70, 8 , 9 }, + { 350, 70, 8 , 12 }, + { 366, 70, 14 , 8 }, + { 388, 70, 8 , 10 }, + { 404, 70, 7 , 10 }, + { 419, 70, 7 , 10 }, + { 434, 70, 7 , 10 }, + { 449, 70, 7 , 9 }, + { 464, 70, 5 , 10 }, + { 477, 70, 5 , 10 }, + { 490, 70, 5 , 10 }, + { 4, 92, 5 , 9 }, + { 17, 92, 8 , 8 }, + { 33, 92, 8 , 10 }, + { 49, 92, 8 , 10 }, + { 65, 92, 8 , 10 }, + { 81, 92, 8 , 10 }, + { 97, 92, 8 , 10 }, + { 113, 92, 8 , 9 }, + { 129, 92, 4 , 4 }, + { 141, 92, 8 , 8 }, + { 157, 92, 8 , 10 }, + { 173, 92, 8 , 10 }, + { 189, 92, 8 , 10 }, + { 205, 92, 8 , 9 }, + { 221, 92, 8 , 10 }, + { 237, 92, 7 , 9 }, + { 252, 92, 7 , 9 }, + { 267, 92, 7 , 8 }, + { 282, 92, 7 , 8 }, + { 297, 92, 7 , 8 }, + { 312, 92, 7 , 8 }, + { 327, 92, 7 , 8 }, + { 342, 92, 7 , 9 }, + { 357, 92, 13 , 5 }, + { 378, 92, 7 , 7 }, + { 393, 92, 7 , 8 }, + { 408, 92, 7 , 8 }, + { 423, 92, 7 , 8 }, + { 438, 92, 7 , 8 }, + { 453, 92, 3 , 8 }, + { 464, 92, 2 , 8 }, + { 474, 92, 3 , 8 }, + { 485, 92, 3 , 8 }, + { 4, 114, 8 , 8 }, + { 20, 114, 7 , 8 }, + { 35, 114, 7 , 8 }, + { 50, 114, 7 , 8 }, + { 65, 114, 7 , 8 }, + { 80, 114, 7 , 8 }, + { 95, 114, 7 , 8 }, + { 110, 114, 5 , 6 }, + { 123, 114, 7 , 5 }, + { 138, 114, 7 , 8 }, + { 153, 114, 7 , 8 }, + { 168, 114, 7 , 8 }, + { 183, 114, 7 , 8 }, + { 198, 114, 7 , 10 }, + { 213, 114, 7 , 10 }, + { 228, 114, 7 , 10 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo cyberFontGlyphs[189] = { + { 32, 0, 0, 4, { 0 }}, + { 33, 0, 3, 2, { 0 }}, + { 34, 0, 3, 4, { 0 }}, + { 35, 0, 3, 8, { 0 }}, + { 36, 0, 3, 8, { 0 }}, + { 37, 0, 3, 8, { 0 }}, + { 38, 0, 3, 8, { 0 }}, + { 39, 0, 3, 2, { 0 }}, + { 40, 0, 3, 4, { 0 }}, + { 41, 0, 3, 4, { 0 }}, + { 42, 0, 4, 6, { 0 }}, + { 43, 0, 4, 6, { 0 }}, + { 44, 0, 10, 3, { 0 }}, + { 45, 0, 7, 5, { 0 }}, + { 46, 0, 10, 2, { 0 }}, + { 47, 0, 3, 8, { 0 }}, + { 48, 0, 3, 8, { 0 }}, + { 49, 0, 3, 3, { 0 }}, + { 50, 0, 3, 8, { 0 }}, + { 51, 0, 3, 8, { 0 }}, + { 52, 0, 3, 8, { 0 }}, + { 53, 0, 3, 8, { 0 }}, + { 54, 0, 3, 8, { 0 }}, + { 55, 0, 3, 7, { 0 }}, + { 56, 0, 3, 8, { 0 }}, + { 57, 0, 3, 8, { 0 }}, + { 58, 0, 6, 2, { 0 }}, + { 59, 0, 6, 3, { 0 }}, + { 60, 0, 3, 5, { 0 }}, + { 61, 0, 6, 6, { 0 }}, + { 62, 0, 3, 5, { 0 }}, + { 63, 0, 3, 7, { 0 }}, + { 64, 0, 3, 8, { 0 }}, + { 65, 0, 3, 8, { 0 }}, + { 66, 0, 3, 8, { 0 }}, + { 67, 0, 3, 8, { 0 }}, + { 68, 0, 3, 8, { 0 }}, + { 69, 0, 3, 7, { 0 }}, + { 70, 0, 3, 7, { 0 }}, + { 71, 0, 3, 8, { 0 }}, + { 72, 0, 3, 8, { 0 }}, + { 73, 0, 3, 6, { 0 }}, + { 74, 0, 3, 7, { 0 }}, + { 75, 0, 3, 8, { 0 }}, + { 76, 0, 3, 7, { 0 }}, + { 77, 0, 3, 9, { 0 }}, + { 78, 0, 3, 8, { 0 }}, + { 79, 0, 3, 8, { 0 }}, + { 80, 0, 3, 8, { 0 }}, + { 81, 0, 3, 8, { 0 }}, + { 82, 0, 3, 8, { 0 }}, + { 83, 0, 3, 8, { 0 }}, + { 84, 0, 3, 8, { 0 }}, + { 85, 0, 3, 8, { 0 }}, + { 86, 0, 3, 8, { 0 }}, + { 87, 0, 3, 10, { 0 }}, + { 88, 0, 3, 8, { 0 }}, + { 89, 0, 3, 8, { 0 }}, + { 90, 0, 3, 8, { 0 }}, + { 91, 0, 3, 4, { 0 }}, + { 92, 0, 3, 8, { 0 }}, + { 93, 0, 3, 4, { 0 }}, + { 94, 0, 3, 4, { 0 }}, + { 95, 0, 11, 7, { 0 }}, + { 96, 0, 3, 3, { 0 }}, + { 97, 0, 6, 7, { 0 }}, + { 98, 0, 3, 7, { 0 }}, + { 99, 0, 6, 7, { 0 }}, + { 100, 0, 3, 7, { 0 }}, + { 101, 0, 6, 7, { 0 }}, + { 102, 0, 3, 5, { 0 }}, + { 103, 0, 6, 7, { 0 }}, + { 104, 0, 3, 7, { 0 }}, + { 105, 0, 3, 2, { 0 }}, + { 106, -2, 3, 2, { 0 }}, + { 107, 0, 3, 7, { 0 }}, + { 108, 0, 3, 4, { 0 }}, + { 109, 0, 6, 10, { 0 }}, + { 110, 0, 6, 7, { 0 }}, + { 111, 0, 6, 7, { 0 }}, + { 112, 0, 6, 7, { 0 }}, + { 113, 0, 6, 7, { 0 }}, + { 114, 0, 6, 6, { 0 }}, + { 115, 0, 6, 7, { 0 }}, + { 116, 0, 3, 6, { 0 }}, + { 117, 0, 6, 7, { 0 }}, + { 118, 0, 6, 7, { 0 }}, + { 119, 0, 6, 10, { 0 }}, + { 120, 0, 6, 7, { 0 }}, + { 121, 0, 6, 7, { 0 }}, + { 122, 0, 6, 7, { 0 }}, + { 123, 0, 3, 5, { 0 }}, + { 124, 0, 3, 2, { 0 }}, + { 125, 0, 3, 5, { 0 }}, + { 126, 0, 6, 8, { 0 }}, + { 161, 0, 3, 2, { 0 }}, + { 162, 0, 4, 7, { 0 }}, + { 163, 0, 3, 7, { 0 }}, + { 8364, 0, 3, 9, { 0 }}, + { 165, 0, 3, 8, { 0 }}, + { 352, 0, 1, 8, { 0 }}, + { 167, 0, 4, 5, { 0 }}, + { 353, 0, 3, 7, { 0 }}, + { 169, 0, 3, 9, { 0 }}, + { 170, 0, 3, 7, { 0 }}, + { 171, 0, 6, 6, { 0 }}, + { 172, 0, 7, 6, { 0 }}, + { 174, 0, 3, 9, { 0 }}, + { 175, 0, 0, 0, { 0 }}, + { 176, 0, 3, 4, { 0 }}, + { 177, 0, 6, 8, { 0 }}, + { 178, 0, 3, 4, { 0 }}, + { 179, 0, 3, 4, { 0 }}, + { 381, 0, 1, 8, { 0 }}, + { 181, 0, 6, 7, { 0 }}, + { 182, 0, 4, 6, { 0 }}, + { 183, 0, 7, 2, { 0 }}, + { 382, 0, 3, 7, { 0 }}, + { 185, 0, 3, 4, { 0 }}, + { 186, 0, 3, 5, { 0 }}, + { 187, 0, 6, 6, { 0 }}, + { 338, 0, 3, 14, { 0 }}, + { 339, 0, 6, 13, { 0 }}, + { 376, 0, 2, 8, { 0 }}, + { 191, 0, 3, 7, { 0 }}, + { 192, 0, 1, 8, { 0 }}, + { 193, 0, 1, 8, { 0 }}, + { 194, 0, 1, 8, { 0 }}, + { 195, 0, 1, 8, { 0 }}, + { 196, 0, 2, 8, { 0 }}, + { 197, 0, -1, 8, { 0 }}, + { 198, 0, 3, 14, { 0 }}, + { 199, 0, 3, 8, { 0 }}, + { 200, 0, 1, 7, { 0 }}, + { 201, 0, 1, 7, { 0 }}, + { 202, 0, 1, 7, { 0 }}, + { 203, 0, 2, 7, { 0 }}, + { 204, 0, 1, 6, { 0 }}, + { 205, 0, 1, 6, { 0 }}, + { 206, 0, 1, 6, { 0 }}, + { 207, 0, 2, 6, { 0 }}, + { 208, 0, 3, 9, { 0 }}, + { 209, 0, 1, 8, { 0 }}, + { 210, 0, 1, 8, { 0 }}, + { 211, 0, 1, 8, { 0 }}, + { 212, 0, 1, 8, { 0 }}, + { 213, 0, 1, 8, { 0 }}, + { 214, 0, 2, 8, { 0 }}, + { 215, 1, 6, 6, { 0 }}, + { 216, 0, 3, 8, { 0 }}, + { 217, 0, 1, 8, { 0 }}, + { 218, 0, 1, 8, { 0 }}, + { 219, 0, 1, 8, { 0 }}, + { 220, 0, 2, 8, { 0 }}, + { 221, 0, 1, 8, { 0 }}, + { 222, 0, 3, 7, { 0 }}, + { 223, 0, 3, 7, { 0 }}, + { 224, 0, 3, 7, { 0 }}, + { 225, 0, 3, 7, { 0 }}, + { 226, 0, 3, 7, { 0 }}, + { 227, 0, 3, 7, { 0 }}, + { 228, 0, 3, 7, { 0 }}, + { 229, 0, 2, 7, { 0 }}, + { 230, 0, 6, 13, { 0 }}, + { 231, 0, 6, 7, { 0 }}, + { 232, 0, 3, 7, { 0 }}, + { 233, 0, 3, 7, { 0 }}, + { 234, 0, 3, 7, { 0 }}, + { 235, 0, 3, 7, { 0 }}, + { 236, -1, 3, 2, { 0 }}, + { 237, 0, 3, 2, { 0 }}, + { 238, -1, 3, 2, { 0 }}, + { 239, -1, 3, 2, { 0 }}, + { 240, 0, 3, 8, { 0 }}, + { 241, 0, 3, 7, { 0 }}, + { 242, 0, 3, 7, { 0 }}, + { 243, 0, 3, 7, { 0 }}, + { 244, 0, 3, 7, { 0 }}, + { 245, 0, 3, 7, { 0 }}, + { 246, 0, 3, 7, { 0 }}, + { 247, 0, 4, 6, { 0 }}, + { 248, 0, 6, 7, { 0 }}, + { 249, 0, 3, 7, { 0 }}, + { 250, 0, 3, 7, { 0 }}, + { 251, 0, 3, 7, { 0 }}, + { 252, 0, 3, 7, { 0 }}, + { 253, 0, 3, 7, { 0 }}, + { 254, 0, 3, 7, { 0 }}, + { 255, 0, 3, 7, { 0 }}, +}; + +// Style loading function: Cyber +static void GuiLoadStyleCyber(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < CYBER_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(cyberStyleProps[i].controlId, cyberStyleProps[i].propertyId, cyberStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int cyberFontDataSize = 0; + unsigned char *data = DecompressData(cyberFontData, CYBER_STYLE_FONT_ATLAS_COMP_SIZE, &cyberFontDataSize); + Image imFont = { data, 512, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 14; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, cyberFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, cyberFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 510, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_dark.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_dark.h new file mode 100644 index 0000000..500e56b --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_dark.h @@ -0,0 +1,589 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleDark(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define DARK_STYLE_PROPS_COUNT 23 + +// Custom style name: Dark +static const GuiStyleProp darkStyleProps[DARK_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0x878787ff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0x2c2c2cff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0xc3c3c3ff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0xe1e1e1ff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0x848484ff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0x181818ff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0x000000ff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0xefefefff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0x202020ff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0x6a6a6aff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0x818181ff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0x606060ff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE + { 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING + { 0, 18, (int)0x9d9d9dff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0x3c3c3cff }, // DEFAULT_BACKGROUND_COLOR + { 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING + { 1, 5, (int)0xf7f7f7ff }, // LABEL_TEXT_COLOR_FOCUSED + { 1, 8, (int)0x898989ff }, // LABEL_TEXT_COLOR_PRESSED + { 4, 5, (int)0xb0b0b0ff }, // SLIDER_TEXT_COLOR_FOCUSED + { 5, 5, (int)0x848484ff }, // PROGRESSBAR_TEXT_COLOR_FOCUSED + { 9, 5, (int)0xf5f5f5ff }, // TEXTBOX_TEXT_COLOR_FOCUSED + { 10, 5, (int)0xf6f6f6ff }, // VALUEBOX_TEXT_COLOR_FOCUSED +}; + +// WARNING: This style uses a custom font: "PixelOperator.ttf" (size: 16, spacing: 0) + +#define DARK_STYLE_FONT_ATLAS_COMP_SIZE 2138 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char darkFontData[DARK_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0xdd, 0xdb, 0x92, 0xa5, 0xba, 0x0d, 0x00, 0x50, 0xff, 0xff, 0x4f, 0x2b, 0x0f, 0xa9, 0x54, 0x32, 0x95, 0xd3, 0x80, 0x64, + 0xd9, 0x98, 0x9e, 0x35, 0xeb, 0xad, 0x77, 0x4f, 0xc3, 0x36, 0x96, 0x6f, 0x80, 0x1c, 0x03, 0x00, 0x00, 0x00, 0xf8, 0xeb, + 0xc5, 0x3f, 0xfe, 0x24, 0x7e, 0xfc, 0xcd, 0x78, 0xfc, 0x77, 0xae, 0x7f, 0xfe, 0x9f, 0x4f, 0xe3, 0xe2, 0x58, 0xcf, 0xce, + 0x35, 0x7b, 0xdc, 0x48, 0x94, 0xc4, 0x3f, 0x9f, 0x5f, 0x3c, 0xfe, 0xbb, 0x3f, 0x7d, 0xbf, 0xfc, 0xef, 0x5f, 0xfd, 0xa5, + 0xeb, 0xb3, 0x8f, 0x54, 0xb9, 0xe7, 0xff, 0x4f, 0xee, 0x2a, 0xc6, 0x92, 0xb2, 0xbf, 0x3f, 0xbb, 0xfc, 0xb9, 0x77, 0xfe, + 0x9f, 0xb8, 0xf8, 0x3e, 0x95, 0xab, 0xf4, 0x24, 0xb6, 0x4e, 0x88, 0xff, 0x78, 0x14, 0x89, 0xd1, 0x5a, 0x73, 0xfe, 0x7b, + 0xd4, 0x68, 0x6c, 0xa9, 0xaa, 0x25, 0x79, 0x15, 0xe9, 0xf9, 0xf2, 0xb8, 0xaa, 0xfd, 0xf9, 0x16, 0x30, 0x5a, 0xbe, 0xcb, + 0x7c, 0x6d, 0x8c, 0xe9, 0xdf, 0x7e, 0x56, 0x93, 0x7a, 0xbe, 0xd5, 0xcc, 0x27, 0xa3, 0xe5, 0x2a, 0xbd, 0x11, 0xff, 0x51, + 0x6e, 0xa9, 0x22, 0x19, 0xd1, 0x1d, 0x25, 0x58, 0x69, 0x87, 0xc7, 0xc6, 0xf8, 0x8f, 0xd6, 0xb1, 0x4b, 0xb4, 0xd5, 0xb9, + 0x37, 0xe2, 0xff, 0xba, 0xd7, 0x1e, 0x2d, 0xf5, 0x26, 0x6e, 0xca, 0xa8, 0x37, 0x96, 0xd7, 0x8e, 0x53, 0x57, 0xc7, 0xff, + 0xf5, 0x6f, 0x66, 0xfb, 0xdb, 0x48, 0xf6, 0xdd, 0x1d, 0xe5, 0x54, 0xeb, 0xff, 0xfb, 0xcb, 0x31, 0x7e, 0xec, 0x9b, 0xab, + 0xe3, 0x90, 0x4c, 0x09, 0x47, 0x72, 0x76, 0x35, 0xdb, 0xc3, 0xbe, 0xd9, 0xff, 0x3f, 0x1b, 0x0b, 0x8a, 0xff, 0xb5, 0xf1, + 0x5f, 0xf9, 0x26, 0xf1, 0xf0, 0x0c, 0x2a, 0x7d, 0xe2, 0x38, 0x20, 0xfe, 0xb3, 0xed, 0xd0, 0x75, 0x59, 0x75, 0x8d, 0xe5, + 0xb3, 0xeb, 0x12, 0xcf, 0x66, 0xd8, 0xfb, 0x6a, 0x61, 0x7e, 0x6c, 0x94, 0x8f, 0xff, 0x7c, 0xeb, 0x79, 0xf7, 0xd7, 0xb2, + 0xa5, 0xfa, 0xf3, 0xcc, 0x6e, 0xbe, 0xc4, 0xf7, 0xc5, 0x7f, 0x14, 0xfa, 0x94, 0xf7, 0xe3, 0xb9, 0x27, 0xfe, 0xa3, 0xb0, + 0x72, 0x31, 0xda, 0x56, 0xf9, 0x6a, 0xeb, 0x12, 0x7d, 0x6b, 0x06, 0xef, 0x5f, 0x81, 0xfb, 0xf8, 0xbf, 0x9b, 0x0f, 0xbe, + 0xdf, 0xff, 0xc7, 0x11, 0xfd, 0x7f, 0x94, 0xd7, 0x86, 0x47, 0xa1, 0xf5, 0xfd, 0x5a, 0xfc, 0x47, 0x21, 0x66, 0xa2, 0x65, + 0x5e, 0x3e, 0x96, 0xac, 0xe5, 0xf5, 0xae, 0x19, 0xee, 0xb9, 0x5a, 0x77, 0xbd, 0x68, 0xd7, 0xac, 0xe6, 0x77, 0xc5, 0xff, + 0x68, 0xe8, 0xff, 0x9f, 0x8d, 0x01, 0x66, 0xbf, 0x47, 0x7c, 0xac, 0xf7, 0xef, 0x8c, 0xff, 0x5d, 0x2b, 0xf6, 0xeb, 0x6b, + 0x63, 0x1c, 0x71, 0x65, 0xac, 0xff, 0x77, 0x8e, 0xff, 0xeb, 0x6b, 0x00, 0xb9, 0x79, 0x4c, 0x1c, 0x1a, 0xfd, 0x95, 0x39, + 0x73, 0xd7, 0x1d, 0xfb, 0xde, 0xa7, 0x09, 0xa2, 0xf0, 0xac, 0x46, 0xcf, 0x2a, 0xce, 0xea, 0x6b, 0x90, 0xef, 0xff, 0x77, + 0xdd, 0xff, 0xbf, 0x1f, 0x73, 0x9f, 0xd1, 0xff, 0x8f, 0xdb, 0xde, 0xfd, 0x94, 0xf3, 0x01, 0xf6, 0xb6, 0x00, 0x21, 0xfa, + 0xc1, 0x73, 0xc4, 0x80, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x9f, 0xcf, + 0xef, 0xcf, 0x63, 0x90, 0xcf, 0x84, 0xbd, 0x3e, 0x03, 0xfb, 0x4c, 0x4e, 0xe0, 0x6a, 0x09, 0x75, 0xfd, 0xc5, 0xeb, 0xdc, + 0xf1, 0x99, 0x4c, 0x0b, 0xcf, 0x6b, 0x46, 0xa4, 0x77, 0x3f, 0xe8, 0xcc, 0x28, 0x50, 0xc9, 0x69, 0x30, 0x92, 0x75, 0xa2, + 0x37, 0x97, 0x52, 0xee, 0xec, 0xf7, 0xd4, 0xf8, 0x2f, 0xc4, 0xff, 0xfb, 0x9f, 0x8c, 0x42, 0xfe, 0x9e, 0x9d, 0xf1, 0x9f, + 0xad, 0x7b, 0xb5, 0xfc, 0xb8, 0x73, 0x7d, 0xc9, 0xee, 0x8c, 0x62, 0xd1, 0x78, 0x0d, 0xf7, 0xf5, 0xab, 0x7f, 0xe6, 0xd0, + 0xd9, 0x51, 0xaf, 0x67, 0xe2, 0x3f, 0x9b, 0xfb, 0x34, 0x2e, 0x5a, 0xe1, 0x73, 0xe2, 0x7f, 0x6c, 0x89, 0xff, 0xf8, 0x48, + 0xfc, 0x77, 0x67, 0x92, 0xe9, 0xca, 0x42, 0x5e, 0xc9, 0x7c, 0x93, 0xbf, 0x86, 0xf5, 0x0c, 0xbf, 0xd5, 0x1a, 0xf7, 0x9d, + 0xf8, 0xaf, 0xd4, 0xad, 0xeb, 0x3c, 0xab, 0xe2, 0xff, 0xbe, 0x6c, 0x2b, 0xbd, 0xc9, 0xfc, 0xcf, 0x7b, 0x22, 0x7f, 0x4f, + 0x1e, 0xdd, 0xbb, 0x7d, 0xb4, 0xd6, 0xd6, 0x95, 0xd9, 0xbe, 0xf2, 0x2b, 0xf1, 0x1f, 0xc5, 0xbf, 0x12, 0x37, 0x2d, 0x4a, + 0x6f, 0x06, 0xf6, 0x9e, 0xac, 0x6d, 0x7b, 0xe3, 0xbf, 0x7b, 0xdf, 0x9f, 0x33, 0xe2, 0xff, 0xfd, 0x3c, 0xba, 0xab, 0xe6, + 0x70, 0xbd, 0x7d, 0xe5, 0xef, 0xee, 0xff, 0xef, 0x5b, 0xc9, 0x1d, 0xf5, 0x63, 0xa6, 0xa7, 0x7f, 0xb3, 0xff, 0x7f, 0xef, + 0xe7, 0xef, 0xc6, 0x7f, 0x57, 0x6d, 0x8f, 0x8d, 0x23, 0x93, 0x6a, 0x5f, 0xb9, 0x73, 0x95, 0x6c, 0xf7, 0xfc, 0x7f, 0xd5, + 0x37, 0x1b, 0xe9, 0xd1, 0x44, 0x1c, 0x1b, 0xff, 0x33, 0xab, 0x90, 0xeb, 0xc6, 0x0b, 0xef, 0x8c, 0xff, 0x6b, 0xfb, 0xdb, + 0x56, 0x76, 0x05, 0x3c, 0xad, 0xff, 0xdf, 0x75, 0x97, 0x6c, 0x6c, 0x8e, 0xc9, 0xbd, 0xc7, 0xea, 0xdc, 0xa5, 0x2e, 0x9f, + 0xbf, 0x3f, 0x9a, 0x47, 0x78, 0x5f, 0x8f, 0xff, 0xfa, 0x2a, 0xff, 0x68, 0x5a, 0x95, 0x7c, 0x6f, 0xfc, 0xbf, 0x7b, 0xa7, + 0x93, 0xca, 0x51, 0x7a, 0xda, 0xdf, 0x67, 0x77, 0x85, 0x7b, 0x7b, 0x81, 0x9f, 0xef, 0x36, 0x44, 0x53, 0xcf, 0xd1, 0x95, + 0xbf, 0xff, 0xcf, 0x73, 0xcb, 0xef, 0x78, 0x96, 0xbf, 0x13, 0x1f, 0xc9, 0xfd, 0xf4, 0xdf, 0x88, 0xff, 0xca, 0x91, 0x2b, + 0xff, 0x2b, 0x7b, 0x0d, 0x3b, 0xe3, 0xff, 0xbd, 0x16, 0x40, 0xde, 0x4d, 0x38, 0x71, 0x14, 0x03, 0xfc, 0x9e, 0x16, 0xc0, + 0x0e, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xee, 0x37, 0xb1, 0x7f, 0xce, + 0xcd, 0x55, 0xc9, 0x1a, 0x9f, 0x7f, 0x4f, 0x7a, 0x67, 0xc6, 0xfc, 0x71, 0x93, 0x85, 0xec, 0xfa, 0xb7, 0xfe, 0xfc, 0xa4, + 0x23, 0x1f, 0x6f, 0x34, 0xbe, 0xb5, 0x9e, 0xc9, 0xe5, 0x1d, 0x85, 0x6c, 0x03, 0x57, 0x6f, 0xc6, 0xe6, 0xae, 0x41, 0xee, + 0x18, 0xd1, 0x9e, 0xcf, 0x2c, 0xd2, 0xd9, 0x63, 0xfe, 0xf7, 0x9c, 0x9f, 0x67, 0xfa, 0x8d, 0xf2, 0x9b, 0xc6, 0x77, 0xb9, + 0xcc, 0xf2, 0xf9, 0x11, 0x2a, 0x39, 0xf3, 0xf2, 0x79, 0x36, 0x4f, 0xcf, 0x98, 0x3f, 0x9f, 0x79, 0x27, 0x6e, 0xea, 0xe4, + 0xf3, 0x5a, 0xfa, 0x24, 0x73, 0x44, 0x4f, 0x06, 0xa1, 0xda, 0x37, 0x8e, 0xe9, 0xda, 0x5a, 0xb9, 0xde, 0x99, 0x23, 0xc4, + 0xf4, 0xfb, 0xfc, 0x95, 0xfa, 0x1e, 0x93, 0xd7, 0xbd, 0xfe, 0x8d, 0x67, 0xb2, 0x10, 0x44, 0xa9, 0xa7, 0xeb, 0x2c, 0xc1, + 0xeb, 0x4f, 0xf2, 0x19, 0x33, 0xe3, 0x61, 0x7c, 0x75, 0xff, 0x74, 0x24, 0xdb, 0x9b, 0x4a, 0xbe, 0xba, 0x99, 0x5d, 0x33, + 0xe6, 0xc6, 0x88, 0xe3, 0x22, 0xbb, 0x52, 0x3e, 0xfa, 0x7f, 0xee, 0x6f, 0x62, 0x32, 0xfe, 0xa3, 0x98, 0x59, 0xa8, 0x1e, + 0x23, 0xd9, 0xf8, 0x9f, 0xbf, 0x0a, 0xbb, 0xe2, 0xbf, 0x92, 0xf5, 0xe0, 0xfd, 0x8c, 0xd9, 0xb5, 0x9e, 0x70, 0x6f, 0xfc, + 0xc7, 0x83, 0xf6, 0x6b, 0xa4, 0xe7, 0x2f, 0xa3, 0x90, 0xe1, 0xfc, 0xf9, 0xec, 0x22, 0x5a, 0xfb, 0xff, 0x71, 0x59, 0x26, + 0xf1, 0xc2, 0xf8, 0xbf, 0xb6, 0xdf, 0x5b, 0x2e, 0xfe, 0x67, 0x5a, 0xa7, 0xfd, 0xfd, 0x7f, 0xad, 0x5f, 0x3b, 0xb9, 0xff, + 0x7f, 0x27, 0x63, 0x76, 0x14, 0xe6, 0xd9, 0x95, 0xe3, 0xc6, 0xe4, 0xc8, 0xe0, 0xd9, 0x5c, 0x30, 0x1a, 0xe6, 0xab, 0x1d, + 0xf1, 0xdf, 0x3f, 0xc2, 0xae, 0xcc, 0xad, 0x6a, 0xfd, 0x7f, 0xb4, 0xce, 0xff, 0x23, 0xdd, 0xce, 0xcf, 0xc5, 0x7f, 0xe7, + 0x6e, 0x4b, 0x2b, 0x32, 0xe6, 0xe6, 0x77, 0x76, 0x7c, 0xab, 0xff, 0x1f, 0xa5, 0xfe, 0xbf, 0xd6, 0x7b, 0xcd, 0xd4, 0xca, + 0xd8, 0x90, 0xeb, 0x2e, 0x37, 0xfe, 0x5f, 0x3d, 0xca, 0xce, 0xcf, 0x28, 0x63, 0x53, 0xfb, 0xd4, 0x3d, 0xf7, 0xab, 0x45, + 0x4b, 0xa4, 0xc7, 0xd7, 0x3b, 0x33, 0xe6, 0x56, 0xd6, 0x9e, 0xcf, 0x8f, 0xff, 0xce, 0x3d, 0x4c, 0x2a, 0x77, 0x17, 0xa2, + 0xa1, 0x6f, 0x5e, 0xdd, 0xff, 0xcf, 0xce, 0xff, 0x2b, 0xb9, 0xf4, 0xf7, 0xac, 0xff, 0x8d, 0xa5, 0x6b, 0x3f, 0xd1, 0x7a, + 0x3f, 0x71, 0x1c, 0xd0, 0x7e, 0x77, 0x66, 0x89, 0x7f, 0x63, 0xfe, 0xdf, 0x95, 0x81, 0x7d, 0x94, 0xef, 0x09, 0xd5, 0xd7, + 0xff, 0x67, 0x6b, 0x60, 0x1c, 0xd3, 0xf7, 0x8f, 0xc7, 0x7b, 0xe8, 0xc4, 0x4b, 0xd1, 0x7f, 0x5a, 0xfc, 0x9f, 0xf2, 0x44, + 0x43, 0x47, 0xbb, 0x15, 0x2d, 0xad, 0x5b, 0x65, 0xdf, 0x96, 0xce, 0x71, 0xd4, 0xfc, 0xfc, 0x7f, 0xcd, 0xba, 0xfa, 0x1b, + 0xc7, 0x98, 0xb9, 0x23, 0x3b, 0x1f, 0xff, 0xb1, 0xbc, 0xe4, 0xe4, 0x23, 0xfe, 0x4e, 0x2b, 0x75, 0xde, 0xf1, 0xfe, 0xe6, + 0xda, 0x13, 0x1b, 0x9f, 0xb5, 0x13, 0xa1, 0xc4, 0xd1, 0xf3, 0x21, 0xd7, 0x03, 0xfe, 0xe6, 0xf9, 0xd0, 0xdf, 0xfa, 0x1c, + 0xbc, 0x92, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4e, 0x7d, 0x3b, 0xa4, 0x92, 0x59, + 0x72, 0x34, 0xbf, 0x8b, 0x9e, 0xcf, 0xad, 0x5f, 0x3d, 0xbb, 0xbb, 0xf7, 0xa5, 0x6b, 0xf9, 0x79, 0x6b, 0xe5, 0x34, 0x97, + 0x8f, 0x28, 0x97, 0x53, 0xed, 0x7e, 0xff, 0x83, 0x38, 0xf2, 0x6a, 0xde, 0x65, 0x75, 0x8d, 0x42, 0x3e, 0xd5, 0xce, 0xeb, + 0x35, 0x4a, 0x65, 0xb7, 0xab, 0x96, 0x3d, 0x7f, 0x3b, 0x34, 0x36, 0xbc, 0x4f, 0x59, 0x8b, 0x85, 0x5a, 0x6e, 0xc3, 0xb9, + 0xdc, 0x61, 0xb1, 0xf8, 0x9b, 0xe5, 0xca, 0x6f, 0x7e, 0x3f, 0x89, 0xfb, 0x6c, 0xab, 0xf1, 0xb9, 0xab, 0x59, 0xcd, 0xf8, + 0xde, 0x7d, 0xbd, 0xea, 0xb5, 0xe5, 0x84, 0x5a, 0xb6, 0x7e, 0x67, 0x89, 0x37, 0xde, 0x6e, 0xad, 0x66, 0xc4, 0x8d, 0xcf, + 0xbf, 0x73, 0x1a, 0x1f, 0xcd, 0x05, 0x50, 0xcb, 0x13, 0xb9, 0xeb, 0x5b, 0x55, 0x8e, 0x14, 0xa5, 0x3d, 0x9b, 0xc6, 0xf6, + 0xec, 0x10, 0xf9, 0xec, 0xe7, 0xa3, 0x94, 0xef, 0xb3, 0xfb, 0x93, 0xca, 0x15, 0xa9, 0xc7, 0xff, 0x55, 0x39, 0x55, 0x3e, + 0x99, 0xed, 0xff, 0xc7, 0xf2, 0x7d, 0x18, 0x4e, 0xb9, 0x9a, 0x77, 0xfd, 0x7f, 0xb4, 0xed, 0x98, 0xb4, 0xf7, 0x93, 0x1d, + 0xe5, 0xda, 0x11, 0x0b, 0xbb, 0xf6, 0xfb, 0x8b, 0x74, 0xad, 0x18, 0xe9, 0x1c, 0x7b, 0xf5, 0xd9, 0xd7, 0xae, 0x4f, 0x56, + 0xc4, 0x7f, 0x5c, 0xcc, 0x93, 0xbb, 0x77, 0x1d, 0xeb, 0xbe, 0x9a, 0x4f, 0x5a, 0x86, 0x2f, 0xc6, 0xff, 0x8e, 0xf8, 0x99, + 0x9d, 0xff, 0x47, 0x79, 0x37, 0x9d, 0x33, 0x6b, 0x4c, 0x3c, 0xcc, 0xe8, 0xfc, 0xdb, 0xe2, 0x7f, 0x6f, 0x19, 0x77, 0xb7, + 0xe6, 0xd7, 0x23, 0xec, 0xf1, 0xd1, 0xf8, 0x9f, 0xdd, 0xef, 0x6d, 0x7e, 0xee, 0x7a, 0xbf, 0xfe, 0xdf, 0xb9, 0xb2, 0x71, + 0x46, 0xfc, 0x9f, 0x12, 0xe5, 0xb9, 0x32, 0x5f, 0x1b, 0xff, 0xef, 0xc7, 0x50, 0x57, 0x1f, 0xf6, 0xde, 0xb9, 0x47, 0xdb, + 0xfc, 0xff, 0x7e, 0x97, 0xe4, 0xdc, 0xdd, 0x9d, 0xbd, 0xab, 0x49, 0x3b, 0x4b, 0xbd, 0x73, 0xcf, 0xe1, 0xa7, 0x63, 0x87, + 0xee, 0xf9, 0xee, 0x19, 0xfd, 0x7f, 0x88, 0xff, 0x05, 0x6b, 0xe1, 0x27, 0xf4, 0x92, 0xab, 0xee, 0xe5, 0xe5, 0xb3, 0xd8, + 0xf7, 0x7e, 0x32, 0x5b, 0x52, 0xf9, 0xfb, 0xff, 0x5f, 0x1f, 0xff, 0x3f, 0xd9, 0xe1, 0xe7, 0x5b, 0xf1, 0x1f, 0xc5, 0x15, + 0xc5, 0x33, 0xe2, 0x3f, 0x36, 0x8e, 0x6a, 0x57, 0xdc, 0xcb, 0x3f, 0x79, 0xfc, 0xdf, 0xbf, 0x13, 0xd4, 0xd7, 0xe3, 0xff, + 0x0b, 0x63, 0xe8, 0x35, 0x4f, 0xa1, 0xbc, 0x17, 0xff, 0x73, 0x77, 0x86, 0x4f, 0x1e, 0xff, 0x9f, 0x1e, 0xff, 0xb3, 0x57, + 0x25, 0x36, 0xcd, 0xff, 0x9f, 0x8e, 0x34, 0x7e, 0x7f, 0xfc, 0x8f, 0xad, 0x7b, 0xf7, 0xd7, 0xe7, 0x9b, 0xe3, 0xd0, 0x67, + 0x61, 0xce, 0x79, 0x8a, 0xe3, 0xfd, 0x99, 0xcd, 0xfc, 0xae, 0xa8, 0xeb, 0xef, 0xff, 0x8f, 0x65, 0xfd, 0x7f, 0xef, 0x93, + 0x2d, 0xbb, 0xee, 0xff, 0xef, 0x7d, 0xa2, 0xa8, 0xfb, 0x0c, 0xc5, 0xff, 0x37, 0xda, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xe2, 0x73, 0xf2, 0x2b, 0x72, 0xeb, 0xf7, 0xe7, 0xc3, 0x38, 0x3d, 0xb7, 0xfe, + 0xdd, 0xfb, 0x33, 0xe3, 0xd8, 0xdc, 0xfa, 0xe3, 0x51, 0x8e, 0xa2, 0xef, 0xe5, 0xd6, 0xf7, 0xee, 0xc7, 0xd3, 0xb7, 0x64, + 0xd6, 0xe5, 0xd6, 0xef, 0x7b, 0x87, 0xfa, 0xf4, 0xdc, 0xfa, 0xe3, 0x26, 0x13, 0xd1, 0xc9, 0xb9, 0xf5, 0xeb, 0x6f, 0x51, + 0x9d, 0x9a, 0x5b, 0x9f, 0xb5, 0xef, 0x4e, 0x3e, 0x6d, 0xfb, 0xe3, 0xc5, 0x6b, 0xf6, 0x46, 0x36, 0x84, 0x93, 0x6b, 0x64, + 0x3e, 0x5b, 0xd3, 0x8a, 0x16, 0xa5, 0xf3, 0x7d, 0xcd, 0xb3, 0x73, 0xeb, 0x7f, 0x3d, 0xc6, 0xeb, 0xd9, 0x58, 0xa3, 0x9c, + 0xf3, 0xbe, 0xef, 0x5d, 0xed, 0x48, 0x8d, 0x1b, 0xd7, 0xe6, 0xd6, 0xba, 0x6e, 0x47, 0xcf, 0xdd, 0x29, 0xe1, 0xdb, 0xb9, + 0xb5, 0xc5, 0x7f, 0x4f, 0xab, 0x1b, 0x4d, 0x51, 0xf7, 0xf4, 0x93, 0x7d, 0x59, 0x83, 0xfa, 0xe2, 0x3f, 0xda, 0x3f, 0xdb, + 0x9b, 0x5b, 0xab, 0xba, 0x9e, 0x20, 0xfe, 0x7f, 0x57, 0x3b, 0x90, 0x99, 0xd1, 0x3e, 0x29, 0xf7, 0x37, 0x6b, 0xc0, 0xce, + 0xdc, 0x5a, 0x5f, 0x8f, 0xff, 0x4a, 0xff, 0x20, 0xfe, 0x7f, 0xcf, 0xf8, 0xbf, 0xaf, 0x2f, 0xaf, 0xaf, 0xff, 0x7f, 0x79, + 0x6f, 0xad, 0xdf, 0x19, 0xff, 0x67, 0xe4, 0xd6, 0x15, 0xff, 0xef, 0x8c, 0xff, 0x6b, 0xfb, 0x13, 0xac, 0x58, 0xcd, 0xed, + 0x9d, 0x4d, 0x88, 0xff, 0xd5, 0x75, 0xe7, 0xa4, 0x9d, 0x21, 0xc4, 0x78, 0x7d, 0xfe, 0x5f, 0xdb, 0x13, 0xb4, 0xda, 0x02, + 0xec, 0xcb, 0xd5, 0xfa, 0x46, 0x6e, 0x7d, 0xb9, 0x75, 0x67, 0xae, 0xd7, 0xf5, 0xe8, 0xef, 0x9b, 0xf7, 0x63, 0x4e, 0x1f, + 0xff, 0xf7, 0xde, 0xab, 0xf9, 0xff, 0x35, 0xa5, 0xd5, 0x2b, 0xde, 0xab, 0xc6, 0xff, 0x2b, 0xda, 0xd8, 0x37, 0x4b, 0x63, + 0xcd, 0xbd, 0xa3, 0xfe, 0x33, 0x8c, 0xa6, 0xd1, 0x1f, 0xef, 0xb4, 0x1a, 0xb0, 0x66, 0x9c, 0xf1, 0x7e, 0x4b, 0x08, 0x7c, + 0xed, 0x49, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x93, 0xfc, 0xfb, 0x9f, 0x72, 0x00, 0xf1, 0x0f, 0xfc, 0x75, 0xf1, 0xff, 0x2f }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle darkFontRecs[189] = { + { 4, 4, 4 , 16 }, + { 16, 4, 1 , 9 }, + { 25, 4, 3 , 3 }, + { 36, 4, 6 , 9 }, + { 50, 4, 5 , 13 }, + { 63, 4, 7 , 9 }, + { 78, 4, 5 , 9 }, + { 91, 4, 1 , 3 }, + { 100, 4, 3 , 9 }, + { 111, 4, 3 , 9 }, + { 122, 4, 5 , 5 }, + { 135, 4, 5 , 5 }, + { 148, 4, 2 , 3 }, + { 158, 4, 4 , 1 }, + { 170, 4, 1 , 1 }, + { 179, 4, 3 , 9 }, + { 190, 4, 5 , 9 }, + { 203, 4, 3 , 9 }, + { 214, 4, 5 , 9 }, + { 227, 4, 5 , 9 }, + { 240, 4, 5 , 9 }, + { 253, 4, 5 , 9 }, + { 266, 4, 5 , 9 }, + { 279, 4, 5 , 9 }, + { 292, 4, 5 , 9 }, + { 305, 4, 5 , 9 }, + { 318, 4, 1 , 7 }, + { 327, 4, 2 , 9 }, + { 337, 4, 3 , 5 }, + { 348, 4, 4 , 3 }, + { 360, 4, 3 , 5 }, + { 371, 4, 5 , 9 }, + { 384, 4, 7 , 9 }, + { 399, 4, 5 , 9 }, + { 412, 4, 5 , 9 }, + { 425, 4, 5 , 9 }, + { 438, 4, 5 , 9 }, + { 451, 4, 5 , 9 }, + { 464, 4, 5 , 9 }, + { 477, 4, 5 , 9 }, + { 490, 4, 5 , 9 }, + { 4, 28, 1 , 9 }, + { 13, 28, 5 , 9 }, + { 26, 28, 5 , 9 }, + { 39, 28, 5 , 9 }, + { 52, 28, 7 , 9 }, + { 67, 28, 5 , 9 }, + { 80, 28, 5 , 9 }, + { 93, 28, 5 , 9 }, + { 106, 28, 5 , 9 }, + { 119, 28, 5 , 9 }, + { 132, 28, 5 , 9 }, + { 145, 28, 5 , 9 }, + { 158, 28, 5 , 9 }, + { 171, 28, 5 , 9 }, + { 184, 28, 7 , 9 }, + { 199, 28, 5 , 9 }, + { 212, 28, 5 , 9 }, + { 225, 28, 5 , 9 }, + { 238, 28, 3 , 9 }, + { 249, 28, 3 , 9 }, + { 260, 28, 3 , 9 }, + { 271, 28, 5 , 3 }, + { 284, 28, 5 , 1 }, + { 297, 28, 2 , 2 }, + { 307, 28, 5 , 7 }, + { 320, 28, 5 , 9 }, + { 333, 28, 5 , 7 }, + { 346, 28, 5 , 9 }, + { 359, 28, 5 , 7 }, + { 372, 28, 4 , 9 }, + { 384, 28, 5 , 9 }, + { 397, 28, 5 , 9 }, + { 410, 28, 1 , 9 }, + { 419, 28, 5 , 11 }, + { 432, 28, 5 , 9 }, + { 445, 28, 2 , 9 }, + { 455, 28, 7 , 7 }, + { 470, 28, 5 , 7 }, + { 483, 28, 5 , 7 }, + { 496, 28, 5 , 9 }, + { 4, 52, 5 , 9 }, + { 17, 52, 5 , 7 }, + { 30, 52, 5 , 7 }, + { 43, 52, 4 , 8 }, + { 55, 52, 5 , 7 }, + { 68, 52, 5 , 7 }, + { 81, 52, 7 , 7 }, + { 96, 52, 5 , 7 }, + { 109, 52, 5 , 9 }, + { 122, 52, 5 , 7 }, + { 135, 52, 4 , 9 }, + { 147, 52, 1 , 9 }, + { 156, 52, 4 , 9 }, + { 168, 52, 6 , 2 }, + { 182, 52, 1 , 9 }, + { 191, 52, 5 , 11 }, + { 204, 52, 6 , 9 }, + { 218, 52, 6 , 9 }, + { 232, 52, 5 , 9 }, + { 245, 52, 5 , 12 }, + { 258, 52, 0 , 0 }, + { 266, 52, 5 , 10 }, + { 279, 52, 7 , 9 }, + { 294, 52, 0 , 0 }, + { 302, 52, 6 , 5 }, + { 316, 52, 5 , 3 }, + { 329, 52, 7 , 9 }, + { 344, 52, 0 , 0 }, + { 352, 52, 4 , 4 }, + { 364, 52, 5 , 7 }, + { 377, 52, 0 , 0 }, + { 385, 52, 0 , 0 }, + { 393, 52, 5 , 12 }, + { 406, 52, 5 , 9 }, + { 419, 52, 7 , 9 }, + { 434, 52, 1 , 1 }, + { 443, 52, 5 , 10 }, + { 456, 52, 0 , 0 }, + { 464, 52, 0 , 0 }, + { 472, 52, 6 , 5 }, + { 486, 52, 9 , 9 }, + { 4, 76, 9 , 7 }, + { 21, 76, 5 , 11 }, + { 34, 76, 5 , 9 }, + { 47, 76, 5 , 12 }, + { 60, 76, 5 , 12 }, + { 73, 76, 5 , 12 }, + { 86, 76, 6 , 12 }, + { 100, 76, 5 , 11 }, + { 113, 76, 5 , 13 }, + { 126, 76, 9 , 9 }, + { 143, 76, 5 , 12 }, + { 156, 76, 5 , 12 }, + { 169, 76, 5 , 12 }, + { 182, 76, 5 , 12 }, + { 195, 76, 5 , 11 }, + { 208, 76, 2 , 12 }, + { 218, 76, 2 , 12 }, + { 228, 76, 3 , 12 }, + { 239, 76, 3 , 11 }, + { 250, 76, 6 , 9 }, + { 264, 76, 6 , 12 }, + { 278, 76, 5 , 12 }, + { 291, 76, 5 , 12 }, + { 304, 76, 5 , 12 }, + { 317, 76, 6 , 12 }, + { 331, 76, 5 , 11 }, + { 344, 76, 5 , 5 }, + { 357, 76, 7 , 9 }, + { 372, 76, 5 , 12 }, + { 385, 76, 5 , 12 }, + { 398, 76, 5 , 12 }, + { 411, 76, 5 , 11 }, + { 424, 76, 5 , 12 }, + { 437, 76, 5 , 9 }, + { 450, 76, 5 , 9 }, + { 463, 76, 5 , 10 }, + { 476, 76, 5 , 10 }, + { 489, 76, 5 , 10 }, + { 4, 100, 6 , 10 }, + { 18, 100, 5 , 9 }, + { 31, 100, 5 , 11 }, + { 44, 100, 9 , 7 }, + { 61, 100, 5 , 10 }, + { 74, 100, 5 , 10 }, + { 87, 100, 5 , 10 }, + { 100, 100, 5 , 10 }, + { 113, 100, 5 , 9 }, + { 126, 100, 2 , 10 }, + { 136, 100, 2 , 10 }, + { 146, 100, 3 , 10 }, + { 157, 100, 3 , 9 }, + { 168, 100, 6 , 9 }, + { 182, 100, 6 , 10 }, + { 196, 100, 5 , 10 }, + { 209, 100, 5 , 10 }, + { 222, 100, 5 , 10 }, + { 235, 100, 6 , 10 }, + { 249, 100, 5 , 9 }, + { 262, 100, 5 , 5 }, + { 275, 100, 7 , 7 }, + { 290, 100, 5 , 10 }, + { 303, 100, 5 , 10 }, + { 316, 100, 5 , 10 }, + { 329, 100, 5 , 9 }, + { 342, 100, 5 , 12 }, + { 355, 100, 5 , 11 }, + { 368, 100, 5 , 11 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo darkFontGlyphs[189] = { + { 32, 0, 0, 4, { 0 }}, + { 33, 2, 4, 5, { 0 }}, + { 34, 2, 4, 7, { 0 }}, + { 35, 1, 4, 8, { 0 }}, + { 36, 1, 2, 7, { 0 }}, + { 37, 1, 4, 9, { 0 }}, + { 38, 1, 4, 7, { 0 }}, + { 39, 2, 4, 5, { 0 }}, + { 40, 3, 4, 7, { 0 }}, + { 41, 1, 4, 7, { 0 }}, + { 42, 1, 4, 7, { 0 }}, + { 43, 1, 6, 7, { 0 }}, + { 44, 1, 12, 5, { 0 }}, + { 45, 1, 8, 6, { 0 }}, + { 46, 2, 12, 5, { 0 }}, + { 47, 1, 4, 5, { 0 }}, + { 48, 1, 4, 7, { 0 }}, + { 49, 2, 4, 7, { 0 }}, + { 50, 1, 4, 7, { 0 }}, + { 51, 1, 4, 7, { 0 }}, + { 52, 1, 4, 7, { 0 }}, + { 53, 1, 4, 7, { 0 }}, + { 54, 1, 4, 7, { 0 }}, + { 55, 1, 4, 7, { 0 }}, + { 56, 1, 4, 7, { 0 }}, + { 57, 1, 4, 7, { 0 }}, + { 58, 2, 6, 5, { 0 }}, + { 59, 1, 6, 5, { 0 }}, + { 60, 1, 6, 5, { 0 }}, + { 61, 1, 7, 6, { 0 }}, + { 62, 1, 6, 5, { 0 }}, + { 63, 1, 4, 7, { 0 }}, + { 64, 1, 4, 9, { 0 }}, + { 65, 1, 4, 7, { 0 }}, + { 66, 1, 4, 7, { 0 }}, + { 67, 1, 4, 7, { 0 }}, + { 68, 1, 4, 7, { 0 }}, + { 69, 1, 4, 7, { 0 }}, + { 70, 1, 4, 7, { 0 }}, + { 71, 1, 4, 7, { 0 }}, + { 72, 1, 4, 7, { 0 }}, + { 73, 2, 4, 5, { 0 }}, + { 74, 1, 4, 7, { 0 }}, + { 75, 1, 4, 7, { 0 }}, + { 76, 1, 4, 7, { 0 }}, + { 77, 1, 4, 9, { 0 }}, + { 78, 1, 4, 7, { 0 }}, + { 79, 1, 4, 7, { 0 }}, + { 80, 1, 4, 7, { 0 }}, + { 81, 1, 4, 7, { 0 }}, + { 82, 1, 4, 7, { 0 }}, + { 83, 1, 4, 7, { 0 }}, + { 84, 1, 4, 7, { 0 }}, + { 85, 1, 4, 7, { 0 }}, + { 86, 1, 4, 7, { 0 }}, + { 87, 1, 4, 9, { 0 }}, + { 88, 1, 4, 7, { 0 }}, + { 89, 1, 4, 7, { 0 }}, + { 90, 1, 4, 7, { 0 }}, + { 91, 3, 4, 7, { 0 }}, + { 92, 1, 4, 5, { 0 }}, + { 93, 1, 4, 7, { 0 }}, + { 94, 1, 4, 7, { 0 }}, + { 95, 0, 14, 5, { 0 }}, + { 96, 1, 4, 5, { 0 }}, + { 97, 1, 6, 7, { 0 }}, + { 98, 1, 4, 7, { 0 }}, + { 99, 1, 6, 7, { 0 }}, + { 100, 1, 4, 7, { 0 }}, + { 101, 1, 6, 7, { 0 }}, + { 102, 1, 4, 6, { 0 }}, + { 103, 1, 6, 7, { 0 }}, + { 104, 1, 4, 7, { 0 }}, + { 105, 2, 4, 5, { 0 }}, + { 106, 1, 4, 7, { 0 }}, + { 107, 1, 4, 7, { 0 }}, + { 108, 2, 4, 5, { 0 }}, + { 109, 1, 6, 9, { 0 }}, + { 110, 1, 6, 7, { 0 }}, + { 111, 1, 6, 7, { 0 }}, + { 112, 1, 6, 7, { 0 }}, + { 113, 1, 6, 7, { 0 }}, + { 114, 1, 6, 7, { 0 }}, + { 115, 1, 6, 7, { 0 }}, + { 116, 1, 5, 6, { 0 }}, + { 117, 1, 6, 7, { 0 }}, + { 118, 1, 6, 7, { 0 }}, + { 119, 1, 6, 9, { 0 }}, + { 120, 1, 6, 7, { 0 }}, + { 121, 1, 6, 7, { 0 }}, + { 122, 1, 6, 7, { 0 }}, + { 123, 2, 4, 7, { 0 }}, + { 124, 2, 4, 5, { 0 }}, + { 125, 1, 4, 7, { 0 }}, + { 126, 1, 4, 8, { 0 }}, + { 161, 2, 6, 5, { 0 }}, + { 162, 1, 4, 7, { 0 }}, + { 163, 1, 4, 8, { 0 }}, + { 8364, 1, 4, 8, { 0 }}, + { 165, 1, 4, 7, { 0 }}, + { 352, 1, 1, 7, { 0 }}, + { 167, 0, 0, 0, { 0 }}, + { 353, 1, 3, 7, { 0 }}, + { 169, 1, 4, 9, { 0 }}, + { 170, 0, 0, 0, { 0 }}, + { 171, 1, 6, 8, { 0 }}, + { 172, 1, 8, 7, { 0 }}, + { 174, 1, 4, 9, { 0 }}, + { 175, 0, 0, 0, { 0 }}, + { 176, 1, 4, 6, { 0 }}, + { 177, 1, 6, 7, { 0 }}, + { 178, 0, 0, 0, { 0 }}, + { 179, 0, 0, 0, { 0 }}, + { 381, 1, 1, 7, { 0 }}, + { 181, 1, 6, 7, { 0 }}, + { 182, 1, 4, 9, { 0 }}, + { 183, 2, 8, 5, { 0 }}, + { 382, 1, 3, 7, { 0 }}, + { 185, 0, 0, 0, { 0 }}, + { 186, 0, 0, 0, { 0 }}, + { 187, 1, 6, 8, { 0 }}, + { 338, 1, 4, 11, { 0 }}, + { 339, 1, 6, 11, { 0 }}, + { 376, 1, 2, 7, { 0 }}, + { 191, 1, 6, 7, { 0 }}, + { 192, 1, 1, 7, { 0 }}, + { 193, 1, 1, 7, { 0 }}, + { 194, 1, 1, 7, { 0 }}, + { 195, 1, 1, 7, { 0 }}, + { 196, 1, 2, 7, { 0 }}, + { 197, 1, 0, 7, { 0 }}, + { 198, 1, 4, 11, { 0 }}, + { 199, 1, 4, 7, { 0 }}, + { 200, 1, 1, 7, { 0 }}, + { 201, 1, 1, 7, { 0 }}, + { 202, 1, 1, 7, { 0 }}, + { 203, 1, 2, 7, { 0 }}, + { 204, 1, 1, 5, { 0 }}, + { 205, 2, 1, 5, { 0 }}, + { 206, 1, 1, 5, { 0 }}, + { 207, 1, 2, 5, { 0 }}, + { 208, 0, 4, 7, { 0 }}, + { 209, 1, 1, 7, { 0 }}, + { 210, 1, 1, 7, { 0 }}, + { 211, 1, 1, 7, { 0 }}, + { 212, 1, 1, 7, { 0 }}, + { 213, 1, 1, 7, { 0 }}, + { 214, 1, 2, 7, { 0 }}, + { 215, 1, 6, 7, { 0 }}, + { 216, 0, 4, 7, { 0 }}, + { 217, 1, 1, 7, { 0 }}, + { 218, 1, 1, 7, { 0 }}, + { 219, 1, 1, 7, { 0 }}, + { 220, 1, 2, 7, { 0 }}, + { 221, 1, 1, 7, { 0 }}, + { 222, 1, 4, 7, { 0 }}, + { 223, 1, 4, 7, { 0 }}, + { 224, 1, 3, 7, { 0 }}, + { 225, 1, 3, 7, { 0 }}, + { 226, 1, 3, 7, { 0 }}, + { 227, 1, 3, 7, { 0 }}, + { 228, 1, 4, 7, { 0 }}, + { 229, 1, 2, 7, { 0 }}, + { 230, 1, 6, 11, { 0 }}, + { 231, 1, 6, 7, { 0 }}, + { 232, 1, 3, 7, { 0 }}, + { 233, 1, 3, 7, { 0 }}, + { 234, 1, 3, 7, { 0 }}, + { 235, 1, 4, 7, { 0 }}, + { 236, 1, 3, 5, { 0 }}, + { 237, 2, 3, 5, { 0 }}, + { 238, 1, 3, 5, { 0 }}, + { 239, 1, 4, 5, { 0 }}, + { 240, 1, 4, 7, { 0 }}, + { 241, 1, 3, 7, { 0 }}, + { 242, 1, 3, 7, { 0 }}, + { 243, 1, 3, 7, { 0 }}, + { 244, 1, 3, 7, { 0 }}, + { 245, 1, 3, 7, { 0 }}, + { 246, 1, 4, 7, { 0 }}, + { 247, 1, 6, 7, { 0 }}, + { 248, 0, 6, 7, { 0 }}, + { 249, 1, 3, 7, { 0 }}, + { 250, 1, 3, 7, { 0 }}, + { 251, 1, 3, 7, { 0 }}, + { 252, 1, 4, 7, { 0 }}, + { 253, 1, 3, 7, { 0 }}, + { 254, 1, 4, 7, { 0 }}, + { 255, 1, 4, 7, { 0 }}, +}; + +// Style loading function: Dark +static void GuiLoadStyleDark(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < DARK_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(darkStyleProps[i].controlId, darkStyleProps[i].propertyId, darkStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int darkFontDataSize = 0; + unsigned char *data = DecompressData(darkFontData, DARK_STYLE_FONT_ATLAS_COMP_SIZE, &darkFontDataSize); + Image imFont = { data, 512, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 16; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, darkFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, darkFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 510, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_enefete.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_enefete.h new file mode 100644 index 0000000..3d80d4b --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_enefete.h @@ -0,0 +1,598 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleEnefete(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define ENEFETE_STYLE_PROPS_COUNT 17 + +// Custom style name: Enefete +static const GuiStyleProp enefeteStyleProps[ENEFETE_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0x1980d5ff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0x4df3ebff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0x103e60ff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0xe7e2f7ff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0x23d4ddff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0xf1f1f1ff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0x6413a6ff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0xea66d9ff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0x9f00bbff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0x4b909eff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0x73c7d0ff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0x448894ff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE + { 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING + { 0, 18, (int)0x1d3f6cff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0x29c9e5ff }, // DEFAULT_BACKGROUND_COLOR + { 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING +}; + +// WARNING: This style uses a custom font: "GMSN.ttf" (size: 16, spacing: 0) + +#define ENEFETE_STYLE_FONT_ATLAS_COMP_SIZE 2434 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char enefeteFontData[ENEFETE_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0xdd, 0x5b, 0x6e, 0xe4, 0x36, 0x10, 0x05, 0x50, 0xee, 0x7f, 0xa1, 0xd9, 0x06, 0x83, 0x20, 0x18, 0x24, 0xe3, 0xb1, 0x45, + 0xb2, 0xaa, 0xa8, 0x57, 0x9f, 0x1c, 0xe4, 0xc7, 0x1a, 0xb7, 0xd5, 0x94, 0xae, 0x44, 0x3d, 0x58, 0xec, 0x0d, 0x00, 0x00, + 0x00, 0xf8, 0x78, 0xff, 0xfc, 0xf7, 0xfd, 0xcf, 0xbe, 0x5b, 0x72, 0xbc, 0xec, 0xd7, 0xbf, 0x18, 0x2d, 0xe9, 0x3f, 0xae, + 0x49, 0x3f, 0x58, 0x36, 0xf7, 0xb7, 0x62, 0xeb, 0xd5, 0x97, 0xda, 0xa6, 0x1f, 0xb4, 0x5a, 0x4b, 0xff, 0xbc, 0x1d, 0xb6, + 0x7d, 0x0f, 0xb4, 0x5e, 0x3b, 0x5c, 0xe7, 0x9f, 0x7f, 0x73, 0xbc, 0xa4, 0x72, 0x3d, 0x57, 0xda, 0xb4, 0x72, 0xfb, 0xac, + 0xb4, 0x60, 0x5b, 0x5e, 0x7a, 0xdc, 0x52, 0x6d, 0xaa, 0x1d, 0xc7, 0x9f, 0xdc, 0x6f, 0x92, 0xff, 0xe3, 0x6f, 0xf3, 0x2b, + 0x83, 0x47, 0x5b, 0x7f, 0x7e, 0xdf, 0x68, 0xd3, 0xc7, 0x84, 0xff, 0xfe, 0x76, 0x5d, 0x42, 0xb3, 0x9f, 0xd2, 0x87, 0x47, + 0xc2, 0x95, 0x16, 0x3a, 0x6e, 0xbd, 0x16, 0xca, 0xc4, 0xe8, 0x33, 0x23, 0xeb, 0x32, 0xb3, 0x6c, 0x6e, 0xfd, 0x62, 0xfb, + 0xfc, 0xf8, 0xf3, 0x8e, 0xf7, 0xb4, 0xa3, 0x2d, 0x3c, 0xda, 0x73, 0x8f, 0xbf, 0xdf, 0xfa, 0x56, 0xcd, 0xa4, 0x7e, 0x4f, + 0xfe, 0xfb, 0xff, 0x72, 0xd6, 0x83, 0x19, 0xcc, 0x9f, 0x1b, 0xd6, 0xcf, 0x0a, 0xc7, 0xc7, 0xac, 0x7d, 0x2d, 0x7c, 0xd4, + 0x4e, 0x3d, 0xb0, 0x0f, 0xaf, 0x6f, 0xb3, 0xe8, 0xdf, 0xd9, 0x91, 0xff, 0x8a, 0x14, 0xb7, 0x89, 0x33, 0x62, 0xa4, 0x4f, + 0x71, 0xdc, 0xe3, 0xcc, 0x27, 0x7c, 0xb4, 0x2e, 0x91, 0xfe, 0x4c, 0xbe, 0x2d, 0x57, 0xfb, 0x1c, 0xfb, 0xf2, 0x5f, 0x71, + 0xbe, 0x5d, 0x3f, 0x97, 0xec, 0x6b, 0xdf, 0x99, 0xf3, 0xf5, 0xfd, 0xf3, 0xbf, 0xfe, 0xdd, 0x2a, 0xf2, 0x5f, 0xb3, 0x55, + 0xd6, 0xf3, 0xdf, 0xe5, 0x7f, 0xfa, 0xfc, 0xff, 0x73, 0xab, 0xf7, 0xe0, 0xf5, 0x57, 0xfe, 0xaa, 0xbd, 0xaa, 0x9f, 0x7f, + 0x6d, 0xfe, 0x47, 0xd7, 0x83, 0x6d, 0x39, 0xff, 0xb1, 0xab, 0xcf, 0xc8, 0xd5, 0x46, 0x55, 0xff, 0x7f, 0x6f, 0xef, 0xe1, + 0xf8, 0xea, 0x31, 0x92, 0xf0, 0xb5, 0x7b, 0x1e, 0x35, 0x9f, 0x7c, 0x45, 0xfe, 0xdb, 0xc4, 0xda, 0xf4, 0xe1, 0xf5, 0xff, + 0xec, 0x11, 0x7e, 0x2d, 0xff, 0x75, 0xe7, 0x8e, 0x2b, 0xf3, 0xdf, 0x83, 0x77, 0xc4, 0xaa, 0xaf, 0xe3, 0xe3, 0xdf, 0x6d, + 0xed, 0xfe, 0xdc, 0x79, 0xd7, 0xff, 0xa3, 0x7e, 0x60, 0x26, 0xff, 0x9f, 0xd2, 0xff, 0x9f, 0xe9, 0x69, 0x8f, 0x5a, 0x71, + 0xfe, 0x78, 0x76, 0xc5, 0xd9, 0xfc, 0xda, 0xfc, 0xf7, 0xa9, 0x7b, 0xd8, 0xf7, 0xce, 0x7f, 0x5b, 0xbe, 0xca, 0xab, 0xdc, + 0x77, 0xa3, 0x7b, 0xd4, 0x68, 0xcf, 0x9d, 0x39, 0xaa, 0xdd, 0x33, 0xff, 0xb1, 0xfd, 0xb9, 0x0f, 0x7b, 0xf9, 0x3d, 0x91, + 0xff, 0xf6, 0x9a, 0xfc, 0xf7, 0xe0, 0xdd, 0x8e, 0x9f, 0xfb, 0x7b, 0xb1, 0xfb, 0x71, 0x91, 0x9e, 0x7c, 0xa6, 0x8f, 0x52, + 0x95, 0xff, 0x7b, 0x6c, 0x49, 0xe7, 0xff, 0x8a, 0xfb, 0xff, 0xed, 0xb0, 0x87, 0xff, 0x59, 0xf9, 0x3f, 0x7e, 0xfe, 0xd7, + 0x6e, 0xff, 0xac, 0x2e, 0x9a, 0xff, 0x9a, 0xfb, 0xff, 0xe7, 0x1f, 0xad, 0x67, 0xae, 0x5c, 0x73, 0xf9, 0xbf, 0xd3, 0xf3, + 0xbf, 0xbd, 0xf9, 0x1f, 0x3d, 0xf5, 0x7e, 0x53, 0xff, 0xbf, 0xf2, 0x3e, 0x7e, 0xfc, 0x9d, 0x9b, 0x7d, 0xef, 0x14, 0xb5, + 0xd0, 0x9b, 0x5c, 0xf7, 0x4c, 0x7f, 0xf4, 0x39, 0x50, 0xee, 0x2e, 0xdd, 0xd5, 0xef, 0xff, 0xd4, 0xb7, 0xe0, 0x79, 0xeb, + 0xd3, 0x6f, 0xdc, 0x67, 0xe4, 0x5d, 0x6f, 0xc9, 0xda, 0xbb, 0xce, 0x7c, 0x3e, 0x1b, 0xff, 0x5b, 0xb6, 0x0f, 0x3b, 0xcf, + 0x6c, 0x5a, 0xe2, 0x19, 0xf7, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xc9, 0xe3, + 0x17, 0x22, 0x63, 0x0d, 0xa3, 0x75, 0x08, 0x6a, 0xeb, 0x21, 0xf4, 0x2f, 0x75, 0x58, 0x57, 0x3f, 0x7b, 0x76, 0xac, 0x65, + 0x66, 0x9c, 0x66, 0xed, 0xef, 0x56, 0x55, 0x96, 0xa8, 0x1d, 0x79, 0x3e, 0xae, 0x77, 0xb3, 0x5a, 0xad, 0x39, 0x56, 0x05, + 0x6d, 0xbd, 0xa6, 0x79, 0xa6, 0x0e, 0x5f, 0xf5, 0xd8, 0xea, 0x9a, 0xfa, 0x68, 0xf3, 0x63, 0xde, 0x6b, 0x2a, 0x8d, 0xd4, + 0xe5, 0x7f, 0x7d, 0x3b, 0xf4, 0x2f, 0xeb, 0xd1, 0x2f, 0xa8, 0xc4, 0x50, 0xbf, 0x74, 0xee, 0xe7, 0x77, 0xca, 0xff, 0xec, + 0x31, 0x38, 0xbb, 0xf7, 0xc6, 0x47, 0xdc, 0x8d, 0xaa, 0x4f, 0x5c, 0x5f, 0x5b, 0xa5, 0x15, 0xd5, 0x47, 0xad, 0xcf, 0x7f, + 0x3b, 0xe9, 0xfc, 0x1f, 0xcd, 0x7f, 0x1f, 0xce, 0x66, 0x73, 0xdf, 0xfc, 0xaf, 0xd7, 0x9d, 0xc8, 0xfe, 0xd5, 0xdc, 0x4c, + 0x0e, 0xf1, 0x5a, 0xe3, 0xf9, 0xfc, 0xe7, 0x2a, 0x05, 0x9d, 0x7b, 0x6e, 0xbd, 0x3e, 0xff, 0xd1, 0x16, 0xb9, 0x2a, 0xff, + 0xf1, 0xbd, 0xa4, 0x0f, 0xab, 0x59, 0xdf, 0x31, 0xff, 0xfd, 0xe3, 0xf3, 0x5f, 0x5f, 0xcb, 0x37, 0x9a, 0x80, 0x48, 0x1d, + 0xf4, 0x99, 0xeb, 0xea, 0xd5, 0x2b, 0xbb, 0xf8, 0x75, 0x57, 0xf4, 0xfc, 0x3f, 0xfa, 0xfd, 0x99, 0x6f, 0x72, 0x75, 0xfe, + 0xdb, 0x30, 0xe1, 0x3d, 0x91, 0xd2, 0xf8, 0x1d, 0x90, 0x4c, 0xcd, 0xab, 0x6b, 0xf2, 0xdf, 0x42, 0x33, 0x06, 0xc6, 0xcf, + 0xf3, 0x77, 0xcf, 0x7f, 0xf5, 0xb5, 0x41, 0xf4, 0x8e, 0x41, 0xf5, 0x3a, 0xde, 0xef, 0xfa, 0xbf, 0x17, 0xf4, 0x12, 0x77, + 0xe4, 0x3f, 0xdb, 0x3e, 0xd1, 0x34, 0xc5, 0xf2, 0x3f, 0x7f, 0x76, 0x8f, 0xcd, 0x26, 0x10, 0x5b, 0xf6, 0xde, 0xfc, 0xd7, + 0xd6, 0x4f, 0x5d, 0xbf, 0x57, 0xfc, 0xa6, 0xfc, 0x47, 0xaf, 0xff, 0xe7, 0xaf, 0xb8, 0xee, 0x95, 0xff, 0x36, 0x31, 0x3f, + 0xcf, 0xd9, 0xf9, 0x1f, 0x55, 0x5b, 0x7d, 0x5b, 0xfe, 0xa3, 0xd9, 0x8a, 0xce, 0x67, 0xd4, 0xc2, 0x67, 0xba, 0xb7, 0x9f, + 0xff, 0xdb, 0x4b, 0xf3, 0x1f, 0x9f, 0x5f, 0xe6, 0x59, 0xf9, 0xaf, 0xee, 0x35, 0x5c, 0x5f, 0x57, 0x2f, 0x7a, 0xb7, 0x31, + 0x7e, 0x97, 0xf2, 0xdd, 0xfd, 0xff, 0xbe, 0xa1, 0x17, 0x9e, 0x7d, 0xfe, 0x7f, 0x55, 0xfe, 0x77, 0x3d, 0xff, 0x6b, 0xd3, + 0x73, 0xfe, 0xed, 0x5a, 0x2b, 0xf9, 0xaf, 0xce, 0x7f, 0xe5, 0xdc, 0x89, 0x6b, 0xff, 0xa2, 0xfa, 0xfd, 0x9f, 0xfa, 0x3b, + 0x69, 0xfb, 0xdf, 0xff, 0xd9, 0xd3, 0x3e, 0x6d, 0x6a, 0xc6, 0xb4, 0xf5, 0xbf, 0xda, 0x26, 0x67, 0x35, 0x8e, 0xad, 0x73, + 0xfd, 0xdb, 0x37, 0x77, 0xcf, 0x7f, 0xec, 0x6d, 0x83, 0xe8, 0x6f, 0xc6, 0x7f, 0xe3, 0x3e, 0x73, 0x81, 0x7d, 0xe6, 0x5b, + 0x94, 0x5a, 0xa1, 0xba, 0x85, 0xb4, 0x2a, 0x8e, 0x00, 0xef, 0x7a, 0xcf, 0x7c, 0xd7, 0xbf, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xbc, 0xd1, 0x2b, 0xb3, 0x35, 0xb7, 0xff, 0xfc, 0x69, 0x0f, 0x8d, 0x77, + 0xed, 0xc9, 0xdf, 0xeb, 0xcb, 0x75, 0x30, 0xd6, 0xc6, 0x9d, 0x56, 0xd4, 0x60, 0xa8, 0xae, 0x23, 0x35, 0x6e, 0x97, 0xd9, + 0x2d, 0x3d, 0x1e, 0x49, 0xbc, 0xba, 0x87, 0x44, 0xc6, 0xf5, 0x64, 0x2a, 0xea, 0x64, 0xe6, 0x12, 0x88, 0x57, 0x42, 0x6c, + 0x8b, 0x9f, 0x1a, 0xdb, 0x6a, 0x91, 0xf1, 0xe1, 0x3b, 0xf3, 0x1f, 0xab, 0x2d, 0x79, 0x45, 0xa5, 0xb5, 0xf8, 0xde, 0x54, + 0xbb, 0x86, 0xf5, 0xad, 0x32, 0xb7, 0xb6, 0xb9, 0x9f, 0x67, 0xc6, 0xf4, 0xe7, 0x6a, 0x0f, 0xac, 0xb6, 0x44, 0x9f, 0xaa, + 0x96, 0xb2, 0xfa, 0x9b, 0x3f, 0xff, 0xde, 0xf1, 0xb2, 0x3e, 0x55, 0x39, 0x62, 0xed, 0x53, 0xbf, 0xff, 0xb7, 0xfb, 0x2a, + 0x27, 0xbc, 0x23, 0xff, 0x2d, 0x70, 0x94, 0x3d, 0x37, 0xff, 0xf1, 0xe3, 0x54, 0x2b, 0xac, 0xd2, 0xb3, 0x3e, 0x37, 0x46, + 0x64, 0xe4, 0x6e, 0xbe, 0x46, 0xd0, 0x19, 0x15, 0x35, 0xfe, 0xcc, 0xd7, 0xca, 0x56, 0x9b, 0x4b, 0xff, 0xf7, 0xc7, 0xb8, + 0x76, 0xd0, 0xdb, 0x9a, 0xcd, 0x7f, 0x0f, 0xd4, 0x1e, 0xa9, 0xa9, 0xc8, 0xf7, 0x9c, 0xfc, 0xcf, 0x5c, 0x6d, 0x9c, 0x97, + 0xff, 0xf1, 0xcf, 0xeb, 0xaa, 0x6a, 0x57, 0xd6, 0xda, 0x19, 0xd5, 0x5a, 0x6e, 0xa1, 0x2d, 0xd2, 0x83, 0xc7, 0x95, 0x5e, + 0x5c, 0xcf, 0xbc, 0x7f, 0xf9, 0x7f, 0xf6, 0x4c, 0x3d, 0x9b, 0xff, 0xd5, 0xbf, 0x78, 0x4d, 0xff, 0x7f, 0x65, 0x7f, 0x79, + 0x52, 0xfe, 0xdb, 0x54, 0x2d, 0xb2, 0x7b, 0x9f, 0xff, 0x2b, 0x6b, 0x6a, 0xd5, 0xe7, 0x3f, 0x96, 0xf0, 0xc8, 0xfe, 0x3e, + 0x3f, 0xe3, 0xc1, 0xda, 0x76, 0x1b, 0xf7, 0xf2, 0x7b, 0xa2, 0xff, 0x9f, 0xcf, 0x7f, 0x5d, 0x9f, 0x67, 0xed, 0xea, 0xf9, + 0x8a, 0xfc, 0xf7, 0x44, 0x65, 0xf4, 0xfd, 0xd7, 0xff, 0xa3, 0x7e, 0x62, 0xb4, 0x55, 0xea, 0xe7, 0xa6, 0xaa, 0xac, 0xb6, + 0xbd, 0x9a, 0xff, 0xcc, 0xf9, 0x3f, 0x7a, 0x1f, 0x22, 0xd3, 0x43, 0x5c, 0xbb, 0x1e, 0xcf, 0x1f, 0x01, 0xd6, 0xfa, 0xff, + 0x67, 0xdc, 0xff, 0xef, 0xa7, 0x5d, 0xff, 0xb7, 0xd4, 0x2c, 0x46, 0x95, 0xfd, 0xff, 0x96, 0xe8, 0x65, 0x66, 0x8e, 0x36, + 0x91, 0xd6, 0x5e, 0x6f, 0xb3, 0x2b, 0xcf, 0xff, 0xb9, 0xd9, 0xe6, 0xda, 0xb6, 0x7a, 0xa7, 0x91, 0xfe, 0xff, 0x9e, 0x14, + 0x56, 0xfc, 0xc5, 0xca, 0xeb, 0xff, 0xeb, 0xe7, 0x66, 0xc8, 0xe4, 0xff, 0xac, 0xde, 0xd3, 0xfe, 0x6f, 0x5e, 0x5b, 0x47, + 0xfa, 0x0e, 0xd7, 0xff, 0x91, 0xfb, 0xff, 0xd1, 0x9a, 0xc7, 0xe3, 0xb3, 0x71, 0xff, 0xf1, 0x0a, 0xff, 0xcc, 0xb3, 0xf1, + 0xf9, 0x47, 0x9c, 0xda, 0xeb, 0x7f, 0xf9, 0xdf, 0xf3, 0xdd, 0x2b, 0x6b, 0xe7, 0xee, 0xce, 0xff, 0x5c, 0xcf, 0x2a, 0x36, + 0x23, 0x62, 0x6e, 0xc6, 0xe4, 0xe8, 0x35, 0x5d, 0x3b, 0x75, 0x4f, 0x6f, 0x17, 0xf4, 0xfe, 0xab, 0x67, 0xe4, 0x79, 0xe7, + 0xfb, 0x50, 0xef, 0xf8, 0x06, 0x67, 0x1c, 0xcf, 0x7b, 0x61, 0xcf, 0x34, 0x7f, 0xff, 0x2f, 0x7e, 0xb4, 0x6a, 0x17, 0xd4, + 0x20, 0x3e, 0xfb, 0x2f, 0xc6, 0x9f, 0x56, 0x20, 0xff, 0x6b, 0xf9, 0xdf, 0xdf, 0x4b, 0xaa, 0x7a, 0x87, 0xe1, 0xd3, 0xf6, + 0x14, 0x2d, 0xf3, 0x29, 0xdb, 0x75, 0xfd, 0x4e, 0xef, 0x5b, 0x5a, 0xc2, 0x3e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x6b, 0xf4, 0x4f, 0xac, 0x9a, 0xc2, 0x6c, 0x2d, 0xab, 0xbe, 0x30, 0x3a, 0xb3, 0x0d, + 0xeb, 0x33, 0x67, 0x3f, 0xe7, 0xeb, 0xcc, 0x05, 0x7d, 0xf0, 0x2f, 0x5a, 0x60, 0x4d, 0x7b, 0x78, 0xac, 0xf1, 0xfa, 0x3c, + 0x0c, 0x5f, 0xd7, 0xb8, 0x25, 0x5a, 0x64, 0x3c, 0x92, 0x77, 0x7d, 0xc6, 0x86, 0xbd, 0xdf, 0xb9, 0xa6, 0x22, 0x7a, 0xa4, + 0xb6, 0xdf, 0x6c, 0x85, 0x92, 0xb3, 0x5b, 0x25, 0x33, 0x62, 0xbb, 0x05, 0x8e, 0x0d, 0xa3, 0x7a, 0x42, 0x2b, 0xb5, 0xba, + 0xd6, 0x8e, 0x4f, 0x73, 0x55, 0xf8, 0xd6, 0xc7, 0xa5, 0xcf, 0xd5, 0xf0, 0x6c, 0x1b, 0xeb, 0x5e, 0xaf, 0xef, 0xed, 0xf1, + 0xa4, 0xe4, 0x96, 0xce, 0x8d, 0xc7, 0xdf, 0xf1, 0x9d, 0xe3, 0x35, 0x6b, 0xe7, 0x3f, 0x27, 0x73, 0xf6, 0x1b, 0xa7, 0x74, + 0x4f, 0xab, 0xc4, 0xd2, 0x9f, 0xa9, 0x08, 0xb3, 0x9e, 0xff, 0x9a, 0xf5, 0x1e, 0xcf, 0x89, 0x10, 0x9b, 0x65, 0x63, 0xa6, + 0x86, 0xf7, 0xfb, 0xaa, 0x07, 0xe4, 0xf3, 0xff, 0xa9, 0x35, 0x17, 0x9e, 0xd4, 0x02, 0x7d, 0x31, 0x61, 0x33, 0xbd, 0xf8, + 0x9a, 0xfc, 0x8f, 0xe7, 0x4a, 0x3a, 0x3f, 0xff, 0x3d, 0xf4, 0x09, 0xf1, 0x9e, 0xdb, 0x1d, 0x97, 0xe6, 0xf2, 0x3f, 0xde, + 0x83, 0xf6, 0x2c, 0xad, 0x9a, 0x29, 0x29, 0x57, 0x87, 0xbc, 0x05, 0xaf, 0x1e, 0x32, 0x4b, 0x23, 0xb5, 0x11, 0x7a, 0xe8, + 0x6a, 0x64, 0xcf, 0xf9, 0x3f, 0x7f, 0xfd, 0x3f, 0xdf, 0x6f, 0x8b, 0xdf, 0x3f, 0xc8, 0xec, 0x4b, 0x3b, 0xfa, 0xe1, 0x67, + 0x2c, 0x8d, 0xd4, 0x86, 0xbb, 0x6a, 0xe9, 0xee, 0xfc, 0xf7, 0xdf, 0xe6, 0x4a, 0x3c, 0x4a, 0xd4, 0xfa, 0xd1, 0x21, 0x77, + 0x64, 0xd9, 0xdb, 0xd7, 0x59, 0xbd, 0xff, 0xb7, 0xba, 0x96, 0x75, 0x73, 0x99, 0x45, 0xab, 0x52, 0x7e, 0xfd, 0xfd, 0xba, + 0xf3, 0xff, 0xbe, 0xad, 0xbe, 0x77, 0x69, 0xe6, 0xee, 0xde, 0x5b, 0xf3, 0x3f, 0xd7, 0x6e, 0xef, 0xc8, 0xff, 0xb8, 0x7e, + 0x6b, 0x2f, 0xba, 0x4f, 0x71, 0xc6, 0x37, 0x9a, 0xad, 0xc0, 0x9f, 0x9b, 0x63, 0xf6, 0x4d, 0xf9, 0x6f, 0x45, 0xfd, 0xff, + 0x33, 0x97, 0xde, 0xa3, 0xff, 0xdf, 0x5f, 0x90, 0xff, 0xec, 0x73, 0x9d, 0x8a, 0x19, 0x8e, 0xcf, 0xce, 0x7f, 0xf6, 0x98, + 0x78, 0xaf, 0x6b, 0xe1, 0xec, 0xd2, 0x6c, 0xfe, 0x3f, 0xf5, 0xfc, 0xff, 0x86, 0xfc, 0xe7, 0x9f, 0x65, 0xaf, 0xdc, 0xff, + 0x3b, 0xef, 0x1d, 0x88, 0xbe, 0x31, 0xff, 0xed, 0x43, 0xcf, 0xff, 0x35, 0xf3, 0xca, 0x3f, 0x2d, 0xff, 0x33, 0x77, 0x99, + 0x9e, 0x9a, 0xff, 0x8a, 0x8c, 0x54, 0xdd, 0xff, 0xaf, 0x7f, 0x0b, 0x6a, 0x67, 0x75, 0xfa, 0xe7, 0x25, 0x7c, 0x9c, 0xff, + 0xc8, 0xfb, 0x3f, 0xef, 0xce, 0xff, 0xdc, 0xbb, 0x31, 0xcf, 0xce, 0x7f, 0x4f, 0xce, 0x4a, 0xf3, 0xce, 0xe7, 0xc3, 0xb1, + 0x39, 0xa6, 0x9f, 0x97, 0xff, 0xfc, 0x3b, 0x65, 0x6f, 0x7d, 0xfe, 0x97, 0x7b, 0x3b, 0xe0, 0x9a, 0xe7, 0x7f, 0x77, 0x7a, + 0xaf, 0x84, 0xb7, 0xbf, 0x55, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x66, 0xec, + 0xeb, 0xea, 0x88, 0x9d, 0xb9, 0x71, 0x62, 0xd7, 0x54, 0xbe, 0x8f, 0xd4, 0x29, 0x98, 0x59, 0x9f, 0x78, 0xf5, 0x83, 0x48, + 0xad, 0xfd, 0xa3, 0x6d, 0x13, 0xad, 0x38, 0x9e, 0xa9, 0x64, 0xb4, 0xeb, 0x3b, 0xae, 0xd7, 0x84, 0x9f, 0xff, 0x0b, 0x73, + 0x95, 0x1f, 0x63, 0xb9, 0xb8, 0xfb, 0xb6, 0x9e, 0x1b, 0xa5, 0xb9, 0xb3, 0x4e, 0x7c, 0x4f, 0xd6, 0x34, 0xaf, 0x5f, 0xab, + 0x6c, 0x95, 0xfe, 0xd8, 0x3a, 0x47, 0x5a, 0xb8, 0x27, 0xe6, 0x61, 0x69, 0x13, 0x7b, 0x52, 0x75, 0x75, 0x9f, 0xcc, 0xbc, + 0x1c, 0xf3, 0x47, 0xe4, 0xca, 0x8a, 0xfd, 0x2d, 0x51, 0xad, 0xff, 0x2e, 0xdb, 0xfa, 0xda, 0xf1, 0xb4, 0xe3, 0x75, 0x7e, + 0xce, 0x78, 0xdf, 0xb9, 0xd1, 0xe3, 0xcf, 0xf8, 0x36, 0x33, 0xc7, 0xb2, 0xf5, 0xea, 0x3c, 0xef, 0xac, 0xd9, 0xf0, 0xd9, + 0x63, 0x95, 0xb3, 0x95, 0x05, 0x46, 0xc7, 0xba, 0xe7, 0x54, 0xaf, 0xca, 0xd5, 0xbd, 0x9a, 0x69, 0xc5, 0xb3, 0x96, 0x1d, + 0xf9, 0x2b, 0x30, 0x0f, 0xdb, 0x95, 0xdf, 0x71, 0x7f, 0xc5, 0x8e, 0xe3, 0x5a, 0x22, 0xf7, 0xde, 0xd6, 0xd9, 0x1a, 0x59, + 0xd9, 0x4a, 0x30, 0xd1, 0xf3, 0xff, 0x53, 0xf3, 0x3f, 0x9a, 0x8b, 0xe0, 0xe7, 0x59, 0xc9, 0xce, 0x5b, 0x56, 0x31, 0x93, + 0xc1, 0xea, 0x15, 0xd0, 0x8e, 0x65, 0x57, 0x56, 0xec, 0x3a, 0xfb, 0xbb, 0xc6, 0xdb, 0xa8, 0xaa, 0x9f, 0x18, 0x9d, 0xb3, + 0x64, 0xb4, 0xec, 0xd3, 0xce, 0xff, 0xfd, 0xf2, 0x65, 0xf3, 0x47, 0xb1, 0xbb, 0xef, 0xdb, 0xfb, 0x67, 0xec, 0x78, 0x42, + 0xc6, 0x33, 0xb3, 0x4b, 0xed, 0xcc, 0xff, 0x3d, 0xeb, 0x1d, 0xf7, 0xd4, 0xb9, 0x31, 0x5b, 0xab, 0xef, 0x3e, 0xb9, 0xc9, + 0xcc, 0x64, 0x1c, 0x9b, 0xbf, 0xb9, 0x7a, 0x99, 0xfc, 0xdf, 0x3b, 0xff, 0x73, 0xf7, 0x56, 0xee, 0x57, 0xbd, 0x32, 0x3b, + 0x4b, 0xef, 0xfb, 0xfb, 0x8b, 0x7d, 0xc3, 0xd3, 0x9a, 0xba, 0xe7, 0x89, 0xf2, 0x7f, 0x97, 0xfe, 0xbf, 0xfc, 0xbf, 0x6f, + 0x7f, 0xe9, 0xa9, 0x4a, 0xe6, 0xfa, 0xff, 0xf2, 0xff, 0xe6, 0xfc, 0xf7, 0x47, 0x5c, 0xff, 0xef, 0xda, 0x5f, 0xde, 0x76, + 0xff, 0x3f, 0xfa, 0xb4, 0xf7, 0x29, 0xcf, 0x7a, 0xce, 0x78, 0xfe, 0xb7, 0xe7, 0x93, 0x77, 0x56, 0x43, 0x7f, 0xff, 0xf3, + 0xde, 0xa7, 0xd4, 0x83, 0xe7, 0xed, 0xfb, 0xa1, 0x36, 0x00, 0xf9, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x76, 0xbe, 0xa9, 0x7f, 0x66, 0xc5, 0xf7, 0xc8, 0xa8, 0xcf, 0xb9, 0xcf, 0x04, 0x62, 0x23, 0x75, 0xce, + 0xac, 0xf8, 0x9e, 0x1f, 0x9d, 0x6f, 0x5b, 0xc2, 0xfb, 0xc6, 0x8a, 0xcb, 0x36, 0xec, 0x49, 0x55, 0x7f, 0x48, 0x15, 0xa4, + 0x77, 0xcc, 0xcd, 0x01, 0xf2, 0xff, 0x94, 0x0a, 0x69, 0x20, 0xff, 0xf2, 0x0f, 0xf2, 0x2f, 0xff, 0x20, 0xff, 0xf2, 0x0f, + 0x6f, 0xbf, 0xff, 0x7f, 0xa7, 0x99, 0x6b, 0xf6, 0xd5, 0x29, 0x06, 0xcf, 0xfe, 0x63, 0x47, 0x87, 0xea, 0x65, 0x6d, 0x78, + 0xdc, 0xf0, 0x8c, 0x10, 0xce, 0xca, 0xff, 0x35, 0xcf, 0xf8, 0x57, 0xf3, 0xaf, 0xff, 0x0f, 0x6f, 0xba, 0x1a, 0x89, 0xbc, + 0xff, 0x27, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x95, 0x7f, 0xff, 0xd3, 0x0e, 0x20, 0xff, 0xc0, 0xc7, 0xe5, 0xff, 0x6f }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle enefeteFontRecs[189] = { + { 4, 4, 4 , 16 }, + { 16, 4, 2 , 10 }, + { 26, 4, 5 , 3 }, + { 39, 4, 7 , 10 }, + { 54, 4, 7 , 13 }, + { 69, 4, 7 , 10 }, + { 84, 4, 7 , 10 }, + { 99, 4, 2 , 3 }, + { 109, 4, 3 , 12 }, + { 120, 4, 3 , 12 }, + { 131, 4, 5 , 6 }, + { 144, 4, 6 , 5 }, + { 158, 4, 2 , 4 }, + { 168, 4, 5 , 1 }, + { 181, 4, 2 , 2 }, + { 191, 4, 4 , 10 }, + { 203, 4, 6 , 10 }, + { 217, 4, 4 , 10 }, + { 229, 4, 6 , 10 }, + { 243, 4, 6 , 10 }, + { 257, 4, 6 , 10 }, + { 271, 4, 6 , 10 }, + { 285, 4, 6 , 10 }, + { 299, 4, 6 , 10 }, + { 313, 4, 6 , 10 }, + { 327, 4, 6 , 10 }, + { 341, 4, 2 , 6 }, + { 351, 4, 2 , 8 }, + { 361, 4, 7 , 7 }, + { 376, 4, 5 , 3 }, + { 389, 4, 7 , 7 }, + { 404, 4, 6 , 10 }, + { 418, 4, 7 , 12 }, + { 433, 4, 7 , 10 }, + { 448, 4, 7 , 10 }, + { 463, 4, 7 , 10 }, + { 478, 4, 7 , 10 }, + { 493, 4, 7 , 10 }, + { 4, 28, 7 , 10 }, + { 19, 28, 7 , 10 }, + { 34, 28, 7 , 10 }, + { 49, 28, 2 , 10 }, + { 59, 28, 5 , 10 }, + { 72, 28, 7 , 10 }, + { 87, 28, 6 , 10 }, + { 101, 28, 9 , 10 }, + { 118, 28, 7 , 10 }, + { 133, 28, 7 , 10 }, + { 148, 28, 7 , 10 }, + { 163, 28, 7 , 12 }, + { 178, 28, 7 , 10 }, + { 193, 28, 7 , 10 }, + { 208, 28, 6 , 10 }, + { 222, 28, 7 , 10 }, + { 237, 28, 7 , 10 }, + { 252, 28, 8 , 10 }, + { 268, 28, 7 , 10 }, + { 283, 28, 6 , 10 }, + { 297, 28, 7 , 10 }, + { 312, 28, 4 , 12 }, + { 324, 28, 4 , 10 }, + { 336, 28, 4 , 12 }, + { 348, 28, 6 , 3 }, + { 362, 28, 7 , 1 }, + { 377, 28, 4 , 3 }, + { 389, 28, 6 , 7 }, + { 403, 28, 6 , 10 }, + { 417, 28, 6 , 7 }, + { 431, 28, 6 , 10 }, + { 445, 28, 6 , 7 }, + { 459, 28, 4 , 10 }, + { 471, 28, 6 , 9 }, + { 485, 28, 6 , 10 }, + { 499, 28, 2 , 10 }, + { 4, 52, 5 , 12 }, + { 17, 52, 6 , 10 }, + { 31, 52, 3 , 10 }, + { 42, 52, 8 , 7 }, + { 58, 52, 6 , 7 }, + { 72, 52, 6 , 7 }, + { 86, 52, 6 , 9 }, + { 100, 52, 6 , 9 }, + { 114, 52, 5 , 7 }, + { 127, 52, 6 , 7 }, + { 141, 52, 4 , 10 }, + { 153, 52, 6 , 7 }, + { 167, 52, 6 , 7 }, + { 181, 52, 8 , 7 }, + { 197, 52, 6 , 7 }, + { 211, 52, 6 , 9 }, + { 225, 52, 6 , 7 }, + { 239, 52, 5 , 12 }, + { 252, 52, 2 , 12 }, + { 262, 52, 5 , 12 }, + { 275, 52, 7 , 3 }, + { 290, 52, 2 , 9 }, + { 300, 52, 6 , 11 }, + { 314, 52, 7 , 10 }, + { 329, 52, 7 , 9 }, + { 344, 52, 6 , 10 }, + { 358, 52, 7 , 11 }, + { 373, 52, 6 , 12 }, + { 387, 52, 6 , 10 }, + { 401, 52, 7 , 10 }, + { 416, 52, 5 , 5 }, + { 429, 52, 7 , 6 }, + { 444, 52, 6 , 3 }, + { 458, 52, 7 , 10 }, + { 473, 52, 0 , 0 }, + { 481, 52, 4 , 4 }, + { 493, 52, 6 , 7 }, + { 4, 76, 4 , 5 }, + { 16, 76, 4 , 5 }, + { 28, 76, 7 , 11 }, + { 43, 76, 6 , 9 }, + { 57, 76, 7 , 12 }, + { 72, 76, 2 , 2 }, + { 82, 76, 6 , 10 }, + { 96, 76, 3 , 5 }, + { 107, 76, 4 , 5 }, + { 119, 76, 7 , 6 }, + { 134, 76, 9 , 10 }, + { 151, 76, 8 , 7 }, + { 167, 76, 6 , 11 }, + { 181, 76, 6 , 11 }, + { 195, 76, 7 , 11 }, + { 210, 76, 7 , 11 }, + { 225, 76, 7 , 11 }, + { 240, 76, 7 , 11 }, + { 255, 76, 7 , 11 }, + { 270, 76, 7 , 11 }, + { 285, 76, 9 , 10 }, + { 302, 76, 7 , 12 }, + { 317, 76, 7 , 11 }, + { 332, 76, 7 , 11 }, + { 347, 76, 7 , 11 }, + { 362, 76, 7 , 11 }, + { 377, 76, 3 , 11 }, + { 388, 76, 3 , 11 }, + { 399, 76, 5 , 11 }, + { 412, 76, 5 , 11 }, + { 425, 76, 8 , 10 }, + { 441, 76, 7 , 11 }, + { 456, 76, 7 , 11 }, + { 471, 76, 7 , 11 }, + { 486, 76, 7 , 11 }, + { 4, 100, 7 , 11 }, + { 19, 100, 7 , 11 }, + { 34, 100, 7 , 7 }, + { 49, 100, 7 , 13 }, + { 64, 100, 7 , 11 }, + { 79, 100, 7 , 11 }, + { 94, 100, 7 , 11 }, + { 109, 100, 7 , 11 }, + { 124, 100, 6 , 11 }, + { 138, 100, 7 , 10 }, + { 153, 100, 7 , 10 }, + { 168, 100, 6 , 10 }, + { 182, 100, 6 , 10 }, + { 196, 100, 6 , 10 }, + { 210, 100, 6 , 10 }, + { 224, 100, 6 , 10 }, + { 238, 100, 6 , 11 }, + { 252, 100, 8 , 7 }, + { 268, 100, 6 , 9 }, + { 282, 100, 6 , 10 }, + { 296, 100, 6 , 10 }, + { 310, 100, 6 , 10 }, + { 324, 100, 6 , 10 }, + { 338, 100, 3 , 10 }, + { 349, 100, 3 , 10 }, + { 360, 100, 5 , 10 }, + { 373, 100, 5 , 10 }, + { 386, 100, 6 , 10 }, + { 400, 100, 6 , 10 }, + { 414, 100, 6 , 10 }, + { 428, 100, 6 , 10 }, + { 442, 100, 6 , 10 }, + { 456, 100, 6 , 10 }, + { 470, 100, 6 , 10 }, + { 484, 100, 6 , 7 }, + { 4, 124, 7 , 11 }, + { 19, 124, 6 , 10 }, + { 33, 124, 6 , 10 }, + { 47, 124, 6 , 10 }, + { 61, 124, 6 , 10 }, + { 75, 124, 6 , 12 }, + { 89, 124, 6 , 12 }, + { 103, 124, 6 , 12 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo enefeteFontGlyphs[189] = { + { 32, 0, 0, 4, { 0 }}, + { 33, 0, 2, 3, { 0 }}, + { 34, 0, 2, 6, { 0 }}, + { 35, 0, 2, 8, { 0 }}, + { 36, 0, 1, 8, { 0 }}, + { 37, 0, 2, 8, { 0 }}, + { 38, 0, 2, 8, { 0 }}, + { 39, 0, 2, 3, { 0 }}, + { 40, 0, 2, 4, { 0 }}, + { 41, 0, 2, 4, { 0 }}, + { 42, 0, 4, 6, { 0 }}, + { 43, 0, 6, 7, { 0 }}, + { 44, 0, 10, 3, { 0 }}, + { 45, 0, 8, 6, { 0 }}, + { 46, 0, 10, 3, { 0 }}, + { 47, 0, 2, 5, { 0 }}, + { 48, 0, 2, 7, { 0 }}, + { 49, 0, 2, 7, { 0 }}, + { 50, 0, 2, 7, { 0 }}, + { 51, 0, 2, 7, { 0 }}, + { 52, 0, 2, 7, { 0 }}, + { 53, 0, 2, 7, { 0 }}, + { 54, 0, 2, 7, { 0 }}, + { 55, 0, 2, 7, { 0 }}, + { 56, 0, 2, 7, { 0 }}, + { 57, 0, 2, 7, { 0 }}, + { 58, 0, 4, 3, { 0 }}, + { 59, 0, 4, 3, { 0 }}, + { 60, 0, 4, 8, { 0 }}, + { 61, 0, 6, 6, { 0 }}, + { 62, 0, 4, 8, { 0 }}, + { 63, 0, 2, 7, { 0 }}, + { 64, 0, 2, 8, { 0 }}, + { 65, 0, 2, 8, { 0 }}, + { 66, 0, 2, 8, { 0 }}, + { 67, 0, 2, 8, { 0 }}, + { 68, 0, 2, 8, { 0 }}, + { 69, 0, 2, 8, { 0 }}, + { 70, 0, 2, 8, { 0 }}, + { 71, 0, 2, 8, { 0 }}, + { 72, 0, 2, 8, { 0 }}, + { 73, 0, 2, 3, { 0 }}, + { 74, 0, 2, 6, { 0 }}, + { 75, 0, 2, 8, { 0 }}, + { 76, 0, 2, 7, { 0 }}, + { 77, 0, 2, 10, { 0 }}, + { 78, 0, 2, 8, { 0 }}, + { 79, 0, 2, 8, { 0 }}, + { 80, 0, 2, 8, { 0 }}, + { 81, 0, 2, 8, { 0 }}, + { 82, 0, 2, 8, { 0 }}, + { 83, 0, 2, 8, { 0 }}, + { 84, 0, 2, 7, { 0 }}, + { 85, 0, 2, 8, { 0 }}, + { 86, 0, 2, 8, { 0 }}, + { 87, 0, 2, 9, { 0 }}, + { 88, 0, 2, 8, { 0 }}, + { 89, 0, 2, 7, { 0 }}, + { 90, 0, 2, 8, { 0 }}, + { 91, 0, 2, 5, { 0 }}, + { 92, 0, 2, 5, { 0 }}, + { 93, 0, 2, 5, { 0 }}, + { 94, 0, 2, 7, { 0 }}, + { 95, 0, 14, 8, { 0 }}, + { 96, 0, 2, 5, { 0 }}, + { 97, 0, 5, 7, { 0 }}, + { 98, 0, 2, 7, { 0 }}, + { 99, 0, 5, 7, { 0 }}, + { 100, 0, 2, 7, { 0 }}, + { 101, 0, 5, 7, { 0 }}, + { 102, 0, 2, 5, { 0 }}, + { 103, 0, 5, 7, { 0 }}, + { 104, 0, 2, 7, { 0 }}, + { 105, 0, 2, 3, { 0 }}, + { 106, 0, 2, 6, { 0 }}, + { 107, 0, 2, 7, { 0 }}, + { 108, 0, 2, 4, { 0 }}, + { 109, 0, 5, 9, { 0 }}, + { 110, 0, 5, 7, { 0 }}, + { 111, 0, 5, 7, { 0 }}, + { 112, 0, 5, 7, { 0 }}, + { 113, 0, 5, 7, { 0 }}, + { 114, 0, 5, 6, { 0 }}, + { 115, 0, 5, 7, { 0 }}, + { 116, 0, 2, 5, { 0 }}, + { 117, 0, 5, 7, { 0 }}, + { 118, 0, 5, 7, { 0 }}, + { 119, 0, 5, 9, { 0 }}, + { 120, 0, 5, 7, { 0 }}, + { 121, 0, 5, 7, { 0 }}, + { 122, 0, 5, 7, { 0 }}, + { 123, 0, 2, 6, { 0 }}, + { 124, 0, 2, 3, { 0 }}, + { 125, 0, 2, 6, { 0 }}, + { 126, 0, 6, 8, { 0 }}, + { 161, 0, 5, 3, { 0 }}, + { 162, 0, 3, 7, { 0 }}, + { 163, 0, 2, 8, { 0 }}, + { 8364, 0, 3, 8, { 0 }}, + { 165, 0, 2, 7, { 0 }}, + { 352, 0, 1, 8, { 0 }}, + { 167, 0, 2, 7, { 0 }}, + { 353, 0, 2, 7, { 0 }}, + { 169, 0, 2, 8, { 0 }}, + { 170, 0, 2, 6, { 0 }}, + { 171, 0, 6, 8, { 0 }}, + { 172, 0, 7, 7, { 0 }}, + { 174, 0, 2, 8, { 0 }}, + { 175, 0, 0, 0, { 0 }}, + { 176, 0, 2, 5, { 0 }}, + { 177, 0, 4, 7, { 0 }}, + { 178, 0, 2, 5, { 0 }}, + { 179, 0, 2, 5, { 0 }}, + { 381, 0, 1, 8, { 0 }}, + { 181, 0, 5, 7, { 0 }}, + { 182, 0, 2, 8, { 0 }}, + { 183, 0, 6, 3, { 0 }}, + { 382, 0, 2, 7, { 0 }}, + { 185, 0, 2, 4, { 0 }}, + { 186, 0, 2, 5, { 0 }}, + { 187, 0, 6, 8, { 0 }}, + { 338, 0, 2, 10, { 0 }}, + { 339, 0, 5, 9, { 0 }}, + { 376, 0, 1, 7, { 0 }}, + { 191, 0, 3, 7, { 0 }}, + { 192, 0, 1, 8, { 0 }}, + { 193, 0, 1, 8, { 0 }}, + { 194, 0, 1, 8, { 0 }}, + { 195, 0, 1, 8, { 0 }}, + { 196, 0, 1, 8, { 0 }}, + { 197, 0, 1, 8, { 0 }}, + { 198, 0, 2, 10, { 0 }}, + { 199, 0, 2, 8, { 0 }}, + { 200, 0, 1, 8, { 0 }}, + { 201, 0, 1, 8, { 0 }}, + { 202, 0, 1, 8, { 0 }}, + { 203, 0, 1, 8, { 0 }}, + { 204, 0, 1, 4, { 0 }}, + { 205, 0, 1, 4, { 0 }}, + { 206, 0, 1, 6, { 0 }}, + { 207, 0, 1, 6, { 0 }}, + { 208, 0, 2, 9, { 0 }}, + { 209, 0, 1, 8, { 0 }}, + { 210, 0, 1, 8, { 0 }}, + { 211, 0, 1, 8, { 0 }}, + { 212, 0, 1, 8, { 0 }}, + { 213, 0, 1, 8, { 0 }}, + { 214, 0, 1, 8, { 0 }}, + { 215, 0, 5, 8, { 0 }}, + { 216, 0, 1, 8, { 0 }}, + { 217, 0, 1, 8, { 0 }}, + { 218, 0, 1, 8, { 0 }}, + { 219, 0, 1, 8, { 0 }}, + { 220, 0, 1, 8, { 0 }}, + { 221, 0, 1, 7, { 0 }}, + { 222, 0, 2, 8, { 0 }}, + { 223, 0, 2, 8, { 0 }}, + { 224, 0, 2, 7, { 0 }}, + { 225, 0, 2, 7, { 0 }}, + { 226, 0, 2, 7, { 0 }}, + { 227, 0, 2, 7, { 0 }}, + { 228, 0, 2, 7, { 0 }}, + { 229, 0, 1, 7, { 0 }}, + { 230, 0, 5, 9, { 0 }}, + { 231, 0, 5, 7, { 0 }}, + { 232, 0, 2, 7, { 0 }}, + { 233, 0, 2, 7, { 0 }}, + { 234, 0, 2, 7, { 0 }}, + { 235, 0, 2, 7, { 0 }}, + { 236, 0, 2, 4, { 0 }}, + { 237, 0, 2, 4, { 0 }}, + { 238, 0, 2, 6, { 0 }}, + { 239, 0, 2, 6, { 0 }}, + { 240, 0, 2, 7, { 0 }}, + { 241, 0, 2, 7, { 0 }}, + { 242, 0, 2, 7, { 0 }}, + { 243, 0, 2, 7, { 0 }}, + { 244, 0, 2, 7, { 0 }}, + { 245, 0, 2, 7, { 0 }}, + { 246, 0, 2, 7, { 0 }}, + { 247, 0, 4, 7, { 0 }}, + { 248, 0, 3, 8, { 0 }}, + { 249, 0, 2, 7, { 0 }}, + { 250, 0, 2, 7, { 0 }}, + { 251, 0, 2, 7, { 0 }}, + { 252, 0, 2, 7, { 0 }}, + { 253, 0, 2, 7, { 0 }}, + { 254, 0, 2, 7, { 0 }}, + { 255, 0, 2, 7, { 0 }}, +}; + +// Style loading function: Enefete +static void GuiLoadStyleEnefete(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < ENEFETE_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(enefeteStyleProps[i].controlId, enefeteStyleProps[i].propertyId, enefeteStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int enefeteFontDataSize = 0; + unsigned char *data = DecompressData(enefeteFontData, ENEFETE_STYLE_FONT_ATLAS_COMP_SIZE, &enefeteFontDataSize); + Image imFont = { data, 512, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 16; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, enefeteFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, enefeteFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 510, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_genesis.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_genesis.h new file mode 100644 index 0000000..a6e8eda --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_genesis.h @@ -0,0 +1,589 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleGenesis(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define GENESIS_STYLE_PROPS_COUNT 23 + +// Custom style name: Genesis +static const GuiStyleProp genesisStyleProps[GENESIS_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0x667384ff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0x181b1eff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0xc2c8d0ff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0xd3dbdfff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0xa7afb0ff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0x020202ff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0x181b1eff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0xac3c3cff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0xdededeff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0x3e4550ff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0x2e353dff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0x484f57ff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE + { 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING + { 0, 18, (int)0x96a3b4ff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0x292c33ff }, // DEFAULT_BACKGROUND_COLOR + { 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING + { 1, 5, (int)0x97a9aeff }, // LABEL_TEXT_COLOR_FOCUSED + { 4, 5, (int)0xa69a9aff }, // SLIDER_TEXT_COLOR_FOCUSED + { 4, 6, (int)0xc3ccd5ff }, // SLIDER_BORDER_COLOR_PRESSED + { 6, 6, (int)0xa7aeb5ff }, // CHECKBOX_BORDER_COLOR_PRESSED + { 9, 5, (int)0xa9a5a5ff }, // TEXTBOX_TEXT_COLOR_FOCUSED + { 10, 5, (int)0xc9c7c7ff }, // VALUEBOX_TEXT_COLOR_FOCUSED +}; + +// WARNING: This style uses a custom font: "PixelOperator.ttf" (size: 16, spacing: 0) + +#define GENESIS_STYLE_FONT_ATLAS_COMP_SIZE 2138 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char genesisFontData[GENESIS_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0xdd, 0xdb, 0x92, 0xa5, 0xba, 0x0d, 0x00, 0x50, 0xff, 0xff, 0x4f, 0x2b, 0x0f, 0xa9, 0x54, 0x32, 0x95, 0xd3, 0x80, 0x64, + 0xd9, 0x98, 0x9e, 0x35, 0xeb, 0xad, 0x77, 0x4f, 0xc3, 0x36, 0x96, 0x6f, 0x80, 0x1c, 0x03, 0x00, 0x00, 0x00, 0xf8, 0xeb, + 0xc5, 0x3f, 0xfe, 0x24, 0x7e, 0xfc, 0xcd, 0x78, 0xfc, 0x77, 0xae, 0x7f, 0xfe, 0x9f, 0x4f, 0xe3, 0xe2, 0x58, 0xcf, 0xce, + 0x35, 0x7b, 0xdc, 0x48, 0x94, 0xc4, 0x3f, 0x9f, 0x5f, 0x3c, 0xfe, 0xbb, 0x3f, 0x7d, 0xbf, 0xfc, 0xef, 0x5f, 0xfd, 0xa5, + 0xeb, 0xb3, 0x8f, 0x54, 0xb9, 0xe7, 0xff, 0x4f, 0xee, 0x2a, 0xc6, 0x92, 0xb2, 0xbf, 0x3f, 0xbb, 0xfc, 0xb9, 0x77, 0xfe, + 0x9f, 0xb8, 0xf8, 0x3e, 0x95, 0xab, 0xf4, 0x24, 0xb6, 0x4e, 0x88, 0xff, 0x78, 0x14, 0x89, 0xd1, 0x5a, 0x73, 0xfe, 0x7b, + 0xd4, 0x68, 0x6c, 0xa9, 0xaa, 0x25, 0x79, 0x15, 0xe9, 0xf9, 0xf2, 0xb8, 0xaa, 0xfd, 0xf9, 0x16, 0x30, 0x5a, 0xbe, 0xcb, + 0x7c, 0x6d, 0x8c, 0xe9, 0xdf, 0x7e, 0x56, 0x93, 0x7a, 0xbe, 0xd5, 0xcc, 0x27, 0xa3, 0xe5, 0x2a, 0xbd, 0x11, 0xff, 0x51, + 0x6e, 0xa9, 0x22, 0x19, 0xd1, 0x1d, 0x25, 0x58, 0x69, 0x87, 0xc7, 0xc6, 0xf8, 0x8f, 0xd6, 0xb1, 0x4b, 0xb4, 0xd5, 0xb9, + 0x37, 0xe2, 0xff, 0xba, 0xd7, 0x1e, 0x2d, 0xf5, 0x26, 0x6e, 0xca, 0xa8, 0x37, 0x96, 0xd7, 0x8e, 0x53, 0x57, 0xc7, 0xff, + 0xf5, 0x6f, 0x66, 0xfb, 0xdb, 0x48, 0xf6, 0xdd, 0x1d, 0xe5, 0x54, 0xeb, 0xff, 0xfb, 0xcb, 0x31, 0x7e, 0xec, 0x9b, 0xab, + 0xe3, 0x90, 0x4c, 0x09, 0x47, 0x72, 0x76, 0x35, 0xdb, 0xc3, 0xbe, 0xd9, 0xff, 0x3f, 0x1b, 0x0b, 0x8a, 0xff, 0xb5, 0xf1, + 0x5f, 0xf9, 0x26, 0xf1, 0xf0, 0x0c, 0x2a, 0x7d, 0xe2, 0x38, 0x20, 0xfe, 0xb3, 0xed, 0xd0, 0x75, 0x59, 0x75, 0x8d, 0xe5, + 0xb3, 0xeb, 0x12, 0xcf, 0x66, 0xd8, 0xfb, 0x6a, 0x61, 0x7e, 0x6c, 0x94, 0x8f, 0xff, 0x7c, 0xeb, 0x79, 0xf7, 0xd7, 0xb2, + 0xa5, 0xfa, 0xf3, 0xcc, 0x6e, 0xbe, 0xc4, 0xf7, 0xc5, 0x7f, 0x14, 0xfa, 0x94, 0xf7, 0xe3, 0xb9, 0x27, 0xfe, 0xa3, 0xb0, + 0x72, 0x31, 0xda, 0x56, 0xf9, 0x6a, 0xeb, 0x12, 0x7d, 0x6b, 0x06, 0xef, 0x5f, 0x81, 0xfb, 0xf8, 0xbf, 0x9b, 0x0f, 0xbe, + 0xdf, 0xff, 0xc7, 0x11, 0xfd, 0x7f, 0x94, 0xd7, 0x86, 0x47, 0xa1, 0xf5, 0xfd, 0x5a, 0xfc, 0x47, 0x21, 0x66, 0xa2, 0x65, + 0x5e, 0x3e, 0x96, 0xac, 0xe5, 0xf5, 0xae, 0x19, 0xee, 0xb9, 0x5a, 0x77, 0xbd, 0x68, 0xd7, 0xac, 0xe6, 0x77, 0xc5, 0xff, + 0x68, 0xe8, 0xff, 0x9f, 0x8d, 0x01, 0x66, 0xbf, 0x47, 0x7c, 0xac, 0xf7, 0xef, 0x8c, 0xff, 0x5d, 0x2b, 0xf6, 0xeb, 0x6b, + 0x63, 0x1c, 0x71, 0x65, 0xac, 0xff, 0x77, 0x8e, 0xff, 0xeb, 0x6b, 0x00, 0xb9, 0x79, 0x4c, 0x1c, 0x1a, 0xfd, 0x95, 0x39, + 0x73, 0xd7, 0x1d, 0xfb, 0xde, 0xa7, 0x09, 0xa2, 0xf0, 0xac, 0x46, 0xcf, 0x2a, 0xce, 0xea, 0x6b, 0x90, 0xef, 0xff, 0x77, + 0xdd, 0xff, 0xbf, 0x1f, 0x73, 0x9f, 0xd1, 0xff, 0x8f, 0xdb, 0xde, 0xfd, 0x94, 0xf3, 0x01, 0xf6, 0xb6, 0x00, 0x21, 0xfa, + 0xc1, 0x73, 0xc4, 0x80, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x9f, 0xcf, + 0xef, 0xcf, 0x63, 0x90, 0xcf, 0x84, 0xbd, 0x3e, 0x03, 0xfb, 0x4c, 0x4e, 0xe0, 0x6a, 0x09, 0x75, 0xfd, 0xc5, 0xeb, 0xdc, + 0xf1, 0x99, 0x4c, 0x0b, 0xcf, 0x6b, 0x46, 0xa4, 0x77, 0x3f, 0xe8, 0xcc, 0x28, 0x50, 0xc9, 0x69, 0x30, 0x92, 0x75, 0xa2, + 0x37, 0x97, 0x52, 0xee, 0xec, 0xf7, 0xd4, 0xf8, 0x2f, 0xc4, 0xff, 0xfb, 0x9f, 0x8c, 0x42, 0xfe, 0x9e, 0x9d, 0xf1, 0x9f, + 0xad, 0x7b, 0xb5, 0xfc, 0xb8, 0x73, 0x7d, 0xc9, 0xee, 0x8c, 0x62, 0xd1, 0x78, 0x0d, 0xf7, 0xf5, 0xab, 0x7f, 0xe6, 0xd0, + 0xd9, 0x51, 0xaf, 0x67, 0xe2, 0x3f, 0x9b, 0xfb, 0x34, 0x2e, 0x5a, 0xe1, 0x73, 0xe2, 0x7f, 0x6c, 0x89, 0xff, 0xf8, 0x48, + 0xfc, 0x77, 0x67, 0x92, 0xe9, 0xca, 0x42, 0x5e, 0xc9, 0x7c, 0x93, 0xbf, 0x86, 0xf5, 0x0c, 0xbf, 0xd5, 0x1a, 0xf7, 0x9d, + 0xf8, 0xaf, 0xd4, 0xad, 0xeb, 0x3c, 0xab, 0xe2, 0xff, 0xbe, 0x6c, 0x2b, 0xbd, 0xc9, 0xfc, 0xcf, 0x7b, 0x22, 0x7f, 0x4f, + 0x1e, 0xdd, 0xbb, 0x7d, 0xb4, 0xd6, 0xd6, 0x95, 0xd9, 0xbe, 0xf2, 0x2b, 0xf1, 0x1f, 0xc5, 0xbf, 0x12, 0x37, 0x2d, 0x4a, + 0x6f, 0x06, 0xf6, 0x9e, 0xac, 0x6d, 0x7b, 0xe3, 0xbf, 0x7b, 0xdf, 0x9f, 0x33, 0xe2, 0xff, 0xfd, 0x3c, 0xba, 0xab, 0xe6, + 0x70, 0xbd, 0x7d, 0xe5, 0xef, 0xee, 0xff, 0xef, 0x5b, 0xc9, 0x1d, 0xf5, 0x63, 0xa6, 0xa7, 0x7f, 0xb3, 0xff, 0x7f, 0xef, + 0xe7, 0xef, 0xc6, 0x7f, 0x57, 0x6d, 0x8f, 0x8d, 0x23, 0x93, 0x6a, 0x5f, 0xb9, 0x73, 0x95, 0x6c, 0xf7, 0xfc, 0x7f, 0xd5, + 0x37, 0x1b, 0xe9, 0xd1, 0x44, 0x1c, 0x1b, 0xff, 0x33, 0xab, 0x90, 0xeb, 0xc6, 0x0b, 0xef, 0x8c, 0xff, 0x6b, 0xfb, 0xdb, + 0x56, 0x76, 0x05, 0x3c, 0xad, 0xff, 0xdf, 0x75, 0x97, 0x6c, 0x6c, 0x8e, 0xc9, 0xbd, 0xc7, 0xea, 0xdc, 0xa5, 0x2e, 0x9f, + 0xbf, 0x3f, 0x9a, 0x47, 0x78, 0x5f, 0x8f, 0xff, 0xfa, 0x2a, 0xff, 0x68, 0x5a, 0x95, 0x7c, 0x6f, 0xfc, 0xbf, 0x7b, 0xa7, + 0x93, 0xca, 0x51, 0x7a, 0xda, 0xdf, 0x67, 0x77, 0x85, 0x7b, 0x7b, 0x81, 0x9f, 0xef, 0x36, 0x44, 0x53, 0xcf, 0xd1, 0x95, + 0xbf, 0xff, 0xcf, 0x73, 0xcb, 0xef, 0x78, 0x96, 0xbf, 0x13, 0x1f, 0xc9, 0xfd, 0xf4, 0xdf, 0x88, 0xff, 0xca, 0x91, 0x2b, + 0xff, 0x2b, 0x7b, 0x0d, 0x3b, 0xe3, 0xff, 0xbd, 0x16, 0x40, 0xde, 0x4d, 0x38, 0x71, 0x14, 0x03, 0xfc, 0x9e, 0x16, 0xc0, + 0x0e, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xee, 0x37, 0xb1, 0x7f, 0xce, + 0xcd, 0x55, 0xc9, 0x1a, 0x9f, 0x7f, 0x4f, 0x7a, 0x67, 0xc6, 0xfc, 0x71, 0x93, 0x85, 0xec, 0xfa, 0xb7, 0xfe, 0xfc, 0xa4, + 0x23, 0x1f, 0x6f, 0x34, 0xbe, 0xb5, 0x9e, 0xc9, 0xe5, 0x1d, 0x85, 0x6c, 0x03, 0x57, 0x6f, 0xc6, 0xe6, 0xae, 0x41, 0xee, + 0x18, 0xd1, 0x9e, 0xcf, 0x2c, 0xd2, 0xd9, 0x63, 0xfe, 0xf7, 0x9c, 0x9f, 0x67, 0xfa, 0x8d, 0xf2, 0x9b, 0xc6, 0x77, 0xb9, + 0xcc, 0xf2, 0xf9, 0x11, 0x2a, 0x39, 0xf3, 0xf2, 0x79, 0x36, 0x4f, 0xcf, 0x98, 0x3f, 0x9f, 0x79, 0x27, 0x6e, 0xea, 0xe4, + 0xf3, 0x5a, 0xfa, 0x24, 0x73, 0x44, 0x4f, 0x06, 0xa1, 0xda, 0x37, 0x8e, 0xe9, 0xda, 0x5a, 0xb9, 0xde, 0x99, 0x23, 0xc4, + 0xf4, 0xfb, 0xfc, 0x95, 0xfa, 0x1e, 0x93, 0xd7, 0xbd, 0xfe, 0x8d, 0x67, 0xb2, 0x10, 0x44, 0xa9, 0xa7, 0xeb, 0x2c, 0xc1, + 0xeb, 0x4f, 0xf2, 0x19, 0x33, 0xe3, 0x61, 0x7c, 0x75, 0xff, 0x74, 0x24, 0xdb, 0x9b, 0x4a, 0xbe, 0xba, 0x99, 0x5d, 0x33, + 0xe6, 0xc6, 0x88, 0xe3, 0x22, 0xbb, 0x52, 0x3e, 0xfa, 0x7f, 0xee, 0x6f, 0x62, 0x32, 0xfe, 0xa3, 0x98, 0x59, 0xa8, 0x1e, + 0x23, 0xd9, 0xf8, 0x9f, 0xbf, 0x0a, 0xbb, 0xe2, 0xbf, 0x92, 0xf5, 0xe0, 0xfd, 0x8c, 0xd9, 0xb5, 0x9e, 0x70, 0x6f, 0xfc, + 0xc7, 0x83, 0xf6, 0x6b, 0xa4, 0xe7, 0x2f, 0xa3, 0x90, 0xe1, 0xfc, 0xf9, 0xec, 0x22, 0x5a, 0xfb, 0xff, 0x71, 0x59, 0x26, + 0xf1, 0xc2, 0xf8, 0xbf, 0xb6, 0xdf, 0x5b, 0x2e, 0xfe, 0x67, 0x5a, 0xa7, 0xfd, 0xfd, 0x7f, 0xad, 0x5f, 0x3b, 0xb9, 0xff, + 0x7f, 0x27, 0x63, 0x76, 0x14, 0xe6, 0xd9, 0x95, 0xe3, 0xc6, 0xe4, 0xc8, 0xe0, 0xd9, 0x5c, 0x30, 0x1a, 0xe6, 0xab, 0x1d, + 0xf1, 0xdf, 0x3f, 0xc2, 0xae, 0xcc, 0xad, 0x6a, 0xfd, 0x7f, 0xb4, 0xce, 0xff, 0x23, 0xdd, 0xce, 0xcf, 0xc5, 0x7f, 0xe7, + 0x6e, 0x4b, 0x2b, 0x32, 0xe6, 0xe6, 0x77, 0x76, 0x7c, 0xab, 0xff, 0x1f, 0xa5, 0xfe, 0xbf, 0xd6, 0x7b, 0xcd, 0xd4, 0xca, + 0xd8, 0x90, 0xeb, 0x2e, 0x37, 0xfe, 0x5f, 0x3d, 0xca, 0xce, 0xcf, 0x28, 0x63, 0x53, 0xfb, 0xd4, 0x3d, 0xf7, 0xab, 0x45, + 0x4b, 0xa4, 0xc7, 0xd7, 0x3b, 0x33, 0xe6, 0x56, 0xd6, 0x9e, 0xcf, 0x8f, 0xff, 0xce, 0x3d, 0x4c, 0x2a, 0x77, 0x17, 0xa2, + 0xa1, 0x6f, 0x5e, 0xdd, 0xff, 0xcf, 0xce, 0xff, 0x2b, 0xb9, 0xf4, 0xf7, 0xac, 0xff, 0x8d, 0xa5, 0x6b, 0x3f, 0xd1, 0x7a, + 0x3f, 0x71, 0x1c, 0xd0, 0x7e, 0x77, 0x66, 0x89, 0x7f, 0x63, 0xfe, 0xdf, 0x95, 0x81, 0x7d, 0x94, 0xef, 0x09, 0xd5, 0xd7, + 0xff, 0x67, 0x6b, 0x60, 0x1c, 0xd3, 0xf7, 0x8f, 0xc7, 0x7b, 0xe8, 0xc4, 0x4b, 0xd1, 0x7f, 0x5a, 0xfc, 0x9f, 0xf2, 0x44, + 0x43, 0x47, 0xbb, 0x15, 0x2d, 0xad, 0x5b, 0x65, 0xdf, 0x96, 0xce, 0x71, 0xd4, 0xfc, 0xfc, 0x7f, 0xcd, 0xba, 0xfa, 0x1b, + 0xc7, 0x98, 0xb9, 0x23, 0x3b, 0x1f, 0xff, 0xb1, 0xbc, 0xe4, 0xe4, 0x23, 0xfe, 0x4e, 0x2b, 0x75, 0xde, 0xf1, 0xfe, 0xe6, + 0xda, 0x13, 0x1b, 0x9f, 0xb5, 0x13, 0xa1, 0xc4, 0xd1, 0xf3, 0x21, 0xd7, 0x03, 0xfe, 0xe6, 0xf9, 0xd0, 0xdf, 0xfa, 0x1c, + 0xbc, 0x92, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4e, 0x7d, 0x3b, 0xa4, 0x92, 0x59, + 0x72, 0x34, 0xbf, 0x8b, 0x9e, 0xcf, 0xad, 0x5f, 0x3d, 0xbb, 0xbb, 0xf7, 0xa5, 0x6b, 0xf9, 0x79, 0x6b, 0xe5, 0x34, 0x97, + 0x8f, 0x28, 0x97, 0x53, 0xed, 0x7e, 0xff, 0x83, 0x38, 0xf2, 0x6a, 0xde, 0x65, 0x75, 0x8d, 0x42, 0x3e, 0xd5, 0xce, 0xeb, + 0x35, 0x4a, 0x65, 0xb7, 0xab, 0x96, 0x3d, 0x7f, 0x3b, 0x34, 0x36, 0xbc, 0x4f, 0x59, 0x8b, 0x85, 0x5a, 0x6e, 0xc3, 0xb9, + 0xdc, 0x61, 0xb1, 0xf8, 0x9b, 0xe5, 0xca, 0x6f, 0x7e, 0x3f, 0x89, 0xfb, 0x6c, 0xab, 0xf1, 0xb9, 0xab, 0x59, 0xcd, 0xf8, + 0xde, 0x7d, 0xbd, 0xea, 0xb5, 0xe5, 0x84, 0x5a, 0xb6, 0x7e, 0x67, 0x89, 0x37, 0xde, 0x6e, 0xad, 0x66, 0xc4, 0x8d, 0xcf, + 0xbf, 0x73, 0x1a, 0x1f, 0xcd, 0x05, 0x50, 0xcb, 0x13, 0xb9, 0xeb, 0x5b, 0x55, 0x8e, 0x14, 0xa5, 0x3d, 0x9b, 0xc6, 0xf6, + 0xec, 0x10, 0xf9, 0xec, 0xe7, 0xa3, 0x94, 0xef, 0xb3, 0xfb, 0x93, 0xca, 0x15, 0xa9, 0xc7, 0xff, 0x55, 0x39, 0x55, 0x3e, + 0x99, 0xed, 0xff, 0xc7, 0xf2, 0x7d, 0x18, 0x4e, 0xb9, 0x9a, 0x77, 0xfd, 0x7f, 0xb4, 0xed, 0x98, 0xb4, 0xf7, 0x93, 0x1d, + 0xe5, 0xda, 0x11, 0x0b, 0xbb, 0xf6, 0xfb, 0x8b, 0x74, 0xad, 0x18, 0xe9, 0x1c, 0x7b, 0xf5, 0xd9, 0xd7, 0xae, 0x4f, 0x56, + 0xc4, 0x7f, 0x5c, 0xcc, 0x93, 0xbb, 0x77, 0x1d, 0xeb, 0xbe, 0x9a, 0x4f, 0x5a, 0x86, 0x2f, 0xc6, 0xff, 0x8e, 0xf8, 0x99, + 0x9d, 0xff, 0x47, 0x79, 0x37, 0x9d, 0x33, 0x6b, 0x4c, 0x3c, 0xcc, 0xe8, 0xfc, 0xdb, 0xe2, 0x7f, 0x6f, 0x19, 0x77, 0xb7, + 0xe6, 0xd7, 0x23, 0xec, 0xf1, 0xd1, 0xf8, 0x9f, 0xdd, 0xef, 0x6d, 0x7e, 0xee, 0x7a, 0xbf, 0xfe, 0xdf, 0xb9, 0xb2, 0x71, + 0x46, 0xfc, 0x9f, 0x12, 0xe5, 0xb9, 0x32, 0x5f, 0x1b, 0xff, 0xef, 0xc7, 0x50, 0x57, 0x1f, 0xf6, 0xde, 0xb9, 0x47, 0xdb, + 0xfc, 0xff, 0x7e, 0x97, 0xe4, 0xdc, 0xdd, 0x9d, 0xbd, 0xab, 0x49, 0x3b, 0x4b, 0xbd, 0x73, 0xcf, 0xe1, 0xa7, 0x63, 0x87, + 0xee, 0xf9, 0xee, 0x19, 0xfd, 0x7f, 0x88, 0xff, 0x05, 0x6b, 0xe1, 0x27, 0xf4, 0x92, 0xab, 0xee, 0xe5, 0xe5, 0xb3, 0xd8, + 0xf7, 0x7e, 0x32, 0x5b, 0x52, 0xf9, 0xfb, 0xff, 0x5f, 0x1f, 0xff, 0x3f, 0xd9, 0xe1, 0xe7, 0x5b, 0xf1, 0x1f, 0xc5, 0x15, + 0xc5, 0x33, 0xe2, 0x3f, 0x36, 0x8e, 0x6a, 0x57, 0xdc, 0xcb, 0x3f, 0x79, 0xfc, 0xdf, 0xbf, 0x13, 0xd4, 0xd7, 0xe3, 0xff, + 0x0b, 0x63, 0xe8, 0x35, 0x4f, 0xa1, 0xbc, 0x17, 0xff, 0x73, 0x77, 0x86, 0x4f, 0x1e, 0xff, 0x9f, 0x1e, 0xff, 0xb3, 0x57, + 0x25, 0x36, 0xcd, 0xff, 0x9f, 0x8e, 0x34, 0x7e, 0x7f, 0xfc, 0x8f, 0xad, 0x7b, 0xf7, 0xd7, 0xe7, 0x9b, 0xe3, 0xd0, 0x67, + 0x61, 0xce, 0x79, 0x8a, 0xe3, 0xfd, 0x99, 0xcd, 0xfc, 0xae, 0xa8, 0xeb, 0xef, 0xff, 0x8f, 0x65, 0xfd, 0x7f, 0xef, 0x93, + 0x2d, 0xbb, 0xee, 0xff, 0xef, 0x7d, 0xa2, 0xa8, 0xfb, 0x0c, 0xc5, 0xff, 0x37, 0xda, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xe2, 0x73, 0xf2, 0x2b, 0x72, 0xeb, 0xf7, 0xe7, 0xc3, 0x38, 0x3d, 0xb7, 0xfe, + 0xdd, 0xfb, 0x33, 0xe3, 0xd8, 0xdc, 0xfa, 0xe3, 0x51, 0x8e, 0xa2, 0xef, 0xe5, 0xd6, 0xf7, 0xee, 0xc7, 0xd3, 0xb7, 0x64, + 0xd6, 0xe5, 0xd6, 0xef, 0x7b, 0x87, 0xfa, 0xf4, 0xdc, 0xfa, 0xe3, 0x26, 0x13, 0xd1, 0xc9, 0xb9, 0xf5, 0xeb, 0x6f, 0x51, + 0x9d, 0x9a, 0x5b, 0x9f, 0xb5, 0xef, 0x4e, 0x3e, 0x6d, 0xfb, 0xe3, 0xc5, 0x6b, 0xf6, 0x46, 0x36, 0x84, 0x93, 0x6b, 0x64, + 0x3e, 0x5b, 0xd3, 0x8a, 0x16, 0xa5, 0xf3, 0x7d, 0xcd, 0xb3, 0x73, 0xeb, 0x7f, 0x3d, 0xc6, 0xeb, 0xd9, 0x58, 0xa3, 0x9c, + 0xf3, 0xbe, 0xef, 0x5d, 0xed, 0x48, 0x8d, 0x1b, 0xd7, 0xe6, 0xd6, 0xba, 0x6e, 0x47, 0xcf, 0xdd, 0x29, 0xe1, 0xdb, 0xb9, + 0xb5, 0xc5, 0x7f, 0x4f, 0xab, 0x1b, 0x4d, 0x51, 0xf7, 0xf4, 0x93, 0x7d, 0x59, 0x83, 0xfa, 0xe2, 0x3f, 0xda, 0x3f, 0xdb, + 0x9b, 0x5b, 0xab, 0xba, 0x9e, 0x20, 0xfe, 0x7f, 0x57, 0x3b, 0x90, 0x99, 0xd1, 0x3e, 0x29, 0xf7, 0x37, 0x6b, 0xc0, 0xce, + 0xdc, 0x5a, 0x5f, 0x8f, 0xff, 0x4a, 0xff, 0x20, 0xfe, 0x7f, 0xcf, 0xf8, 0xbf, 0xaf, 0x2f, 0xaf, 0xaf, 0xff, 0x7f, 0x79, + 0x6f, 0xad, 0xdf, 0x19, 0xff, 0x67, 0xe4, 0xd6, 0x15, 0xff, 0xef, 0x8c, 0xff, 0x6b, 0xfb, 0x13, 0xac, 0x58, 0xcd, 0xed, + 0x9d, 0x4d, 0x88, 0xff, 0xd5, 0x75, 0xe7, 0xa4, 0x9d, 0x21, 0xc4, 0x78, 0x7d, 0xfe, 0x5f, 0xdb, 0x13, 0xb4, 0xda, 0x02, + 0xec, 0xcb, 0xd5, 0xfa, 0x46, 0x6e, 0x7d, 0xb9, 0x75, 0x67, 0xae, 0xd7, 0xf5, 0xe8, 0xef, 0x9b, 0xf7, 0x63, 0x4e, 0x1f, + 0xff, 0xf7, 0xde, 0xab, 0xf9, 0xff, 0x35, 0xa5, 0xd5, 0x2b, 0xde, 0xab, 0xc6, 0xff, 0x2b, 0xda, 0xd8, 0x37, 0x4b, 0x63, + 0xcd, 0xbd, 0xa3, 0xfe, 0x33, 0x8c, 0xa6, 0xd1, 0x1f, 0xef, 0xb4, 0x1a, 0xb0, 0x66, 0x9c, 0xf1, 0x7e, 0x4b, 0x08, 0x7c, + 0xed, 0x49, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x93, 0xfc, 0xfb, 0x9f, 0x72, 0x00, 0xf1, 0x0f, 0xfc, 0x75, 0xf1, 0xff, 0x2f }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle genesisFontRecs[189] = { + { 4, 4, 4 , 16 }, + { 16, 4, 1 , 9 }, + { 25, 4, 3 , 3 }, + { 36, 4, 6 , 9 }, + { 50, 4, 5 , 13 }, + { 63, 4, 7 , 9 }, + { 78, 4, 5 , 9 }, + { 91, 4, 1 , 3 }, + { 100, 4, 3 , 9 }, + { 111, 4, 3 , 9 }, + { 122, 4, 5 , 5 }, + { 135, 4, 5 , 5 }, + { 148, 4, 2 , 3 }, + { 158, 4, 4 , 1 }, + { 170, 4, 1 , 1 }, + { 179, 4, 3 , 9 }, + { 190, 4, 5 , 9 }, + { 203, 4, 3 , 9 }, + { 214, 4, 5 , 9 }, + { 227, 4, 5 , 9 }, + { 240, 4, 5 , 9 }, + { 253, 4, 5 , 9 }, + { 266, 4, 5 , 9 }, + { 279, 4, 5 , 9 }, + { 292, 4, 5 , 9 }, + { 305, 4, 5 , 9 }, + { 318, 4, 1 , 7 }, + { 327, 4, 2 , 9 }, + { 337, 4, 3 , 5 }, + { 348, 4, 4 , 3 }, + { 360, 4, 3 , 5 }, + { 371, 4, 5 , 9 }, + { 384, 4, 7 , 9 }, + { 399, 4, 5 , 9 }, + { 412, 4, 5 , 9 }, + { 425, 4, 5 , 9 }, + { 438, 4, 5 , 9 }, + { 451, 4, 5 , 9 }, + { 464, 4, 5 , 9 }, + { 477, 4, 5 , 9 }, + { 490, 4, 5 , 9 }, + { 4, 28, 1 , 9 }, + { 13, 28, 5 , 9 }, + { 26, 28, 5 , 9 }, + { 39, 28, 5 , 9 }, + { 52, 28, 7 , 9 }, + { 67, 28, 5 , 9 }, + { 80, 28, 5 , 9 }, + { 93, 28, 5 , 9 }, + { 106, 28, 5 , 9 }, + { 119, 28, 5 , 9 }, + { 132, 28, 5 , 9 }, + { 145, 28, 5 , 9 }, + { 158, 28, 5 , 9 }, + { 171, 28, 5 , 9 }, + { 184, 28, 7 , 9 }, + { 199, 28, 5 , 9 }, + { 212, 28, 5 , 9 }, + { 225, 28, 5 , 9 }, + { 238, 28, 3 , 9 }, + { 249, 28, 3 , 9 }, + { 260, 28, 3 , 9 }, + { 271, 28, 5 , 3 }, + { 284, 28, 5 , 1 }, + { 297, 28, 2 , 2 }, + { 307, 28, 5 , 7 }, + { 320, 28, 5 , 9 }, + { 333, 28, 5 , 7 }, + { 346, 28, 5 , 9 }, + { 359, 28, 5 , 7 }, + { 372, 28, 4 , 9 }, + { 384, 28, 5 , 9 }, + { 397, 28, 5 , 9 }, + { 410, 28, 1 , 9 }, + { 419, 28, 5 , 11 }, + { 432, 28, 5 , 9 }, + { 445, 28, 2 , 9 }, + { 455, 28, 7 , 7 }, + { 470, 28, 5 , 7 }, + { 483, 28, 5 , 7 }, + { 496, 28, 5 , 9 }, + { 4, 52, 5 , 9 }, + { 17, 52, 5 , 7 }, + { 30, 52, 5 , 7 }, + { 43, 52, 4 , 8 }, + { 55, 52, 5 , 7 }, + { 68, 52, 5 , 7 }, + { 81, 52, 7 , 7 }, + { 96, 52, 5 , 7 }, + { 109, 52, 5 , 9 }, + { 122, 52, 5 , 7 }, + { 135, 52, 4 , 9 }, + { 147, 52, 1 , 9 }, + { 156, 52, 4 , 9 }, + { 168, 52, 6 , 2 }, + { 182, 52, 1 , 9 }, + { 191, 52, 5 , 11 }, + { 204, 52, 6 , 9 }, + { 218, 52, 6 , 9 }, + { 232, 52, 5 , 9 }, + { 245, 52, 5 , 12 }, + { 258, 52, 0 , 0 }, + { 266, 52, 5 , 10 }, + { 279, 52, 7 , 9 }, + { 294, 52, 0 , 0 }, + { 302, 52, 6 , 5 }, + { 316, 52, 5 , 3 }, + { 329, 52, 7 , 9 }, + { 344, 52, 0 , 0 }, + { 352, 52, 4 , 4 }, + { 364, 52, 5 , 7 }, + { 377, 52, 0 , 0 }, + { 385, 52, 0 , 0 }, + { 393, 52, 5 , 12 }, + { 406, 52, 5 , 9 }, + { 419, 52, 7 , 9 }, + { 434, 52, 1 , 1 }, + { 443, 52, 5 , 10 }, + { 456, 52, 0 , 0 }, + { 464, 52, 0 , 0 }, + { 472, 52, 6 , 5 }, + { 486, 52, 9 , 9 }, + { 4, 76, 9 , 7 }, + { 21, 76, 5 , 11 }, + { 34, 76, 5 , 9 }, + { 47, 76, 5 , 12 }, + { 60, 76, 5 , 12 }, + { 73, 76, 5 , 12 }, + { 86, 76, 6 , 12 }, + { 100, 76, 5 , 11 }, + { 113, 76, 5 , 13 }, + { 126, 76, 9 , 9 }, + { 143, 76, 5 , 12 }, + { 156, 76, 5 , 12 }, + { 169, 76, 5 , 12 }, + { 182, 76, 5 , 12 }, + { 195, 76, 5 , 11 }, + { 208, 76, 2 , 12 }, + { 218, 76, 2 , 12 }, + { 228, 76, 3 , 12 }, + { 239, 76, 3 , 11 }, + { 250, 76, 6 , 9 }, + { 264, 76, 6 , 12 }, + { 278, 76, 5 , 12 }, + { 291, 76, 5 , 12 }, + { 304, 76, 5 , 12 }, + { 317, 76, 6 , 12 }, + { 331, 76, 5 , 11 }, + { 344, 76, 5 , 5 }, + { 357, 76, 7 , 9 }, + { 372, 76, 5 , 12 }, + { 385, 76, 5 , 12 }, + { 398, 76, 5 , 12 }, + { 411, 76, 5 , 11 }, + { 424, 76, 5 , 12 }, + { 437, 76, 5 , 9 }, + { 450, 76, 5 , 9 }, + { 463, 76, 5 , 10 }, + { 476, 76, 5 , 10 }, + { 489, 76, 5 , 10 }, + { 4, 100, 6 , 10 }, + { 18, 100, 5 , 9 }, + { 31, 100, 5 , 11 }, + { 44, 100, 9 , 7 }, + { 61, 100, 5 , 10 }, + { 74, 100, 5 , 10 }, + { 87, 100, 5 , 10 }, + { 100, 100, 5 , 10 }, + { 113, 100, 5 , 9 }, + { 126, 100, 2 , 10 }, + { 136, 100, 2 , 10 }, + { 146, 100, 3 , 10 }, + { 157, 100, 3 , 9 }, + { 168, 100, 6 , 9 }, + { 182, 100, 6 , 10 }, + { 196, 100, 5 , 10 }, + { 209, 100, 5 , 10 }, + { 222, 100, 5 , 10 }, + { 235, 100, 6 , 10 }, + { 249, 100, 5 , 9 }, + { 262, 100, 5 , 5 }, + { 275, 100, 7 , 7 }, + { 290, 100, 5 , 10 }, + { 303, 100, 5 , 10 }, + { 316, 100, 5 , 10 }, + { 329, 100, 5 , 9 }, + { 342, 100, 5 , 12 }, + { 355, 100, 5 , 11 }, + { 368, 100, 5 , 11 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo genesisFontGlyphs[189] = { + { 32, 0, 0, 4, { 0 }}, + { 33, 2, 4, 5, { 0 }}, + { 34, 2, 4, 7, { 0 }}, + { 35, 1, 4, 8, { 0 }}, + { 36, 1, 2, 7, { 0 }}, + { 37, 1, 4, 9, { 0 }}, + { 38, 1, 4, 7, { 0 }}, + { 39, 2, 4, 5, { 0 }}, + { 40, 3, 4, 7, { 0 }}, + { 41, 1, 4, 7, { 0 }}, + { 42, 1, 4, 7, { 0 }}, + { 43, 1, 6, 7, { 0 }}, + { 44, 1, 12, 5, { 0 }}, + { 45, 1, 8, 6, { 0 }}, + { 46, 2, 12, 5, { 0 }}, + { 47, 1, 4, 5, { 0 }}, + { 48, 1, 4, 7, { 0 }}, + { 49, 2, 4, 7, { 0 }}, + { 50, 1, 4, 7, { 0 }}, + { 51, 1, 4, 7, { 0 }}, + { 52, 1, 4, 7, { 0 }}, + { 53, 1, 4, 7, { 0 }}, + { 54, 1, 4, 7, { 0 }}, + { 55, 1, 4, 7, { 0 }}, + { 56, 1, 4, 7, { 0 }}, + { 57, 1, 4, 7, { 0 }}, + { 58, 2, 6, 5, { 0 }}, + { 59, 1, 6, 5, { 0 }}, + { 60, 1, 6, 5, { 0 }}, + { 61, 1, 7, 6, { 0 }}, + { 62, 1, 6, 5, { 0 }}, + { 63, 1, 4, 7, { 0 }}, + { 64, 1, 4, 9, { 0 }}, + { 65, 1, 4, 7, { 0 }}, + { 66, 1, 4, 7, { 0 }}, + { 67, 1, 4, 7, { 0 }}, + { 68, 1, 4, 7, { 0 }}, + { 69, 1, 4, 7, { 0 }}, + { 70, 1, 4, 7, { 0 }}, + { 71, 1, 4, 7, { 0 }}, + { 72, 1, 4, 7, { 0 }}, + { 73, 2, 4, 5, { 0 }}, + { 74, 1, 4, 7, { 0 }}, + { 75, 1, 4, 7, { 0 }}, + { 76, 1, 4, 7, { 0 }}, + { 77, 1, 4, 9, { 0 }}, + { 78, 1, 4, 7, { 0 }}, + { 79, 1, 4, 7, { 0 }}, + { 80, 1, 4, 7, { 0 }}, + { 81, 1, 4, 7, { 0 }}, + { 82, 1, 4, 7, { 0 }}, + { 83, 1, 4, 7, { 0 }}, + { 84, 1, 4, 7, { 0 }}, + { 85, 1, 4, 7, { 0 }}, + { 86, 1, 4, 7, { 0 }}, + { 87, 1, 4, 9, { 0 }}, + { 88, 1, 4, 7, { 0 }}, + { 89, 1, 4, 7, { 0 }}, + { 90, 1, 4, 7, { 0 }}, + { 91, 3, 4, 7, { 0 }}, + { 92, 1, 4, 5, { 0 }}, + { 93, 1, 4, 7, { 0 }}, + { 94, 1, 4, 7, { 0 }}, + { 95, 0, 14, 5, { 0 }}, + { 96, 1, 4, 5, { 0 }}, + { 97, 1, 6, 7, { 0 }}, + { 98, 1, 4, 7, { 0 }}, + { 99, 1, 6, 7, { 0 }}, + { 100, 1, 4, 7, { 0 }}, + { 101, 1, 6, 7, { 0 }}, + { 102, 1, 4, 6, { 0 }}, + { 103, 1, 6, 7, { 0 }}, + { 104, 1, 4, 7, { 0 }}, + { 105, 2, 4, 5, { 0 }}, + { 106, 1, 4, 7, { 0 }}, + { 107, 1, 4, 7, { 0 }}, + { 108, 2, 4, 5, { 0 }}, + { 109, 1, 6, 9, { 0 }}, + { 110, 1, 6, 7, { 0 }}, + { 111, 1, 6, 7, { 0 }}, + { 112, 1, 6, 7, { 0 }}, + { 113, 1, 6, 7, { 0 }}, + { 114, 1, 6, 7, { 0 }}, + { 115, 1, 6, 7, { 0 }}, + { 116, 1, 5, 6, { 0 }}, + { 117, 1, 6, 7, { 0 }}, + { 118, 1, 6, 7, { 0 }}, + { 119, 1, 6, 9, { 0 }}, + { 120, 1, 6, 7, { 0 }}, + { 121, 1, 6, 7, { 0 }}, + { 122, 1, 6, 7, { 0 }}, + { 123, 2, 4, 7, { 0 }}, + { 124, 2, 4, 5, { 0 }}, + { 125, 1, 4, 7, { 0 }}, + { 126, 1, 4, 8, { 0 }}, + { 161, 2, 6, 5, { 0 }}, + { 162, 1, 4, 7, { 0 }}, + { 163, 1, 4, 8, { 0 }}, + { 8364, 1, 4, 8, { 0 }}, + { 165, 1, 4, 7, { 0 }}, + { 352, 1, 1, 7, { 0 }}, + { 167, 0, 0, 0, { 0 }}, + { 353, 1, 3, 7, { 0 }}, + { 169, 1, 4, 9, { 0 }}, + { 170, 0, 0, 0, { 0 }}, + { 171, 1, 6, 8, { 0 }}, + { 172, 1, 8, 7, { 0 }}, + { 174, 1, 4, 9, { 0 }}, + { 175, 0, 0, 0, { 0 }}, + { 176, 1, 4, 6, { 0 }}, + { 177, 1, 6, 7, { 0 }}, + { 178, 0, 0, 0, { 0 }}, + { 179, 0, 0, 0, { 0 }}, + { 381, 1, 1, 7, { 0 }}, + { 181, 1, 6, 7, { 0 }}, + { 182, 1, 4, 9, { 0 }}, + { 183, 2, 8, 5, { 0 }}, + { 382, 1, 3, 7, { 0 }}, + { 185, 0, 0, 0, { 0 }}, + { 186, 0, 0, 0, { 0 }}, + { 187, 1, 6, 8, { 0 }}, + { 338, 1, 4, 11, { 0 }}, + { 339, 1, 6, 11, { 0 }}, + { 376, 1, 2, 7, { 0 }}, + { 191, 1, 6, 7, { 0 }}, + { 192, 1, 1, 7, { 0 }}, + { 193, 1, 1, 7, { 0 }}, + { 194, 1, 1, 7, { 0 }}, + { 195, 1, 1, 7, { 0 }}, + { 196, 1, 2, 7, { 0 }}, + { 197, 1, 0, 7, { 0 }}, + { 198, 1, 4, 11, { 0 }}, + { 199, 1, 4, 7, { 0 }}, + { 200, 1, 1, 7, { 0 }}, + { 201, 1, 1, 7, { 0 }}, + { 202, 1, 1, 7, { 0 }}, + { 203, 1, 2, 7, { 0 }}, + { 204, 1, 1, 5, { 0 }}, + { 205, 2, 1, 5, { 0 }}, + { 206, 1, 1, 5, { 0 }}, + { 207, 1, 2, 5, { 0 }}, + { 208, 0, 4, 7, { 0 }}, + { 209, 1, 1, 7, { 0 }}, + { 210, 1, 1, 7, { 0 }}, + { 211, 1, 1, 7, { 0 }}, + { 212, 1, 1, 7, { 0 }}, + { 213, 1, 1, 7, { 0 }}, + { 214, 1, 2, 7, { 0 }}, + { 215, 1, 6, 7, { 0 }}, + { 216, 0, 4, 7, { 0 }}, + { 217, 1, 1, 7, { 0 }}, + { 218, 1, 1, 7, { 0 }}, + { 219, 1, 1, 7, { 0 }}, + { 220, 1, 2, 7, { 0 }}, + { 221, 1, 1, 7, { 0 }}, + { 222, 1, 4, 7, { 0 }}, + { 223, 1, 4, 7, { 0 }}, + { 224, 1, 3, 7, { 0 }}, + { 225, 1, 3, 7, { 0 }}, + { 226, 1, 3, 7, { 0 }}, + { 227, 1, 3, 7, { 0 }}, + { 228, 1, 4, 7, { 0 }}, + { 229, 1, 2, 7, { 0 }}, + { 230, 1, 6, 11, { 0 }}, + { 231, 1, 6, 7, { 0 }}, + { 232, 1, 3, 7, { 0 }}, + { 233, 1, 3, 7, { 0 }}, + { 234, 1, 3, 7, { 0 }}, + { 235, 1, 4, 7, { 0 }}, + { 236, 1, 3, 5, { 0 }}, + { 237, 2, 3, 5, { 0 }}, + { 238, 1, 3, 5, { 0 }}, + { 239, 1, 4, 5, { 0 }}, + { 240, 1, 4, 7, { 0 }}, + { 241, 1, 3, 7, { 0 }}, + { 242, 1, 3, 7, { 0 }}, + { 243, 1, 3, 7, { 0 }}, + { 244, 1, 3, 7, { 0 }}, + { 245, 1, 3, 7, { 0 }}, + { 246, 1, 4, 7, { 0 }}, + { 247, 1, 6, 7, { 0 }}, + { 248, 0, 6, 7, { 0 }}, + { 249, 1, 3, 7, { 0 }}, + { 250, 1, 3, 7, { 0 }}, + { 251, 1, 3, 7, { 0 }}, + { 252, 1, 4, 7, { 0 }}, + { 253, 1, 3, 7, { 0 }}, + { 254, 1, 4, 7, { 0 }}, + { 255, 1, 4, 7, { 0 }}, +}; + +// Style loading function: Genesis +static void GuiLoadStyleGenesis(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < GENESIS_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(genesisStyleProps[i].controlId, genesisStyleProps[i].propertyId, genesisStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int genesisFontDataSize = 0; + unsigned char *data = DecompressData(genesisFontData, GENESIS_STYLE_FONT_ATLAS_COMP_SIZE, &genesisFontDataSize); + Image imFont = { data, 512, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 16; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, genesisFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, genesisFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 510, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_jungle.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_jungle.h new file mode 100644 index 0000000..7311a6e --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_jungle.h @@ -0,0 +1,579 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleJungle(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define JUNGLE_STYLE_PROPS_COUNT 17 + +// Custom style name: Jungle +static const GuiStyleProp jungleStyleProps[JUNGLE_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0x60827dff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0x2c3334ff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0x82a29fff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0x5f9aa8ff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0x334e57ff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0x6aa9b8ff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0xa9cb8dff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0x3b6357ff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0x97af81ff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0x5b6462ff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0x2c3334ff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0x666b69ff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x0000000c }, // DEFAULT_TEXT_SIZE + { 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING + { 0, 18, (int)0x638465ff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0x2b3a3aff }, // DEFAULT_BACKGROUND_COLOR + { 0, 20, (int)0x00000006 }, // DEFAULT_TEXT_LINE_SPACING +}; + +// WARNING: This style uses a custom font: "PixelIntv.otf" (size: 12, spacing: 0) + +#define JUNGLE_STYLE_FONT_ATLAS_COMP_SIZE 2059 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char jungleFontData[JUNGLE_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0x9d, 0xbd, 0x8e, 0x1d, 0x35, 0x18, 0x86, 0x8d, 0x39, 0x1d, 0x25, 0xa2, 0x00, 0x09, 0x91, 0x06, 0x89, 0x86, 0x86, 0x28, + 0x12, 0x74, 0x7b, 0x01, 0xd4, 0x08, 0x51, 0x20, 0x2a, 0x1a, 0xe0, 0x1e, 0xc8, 0x95, 0xa5, 0xa1, 0xe7, 0x06, 0xb8, 0x0b, + 0x2e, 0xe0, 0x8b, 0x36, 0x9b, 0xdd, 0xec, 0xee, 0x99, 0xb1, 0xfd, 0xfd, 0xd8, 0x9e, 0x9f, 0x67, 0x1f, 0x25, 0x52, 0xc6, + 0x67, 0x66, 0x6c, 0xbf, 0xb6, 0x67, 0x36, 0xdf, 0x7b, 0x3e, 0x4b, 0x02, 0x00, 0x00, 0x00, 0xb8, 0xe2, 0xf6, 0x67, 0xf9, + 0xd8, 0x52, 0x49, 0x7a, 0x5f, 0xd2, 0x7e, 0xad, 0xfb, 0xe3, 0x77, 0x25, 0x79, 0xf5, 0x13, 0xcb, 0x57, 0xcc, 0x2b, 0x75, + 0x58, 0xab, 0xf5, 0x7a, 0xcd, 0x92, 0xaa, 0x64, 0xfd, 0xfa, 0xeb, 0xfd, 0x95, 0x14, 0x6d, 0x78, 0xfa, 0x93, 0x14, 0x6d, + 0x29, 0x9f, 0xd7, 0x5b, 0xff, 0x72, 0x1f, 0xac, 0x97, 0xdd, 0xfd, 0xb9, 0xed, 0x89, 0xac, 0xb8, 0xe6, 0xfa, 0xe7, 0x93, + 0x6a, 0x04, 0xea, 0x47, 0x86, 0xae, 0x77, 0x4b, 0x9f, 0xae, 0xb5, 0x41, 0x94, 0x35, 0xb8, 0x3f, 0xde, 0x53, 0xff, 0xf4, + 0x70, 0x8f, 0xf6, 0xf9, 0x5f, 0x53, 0x45, 0xe4, 0xb2, 0xd8, 0x13, 0xa9, 0xa8, 0x4d, 0x36, 0xdc, 0x29, 0x62, 0x34, 0xa7, + 0xa0, 0xde, 0xcd, 0xc5, 0x36, 0x88, 0x41, 0x7f, 0xdb, 0x08, 0x8d, 0xba, 0x8e, 0x6d, 0xfe, 0xdf, 0x72, 0x79, 0x37, 0x02, + 0xca, 0x57, 0xf5, 0xd7, 0x38, 0x6a, 0xfe, 0xa7, 0xae, 0xea, 0x7b, 0xf4, 0x1f, 0xb1, 0xfe, 0x97, 0x3f, 0x5f, 0xee, 0xb3, + 0xe5, 0xeb, 0xe5, 0xf7, 0xf3, 0x5f, 0xff, 0xf4, 0x8c, 0xd0, 0x5f, 0xff, 0xfc, 0xef, 0xab, 0x7e, 0xc4, 0xfa, 0xbf, 0xc5, + 0xf7, 0xc8, 0xda, 0x73, 0x7c, 0x79, 0xec, 0x48, 0xf7, 0xf9, 0x3f, 0x83, 0x92, 0xfa, 0xb5, 0xf7, 0x3f, 0x71, 0xac, 0xb3, + 0xbd, 0xe7, 0xbf, 0xe5, 0x5a, 0xf7, 0x3d, 0x21, 0x86, 0xf9, 0xb9, 0x57, 0xfd, 0x4b, 0xea, 0x43, 0xc4, 0x5a, 0xa3, 0x79, + 0xca, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x33, 0x62, 0x52, 0x8e, 0xbf, 0x47, + 0x46, 0x22, 0x7b, 0x95, 0xb5, 0xbb, 0x0d, 0x34, 0xce, 0x95, 0x6c, 0xe8, 0xb1, 0x59, 0xfd, 0xd2, 0xcb, 0xed, 0x97, 0xd4, + 0xde, 0x8c, 0x96, 0xda, 0x58, 0xef, 0xe7, 0xd1, 0x3f, 0x2b, 0x63, 0xaf, 0x65, 0x87, 0xde, 0x9a, 0x9f, 0x71, 0x3d, 0x72, + 0xed, 0x6d, 0x9f, 0xb6, 0x4c, 0xb7, 0x02, 0xa4, 0x21, 0xf3, 0xbf, 0xcd, 0xc3, 0xd4, 0xc7, 0xdd, 0xb8, 0xec, 0x33, 0x2b, + 0xd5, 0xf5, 0xa2, 0x76, 0x14, 0x7e, 0x88, 0x36, 0xf7, 0x1d, 0xdf, 0xd1, 0xae, 0x4f, 0xab, 0xa3, 0xc4, 0x32, 0x26, 0x2d, + 0x0e, 0xd6, 0x88, 0xf5, 0x3f, 0x66, 0xfe, 0x97, 0xc6, 0xa9, 0x3c, 0xfb, 0x13, 0xb3, 0x8e, 0xcf, 0xd2, 0xbf, 0xc7, 0x5a, + 0x9d, 0x1a, 0x56, 0x05, 0x6b, 0x5d, 0x6c, 0xcf, 0x7f, 0x8b, 0x53, 0xa7, 0xe4, 0x56, 0xb2, 0xbf, 0x4f, 0xcd, 0x98, 0xff, + 0x9e, 0x39, 0x6e, 0x5b, 0xff, 0xcb, 0xfa, 0xc7, 0xb9, 0xdb, 0x64, 0xca, 0xdb, 0x74, 0xcb, 0x1c, 0xdb, 0xd6, 0xf3, 0x1f, + 0x22, 0xfd, 0x8c, 0xf3, 0x7e, 0x9f, 0x42, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe8, 0xeb, 0xc7, 0x1b, 0xe5, 0x29, 0x91, 0xc6, 0x2c, 0x3e, 0xeb, 0x7e, 0xad, 0x51, 0x6e, 0xbd, 0xf1, 0xfd, 0x1d, 0xed, + 0xfb, 0x88, 0x88, 0x49, 0x5b, 0x32, 0x98, 0xf9, 0xbd, 0x88, 0xb2, 0x09, 0x47, 0x5e, 0x8f, 0x7e, 0x9b, 0xa9, 0xbf, 0xa5, + 0x3e, 0x76, 0xfd, 0xc5, 0x98, 0x61, 0xb0, 0x96, 0x19, 0x66, 0x5b, 0xfa, 0x5b, 0x5c, 0x07, 0x1e, 0xfd, 0xeb, 0x6b, 0x55, + 0x2a, 0xe8, 0xa1, 0x5f, 0xe3, 0xad, 0xfa, 0x8b, 0x31, 0xef, 0x63, 0x9f, 0xa7, 0x58, 0x1f, 0xfd, 0x2d, 0xfd, 0x76, 0x94, + 0xf5, 0xbf, 0x7e, 0xcd, 0x6c, 0x5c, 0xff, 0xa5, 0xba, 0xaa, 0x48, 0xb8, 0x1b, 0x55, 0x3f, 0xa7, 0x5a, 0xfb, 0xe7, 0xbc, + 0xfa, 0xa7, 0x2e, 0xfa, 0xf7, 0xb9, 0xe3, 0x7e, 0x9e, 0xff, 0x96, 0xec, 0xd5, 0x33, 0x7c, 0x6e, 0x3e, 0x6f, 0x78, 0xad, + 0x74, 0x44, 0xcf, 0xf4, 0x5b, 0xff, 0x71, 0x01, 0xee, 0xc7, 0x25, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x30, 0x22, 0x46, 0x61, 0x8f, 0x9d, 0xf5, 0x88, 0x00, 0x5e, 0x1f, 0xcf, 0x0d, 0x31, 0xcc, 0xe7, 0xc7, + 0xf3, 0x8a, 0x63, 0x44, 0x94, 0x39, 0xff, 0x6c, 0xfb, 0xf1, 0xb6, 0xe6, 0x41, 0xb3, 0x3b, 0x08, 0x23, 0xe2, 0x80, 0xe3, + 0xf5, 0x4f, 0x4d, 0xf1, 0xd8, 0x6b, 0x25, 0xb3, 0xc1, 0x33, 0x94, 0x95, 0x19, 0x9f, 0x4a, 0x19, 0xa2, 0xf4, 0x6e, 0xa6, + 0x7a, 0x2f, 0x58, 0x72, 0xdd, 0xd5, 0xae, 0x66, 0xdb, 0xa1, 0xb8, 0xe4, 0x8e, 0xa9, 0x79, 0x59, 0xf4, 0x2d, 0xcf, 0xea, + 0xb6, 0xe5, 0x86, 0x35, 0xa0, 0xbf, 0x47, 0x3a, 0xa9, 0xe7, 0xa3, 0xcf, 0x77, 0xd7, 0x5f, 0xff, 0xd4, 0xe0, 0xf1, 0x8b, + 0x76, 0xa4, 0x48, 0x65, 0xf7, 0x5b, 0xcb, 0x08, 0xe8, 0xad, 0x7f, 0xad, 0xad, 0x76, 0x97, 0x50, 0x0a, 0x1d, 0x37, 0xd1, + 0xfa, 0xb7, 0x8c, 0xd3, 0xe8, 0x11, 0x6c, 0x19, 0x01, 0x63, 0xe6, 0xbf, 0xa8, 0xf5, 0x2f, 0xaf, 0x0d, 0xf1, 0xbd, 0x67, + 0x71, 0x01, 0xd9, 0x56, 0x14, 0xaf, 0x5b, 0xcd, 0xa2, 0x62, 0x36, 0xad, 0x1c, 0x23, 0xde, 0xa0, 0x6d, 0x7b, 0x55, 0x47, + 0x3b, 0x36, 0x6d, 0x3d, 0x31, 0x5e, 0x7f, 0x31, 0xef, 0xf8, 0x9d, 0x37, 0xb7, 0xfb, 0xb5, 0x6d, 0xd6, 0xd9, 0x1d, 0x7b, + 0xf1, 0xf3, 0x7f, 0x7b, 0xdf, 0x46, 0x1b, 0x71, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x39, 0x73, 0x14, 0xe8, 0x33, 0xd5, 0xd4, 0xcf, 0xb0, 0xee, 0x9d, 0x35, 0x72, 0xef, 0xdc, 0x5e, 0xfb, 0xdb, 0xd9, + 0xf3, 0x82, 0x49, 0x97, 0x1d, 0xe0, 0xe2, 0xe3, 0x66, 0xbe, 0x2c, 0x66, 0xb5, 0x1e, 0xb2, 0x66, 0xdc, 0xd2, 0x7a, 0x30, + 0x3c, 0xbe, 0x1e, 0xab, 0xe7, 0x23, 0xde, 0x87, 0x17, 0xe3, 0x6d, 0xb3, 0xcd, 0x7f, 0x9b, 0x2f, 0x64, 0x6b, 0xfa, 0xa7, + 0x41, 0xfe, 0x3c, 0x8f, 0xfe, 0xde, 0xdd, 0x9f, 0xed, 0x8e, 0x2c, 0x7d, 0xaf, 0x1e, 0x41, 0xff, 0x36, 0xf7, 0xae, 0xc5, + 0x47, 0x18, 0xed, 0xc3, 0x9b, 0xa5, 0xbf, 0x98, 0xf6, 0xce, 0xf5, 0xe8, 0xef, 0xf3, 0xcb, 0x8f, 0x9b, 0xff, 0xf6, 0x3b, + 0xa6, 0x2e, 0x3b, 0xa3, 0x7b, 0x67, 0xab, 0x2e, 0x53, 0xe3, 0x0c, 0xa7, 0x56, 0xbc, 0x5f, 0xae, 0x97, 0xb3, 0x6b, 0xae, + 0x7b, 0x31, 0xca, 0xbf, 0xea, 0xcd, 0xfe, 0x3d, 0x43, 0x7f, 0xbc, 0x63, 0xc7, 0x1e, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x8b, 0xe3, 0xc4, 0xed, 0x47, 0xa5, 0xcd, 0xea, 0x26, 0x8b, 0x19, 0x3d, + 0xac, 0xb9, 0x63, 0xb4, 0xde, 0x0a, 0x4d, 0xec, 0x5c, 0x13, 0xbb, 0xcc, 0x8f, 0x3e, 0x7b, 0xed, 0x83, 0xf8, 0x5e, 0x5e, + 0x3c, 0xf0, 0x52, 0x3e, 0x5b, 0xcd, 0x72, 0xb2, 0xd4, 0x33, 0xb5, 0x73, 0xcb, 0x77, 0xb6, 0x38, 0x00, 0x74, 0xb9, 0xda, + 0x74, 0x47, 0xb3, 0xb2, 0x9e, 0x16, 0xd7, 0x85, 0x2f, 0x43, 0x9f, 0xf5, 0xb3, 0xf9, 0x89, 0x92, 0x4f, 0x79, 0xf5, 0xa4, + 0x77, 0x5f, 0x2e, 0xf6, 0x78, 0x5e, 0xc9, 0x75, 0x54, 0x3b, 0xb7, 0x7c, 0x67, 0xad, 0xfe, 0x59, 0x9d, 0xab, 0x4d, 0xaf, + 0x4e, 0x8c, 0xaf, 0xd0, 0x96, 0x15, 0xc7, 0xa2, 0x7f, 0x5b, 0xfd, 0x1f, 0xaf, 0xac, 0xcf, 0x4b, 0x5f, 0x14, 0xfe, 0x75, + 0x77, 0xf6, 0xe5, 0xe1, 0x6f, 0xfd, 0xb9, 0xa5, 0x3b, 0xeb, 0x9d, 0x3c, 0x36, 0x17, 0x97, 0x77, 0x04, 0x44, 0x66, 0x53, + 0x4c, 0xae, 0x0c, 0xad, 0x36, 0xc7, 0x83, 0x3c, 0xd9, 0x5b, 0x5e, 0xab, 0x61, 0x69, 0xfe, 0xb7, 0xe9, 0xbf, 0x76, 0xe7, + 0x64, 0xf4, 0xc7, 0xc9, 0x46, 0xe6, 0x7f, 0x8f, 0xac, 0x78, 0xa2, 0x9a, 0x27, 0xad, 0x6b, 0x85, 0x67, 0xfe, 0x97, 0x9e, + 0xff, 0xf1, 0xfa, 0x5b, 0x5d, 0x70, 0xa3, 0xf5, 0x4f, 0x66, 0x9f, 0xaa, 0xf5, 0xad, 0xd1, 0xbe, 0x02, 0x94, 0x9f, 0xc2, + 0x75, 0xfd, 0xd7, 0xa9, 0xeb, 0x6f, 0x79, 0xfe, 0xcb, 0x4e, 0xf4, 0x4f, 0x0e, 0x67, 0x6d, 0x94, 0x1f, 0xd5, 0xff, 0xfe, + 0xdf, 0x53, 0x7f, 0xfd, 0xfb, 0x7f, 0xac, 0xb3, 0xd2, 0x96, 0xd5, 0x71, 0x4f, 0xdf, 0x94, 0xf3, 0xb7, 0xe6, 0xd7, 0x47, + 0xbf, 0xc3, 0xbd, 0x92, 0x1f, 0x86, 0x9d, 0x0b, 0x31, 0x8e, 0x57, 0x3c, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xb0, 0x75, 0xea, 0x5e, 0xb4, 0xcf, 0x17, 0xe3, 0x48, 0xb5, 0xf3, 0xbc, 0xe5, 0x5a, 0x97, 0xda, 0xd7, + 0xf2, 0xad, 0x7c, 0x79, 0x75, 0xf4, 0x8d, 0xbc, 0x91, 0xdf, 0xdc, 0x7d, 0x50, 0x2b, 0xbf, 0x8b, 0xb4, 0x2d, 0xc7, 0xdb, + 0x96, 0x7e, 0x2c, 0x9f, 0xd1, 0xc7, 0xb5, 0xdb, 0xa2, 0x7f, 0x35, 0x3f, 0xd9, 0x8f, 0x72, 0x23, 0x7f, 0x1a, 0xce, 0xf3, + 0x96, 0x6b, 0xf4, 0xff, 0x42, 0xfe, 0x93, 0x7f, 0xe5, 0xb5, 0x7c, 0xb5, 0x78, 0xd6, 0xdf, 0xee, 0x3e, 0xf0, 0xf8, 0xf5, + 0x34, 0x3b, 0x21, 0xc7, 0x45, 0x18, 0xdb, 0xa3, 0xff, 0xb5, 0x78, 0xf2, 0x2f, 0xf2, 0x91, 0xfc, 0xb4, 0xe0, 0x44, 0xab, + 0x9d, 0xe7, 0x2d, 0xd7, 0xe8, 0xff, 0x97, 0x88, 0xfc, 0x23, 0xbf, 0xcb, 0xc7, 0x57, 0x25, 0x37, 0x72, 0xd3, 0x70, 0x6d, + 0x7f, 0x5d, 0x2f, 0xef, 0xea, 0x75, 0x71, 0xee, 0x84, 0x1d, 0x39, 0xff, 0xa3, 0xfc, 0x04, 0x9f, 0xca, 0xcf, 0xf2, 0x5d, + 0x87, 0x3e, 0x8b, 0xd4, 0xff, 0x1b, 0xf9, 0x7f, 0x45, 0xff, 0x98, 0x3e, 0xf0, 0xf8, 0xf5, 0xae, 0xb5, 0x8d, 0x71, 0x16, + 0x48, 0x63, 0x26, 0x5d, 0x6f, 0xdb, 0x7b, 0xf5, 0x99, 0x45, 0xff, 0xf5, 0x36, 0x7d, 0x22, 0xaf, 0x27, 0xea, 0x5f, 0x7b, + 0xfe, 0x27, 0x45, 0xce, 0x58, 0x8d, 0x1b, 0x35, 0xc2, 0xa9, 0xb2, 0x27, 0xfd, 0x4b, 0xe5, 0x7f, 0x4c, 0xd4, 0x7f, 0x8c, + 0x6b, 0xa8, 0xfd, 0xba, 0xe8, 0xbf, 0x2d, 0xfd, 0x2d, 0xef, 0xf6, 0x9e, 0xf5, 0x50, 0x73, 0x2f, 0xab, 0x9f, 0xac, 0x76, + 0x9e, 0xb7, 0x5c, 0x8b, 0x47, 0xff, 0xd1, 0x75, 0xdd, 0x8f, 0x53, 0x11, 0xce, 0xed, 0x54, 0x05, 0xf4, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3d, 0x93, 0x2b, 0xb9, 0xdf, 0x72, 0xa1, 0xc4, 0xe2, 0x67, 0x68, 0xdb, 0x01, + 0x58, 0x8c, 0x39, 0x09, 0x73, 0x68, 0x3b, 0xeb, 0x6d, 0x19, 0x77, 0xbf, 0x52, 0xcb, 0x4b, 0x7a, 0xd4, 0xff, 0xbf, 0x38, + 0x17, 0x4a, 0xb2, 0x3a, 0x77, 0x9f, 0x6f, 0x07, 0x58, 0x9f, 0xb7, 0x21, 0x9b, 0x3c, 0x91, 0xa5, 0x76, 0x6e, 0xe7, 0x7e, + 0xe5, 0xb2, 0x3c, 0x24, 0xe7, 0xcb, 0xec, 0xb8, 0xc5, 0x99, 0x63, 0x1a, 0x52, 0x75, 0x41, 0x8f, 0xf3, 0x11, 0xf4, 0x2e, + 0xb3, 0xe6, 0xf9, 0xdc, 0x62, 0x5b, 0x22, 0xcb, 0xd6, 0xe7, 0xbf, 0x6d, 0x7e, 0xd8, 0xd7, 0x9b, 0xb1, 0x65, 0x1a, 0xdf, + 0xdb, 0xa8, 0xb2, 0xd1, 0xf7, 0x8c, 0xf2, 0x7c, 0x1d, 0x41, 0x7f, 0x4b, 0x86, 0xd0, 0xa3, 0xeb, 0x2f, 0xc1, 0x99, 0xf3, + 0x66, 0xae, 0x6f, 0xbe, 0x6b, 0xa7, 0x21, 0x65, 0x33, 0xf4, 0x6f, 0xd9, 0x23, 0x7e, 0xaf, 0xf3, 0x5f, 0x5b, 0xe7, 0xb3, + 0xcd, 0xff, 0xb6, 0xef, 0x47, 0x1c, 0x5d, 0x7f, 0x41, 0xff, 0x40, 0xcf, 0xd7, 0x1e, 0xe7, 0xff, 0x59, 0xdf, 0xff, 0xdb, + 0xc6, 0x21, 0x9e, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0xe7, 0x61, 0xb3, 0x7a, 0x03, 0xdb, + 0xbc, 0x6f, 0xdb, 0xf0, 0xfd, 0x65, 0xd3, 0x6e, 0x62, 0xe5, 0x36, 0xd8, 0xbc, 0x64, 0x7e, 0xdf, 0x57, 0xbc, 0x87, 0xcd, + 0xda, 0xaf, 0xf6, 0x1c, 0x59, 0xa3, 0x7d, 0x7f, 0xa5, 0x5d, 0x71, 0xad, 0xbb, 0x4d, 0xdb, 0xc6, 0xf0, 0x7a, 0x1b, 0xf6, + 0xec, 0x01, 0x5c, 0x3a, 0x9e, 0x77, 0xb0, 0xfb, 0xd6, 0xac, 0xd8, 0xd7, 0x11, 0x62, 0x66, 0xa9, 0x5a, 0x92, 0x37, 0xef, + 0x53, 0xaa, 0x97, 0x8d, 0xf5, 0xa7, 0x1c, 0xc5, 0xff, 0x75, 0xf4, 0xb2, 0xf1, 0x8e, 0x81, 0x7d, 0xc5, 0xff, 0xf7, 0xa4, + 0xb1, 0xcd, 0xbf, 0xcb, 0xfc, 0xf7, 0x3c, 0xa7, 0xb6, 0x36, 0x36, 0xb4, 0x1e, 0xad, 0xda, 0xb3, 0xc1, 0x52, 0x76, 0x16, + 0xff, 0xcf, 0x96, 0xe6, 0xf8, 0x96, 0xde, 0xc3, 0xd0, 0xbf, 0x5f, 0x3d, 0x8f, 0xf2, 0x3d, 0xa4, 0xbd, 0xf8, 0xdb, 0xb6, + 0xd4, 0x86, 0xb3, 0x7f, 0x0f, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xc1, 0x98, 0x3c, 0x7e, + 0x5b, 0x77, 0xf3, 0x8d, 0xbd, 0x9f, 0x3d, 0x8b, 0x5f, 0x0e, 0xd8, 0xf1, 0x37, 0xca, 0xab, 0xd7, 0xe2, 0x75, 0xb4, 0x46, + 0x57, 0x8e, 0x9c, 0xc5, 0x2f, 0x15, 0x47, 0x46, 0xd9, 0xcd, 0x69, 0x1b, 0xa7, 0x33, 0x63, 0x4a, 0xa2, 0x8e, 0x92, 0x1f, + 0xdf, 0x6d, 0x1d, 0x1f, 0x01, 0x8b, 0xa8, 0x4d, 0x6c, 0x99, 0xcf, 0xcb, 0x34, 0xc3, 0x75, 0xa8, 0xcd, 0x36, 0x63, 0x2d, + 0x6b, 0x73, 0x01, 0xce, 0x71, 0x01, 0xc4, 0x94, 0xf9, 0x9e, 0xff, 0x5b, 0x8b, 0xe6, 0xf7, 0xc9, 0xe2, 0xa6, 0x2f, 0xed, + 0xe3, 0xaa, 0x98, 0xe5, 0x3b, 0x4b, 0xa6, 0xdd, 0xab, 0x67, 0x44, 0xf3, 0x8f, 0xaf, 0xff, 0x2c, 0xdf, 0xd9, 0x39, 0xb3, + 0x78, 0xb5, 0x8c, 0xc4, 0x19, 0xf3, 0x7f, 0xbe, 0x8f, 0x67, 0x7b, 0x8e, 0xa4, 0xf1, 0xbd, 0x53, 0xd6, 0x7f, 0xbc, 0x1a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x67, 0x07, 0x60, 0xb4, 0x37, 0xd0, 0xe2, 0x7d, + 0x89, 0xce, 0x80, 0xe7, 0xc9, 0xe2, 0x27, 0x06, 0x5f, 0xdb, 0x3e, 0xfd, 0x48, 0x3d, 0xf6, 0xf8, 0x5d, 0xef, 0xbb, 0x1c, + 0xee, 0xfb, 0x8c, 0xcf, 0xe2, 0x97, 0x4e, 0xa4, 0xff, 0x48, 0x4f, 0x59, 0x29, 0x8b, 0xdb, 0x5e, 0xda, 0x70, 0x1e, 0x37, + 0x62, 0x7c, 0xc4, 0xd9, 0x93, 0x1d, 0xaf, 0x47, 0x99, 0xe5, 0xcc, 0x1e, 0xbb, 0x30, 0xcf, 0xd5, 0xbf, 0x8f, 0xa3, 0xce, + 0x32, 0xda, 0x46, 0xea, 0x3f, 0xcf, 0xfb, 0x74, 0x06, 0xfd, 0xad, 0x35, 0x41, 0x7f, 0xf4, 0xdf, 0x8a, 0xfe, 0x72, 0x12, + 0xfd, 0xb7, 0xe1, 0xff, 0x9b, 0x97, 0x6d, 0x58, 0xcc, 0xdf, 0x50, 0xe0, 0x5d, 0xff, 0x38, 0x2b, 0xa0, 0xf6, 0x1b, 0x4a, + 0xe8, 0x7f, 0xdc, 0xdf, 0x53, 0xf9, 0xdd, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x90, 0xb9, 0x10, 0xfd, 0xd1, 0xff, 0xe4, 0xfa, 0xbf, 0x05 }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle jungleFontRecs[189] = { + { 4, 4, 5 , 12 }, + { 17, 4, 2 , 7 }, + { 27, 4, 5 , 3 }, + { 40, 4, 5 , 5 }, + { 53, 4, 6 , 7 }, + { 67, 4, 7 , 7 }, + { 82, 4, 5 , 7 }, + { 95, 4, 3 , 3 }, + { 106, 4, 4 , 8 }, + { 118, 4, 4 , 8 }, + { 130, 4, 5 , 5 }, + { 143, 4, 5 , 5 }, + { 156, 4, 2 , 3 }, + { 166, 4, 5 , 1 }, + { 179, 4, 2 , 2 }, + { 189, 4, 7 , 7 }, + { 204, 4, 7 , 6 }, + { 219, 4, 6 , 6 }, + { 233, 4, 6 , 6 }, + { 4, 24, 6 , 6 }, + { 18, 24, 6 , 6 }, + { 32, 24, 6 , 6 }, + { 46, 24, 6 , 6 }, + { 60, 24, 6 , 6 }, + { 74, 24, 6 , 6 }, + { 88, 24, 6 , 6 }, + { 102, 24, 2 , 5 }, + { 112, 24, 2 , 6 }, + { 122, 24, 3 , 5 }, + { 133, 24, 5 , 3 }, + { 146, 24, 3 , 5 }, + { 157, 24, 6 , 7 }, + { 171, 24, 7 , 7 }, + { 186, 24, 6 , 7 }, + { 200, 24, 6 , 7 }, + { 214, 24, 6 , 7 }, + { 228, 24, 6 , 7 }, + { 4, 44, 6 , 7 }, + { 18, 44, 6 , 7 }, + { 32, 44, 6 , 7 }, + { 46, 44, 6 , 7 }, + { 60, 44, 6 , 7 }, + { 74, 44, 6 , 7 }, + { 88, 44, 6 , 7 }, + { 102, 44, 6 , 7 }, + { 116, 44, 7 , 7 }, + { 131, 44, 6 , 7 }, + { 145, 44, 6 , 7 }, + { 159, 44, 6 , 7 }, + { 173, 44, 7 , 8 }, + { 188, 44, 6 , 7 }, + { 202, 44, 6 , 7 }, + { 216, 44, 6 , 7 }, + { 230, 44, 6 , 7 }, + { 4, 64, 6 , 7 }, + { 18, 64, 7 , 7 }, + { 33, 64, 6 , 7 }, + { 47, 64, 6 , 7 }, + { 61, 64, 6 , 7 }, + { 75, 64, 4 , 8 }, + { 87, 64, 7 , 7 }, + { 102, 64, 4 , 8 }, + { 114, 64, 4 , 2 }, + { 126, 64, 6 , 1 }, + { 140, 64, 2 , 2 }, + { 150, 64, 6 , 5 }, + { 164, 64, 6 , 7 }, + { 178, 64, 6 , 5 }, + { 192, 64, 6 , 7 }, + { 206, 64, 6 , 5 }, + { 220, 64, 6 , 7 }, + { 234, 64, 6 , 7 }, + { 4, 84, 6 , 7 }, + { 18, 84, 6 , 7 }, + { 32, 84, 5 , 8 }, + { 45, 84, 6 , 7 }, + { 59, 84, 6 , 7 }, + { 73, 84, 7 , 5 }, + { 88, 84, 6 , 5 }, + { 102, 84, 6 , 5 }, + { 116, 84, 6 , 7 }, + { 130, 84, 6 , 7 }, + { 144, 84, 6 , 5 }, + { 158, 84, 6 , 5 }, + { 172, 84, 6 , 6 }, + { 186, 84, 6 , 5 }, + { 200, 84, 6 , 5 }, + { 214, 84, 7 , 5 }, + { 229, 84, 6 , 5 }, + { 4, 104, 6 , 7 }, + { 18, 104, 6 , 5 }, + { 32, 104, 4 , 8 }, + { 44, 104, 2 , 8 }, + { 54, 104, 4 , 8 }, + { 66, 104, 5 , 2 }, + { 79, 104, 2 , 7 }, + { 89, 104, 6 , 6 }, + { 103, 104, 6 , 7 }, + { 117, 104, 6 , 7 }, + { 131, 104, 6 , 7 }, + { 145, 104, 0 , 0 }, + { 153, 104, 6 , 9 }, + { 167, 104, 0 , 0 }, + { 175, 104, 7 , 7 }, + { 190, 104, 8 , 8 }, + { 206, 104, 6 , 5 }, + { 220, 104, 8 , 8 }, + { 236, 104, 7 , 7 }, + { 4, 124, 8 , 8 }, + { 20, 124, 4 , 4 }, + { 32, 124, 8 , 8 }, + { 48, 124, 8 , 8 }, + { 64, 124, 8 , 8 }, + { 80, 124, 0 , 0 }, + { 88, 124, 6 , 7 }, + { 102, 124, 5 , 8 }, + { 115, 124, 3 , 3 }, + { 126, 124, 0 , 0 }, + { 134, 124, 8 , 8 }, + { 150, 124, 8 , 8 }, + { 166, 124, 6 , 5 }, + { 180, 124, 10 , 7 }, + { 198, 124, 10 , 5 }, + { 216, 124, 0 , 0 }, + { 224, 124, 6 , 7 }, + { 238, 124, 6 , 10 }, + { 4, 144, 6 , 10 }, + { 18, 144, 6 , 10 }, + { 32, 144, 6 , 10 }, + { 46, 144, 6 , 10 }, + { 60, 144, 6 , 10 }, + { 74, 144, 10 , 7 }, + { 92, 144, 6 , 9 }, + { 106, 144, 6 , 10 }, + { 120, 144, 6 , 10 }, + { 134, 144, 6 , 10 }, + { 148, 144, 6 , 10 }, + { 162, 144, 6 , 10 }, + { 176, 144, 6 , 10 }, + { 190, 144, 6 , 10 }, + { 204, 144, 6 , 10 }, + { 218, 144, 6 , 7 }, + { 232, 144, 6 , 10 }, + { 4, 164, 6 , 10 }, + { 18, 164, 6 , 10 }, + { 32, 164, 6 , 10 }, + { 46, 164, 6 , 10 }, + { 60, 164, 6 , 10 }, + { 74, 164, 6 , 5 }, + { 88, 164, 6 , 7 }, + { 102, 164, 6 , 10 }, + { 116, 164, 6 , 10 }, + { 130, 164, 6 , 10 }, + { 144, 164, 6 , 10 }, + { 158, 164, 6 , 10 }, + { 172, 164, 6 , 7 }, + { 186, 164, 6 , 7 }, + { 200, 164, 6 , 8 }, + { 214, 164, 6 , 8 }, + { 228, 164, 6 , 8 }, + { 4, 184, 6 , 8 }, + { 18, 184, 6 , 8 }, + { 32, 184, 6 , 8 }, + { 46, 184, 9 , 5 }, + { 63, 184, 6 , 7 }, + { 77, 184, 6 , 8 }, + { 91, 184, 6 , 8 }, + { 105, 184, 6 , 8 }, + { 119, 184, 6 , 8 }, + { 133, 184, 6 , 8 }, + { 147, 184, 6 , 8 }, + { 161, 184, 6 , 8 }, + { 175, 184, 6 , 8 }, + { 189, 184, 6 , 7 }, + { 203, 184, 6 , 8 }, + { 217, 184, 6 , 8 }, + { 231, 184, 6 , 8 }, + { 4, 204, 6 , 8 }, + { 18, 204, 6 , 8 }, + { 32, 204, 6 , 8 }, + { 46, 204, 5 , 5 }, + { 59, 204, 6 , 5 }, + { 73, 204, 6 , 8 }, + { 87, 204, 6 , 8 }, + { 101, 204, 6 , 8 }, + { 115, 204, 6 , 8 }, + { 129, 204, 6 , 10 }, + { 143, 204, 6 , 9 }, + { 157, 204, 6 , 10 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo jungleFontGlyphs[189] = { + { 32, 0, 0, 5, { 0 }}, + { 33, 0, 2, 3, { 0 }}, + { 34, 0, 2, 6, { 0 }}, + { 35, 0, 3, 6, { 0 }}, + { 36, 0, 2, 7, { 0 }}, + { 37, 0, 2, 8, { 0 }}, + { 38, 0, 2, 6, { 0 }}, + { 39, 0, 2, 4, { 0 }}, + { 40, 0, 2, 5, { 0 }}, + { 41, 0, 2, 5, { 0 }}, + { 42, 0, 2, 6, { 0 }}, + { 43, 0, 3, 6, { 0 }}, + { 44, 0, 7, 3, { 0 }}, + { 45, 0, 5, 6, { 0 }}, + { 46, 0, 7, 3, { 0 }}, + { 47, 0, 2, 8, { 0 }}, + { 48, 0, 3, 8, { 0 }}, + { 49, 0, 3, 7, { 0 }}, + { 50, 0, 3, 7, { 0 }}, + { 51, 0, 3, 7, { 0 }}, + { 52, 0, 3, 7, { 0 }}, + { 53, 0, 3, 7, { 0 }}, + { 54, 0, 3, 7, { 0 }}, + { 55, 0, 3, 7, { 0 }}, + { 56, 0, 3, 7, { 0 }}, + { 57, 0, 3, 7, { 0 }}, + { 58, 0, 4, 3, { 0 }}, + { 59, 0, 4, 3, { 0 }}, + { 60, 0, 3, 4, { 0 }}, + { 61, 0, 4, 6, { 0 }}, + { 62, 0, 3, 4, { 0 }}, + { 63, 0, 2, 7, { 0 }}, + { 64, 0, 2, 8, { 0 }}, + { 65, 0, 2, 7, { 0 }}, + { 66, 0, 2, 7, { 0 }}, + { 67, 0, 2, 7, { 0 }}, + { 68, 0, 2, 7, { 0 }}, + { 69, 0, 2, 7, { 0 }}, + { 70, 0, 2, 7, { 0 }}, + { 71, 0, 2, 7, { 0 }}, + { 72, 0, 2, 7, { 0 }}, + { 73, 0, 2, 7, { 0 }}, + { 74, 0, 2, 7, { 0 }}, + { 75, 0, 2, 7, { 0 }}, + { 76, 0, 2, 7, { 0 }}, + { 77, 0, 2, 8, { 0 }}, + { 78, 0, 2, 7, { 0 }}, + { 79, 0, 2, 7, { 0 }}, + { 80, 0, 2, 7, { 0 }}, + { 81, 0, 2, 7, { 0 }}, + { 82, 0, 2, 7, { 0 }}, + { 83, 0, 2, 7, { 0 }}, + { 84, 0, 2, 7, { 0 }}, + { 85, 0, 2, 7, { 0 }}, + { 86, 0, 2, 7, { 0 }}, + { 87, 0, 2, 8, { 0 }}, + { 88, 0, 2, 7, { 0 }}, + { 89, 0, 2, 7, { 0 }}, + { 90, 0, 2, 7, { 0 }}, + { 91, 0, 2, 5, { 0 }}, + { 92, 0, 2, 8, { 0 }}, + { 93, 0, 2, 5, { 0 }}, + { 94, 0, -1, 5, { 0 }}, + { 95, 0, 10, 7, { 0 }}, + { 96, 0, -1, 3, { 0 }}, + { 97, 0, 4, 7, { 0 }}, + { 98, 0, 2, 7, { 0 }}, + { 99, 0, 4, 7, { 0 }}, + { 100, 0, 2, 7, { 0 }}, + { 101, 0, 4, 7, { 0 }}, + { 102, 0, 2, 7, { 0 }}, + { 103, 0, 4, 7, { 0 }}, + { 104, 0, 2, 7, { 0 }}, + { 105, 0, 2, 7, { 0 }}, + { 106, 0, 2, 6, { 0 }}, + { 107, 0, 2, 7, { 0 }}, + { 108, 0, 2, 7, { 0 }}, + { 109, 0, 4, 8, { 0 }}, + { 110, 0, 4, 7, { 0 }}, + { 111, 0, 4, 7, { 0 }}, + { 112, 0, 4, 7, { 0 }}, + { 113, 0, 4, 7, { 0 }}, + { 114, 0, 4, 7, { 0 }}, + { 115, 0, 4, 7, { 0 }}, + { 116, 0, 3, 7, { 0 }}, + { 117, 0, 4, 7, { 0 }}, + { 118, 0, 4, 7, { 0 }}, + { 119, 0, 4, 8, { 0 }}, + { 120, 0, 4, 7, { 0 }}, + { 121, 0, 4, 7, { 0 }}, + { 122, 0, 4, 7, { 0 }}, + { 123, 0, 2, 5, { 0 }}, + { 124, 0, 2, 3, { 0 }}, + { 125, 0, 2, 5, { 0 }}, + { 126, 0, -1, 6, { 0 }}, + { 161, 0, 2, 3, { 0 }}, + { 162, 0, 3, 7, { 0 }}, + { 163, 0, 2, 7, { 0 }}, + { 8364, 0, 2, 7, { 0 }}, + { 165, 0, 2, 7, { 0 }}, + { 352, 0, 0, 0, { 0 }}, + { 167, 0, 1, 7, { 0 }}, + { 353, 0, 0, 0, { 0 }}, + { 169, 0, 2, 8, { 0 }}, + { 170, 0, 1, 8, { 0 }}, + { 171, 0, 3, 7, { 0 }}, + { 172, 0, 1, 8, { 0 }}, + { 174, 0, 2, 8, { 0 }}, + { 175, 0, 1, 8, { 0 }}, + { 176, 0, 1, 2, { 0 }}, + { 177, 0, 1, 8, { 0 }}, + { 178, 0, 1, 8, { 0 }}, + { 179, 0, 1, 8, { 0 }}, + { 381, 0, 0, 0, { 0 }}, + { 181, 0, 4, 7, { 0 }}, + { 182, 0, 1, 4, { 0 }}, + { 183, 0, 4, 4, { 0 }}, + { 382, 0, 0, 0, { 0 }}, + { 185, 0, 1, 8, { 0 }}, + { 186, 0, 1, 8, { 0 }}, + { 187, 0, 3, 7, { 0 }}, + { 338, 0, 2, 11, { 0 }}, + { 339, 0, 4, 11, { 0 }}, + { 376, 0, 0, 0, { 0 }}, + { 191, 0, 2, 7, { 0 }}, + { 192, 0, -1, 7, { 0 }}, + { 193, 0, -1, 7, { 0 }}, + { 194, 0, -1, 7, { 0 }}, + { 195, 0, -1, 7, { 0 }}, + { 196, 0, -1, 7, { 0 }}, + { 197, 0, -1, 7, { 0 }}, + { 198, 0, 2, 11, { 0 }}, + { 199, 0, 2, 7, { 0 }}, + { 200, 0, -1, 7, { 0 }}, + { 201, 0, -1, 7, { 0 }}, + { 202, 0, -1, 7, { 0 }}, + { 203, 0, -1, 7, { 0 }}, + { 204, 0, -1, 7, { 0 }}, + { 205, 0, -1, 7, { 0 }}, + { 206, 0, -1, 7, { 0 }}, + { 207, 0, -1, 7, { 0 }}, + { 208, 0, 2, 7, { 0 }}, + { 209, 0, -1, 7, { 0 }}, + { 210, 0, -1, 7, { 0 }}, + { 211, 0, -1, 7, { 0 }}, + { 212, 0, -1, 7, { 0 }}, + { 213, 0, -1, 7, { 0 }}, + { 214, 0, -1, 7, { 0 }}, + { 215, 0, 3, 7, { 0 }}, + { 216, 0, 2, 7, { 0 }}, + { 217, 0, -1, 7, { 0 }}, + { 218, 0, -1, 7, { 0 }}, + { 219, 0, -1, 7, { 0 }}, + { 220, 0, -1, 7, { 0 }}, + { 221, 0, -1, 7, { 0 }}, + { 222, 0, 2, 7, { 0 }}, + { 223, 0, 2, 7, { 0 }}, + { 224, 0, 1, 7, { 0 }}, + { 225, 0, 1, 7, { 0 }}, + { 226, 0, 1, 7, { 0 }}, + { 227, 0, 1, 7, { 0 }}, + { 228, 0, 1, 7, { 0 }}, + { 229, 0, 1, 7, { 0 }}, + { 230, 0, 4, 10, { 0 }}, + { 231, 0, 4, 7, { 0 }}, + { 232, 0, 1, 7, { 0 }}, + { 233, 0, 1, 7, { 0 }}, + { 234, 0, 1, 7, { 0 }}, + { 235, 0, 1, 7, { 0 }}, + { 236, 0, 1, 7, { 0 }}, + { 237, 0, 1, 7, { 0 }}, + { 238, 0, 1, 7, { 0 }}, + { 239, 0, 1, 7, { 0 }}, + { 240, 0, 2, 7, { 0 }}, + { 241, 0, 1, 7, { 0 }}, + { 242, 0, 1, 7, { 0 }}, + { 243, 0, 1, 7, { 0 }}, + { 244, 0, 1, 7, { 0 }}, + { 245, 0, 1, 7, { 0 }}, + { 246, 0, 1, 7, { 0 }}, + { 247, 0, 3, 6, { 0 }}, + { 248, 0, 4, 7, { 0 }}, + { 249, 0, 1, 7, { 0 }}, + { 250, 0, 1, 7, { 0 }}, + { 251, 0, 1, 7, { 0 }}, + { 252, 0, 1, 7, { 0 }}, + { 253, 0, 1, 7, { 0 }}, + { 254, 0, 2, 7, { 0 }}, + { 255, 0, 1, 7, { 0 }}, +}; + +// Style loading function: Jungle +static void GuiLoadStyleJungle(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < JUNGLE_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(jungleStyleProps[i].controlId, jungleStyleProps[i].propertyId, jungleStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int jungleFontDataSize = 0; + unsigned char *data = DecompressData(jungleFontData, JUNGLE_STYLE_FONT_ATLAS_COMP_SIZE, &jungleFontDataSize); + Image imFont = { data, 256, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 12; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, jungleFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, jungleFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 254, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_lavanda.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_lavanda.h new file mode 100644 index 0000000..7e8902b --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_lavanda.h @@ -0,0 +1,607 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleLavanda(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define LAVANDA_STYLE_PROPS_COUNT 16 + +// Custom style name: Lavanda +static const GuiStyleProp lavandaStyleProps[LAVANDA_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0xab9bd3ff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0x3e4350ff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0xdadaf4ff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0xee84a0ff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0xf4b7c7ff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0xb7657bff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0xd5c8dbff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0x966ec0ff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0xd7ccf7ff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0x8fa2bdff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0x6b798dff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0x8292a9ff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE + { 0, 18, (int)0x84adb7ff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0x5b5b81ff }, // DEFAULT_BACKGROUND_COLOR + { 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING +}; + +// WARNING: This style uses a custom font: "Cartridge.ttf" (size: 16, spacing: 1) + +#define LAVANDA_STYLE_FONT_ATLAS_COMP_SIZE 2636 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char lavandaFontData[LAVANDA_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0xdd, 0xdb, 0xd2, 0xa4, 0xba, 0x0d, 0x06, 0x50, 0xde, 0xff, 0xa5, 0xbf, 0x5c, 0xa4, 0x52, 0x49, 0xaa, 0x66, 0x63, 0x24, + 0x0b, 0x9a, 0xee, 0x59, 0xb3, 0xee, 0x7e, 0xa6, 0x4f, 0x06, 0xf9, 0x04, 0x96, 0x73, 0x00, 0x00, 0x00, 0x00, 0x24, 0x7f, + 0xfc, 0x4b, 0x4e, 0xfe, 0x6f, 0x2e, 0xbf, 0xd3, 0x7f, 0xfe, 0x9e, 0xc5, 0xff, 0xf8, 0xff, 0xff, 0x75, 0xed, 0x7d, 0x73, + 0xf9, 0xf3, 0x3b, 0x47, 0xf2, 0xc7, 0xef, 0x97, 0x8d, 0xd7, 0xff, 0xd3, 0x3b, 0xd4, 0xff, 0xff, 0x7f, 0xff, 0x55, 0xca, + 0xf1, 0xfc, 0x35, 0x47, 0xf1, 0x73, 0xb2, 0xf8, 0x9c, 0xab, 0xbf, 0xb0, 0x56, 0xfa, 0xb5, 0x73, 0x9e, 0xd3, 0x2b, 0xb2, + 0xf3, 0xca, 0xf3, 0xd7, 0x1d, 0xe5, 0xb2, 0x3a, 0x96, 0x25, 0x5c, 0x3d, 0xcb, 0xef, 0x8b, 0xff, 0x5c, 0x78, 0xe5, 0xf9, + 0xf1, 0x6c, 0xd4, 0x09, 0xeb, 0x72, 0xac, 0xd6, 0x18, 0x3b, 0xa5, 0x7a, 0xf6, 0x1d, 0x2b, 0xff, 0xff, 0x5a, 0x6d, 0xbb, + 0x5f, 0x3b, 0xae, 0x4a, 0xbf, 0xfe, 0xad, 0xaf, 0x94, 0x5c, 0x06, 0xfe, 0x7f, 0x5a, 0xdf, 0x7e, 0xe2, 0xfa, 0xcf, 0xf6, + 0xb5, 0x7d, 0xa5, 0xad, 0x9c, 0xb8, 0x46, 0xab, 0xf1, 0x9f, 0x56, 0x8b, 0x90, 0x45, 0x99, 0xde, 0x1d, 0xff, 0x9d, 0x76, + 0x34, 0x37, 0x95, 0x6a, 0xb5, 0xbe, 0xad, 0x5f, 0x37, 0x29, 0xb6, 0xb4, 0xbd, 0xf8, 0x5f, 0x7f, 0x4e, 0xc6, 0xca, 0x6d, + 0xdd, 0x7b, 0xa9, 0x97, 0x76, 0xef, 0xb7, 0x75, 0x6b, 0x95, 0x34, 0x7a, 0x40, 0xfd, 0xfa, 0x7a, 0xaa, 0xc4, 0x6b, 0x51, + 0x7a, 0xa5, 0x75, 0xcb, 0x58, 0xbd, 0x9f, 0x72, 0x6b, 0x95, 0x47, 0xca, 0xf2, 0x68, 0xb7, 0x3a, 0xd5, 0x5f, 0x94, 0x72, + 0x5c, 0x56, 0xfa, 0xe5, 0xfd, 0xab, 0x30, 0xa5, 0xd1, 0x59, 0x6e, 0x6b, 0xff, 0xd7, 0xad, 0x71, 0x9a, 0x57, 0x72, 0xca, + 0x7d, 0x83, 0x94, 0x47, 0x95, 0xeb, 0x73, 0xbc, 0x1e, 0x8b, 0xcc, 0xc7, 0x7f, 0xaf, 0x1f, 0xf3, 0xa7, 0x72, 0xef, 0xf6, + 0x12, 0xe6, 0xeb, 0xc6, 0xb7, 0xc7, 0x7f, 0x1a, 0x7d, 0x8c, 0xea, 0x6b, 0x52, 0x9e, 0x7b, 0x39, 0x6f, 0x23, 0xaf, 0x5f, + 0x99, 0x19, 0xba, 0x26, 0x3b, 0xad, 0x41, 0x1a, 0xe3, 0xc5, 0xdd, 0x96, 0x7c, 0x7a, 0xce, 0xea, 0xc9, 0xf8, 0xcf, 0x85, + 0x19, 0x89, 0xd5, 0x95, 0x97, 0x65, 0x29, 0xe4, 0x86, 0xf6, 0xff, 0x0d, 0x73, 0xaa, 0x4f, 0xc5, 0x7f, 0x96, 0x73, 0x5b, + 0x13, 0xd7, 0x74, 0x46, 0xce, 0x43, 0x3e, 0x70, 0x16, 0xae, 0xc4, 0xff, 0xd1, 0x6c, 0xc9, 0x7f, 0x3b, 0xfe, 0x8f, 0x8b, + 0xbd, 0xf8, 0xa3, 0x31, 0x0b, 0xf8, 0x5b, 0xf1, 0x9f, 0x46, 0xcc, 0x64, 0x6c, 0x64, 0xde, 0xeb, 0x33, 0xcc, 0xc6, 0xff, + 0x7b, 0x6b, 0xe1, 0x55, 0xff, 0x3f, 0x17, 0xef, 0x30, 0xfd, 0x4e, 0xfc, 0x1f, 0xa3, 0xfd, 0xff, 0xf5, 0x15, 0x33, 0x31, + 0x6b, 0xf4, 0x77, 0xc4, 0x7f, 0x9a, 0xf5, 0x70, 0x06, 0x67, 0x6e, 0xbe, 0x39, 0xfe, 0x3b, 0xd1, 0x93, 0x76, 0x5d, 0x79, + 0xde, 0xba, 0xe5, 0xa4, 0xc7, 0x56, 0xad, 0x19, 0xee, 0x9e, 0xff, 0xef, 0xdf, 0xb7, 0xc9, 0xf6, 0xab, 0xf3, 0xf0, 0xf8, + 0xff, 0xb9, 0xf8, 0x3f, 0xca, 0x33, 0xd8, 0xe7, 0xf7, 0x5a, 0xea, 0xf5, 0x4f, 0x1a, 0xf7, 0xbb, 0x8f, 0x91, 0xdf, 0xf2, + 0xb6, 0xf3, 0x70, 0xed, 0x35, 0x29, 0xcf, 0x6d, 0x9c, 0xdf, 0x01, 0xfb, 0xe7, 0xd9, 0x88, 0xce, 0xbc, 0xec, 0xfb, 0xea, + 0xd8, 0xbc, 0xa6, 0x8d, 0xfd, 0x5b, 0x4a, 0x81, 0x67, 0x9e, 0x31, 0x40, 0xfc, 0x8b, 0x7f, 0x78, 0xfb, 0x73, 0xcb, 0xe2, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xdf, 0x5a, 0xa1, 0x57, 0x5b, 0x15, 0xbe, + 0x93, 0xcb, 0xb8, 0x93, 0x9d, 0x6e, 0xbd, 0x42, 0x3d, 0xad, 0x9c, 0x04, 0xbd, 0xd7, 0xe5, 0x34, 0x0b, 0x5a, 0x46, 0xf2, + 0x13, 0x74, 0xf3, 0x4e, 0x55, 0x32, 0x08, 0x54, 0xf7, 0x32, 0xe8, 0xee, 0x1b, 0x50, 0xfb, 0x8c, 0xce, 0x6a, 0xfd, 0x0c, + 0x65, 0x41, 0xe8, 0xe4, 0x16, 0xde, 0x5b, 0x95, 0x5a, 0xcf, 0xd1, 0xb6, 0x93, 0xf5, 0x23, 0xad, 0x55, 0x73, 0x93, 0xf1, + 0x9f, 0x4b, 0xb9, 0x0e, 0x3a, 0x19, 0x6a, 0x3a, 0x59, 0x6a, 0x32, 0x9c, 0x5f, 0xe7, 0x5a, 0x94, 0x5e, 0xcb, 0x39, 0x95, + 0xe2, 0x77, 0xaa, 0xef, 0xca, 0x90, 0x46, 0xa4, 0xd5, 0xca, 0xb0, 0xb3, 0x3e, 0x72, 0xa7, 0x55, 0xd9, 0xbb, 0x7a, 0x53, + 0xca, 0x45, 0x7c, 0x77, 0xde, 0x9d, 0x94, 0xe3, 0xe7, 0xd9, 0xf8, 0x4f, 0xe3, 0x17, 0xe5, 0x52, 0xce, 0xe5, 0x6e, 0x46, + 0xb6, 0x6e, 0x26, 0xa7, 0x5e, 0x16, 0x81, 0x7e, 0xfc, 0x5f, 0x3b, 0x03, 0xbf, 0x1d, 0xff, 0x3b, 0xfb, 0xc7, 0x4c, 0xc4, + 0x7f, 0xb6, 0x3f, 0x39, 0x23, 0xe5, 0x5a, 0x79, 0x97, 0x55, 0xfc, 0x3c, 0x19, 0xff, 0xfd, 0x8c, 0x85, 0x67, 0xbf, 0x38, + 0x5b, 0xf1, 0x3f, 0xf9, 0xba, 0xa3, 0x99, 0x5f, 0x6b, 0x3f, 0xfe, 0xd3, 0xec, 0xb9, 0xce, 0xf5, 0x3d, 0xa7, 0xf2, 0x06, + 0x77, 0xae, 0xcf, 0x5c, 0xc8, 0xd7, 0xbb, 0xdb, 0x33, 0xa8, 0xe5, 0xae, 0xce, 0xb2, 0x35, 0xde, 0x8d, 0xff, 0x3c, 0xd8, + 0xff, 0xaf, 0x8c, 0xc8, 0x32, 0xde, 0xfe, 0x7f, 0x57, 0xfc, 0xdf, 0xd5, 0xff, 0xbf, 0xd2, 0x92, 0x75, 0xf7, 0xf5, 0x7a, + 0x3a, 0xfe, 0xef, 0x98, 0x97, 0xca, 0x48, 0xcb, 0xd5, 0xaf, 0x31, 0xae, 0xf6, 0xff, 0x33, 0xb4, 0x2b, 0x55, 0x6f, 0xdc, + 0x92, 0x9b, 0xdb, 0xff, 0x34, 0x46, 0x4a, 0xbb, 0xf1, 0x7f, 0x5c, 0xca, 0x83, 0x9a, 0xe6, 0xb9, 0xae, 0xd4, 0xe1, 0x3b, + 0x3b, 0xef, 0xed, 0xf4, 0xe0, 0xd3, 0xdc, 0x79, 0x2e, 0x8d, 0x91, 0xea, 0x6f, 0xc4, 0xff, 0xce, 0x2e, 0x5d, 0x4f, 0xf5, + 0xdc, 0x8f, 0x0b, 0x6d, 0xde, 0x1b, 0xe3, 0x7f, 0x7e, 0xfe, 0x6f, 0xfd, 0x1d, 0xf2, 0xf0, 0xf8, 0x3f, 0x8d, 0x28, 0x7e, + 0x5f, 0xfc, 0xd7, 0xdb, 0xa3, 0x99, 0xfd, 0x90, 0xa7, 0x6b, 0x80, 0xce, 0xee, 0x99, 0x9d, 0x9d, 0x53, 0x53, 0xda, 0x89, + 0x6c, 0xae, 0x47, 0x32, 0xd5, 0xff, 0x7f, 0x2e, 0xfe, 0xd3, 0xba, 0x0e, 0x3b, 0xdf, 0xbf, 0xbf, 0x3b, 0x40, 0xb6, 0x5a, + 0x95, 0x8c, 0xc6, 0xff, 0xc4, 0x2c, 0x5d, 0xb7, 0x4e, 0x7a, 0x7e, 0x3f, 0xf4, 0xe7, 0xee, 0x59, 0xa7, 0xb9, 0xab, 0x5b, + 0x46, 0xee, 0x8c, 0x67, 0x64, 0x2e, 0x2d, 0x5b, 0xf1, 0xbf, 0x7f, 0x2e, 0xaa, 0xfb, 0x32, 0xae, 0xfb, 0xc6, 0xf5, 0x79, + 0x91, 0x6e, 0xfc, 0xf7, 0x32, 0xd4, 0x5f, 0xfd, 0x1d, 0xff, 0x3c, 0x57, 0x72, 0x8c, 0xdf, 0x91, 0x4e, 0xab, 0xae, 0xea, + 0xf6, 0x2c, 0xd2, 0xda, 0x35, 0xff, 0x7d, 0xf1, 0xff, 0x44, 0xad, 0x31, 0x33, 0xf3, 0xd9, 0xb9, 0x17, 0x99, 0xf2, 0x35, + 0x3d, 0x3d, 0xc2, 0xfa, 0xfc, 0x19, 0xbd, 0x6f, 0x47, 0xa3, 0x37, 0x65, 0xe3, 0x9d, 0x88, 0xff, 0xa3, 0x71, 0xbf, 0x62, + 0xff, 0x4e, 0xdf, 0x77, 0x66, 0x35, 0xce, 0x8d, 0x4f, 0x25, 0xcc, 0xbd, 0xbf, 0x67, 0x10, 0x3f, 0x17, 0x75, 0x7f, 0x6b, + 0xa9, 0xfd, 0x1d, 0xf1, 0xff, 0x4c, 0x8d, 0x3d, 0x3d, 0x12, 0x81, 0x4f, 0x8e, 0xa9, 0x33, 0x32, 0x02, 0xe7, 0xb7, 0xda, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xa9, 0xf5, 0x63, 0x33, 0xf9, 0x89, 0xd6, + 0x6b, 0x9a, 0x6b, 0x2b, 0x21, 0xd2, 0x58, 0xaf, 0xbc, 0x97, 0x47, 0xbf, 0x9a, 0xd5, 0xe5, 0x7c, 0xbd, 0x4c, 0x2e, 0xae, + 0xa1, 0x59, 0xad, 0x10, 0xc9, 0xf6, 0x5a, 0xbc, 0xee, 0xae, 0x06, 0xab, 0x4f, 0xeb, 0x64, 0x65, 0x38, 0xdf, 0x4d, 0xa0, + 0xbb, 0x0f, 0xc0, 0x59, 0x96, 0x83, 0x94, 0x3f, 0xef, 0xec, 0x95, 0x29, 0xe7, 0x0a, 0x4b, 0x61, 0xed, 0x54, 0x5a, 0x57, + 0x68, 0x27, 0xa3, 0xc3, 0xff, 0x7e, 0x5e, 0xe5, 0x6c, 0x65, 0x79, 0xa5, 0x55, 0xb2, 0xf1, 0xd5, 0xf3, 0x9d, 0xac, 0x32, + 0x10, 0xf6, 0xf3, 0xe8, 0x67, 0x70, 0x05, 0x7e, 0x86, 0xfe, 0x5a, 0x59, 0x25, 0x96, 0xad, 0x3a, 0x3e, 0x43, 0x75, 0xed, + 0x6e, 0x79, 0xa5, 0x51, 0x73, 0xa7, 0x5d, 0xe3, 0x1f, 0xad, 0x0c, 0x09, 0x19, 0xc8, 0x08, 0x90, 0x56, 0x09, 0x9d, 0xb5, + 0x42, 0x69, 0xaf, 0x42, 0xac, 0x67, 0x39, 0x4a, 0xf9, 0x3b, 0x1e, 0x8d, 0x3c, 0xa8, 0xb3, 0xd9, 0x97, 0x76, 0xf6, 0xfd, + 0x98, 0xc9, 0x98, 0x39, 0xb5, 0x86, 0xbe, 0x97, 0x9b, 0xa9, 0xfe, 0xd9, 0x9d, 0xab, 0x2a, 0x1b, 0xbd, 0xd0, 0x14, 0x7f, + 0x5d, 0x2e, 0xb7, 0x71, 0x7f, 0x6e, 0xf5, 0xea, 0x71, 0x53, 0xcf, 0xa9, 0x34, 0x95, 0x3b, 0xe9, 0xae, 0xf8, 0x3f, 0xc6, + 0xb3, 0x9c, 0xf5, 0x7a, 0x21, 0xbb, 0x3d, 0xf5, 0xbd, 0xf8, 0x5f, 0xef, 0x52, 0xb4, 0x5f, 0xe3, 0xdf, 0x19, 0xff, 0xbd, + 0x5c, 0x88, 0x59, 0xf6, 0xba, 0xbb, 0x7b, 0xaf, 0xd5, 0xfa, 0xf1, 0x69, 0x67, 0x97, 0xed, 0xe5, 0xd1, 0xc8, 0x22, 0xb7, + 0x6c, 0x6f, 0xdd, 0xfe, 0x7e, 0xff, 0x7f, 0xdd, 0x8f, 0x3f, 0xab, 0x1b, 0xef, 0xc8, 0xff, 0x77, 0x7f, 0xfc, 0xd7, 0xb2, + 0x26, 0xf7, 0xda, 0xf0, 0x6b, 0x79, 0x74, 0x27, 0xb3, 0xdf, 0x7d, 0x2a, 0xfe, 0xeb, 0xe3, 0xea, 0xe9, 0x31, 0x45, 0xe7, + 0x0c, 0xe5, 0x42, 0x2e, 0xc3, 0xb4, 0xf2, 0xa7, 0x9e, 0x8f, 0x7a, 0x67, 0xb3, 0xf0, 0xdc, 0xf9, 0x3e, 0x57, 0xc6, 0x62, + 0xcf, 0xc5, 0x7f, 0x36, 0x46, 0xe0, 0x7b, 0xed, 0x56, 0x2e, 0xb7, 0x22, 0xf7, 0xc7, 0xff, 0xdc, 0x9e, 0x95, 0xfb, 0x79, + 0xfa, 0x7a, 0x7d, 0xfc, 0x6c, 0xcc, 0x82, 0x75, 0xce, 0xe8, 0xb5, 0xb9, 0x8e, 0x3c, 0x32, 0xeb, 0x9d, 0xad, 0xb8, 0xb9, + 0x7f, 0x4e, 0xbe, 0x36, 0x1b, 0x34, 0x1f, 0xff, 0x47, 0x71, 0xfc, 0x7d, 0x5c, 0xdc, 0xab, 0x63, 0x77, 0xdc, 0x9a, 0xad, + 0xfe, 0xf8, 0xec, 0x9c, 0x55, 0xfd, 0xbb, 0x3f, 0xdf, 0xff, 0xdf, 0xcb, 0x1a, 0x9b, 0x56, 0x3f, 0x38, 0x1b, 0x75, 0x69, + 0x27, 0xf3, 0xf2, 0x4e, 0x8c, 0x4d, 0xee, 0x53, 0x36, 0xf1, 0x1d, 0xcf, 0x47, 0x11, 0xd3, 0xf1, 0x5f, 0x2f, 0x85, 0x7c, + 0xb4, 0x1f, 0xd4, 0xbf, 0x5a, 0xfb, 0x11, 0x98, 0xc1, 0xb3, 0xf8, 0xfc, 0xfc, 0x5f, 0xda, 0x75, 0x5f, 0x36, 0x33, 0x9e, + 0x57, 0xdb, 0x8e, 0x67, 0xf3, 0x09, 0xe6, 0xa5, 0xf9, 0x0b, 0xfb, 0xb9, 0xff, 0xf3, 0x48, 0xa4, 0x4d, 0xe7, 0x9c, 0xbe, + 0xbf, 0x1e, 0xd9, 0xbb, 0x77, 0x96, 0xdb, 0xcf, 0x62, 0x6e, 0x7f, 0xf7, 0x2c, 0x9f, 0x33, 0xe8, 0xde, 0xdf, 0xc8, 0xe0, + 0xfd, 0x44, 0x8e, 0xad, 0x79, 0x9a, 0x7c, 0xf8, 0x3b, 0x1e, 0xce, 0xef, 0x43, 0xf1, 0xff, 0xe9, 0x72, 0xef, 0xcf, 0xd5, + 0xc9, 0x7a, 0xfb, 0xfd, 0xf1, 0xcf, 0x3b, 0xe3, 0xff, 0x78, 0x49, 0xfc, 0xf3, 0x7c, 0x0d, 0x2e, 0xfe, 0xdf, 0x77, 0x2e, + 0x77, 0x9f, 0xff, 0x7d, 0xfb, 0xaf, 0xd3, 0x96, 0xdf, 0x55, 0xaa, 0xca, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x58, 0xaf, 0x1c, 0xca, 0x50, 0x46, 0xa0, 0xe3, 0xff, 0x72, 0x97, 0xac, 0x73, 0x4d, 0x76, 0xf2, + 0xc6, 0xf7, 0x57, 0x53, 0xa5, 0x7d, 0x6c, 0x27, 0x17, 0x4b, 0x2e, 0xad, 0x00, 0xc9, 0xc8, 0x7e, 0x09, 0xfd, 0x52, 0x4a, + 0x29, 0x9b, 0x68, 0x25, 0x7f, 0x5b, 0x1a, 0x2b, 0x83, 0x7b, 0x59, 0x9f, 0x3e, 0x75, 0x9e, 0x57, 0x19, 0x57, 0xfa, 0xbf, + 0x26, 0x37, 0xac, 0x1e, 0xbc, 0xfa, 0x3d, 0x7a, 0x59, 0x58, 0x73, 0x69, 0xa5, 0x5b, 0xda, 0xb9, 0x5c, 0xfb, 0xeb, 0x29, + 0xd3, 0x5c, 0x4f, 0x99, 0xed, 0xd2, 0x5e, 0x45, 0x63, 0x2f, 0x5f, 0x6a, 0xb7, 0x8e, 0xdc, 0xcf, 0xf0, 0x9d, 0xed, 0x77, + 0xbe, 0xb2, 0x47, 0x41, 0xbe, 0xe8, 0x3c, 0x77, 0xeb, 0x86, 0xfe, 0xef, 0xcc, 0xed, 0xb1, 0xb3, 0x9b, 0xf9, 0xef, 0xca, + 0x55, 0xdf, 0xdb, 0x87, 0xe6, 0x8d, 0xab, 0x38, 0x77, 0xea, 0xf0, 0x6e, 0x1e, 0xb3, 0x6f, 0x58, 0xdf, 0x9b, 0x8f, 0xfe, + 0xae, 0xe7, 0xce, 0xf3, 0x3a, 0xcf, 0xe1, 0x1b, 0x7e, 0x6b, 0x25, 0xc3, 0x6b, 0xa7, 0xfd, 0xcf, 0xa5, 0xf2, 0xba, 0x92, + 0xdd, 0xb4, 0xb7, 0xeb, 0xd5, 0x67, 0x8e, 0x1e, 0x9b, 0xd9, 0xb6, 0x3a, 0xd9, 0xae, 0xcf, 0x77, 0xac, 0xaa, 0x1f, 0xd9, + 0x6d, 0xff, 0xbb, 0x7f, 0xed, 0xec, 0x43, 0xf4, 0x89, 0xf3, 0xdc, 0xdb, 0x1d, 0x2d, 0x8b, 0x51, 0xf7, 0x95, 0x32, 0xae, + 0x1d, 0xdb, 0xed, 0x25, 0xef, 0x8d, 0xff, 0xab, 0xed, 0xff, 0x51, 0xbe, 0xea, 0x77, 0x7a, 0xda, 0x6f, 0x3b, 0xba, 0x93, + 0x71, 0xf3, 0xa9, 0x23, 0x77, 0xc4, 0x7f, 0x4e, 0xb3, 0xf1, 0xe7, 0xd2, 0x2c, 0xc3, 0x4e, 0x66, 0xe7, 0xfa, 0xd1, 0x5c, + 0x2a, 0x8f, 0xf3, 0x36, 0xf4, 0xfb, 0xe2, 0x7f, 0xef, 0xbd, 0xd7, 0xf1, 0x5d, 0xcf, 0x50, 0x7b, 0xb4, 0xe7, 0xe1, 0xee, + 0x8b, 0xe1, 0xa3, 0xfd, 0xad, 0xf2, 0x9a, 0x28, 0xaf, 0xe5, 0x04, 0xbd, 0xbb, 0xfd, 0xbf, 0x96, 0xdd, 0xfc, 0x3d, 0x47, + 0xaf, 0xb5, 0x49, 0xef, 0x88, 0xff, 0xdc, 0x3a, 0x26, 0x4c, 0x69, 0xa6, 0xf5, 0x28, 0xee, 0x7d, 0x94, 0xd7, 0xb5, 0x0b, + 0xeb, 0x3d, 0x35, 0xae, 0xb4, 0x29, 0xb3, 0x11, 0xdb, 0x3b, 0xf2, 0xa6, 0xfe, 0xff, 0x2f, 0xc5, 0xff, 0x1d, 0x31, 0xfe, + 0x4c, 0xfc, 0xef, 0xf5, 0x00, 0xfa, 0xfb, 0x2d, 0x75, 0x6a, 0x86, 0x9d, 0xbd, 0x6d, 0x76, 0x8f, 0x76, 0x6b, 0x87, 0xfc, + 0xa1, 0x36, 0xec, 0xcd, 0xb4, 0x7e, 0x5b, 0xff, 0xff, 0xfc, 0xfe, 0x4f, 0xda, 0xf3, 0xcb, 0xef, 0x8b, 0xff, 0x7e, 0x0b, + 0x70, 0x4f, 0xfc, 0xe7, 0xc1, 0x79, 0xd2, 0xb4, 0x67, 0x3d, 0xd3, 0xb8, 0x6f, 0xfc, 0xc6, 0x71, 0x61, 0xe5, 0xec, 0x77, + 0xf6, 0xd0, 0xfc, 0xee, 0xf8, 0x5f, 0xcf, 0x2f, 0xfd, 0x4a, 0xff, 0x3f, 0x1b, 0xb3, 0xa0, 0xd3, 0xf1, 0xff, 0x3d, 0xf9, + 0x46, 0x33, 0x36, 0xee, 0xf8, 0xbe, 0x56, 0xa3, 0x1b, 0x57, 0x3b, 0xa3, 0x89, 0xeb, 0x73, 0xae, 0xcf, 0xec, 0x76, 0x92, + 0x57, 0x9d, 0xab, 0x3b, 0xee, 0x58, 0x7e, 0x66, 0xfe, 0xef, 0x5b, 0x22, 0x5f, 0xfc, 0xaf, 0xe6, 0xd0, 0xcf, 0xc7, 0xcf, + 0xb5, 0x23, 0x95, 0xe7, 0x0c, 0x3f, 0x17, 0xff, 0x9f, 0x9b, 0xe7, 0xb9, 0x67, 0x37, 0x93, 0xce, 0x33, 0x36, 0xc7, 0x2d, + 0xcf, 0xce, 0xbd, 0xef, 0x59, 0x8b, 0xe3, 0x0b, 0xe2, 0x7f, 0x66, 0x36, 0xb4, 0x53, 0x12, 0x59, 0xec, 0x8b, 0x9c, 0xe2, + 0x33, 0xd7, 0x77, 0xf5, 0xff, 0x67, 0x5b, 0xc5, 0x4f, 0x3e, 0xe7, 0xf1, 0xfc, 0x95, 0xde, 0x3d, 0x06, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xf6, 0xda, 0xba, 0x7a, 0xd6, 0xbd, 0x34, 0xd7, 0xef, 0xf6, 0xd7, + 0xa9, 0xd6, 0x77, 0x0d, 0xb8, 0xf2, 0x9e, 0x29, 0xaf, 0xbf, 0xa9, 0x7d, 0x52, 0xe5, 0x5b, 0xdf, 0x93, 0x75, 0xff, 0x58, + 0xe4, 0x18, 0xc8, 0xc8, 0x35, 0x91, 0x72, 0x4e, 0x87, 0xa3, 0x99, 0x95, 0x28, 0xe5, 0xab, 0x2e, 0x8d, 0xbf, 0xa7, 0xbc, + 0x32, 0xf3, 0x68, 0x7c, 0xef, 0x37, 0xaf, 0xb9, 0xef, 0x66, 0xf2, 0xec, 0xef, 0x50, 0x31, 0xbd, 0xea, 0x31, 0xcd, 0x3c, + 0xdc, 0x19, 0x5b, 0xef, 0x9a, 0x8d, 0x15, 0xcd, 0x9d, 0x48, 0xaf, 0xd4, 0xd7, 0x69, 0xc7, 0x46, 0xad, 0x3e, 0xcb, 0xe8, + 0x75, 0x3a, 0xb7, 0x43, 0x4c, 0x46, 0x33, 0x69, 0xbe, 0x79, 0x5d, 0x5e, 0x9a, 0xd9, 0x35, 0xf2, 0x05, 0xeb, 0x90, 0xb3, + 0xb1, 0x5b, 0x4a, 0x1a, 0x3b, 0x9d, 0x7c, 0x66, 0xa5, 0xf3, 0xde, 0x95, 0xf9, 0xce, 0x55, 0xa3, 0xd5, 0x7c, 0x6e, 0x4f, + 0x5d, 0x75, 0xbd, 0x9c, 0x1f, 0x19, 0x7f, 0xc7, 0x67, 0xe2, 0xbf, 0x93, 0x77, 0x37, 0xcb, 0x3e, 0xe5, 0xb3, 0xab, 0x9e, + 0xbb, 0xd9, 0xc6, 0xd2, 0xda, 0x6d, 0x60, 0xff, 0xef, 0x9f, 0xc8, 0xba, 0x73, 0x6f, 0xfb, 0x3f, 0xdf, 0xc7, 0xae, 0x66, + 0x38, 0xe8, 0x5d, 0xdd, 0xdd, 0x9d, 0x2e, 0xf2, 0x33, 0xf1, 0xbf, 0xce, 0xba, 0x98, 0x91, 0xd9, 0x84, 0x4f, 0x1c, 0x4b, + 0x73, 0xd7, 0xa7, 0x0c, 0x8d, 0x17, 0xd6, 0xb9, 0x2e, 0x9f, 0x88, 0xff, 0x9c, 0xf4, 0xce, 0xd3, 0xd8, 0xd9, 0x62, 0xea, + 0xef, 0x93, 0xb3, 0x15, 0xfd, 0x5d, 0x6b, 0xe6, 0xe2, 0x3f, 0xc3, 0x3b, 0xb0, 0xbd, 0x3d, 0xfe, 0xa7, 0x67, 0x00, 0xfa, + 0x31, 0x9e, 0xf6, 0x68, 0x6d, 0x62, 0x94, 0xdb, 0xf9, 0xfb, 0x73, 0x59, 0xf7, 0xcf, 0xf2, 0x2a, 0xa7, 0x75, 0x45, 0x64, + 0x60, 0x1e, 0x25, 0xed, 0x1e, 0xf6, 0xfd, 0xf1, 0xbf, 0xb3, 0xe7, 0x4f, 0xbe, 0x2e, 0xfe, 0x57, 0x35, 0x5a, 0x3d, 0xbf, + 0x6d, 0x5a, 0xb1, 0xda, 0x3b, 0x96, 0x8d, 0xd9, 0x9f, 0x2c, 0xb3, 0xe6, 0xdf, 0xd3, 0xfb, 0xaf, 0x7d, 0xdb, 0x99, 0xf8, + 0x9f, 0x89, 0xce, 0x4f, 0xc6, 0x7f, 0x36, 0xf6, 0x8e, 0x99, 0x6c, 0xdd, 0xd2, 0xcc, 0x14, 0x9a, 0x97, 0xce, 0xff, 0x75, + 0x46, 0x34, 0xf3, 0x7b, 0x75, 0xdc, 0x71, 0x6c, 0x6f, 0xe6, 0x2b, 0x37, 0x8e, 0x7d, 0x8f, 0x0f, 0xb4, 0xff, 0x13, 0x35, + 0xc3, 0x67, 0xdb, 0xff, 0x63, 0xf4, 0x7a, 0x5c, 0xff, 0xfa, 0x3c, 0xd0, 0xa3, 0x7c, 0x4b, 0xfc, 0xe7, 0x4b, 0xe3, 0xff, + 0xb8, 0xb0, 0xa3, 0xdc, 0x5b, 0x6b, 0x80, 0x3c, 0x3a, 0xfe, 0x7f, 0x57, 0xfc, 0xcf, 0xde, 0x01, 0xc9, 0xf2, 0x1e, 0x67, + 0x2d, 0xca, 0xd3, 0xb8, 0xd3, 0x98, 0xe2, 0x6e, 0x6a, 0xef, 0x79, 0xfe, 0x27, 0xcd, 0xd1, 0x49, 0x35, 0x1e, 0xef, 0x39, + 0x76, 0xcf, 0xac, 0x6b, 0xca, 0x73, 0x8a, 0x19, 0xb9, 0xce, 0x9f, 0xcc, 0xba, 0xbb, 0x1a, 0xc5, 0x3d, 0xff, 0xeb, 0x77, + 0xef, 0xa7, 0x66, 0xe8, 0xc8, 0xe4, 0xb3, 0x44, 0x6f, 0x79, 0x3a, 0x60, 0xfa, 0x1e, 0xda, 0x37, 0xe4, 0x21, 0xce, 0xcf, + 0x67, 0x4c, 0xbf, 0xef, 0xa9, 0x01, 0xee, 0xed, 0xe9, 0x7d, 0xcf, 0xb3, 0xc1, 0x88, 0x7e, 0xd6, 0xcf, 0xa8, 0xfc, 0xe6, + 0xef, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xa6, 0xfd, 0xfb, 0x9f, 0x72, 0x00, 0xf1, 0x0f, 0xfc, 0x75, 0xf1, 0xff, 0x2f }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle lavandaFontRecs[189] = { + { 4, 4, 5 , 16 }, + { 17, 4, 1 , 9 }, + { 26, 4, 3 , 3 }, + { 37, 4, 7 , 8 }, + { 52, 4, 5 , 11 }, + { 65, 4, 10 , 8 }, + { 83, 4, 7 , 9 }, + { 98, 4, 1 , 3 }, + { 107, 4, 3 , 12 }, + { 118, 4, 3 , 12 }, + { 129, 4, 5 , 4 }, + { 142, 4, 5 , 5 }, + { 155, 4, 2 , 3 }, + { 165, 4, 3 , 1 }, + { 176, 4, 1 , 1 }, + { 185, 4, 4 , 12 }, + { 197, 4, 5 , 9 }, + { 210, 4, 3 , 9 }, + { 221, 4, 5 , 9 }, + { 234, 4, 5 , 9 }, + { 247, 4, 5 , 9 }, + { 260, 4, 5 , 9 }, + { 273, 4, 5 , 9 }, + { 286, 4, 5 , 9 }, + { 299, 4, 5 , 9 }, + { 312, 4, 5 , 9 }, + { 325, 4, 1 , 4 }, + { 334, 4, 2 , 6 }, + { 344, 4, 4 , 5 }, + { 356, 4, 4 , 3 }, + { 368, 4, 4 , 5 }, + { 380, 4, 5 , 9 }, + { 393, 4, 7 , 10 }, + { 408, 4, 7 , 9 }, + { 423, 4, 6 , 9 }, + { 437, 4, 5 , 9 }, + { 450, 4, 6 , 9 }, + { 464, 4, 5 , 9 }, + { 477, 4, 5 , 9 }, + { 490, 4, 6 , 9 }, + { 4, 28, 5 , 10 }, + { 17, 28, 1 , 9 }, + { 26, 28, 6 , 9 }, + { 40, 28, 6 , 9 }, + { 54, 28, 5 , 9 }, + { 67, 28, 8 , 11 }, + { 83, 28, 6 , 10 }, + { 97, 28, 7 , 9 }, + { 112, 28, 5 , 9 }, + { 125, 28, 7 , 11 }, + { 140, 28, 5 , 9 }, + { 153, 28, 6 , 9 }, + { 167, 28, 7 , 9 }, + { 182, 28, 6 , 9 }, + { 196, 28, 6 , 10 }, + { 210, 28, 9 , 10 }, + { 227, 28, 6 , 11 }, + { 241, 28, 5 , 10 }, + { 254, 28, 5 , 9 }, + { 267, 28, 3 , 12 }, + { 278, 28, 4 , 12 }, + { 290, 28, 3 , 12 }, + { 301, 28, 5 , 4 }, + { 314, 28, 6 , 1 }, + { 328, 28, 3 , 3 }, + { 339, 28, 6 , 7 }, + { 353, 28, 5 , 9 }, + { 366, 28, 4 , 7 }, + { 378, 28, 5 , 10 }, + { 391, 28, 4 , 7 }, + { 403, 28, 3 , 10 }, + { 414, 28, 4 , 11 }, + { 426, 28, 5 , 11 }, + { 439, 28, 1 , 9 }, + { 448, 28, 5 , 12 }, + { 461, 28, 5 , 9 }, + { 474, 28, 1 , 9 }, + { 483, 28, 8 , 9 }, + { 4, 52, 5 , 9 }, + { 17, 52, 4 , 7 }, + { 29, 52, 5 , 10 }, + { 42, 52, 5 , 10 }, + { 55, 52, 5 , 7 }, + { 68, 52, 5 , 7 }, + { 81, 52, 3 , 9 }, + { 92, 52, 5 , 7 }, + { 105, 52, 5 , 8 }, + { 118, 52, 9 , 8 }, + { 135, 52, 5 , 9 }, + { 148, 52, 6 , 9 }, + { 162, 52, 4 , 7 }, + { 174, 52, 5 , 12 }, + { 187, 52, 1 , 12 }, + { 196, 52, 5 , 12 }, + { 209, 52, 6 , 2 }, + { 223, 52, 1 , 9 }, + { 232, 52, 5 , 10 }, + { 245, 52, 6 , 9 }, + { 259, 52, 7 , 9 }, + { 274, 52, 5 , 9 }, + { 287, 52, 6 , 12 }, + { 301, 52, 5 , 10 }, + { 314, 52, 5 , 10 }, + { 327, 52, 8 , 8 }, + { 343, 52, 4 , 7 }, + { 355, 52, 6 , 5 }, + { 369, 52, 6 , 3 }, + { 383, 52, 8 , 8 }, + { 399, 52, 5 , 1 }, + { 412, 52, 4 , 4 }, + { 424, 52, 5 , 7 }, + { 437, 52, 3 , 4 }, + { 448, 52, 3 , 4 }, + { 459, 52, 5 , 12 }, + { 472, 52, 5 , 10 }, + { 485, 52, 7 , 11 }, + { 500, 52, 1 , 1 }, + { 4, 76, 4 , 10 }, + { 16, 76, 2 , 4 }, + { 26, 76, 4 , 7 }, + { 38, 76, 6 , 5 }, + { 52, 76, 11 , 9 }, + { 71, 76, 7 , 7 }, + { 86, 76, 5 , 12 }, + { 99, 76, 5 , 9 }, + { 112, 76, 7 , 12 }, + { 127, 76, 7 , 12 }, + { 142, 76, 7 , 12 }, + { 157, 76, 7 , 12 }, + { 172, 76, 7 , 11 }, + { 187, 76, 7 , 12 }, + { 202, 76, 10 , 9 }, + { 220, 76, 5 , 12 }, + { 233, 76, 5 , 12 }, + { 246, 76, 5 , 12 }, + { 259, 76, 5 , 12 }, + { 272, 76, 5 , 11 }, + { 285, 76, 2 , 12 }, + { 295, 76, 2 , 12 }, + { 305, 76, 3 , 12 }, + { 316, 76, 3 , 11 }, + { 327, 76, 7 , 9 }, + { 342, 76, 6 , 12 }, + { 356, 76, 7 , 12 }, + { 371, 76, 7 , 12 }, + { 386, 76, 7 , 12 }, + { 401, 76, 7 , 12 }, + { 416, 76, 7 , 11 }, + { 431, 76, 5 , 5 }, + { 444, 76, 7 , 9 }, + { 459, 76, 6 , 12 }, + { 473, 76, 6 , 12 }, + { 487, 76, 6 , 12 }, + { 4, 100, 6 , 11 }, + { 18, 100, 5 , 13 }, + { 31, 100, 5 , 9 }, + { 44, 100, 5 , 11 }, + { 57, 100, 6 , 10 }, + { 71, 100, 6 , 10 }, + { 85, 100, 6 , 10 }, + { 99, 100, 6 , 10 }, + { 113, 100, 6 , 9 }, + { 127, 100, 6 , 11 }, + { 141, 100, 7 , 7 }, + { 156, 100, 4 , 10 }, + { 168, 100, 4 , 10 }, + { 180, 100, 4 , 10 }, + { 192, 100, 4 , 10 }, + { 204, 100, 4 , 9 }, + { 216, 100, 2 , 10 }, + { 226, 100, 2 , 10 }, + { 236, 100, 3 , 10 }, + { 247, 100, 3 , 9 }, + { 258, 100, 5 , 9 }, + { 271, 100, 5 , 12 }, + { 284, 100, 4 , 10 }, + { 296, 100, 4 , 10 }, + { 308, 100, 4 , 10 }, + { 320, 100, 5 , 10 }, + { 333, 100, 4 , 9 }, + { 345, 100, 5 , 5 }, + { 358, 100, 6 , 7 }, + { 372, 100, 5 , 10 }, + { 385, 100, 5 , 10 }, + { 398, 100, 5 , 10 }, + { 411, 100, 5 , 9 }, + { 424, 100, 6 , 12 }, + { 438, 100, 5 , 12 }, + { 451, 100, 6 , 11 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo lavandaFontGlyphs[189] = { + { 32, 0, 0, 5, { 0 }}, + { 33, 0, 3, 2, { 0 }}, + { 34, 0, 3, 4, { 0 }}, + { 35, 0, 3, 8, { 0 }}, + { 36, 0, 2, 6, { 0 }}, + { 37, 0, 4, 11, { 0 }}, + { 38, 0, 3, 8, { 0 }}, + { 39, 0, 3, 2, { 0 }}, + { 40, 0, 2, 4, { 0 }}, + { 41, 0, 2, 4, { 0 }}, + { 42, 0, 3, 6, { 0 }}, + { 43, 0, 5, 6, { 0 }}, + { 44, 0, 10, 3, { 0 }}, + { 45, 0, 7, 4, { 0 }}, + { 46, 0, 11, 2, { 0 }}, + { 47, 0, 2, 5, { 0 }}, + { 48, 0, 3, 6, { 0 }}, + { 49, 0, 3, 4, { 0 }}, + { 50, 0, 3, 6, { 0 }}, + { 51, 0, 3, 6, { 0 }}, + { 52, 0, 3, 6, { 0 }}, + { 53, 0, 3, 6, { 0 }}, + { 54, 0, 3, 6, { 0 }}, + { 55, 0, 3, 6, { 0 }}, + { 56, 0, 3, 6, { 0 }}, + { 57, 0, 3, 6, { 0 }}, + { 58, 0, 7, 2, { 0 }}, + { 59, 0, 7, 3, { 0 }}, + { 60, 0, 5, 5, { 0 }}, + { 61, 0, 6, 5, { 0 }}, + { 62, 0, 5, 5, { 0 }}, + { 63, 0, 3, 6, { 0 }}, + { 64, 0, 4, 8, { 0 }}, + { 65, 0, 3, 8, { 0 }}, + { 66, 0, 3, 7, { 0 }}, + { 67, 0, 3, 6, { 0 }}, + { 68, 0, 3, 7, { 0 }}, + { 69, 0, 3, 6, { 0 }}, + { 70, 0, 3, 6, { 0 }}, + { 71, 0, 3, 7, { 0 }}, + { 72, 0, 2, 6, { 0 }}, + { 73, 0, 3, 2, { 0 }}, + { 74, 0, 3, 7, { 0 }}, + { 75, 0, 3, 7, { 0 }}, + { 76, 0, 3, 6, { 0 }}, + { 77, 0, 3, 9, { 0 }}, + { 78, 0, 2, 7, { 0 }}, + { 79, 0, 3, 8, { 0 }}, + { 80, 0, 3, 6, { 0 }}, + { 81, 0, 3, 8, { 0 }}, + { 82, 0, 3, 6, { 0 }}, + { 83, 0, 3, 7, { 0 }}, + { 84, 0, 3, 8, { 0 }}, + { 85, 0, 3, 7, { 0 }}, + { 86, 0, 2, 7, { 0 }}, + { 87, 0, 2, 10, { 0 }}, + { 88, 0, 3, 7, { 0 }}, + { 89, 0, 3, 6, { 0 }}, + { 90, 0, 3, 6, { 0 }}, + { 91, 0, 2, 4, { 0 }}, + { 92, 0, 2, 5, { 0 }}, + { 93, 0, 2, 4, { 0 }}, + { 94, 0, 3, 6, { 0 }}, + { 95, 0, 13, 7, { 0 }}, + { 96, 0, 3, 4, { 0 }}, + { 97, 0, 5, 7, { 0 }}, + { 98, 0, 3, 6, { 0 }}, + { 99, 0, 5, 5, { 0 }}, + { 100, 0, 2, 6, { 0 }}, + { 101, 0, 5, 5, { 0 }}, + { 102, 0, 2, 4, { 0 }}, + { 103, 0, 4, 5, { 0 }}, + { 104, 0, 3, 6, { 0 }}, + { 105, 0, 3, 2, { 0 }}, + { 106, -1, 3, 5, { 0 }}, + { 107, 0, 3, 6, { 0 }}, + { 108, 0, 3, 2, { 0 }}, + { 109, 0, 5, 9, { 0 }}, + { 110, 0, 5, 6, { 0 }}, + { 111, 0, 5, 5, { 0 }}, + { 112, 0, 5, 6, { 0 }}, + { 113, 0, 5, 6, { 0 }}, + { 114, 0, 5, 6, { 0 }}, + { 115, 0, 5, 6, { 0 }}, + { 116, 0, 3, 4, { 0 }}, + { 117, 0, 5, 6, { 0 }}, + { 118, 0, 4, 6, { 0 }}, + { 119, 0, 4, 10, { 0 }}, + { 120, 0, 5, 6, { 0 }}, + { 121, -1, 5, 6, { 0 }}, + { 122, 0, 5, 5, { 0 }}, + { 123, 0, 2, 6, { 0 }}, + { 124, 0, 2, 2, { 0 }}, + { 125, 0, 2, 6, { 0 }}, + { 126, 0, 7, 7, { 0 }}, + { 161, 0, 5, 2, { 0 }}, + { 162, 0, 4, 6, { 0 }}, + { 163, 0, 3, 7, { 0 }}, + { 8364, 0, 3, 8, { 0 }}, + { 165, 0, 3, 6, { 0 }}, + { 352, 0, 0, 7, { 0 }}, + { 167, 0, 3, 6, { 0 }}, + { 353, 0, 2, 6, { 0 }}, + { 169, 0, 4, 9, { 0 }}, + { 170, 0, 3, 5, { 0 }}, + { 171, 0, 6, 7, { 0 }}, + { 172, 0, 6, 7, { 0 }}, + { 174, 0, 4, 9, { 0 }}, + { 175, 0, 2, 6, { 0 }}, + { 176, 0, 3, 5, { 0 }}, + { 177, 0, 5, 6, { 0 }}, + { 178, 0, 3, 4, { 0 }}, + { 179, 0, 3, 4, { 0 }}, + { 381, 0, 0, 6, { 0 }}, + { 181, 0, 5, 6, { 0 }}, + { 182, 0, 3, 8, { 0 }}, + { 183, 0, 7, 2, { 0 }}, + { 382, 0, 2, 5, { 0 }}, + { 185, 0, 3, 3, { 0 }}, + { 186, 0, 3, 5, { 0 }}, + { 187, 0, 6, 7, { 0 }}, + { 338, 0, 3, 12, { 0 }}, + { 339, 0, 5, 8, { 0 }}, + { 376, 0, 1, 6, { 0 }}, + { 191, 0, 5, 6, { 0 }}, + { 192, 0, 0, 8, { 0 }}, + { 193, 0, 0, 8, { 0 }}, + { 194, 0, 0, 8, { 0 }}, + { 195, 0, 0, 8, { 0 }}, + { 196, 0, 1, 8, { 0 }}, + { 197, 0, 0, 8, { 0 }}, + { 198, 0, 3, 11, { 0 }}, + { 199, 0, 3, 6, { 0 }}, + { 200, 0, 0, 6, { 0 }}, + { 201, 0, 0, 6, { 0 }}, + { 202, 0, 0, 6, { 0 }}, + { 203, 0, 1, 6, { 0 }}, + { 204, -1, 0, 2, { 0 }}, + { 205, 0, 0, 3, { 0 }}, + { 206, -1, 0, 3, { 0 }}, + { 207, -1, 1, 3, { 0 }}, + { 208, -1, 3, 7, { 0 }}, + { 209, 0, 0, 7, { 0 }}, + { 210, 0, 0, 8, { 0 }}, + { 211, 0, 0, 8, { 0 }}, + { 212, 0, 0, 8, { 0 }}, + { 213, 0, 0, 8, { 0 }}, + { 214, 0, 1, 8, { 0 }}, + { 215, 0, 5, 6, { 0 }}, + { 216, 0, 3, 8, { 0 }}, + { 217, 0, 0, 7, { 0 }}, + { 218, 0, 0, 7, { 0 }}, + { 219, 0, 0, 7, { 0 }}, + { 220, 0, 1, 7, { 0 }}, + { 221, 0, 0, 6, { 0 }}, + { 222, 0, 3, 6, { 0 }}, + { 223, 0, 3, 6, { 0 }}, + { 224, 0, 2, 7, { 0 }}, + { 225, 0, 2, 7, { 0 }}, + { 226, 0, 2, 7, { 0 }}, + { 227, 0, 2, 7, { 0 }}, + { 228, 0, 3, 7, { 0 }}, + { 229, 0, 1, 7, { 0 }}, + { 230, 0, 5, 8, { 0 }}, + { 231, 0, 5, 5, { 0 }}, + { 232, 0, 2, 5, { 0 }}, + { 233, 0, 2, 5, { 0 }}, + { 234, 0, 2, 5, { 0 }}, + { 235, 0, 3, 5, { 0 }}, + { 236, -1, 2, 2, { 0 }}, + { 237, 0, 2, 3, { 0 }}, + { 238, -1, 2, 3, { 0 }}, + { 239, -1, 3, 3, { 0 }}, + { 240, 0, 3, 6, { 0 }}, + { 241, 0, 2, 6, { 0 }}, + { 242, 0, 2, 5, { 0 }}, + { 243, 0, 2, 5, { 0 }}, + { 244, 0, 2, 5, { 0 }}, + { 245, 0, 2, 6, { 0 }}, + { 246, 0, 3, 5, { 0 }}, + { 247, 0, 5, 6, { 0 }}, + { 248, -1, 5, 6, { 0 }}, + { 249, 0, 2, 6, { 0 }}, + { 250, 0, 2, 6, { 0 }}, + { 251, 0, 2, 6, { 0 }}, + { 252, 0, 3, 6, { 0 }}, + { 253, -1, 2, 6, { 0 }}, + { 254, 0, 3, 6, { 0 }}, + { 255, -1, 3, 6, { 0 }}, +}; + +// Style loading function: Lavanda +static void GuiLoadStyleLavanda(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < LAVANDA_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(lavandaStyleProps[i].controlId, lavandaStyleProps[i].propertyId, lavandaStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int lavandaFontDataSize = 0; + unsigned char *data = DecompressData(lavandaFontData, LAVANDA_STYLE_FONT_ATLAS_COMP_SIZE, &lavandaFontDataSize); + Image imFont = { data, 512, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 16; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, lavandaFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, lavandaFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 510, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_rltech.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_rltech.h new file mode 100644 index 0000000..20e84f6 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_rltech.h @@ -0,0 +1,572 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleRLTech(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define RLTECH_STYLE_PROPS_COUNT 15 + +// Custom style name: RLTech +static const GuiStyleProp rltechStyleProps[RLTECH_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0x000000ff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0xf5f5f5ff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0x000000ff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0xe10000ff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0xffffffff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0xed0000ff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0xed0000ff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0x0f0f0fff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0xff2323ff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0xcacacaff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0xe3e3e3ff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0xb3b3b3ff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE + { 0, 18, (int)0x352c2cff }, // DEFAULT_LINE_COLOR + { 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING +}; + +// WARNING: This style uses a custom font: "2a03.ttf" (size: 16, spacing: 1) + +#define RLTECH_STYLE_FONT_ATLAS_COMP_SIZE 1950 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char rltechFontData[RLTECH_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0xdd, 0xcb, 0x76, 0xc3, 0x2a, 0x12, 0x05, 0x50, 0xfe, 0xff, 0xa7, 0xab, 0x07, 0x77, 0xd0, 0x8f, 0xd5, 0xb1, 0xa0, 0x28, + 0x10, 0xd8, 0x3b, 0x7b, 0x16, 0xc7, 0xb6, 0x1e, 0x1c, 0x03, 0x8a, 0x29, 0x45, 0x03, 0x00, 0x00, 0x00, 0x88, 0xf8, 0xbf, + 0xbf, 0x89, 0x3f, 0xfe, 0x32, 0xba, 0x5f, 0xe5, 0x9f, 0xdf, 0xc6, 0x87, 0x67, 0xfd, 0xfb, 0xa7, 0xef, 0xf5, 0xa2, 0xf3, + 0x5d, 0xff, 0xfe, 0xfd, 0xdf, 0x5b, 0xd2, 0xbf, 0x6d, 0x15, 0xaf, 0x30, 0xfa, 0xd7, 0x9f, 0xb7, 0xa4, 0xea, 0xd5, 0x6a, + 0x1f, 0xd9, 0x77, 0xe4, 0x9f, 0xb7, 0x6e, 0xe7, 0xb1, 0x68, 0x9b, 0x8e, 0x6c, 0x0c, 0xb4, 0xfa, 0xb5, 0xf9, 0xff, 0xbc, + 0xad, 0xf1, 0x78, 0xee, 0x67, 0xb2, 0x9e, 0x7d, 0xcf, 0x8a, 0x23, 0xd7, 0xb7, 0xbd, 0x31, 0xf9, 0xd7, 0x77, 0x3e, 0x92, + 0x3d, 0x6a, 0xe3, 0x7f, 0xdf, 0x9b, 0x87, 0xda, 0x3d, 0x6e, 0xa5, 0xcf, 0x69, 0x8b, 0xdf, 0xa7, 0x22, 0xff, 0xcf, 0x29, + 0x1f, 0xef, 0xff, 0x33, 0x79, 0xea, 0x69, 0x11, 0xa3, 0x9f, 0xc3, 0xed, 0xf5, 0xfc, 0x67, 0x1e, 0xa9, 0x6d, 0x71, 0x6d, + 0x7b, 0xfe, 0xc7, 0x47, 0x85, 0xe3, 0xc7, 0x27, 0x3e, 0xb4, 0x41, 0xf9, 0x1f, 0x7b, 0x56, 0x66, 0x5e, 0x90, 0x1b, 0xa5, + 0xcf, 0x8d, 0xdc, 0x5b, 0xf2, 0x33, 0xa7, 0x32, 0xfd, 0xf2, 0xbf, 0xab, 0xff, 0xef, 0xe9, 0x31, 0xe4, 0x7f, 0xfe, 0x1c, + 0x64, 0xe6, 0x2a, 0x4f, 0xf9, 0x1f, 0xe9, 0x91, 0x6b, 0xc6, 0xf3, 0xa7, 0xe6, 0x3f, 0x3a, 0xe6, 0x8f, 0x6b, 0xe7, 0x95, + 0xad, 0xf4, 0x6a, 0xc2, 0x8a, 0x4f, 0x80, 0x78, 0x68, 0x9b, 0xe3, 0xfd, 0x7f, 0x66, 0x2e, 0x9f, 0xc9, 0xe5, 0xe8, 0x99, + 0xfd, 0xcf, 0x6d, 0x9f, 0xbd, 0x3e, 0xb2, 0xbe, 0xff, 0xcf, 0x5d, 0x1b, 0x1c, 0xed, 0x3d, 0x76, 0xf6, 0xe7, 0x6f, 0xe4, + 0x7f, 0xa6, 0xf5, 0xd7, 0xcc, 0x4a, 0x56, 0x3c, 0x67, 0xcf, 0x99, 0x8a, 0x87, 0x36, 0x79, 0x6f, 0xff, 0x1f, 0x17, 0x8c, + 0xff, 0xdb, 0xe3, 0x88, 0x7b, 0xf4, 0x4a, 0xe6, 0x5d, 0xf9, 0x5f, 0x77, 0x75, 0xf3, 0xde, 0xfc, 0xb7, 0x63, 0xf2, 0x3f, + 0x73, 0x25, 0xfd, 0x17, 0xf2, 0x5f, 0x71, 0xf4, 0x9f, 0xae, 0xd8, 0x44, 0xc1, 0xec, 0xf1, 0x37, 0xf2, 0xbf, 0x3a, 0xb1, + 0xbb, 0x5f, 0xed, 0xbc, 0xf3, 0x22, 0xff, 0x2b, 0x12, 0x14, 0x0f, 0xa3, 0x86, 0xf9, 0xd9, 0xe3, 0x7d, 0xf9, 0x1f, 0x99, + 0x45, 0x9e, 0x33, 0x63, 0xdf, 0x3b, 0xff, 0xdf, 0x73, 0x06, 0xce, 0xfd, 0xfe, 0x44, 0xe6, 0x6a, 0xdb, 0x69, 0xfd, 0xff, + 0x09, 0xbd, 0x2c, 0x20, 0xff, 0x80, 0xfc, 0x03, 0xbf, 0xb0, 0x52, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7e, 0xe9, 0x3b, 0xf4, 0xb9, 0xd5, 0xc9, 0x77, 0xd6, 0xa6, 0x5f, 0x51, 0x11, 0xa6, 0xba, 0xb2, 0xf6, + 0xe7, 0xad, 0x1f, 0x59, 0x01, 0xdf, 0xb7, 0x6a, 0x2a, 0x06, 0xd7, 0xa9, 0xd7, 0xae, 0x6a, 0xcf, 0x54, 0x1f, 0x68, 0xa5, + 0xeb, 0xed, 0x67, 0x56, 0x9b, 0x44, 0x2a, 0x21, 0x2b, 0xaa, 0x37, 0xee, 0xca, 0x7f, 0x4f, 0xfb, 0x6d, 0x47, 0xd4, 0xa6, + 0xcf, 0xac, 0x26, 0x7c, 0x3f, 0xff, 0xa3, 0xad, 0x70, 0xbc, 0x2e, 0x76, 0xc5, 0xea, 0xcb, 0xf6, 0x6a, 0xf5, 0xe1, 0xfc, + 0x59, 0xac, 0x5c, 0x81, 0xba, 0xb7, 0x57, 0x98, 0xdd, 0x8f, 0xbf, 0x5e, 0x73, 0xae, 0xd6, 0xe9, 0x48, 0x15, 0x6e, 0xf9, + 0x7f, 0x3b, 0xff, 0xeb, 0x47, 0x94, 0xbb, 0xea, 0xdd, 0xc4, 0xf0, 0x1d, 0x41, 0x66, 0xee, 0x57, 0x14, 0x13, 0x7f, 0x7b, + 0x76, 0xfe, 0xb3, 0x6d, 0x2a, 0x1e, 0x3f, 0x55, 0xe4, 0xbf, 0x3d, 0xdc, 0x39, 0xa1, 0x0d, 0x56, 0x4e, 0xce, 0x56, 0x59, + 0xae, 0xcf, 0x7d, 0x65, 0x85, 0xaa, 0x48, 0x8e, 0xff, 0xab, 0xcf, 0x62, 0x55, 0x4f, 0x79, 0x53, 0xfe, 0xf3, 0x77, 0xd1, + 0xdb, 0x37, 0xe7, 0x7d, 0x7a, 0xce, 0xe8, 0x5c, 0x73, 0x6f, 0xfe, 0x2b, 0xef, 0x75, 0x73, 0x4e, 0xfe, 0x57, 0xce, 0x28, + 0xfb, 0xb6, 0x7f, 0x7f, 0xfe, 0xe3, 0x2b, 0xc7, 0xff, 0x71, 0x48, 0xfe, 0x2b, 0xdb, 0x5a, 0x4b, 0xe5, 0x71, 0x6f, 0xff, + 0xdf, 0x5e, 0xfc, 0xbd, 0xfc, 0x8f, 0xe7, 0x3f, 0xcc, 0xff, 0x5f, 0xcb, 0x7f, 0x5c, 0x9b, 0xff, 0x98, 0xd8, 0x92, 0xf9, + 0x47, 0xce, 0x1a, 0xff, 0x57, 0x3e, 0x27, 0x73, 0x47, 0xe0, 0x3b, 0xfa, 0xff, 0x6f, 0xb8, 0xfe, 0x5f, 0xff, 0x7e, 0x99, + 0x19, 0x74, 0x55, 0xfe, 0xfb, 0xe7, 0xf0, 0xbf, 0x92, 0xff, 0xcc, 0xc8, 0xa0, 0xf6, 0x39, 0xe3, 0xd7, 0x78, 0xf6, 0xcd, + 0xff, 0x77, 0x5d, 0x6b, 0x3d, 0xe3, 0xd3, 0x3a, 0x16, 0x5d, 0x83, 0xfd, 0xdf, 0x2b, 0xbd, 0x55, 0xfd, 0x46, 0xed, 0x7c, + 0x3c, 0xff, 0x5d, 0x88, 0x99, 0x3e, 0xec, 0xe4, 0xfc, 0x8f, 0xf7, 0x52, 0xb9, 0x9e, 0xed, 0x8d, 0xfc, 0xbf, 0x59, 0x87, + 0x52, 0xbd, 0x4b, 0x42, 0x9b, 0x59, 0xf2, 0x59, 0x72, 0xc3, 0x71, 0x93, 0x7f, 0xe4, 0x5f, 0xd6, 0xd0, 0x2e, 0xb5, 0x63, + 0xf9, 0xe7, 0x17, 0xdb, 0x65, 0xff, 0xc8, 0xf6, 0x84, 0x7b, 0xf3, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x50, 0xb5, 0xfe, 0x3f, 0x53, 0x6d, 0xe4, 0xf4, 0xfa, 0xb9, 0xa3, 0x2b, 0xf9, 0xfb, 0xd7, 0x74, 0x47, 0x41, + 0x55, 0xde, 0xe7, 0xaa, 0x85, 0x23, 0x35, 0x04, 0x62, 0xb8, 0x42, 0x7f, 0xcf, 0x73, 0x3e, 0xb7, 0x89, 0xbf, 0xf7, 0x36, + 0xd7, 0xc2, 0x9e, 0x1f, 0xef, 0x5f, 0xdb, 0x10, 0x43, 0xc7, 0x3c, 0x73, 0x8c, 0x3e, 0x9d, 0x8b, 0xb1, 0x7b, 0x28, 0xfc, + 0xfd, 0x2a, 0x63, 0x2d, 0x23, 0x3a, 0x57, 0x33, 0x55, 0x55, 0x6b, 0xbf, 0xb7, 0x7e, 0xf6, 0xfc, 0xef, 0x62, 0x7a, 0x15, + 0xfa, 0xf8, 0x31, 0xaf, 0xad, 0x21, 0xd4, 0xfb, 0x9c, 0xf1, 0xba, 0xc4, 0x63, 0x6d, 0x26, 0x26, 0x56, 0xdc, 0x45, 0x6a, + 0xbf, 0x63, 0xe2, 0x68, 0xf4, 0xf6, 0x3a, 0x23, 0x7b, 0x32, 0x5a, 0x51, 0x30, 0x77, 0xe4, 0xab, 0xf3, 0x9f, 0xa9, 0xbc, + 0x9e, 0xcf, 0x7f, 0x6d, 0xfd, 0xec, 0xb9, 0xfc, 0x8f, 0xb5, 0xed, 0x7c, 0x65, 0xe5, 0xf1, 0x4f, 0xba, 0x36, 0x38, 0x06, + 0xfa, 0x94, 0xaa, 0x4f, 0xf5, 0x96, 0xf2, 0xbd, 0x50, 0x0c, 0xbf, 0xdb, 0xf8, 0xda, 0xc6, 0x48, 0xf5, 0xf3, 0x51, 0x54, + 0xab, 0x2c, 0xb7, 0x27, 0xb3, 0xf9, 0x1f, 0xf9, 0xec, 0xad, 0xba, 0x5b, 0xd3, 0x29, 0xf5, 0xb3, 0x73, 0xa3, 0xef, 0x53, + 0xf3, 0xbf, 0xef, 0x6e, 0x66, 0x9f, 0x9e, 0x13, 0xcb, 0x7a, 0xa1, 0xbf, 0xdf, 0x2d, 0x0a, 0x57, 0xdc, 0xd7, 0x8c, 0x86, + 0x66, 0xee, 0x48, 0xb2, 0x62, 0x84, 0xb8, 0xbf, 0xff, 0x1f, 0xcf, 0xc6, 0x49, 0xfd, 0xff, 0x9a, 0x39, 0x41, 0x45, 0xfe, + 0x73, 0x33, 0x83, 0xf9, 0x2a, 0xed, 0xbd, 0xcf, 0x89, 0x8e, 0x54, 0xb4, 0x92, 0x4f, 0x80, 0xf8, 0xaf, 0xde, 0x77, 0x75, + 0xfe, 0xc7, 0xaf, 0x68, 0xe4, 0xae, 0x3a, 0x55, 0x54, 0x31, 0x3d, 0x61, 0xfe, 0x5f, 0x99, 0xff, 0x35, 0xf5, 0x73, 0xeb, + 0xaa, 0xc6, 0xaf, 0xc8, 0xff, 0x78, 0xca, 0x67, 0x7a, 0xf9, 0x3d, 0xf9, 0xaf, 0xbe, 0x2a, 0xbd, 0xa2, 0xff, 0xaf, 0xdf, + 0xc6, 0xb1, 0xeb, 0x7f, 0xb3, 0x2d, 0x67, 0xf7, 0xf5, 0xff, 0xca, 0xf1, 0xff, 0xde, 0xfa, 0xb9, 0x75, 0x79, 0x99, 0xad, + 0x9d, 0x5b, 0x73, 0xaf, 0x9e, 0xea, 0xfe, 0x3f, 0x77, 0x74, 0x32, 0xf3, 0xff, 0x53, 0xf2, 0x1f, 0x0b, 0xb6, 0x70, 0xbc, + 0x95, 0xc7, 0x82, 0xf4, 0xd7, 0xec, 0xd7, 0xda, 0x31, 0xd6, 0x39, 0x9f, 0xd1, 0xed, 0xf5, 0xfe, 0x3f, 0xf7, 0xd7, 0x95, + 0x23, 0x83, 0xcc, 0xbb, 0xc5, 0xd6, 0xb3, 0x1c, 0x07, 0xb7, 0xa9, 0x99, 0x2b, 0x09, 0x71, 0x6c, 0x8a, 0xa2, 0x74, 0x3c, + 0x21, 0xff, 0xad, 0xf8, 0xba, 0xfc, 0xf8, 0xf8, 0xa9, 0x25, 0xbf, 0x03, 0xd1, 0xba, 0xee, 0x5b, 0xbf, 0x6b, 0x54, 0x7a, + 0x62, 0xa5, 0xc2, 0xdc, 0x1d, 0xd5, 0x46, 0xae, 0xff, 0x9d, 0x9e, 0x94, 0x7b, 0xbf, 0xd5, 0xb4, 0x3b, 0xff, 0x77, 0x7d, + 0x06, 0x9e, 0x9a, 0xb8, 0x3b, 0x8e, 0x67, 0xbc, 0xda, 0x7a, 0x59, 0x33, 0xa7, 0xfb, 0xa5, 0xfc, 0xe3, 0x78, 0x3a, 0xb3, + 0xdf, 0x91, 0x7f, 0xbd, 0x88, 0xe3, 0x4a, 0xd5, 0xff, 0x74, 0x7c, 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x70, 0xc6, 0x6a, 0x86, 0xde, 0x5a, 0xec, 0xa3, 0xd5, 0xaf, 0xf3, 0xab, 0xa5, 0xc7, 0x7e, 0x1f, 0xc3, + 0x95, 0xb9, 0x9f, 0xd6, 0xda, 0x57, 0xde, 0x01, 0x21, 0xbf, 0x5f, 0x99, 0x3a, 0x6b, 0x3d, 0xbf, 0x1b, 0xaf, 0x32, 0x10, + 0xa9, 0xf5, 0x50, 0xeb, 0xcf, 0x64, 0xee, 0x6e, 0x0f, 0x7b, 0xce, 0x53, 0x66, 0x15, 0x59, 0xfd, 0x56, 0x3f, 0x3f, 0xa3, + 0xbf, 0x5a, 0x5c, 0xbc, 0xb8, 0x92, 0xfa, 0x73, 0xcb, 0x88, 0xc4, 0xfb, 0xc7, 0xd4, 0x31, 0x59, 0xbd, 0x5f, 0xb3, 0x6b, + 0x95, 0xb2, 0x55, 0xa7, 0x62, 0xf0, 0x08, 0xdf, 0x79, 0x26, 0xf7, 0x9c, 0xa7, 0x7c, 0x0d, 0xb9, 0xd8, 0x50, 0x7f, 0xa0, + 0x22, 0xff, 0x31, 0xb9, 0x9f, 0xef, 0xac, 0xd6, 0x8c, 0xd4, 0x3d, 0x75, 0xf6, 0xee, 0xd3, 0xba, 0xb5, 0xa6, 0x91, 0x6c, + 0x0d, 0xa7, 0xae, 0xbb, 0x7d, 0x77, 0x7f, 0x6a, 0xef, 0xc2, 0xb0, 0xf3, 0x2c, 0x8c, 0xe4, 0x3f, 0xb7, 0xbd, 0x51, 0x98, + 0xcb, 0xda, 0x5a, 0xf7, 0xb9, 0xcf, 0xb3, 0xb6, 0xa0, 0xb6, 0xe6, 0x78, 0x0d, 0xd6, 0xb6, 0xa4, 0x82, 0x69, 0xed, 0x1d, + 0xd5, 0x76, 0x9d, 0xc9, 0xa7, 0xfe, 0x7f, 0x7d, 0xbb, 0xd8, 0xf7, 0x48, 0xbe, 0xda, 0x63, 0x5f, 0xba, 0x2b, 0x46, 0x08, + 0xcf, 0x33, 0xec, 0x5b, 0x8e, 0x72, 0xdd, 0x7d, 0xba, 0xaa, 0x1f, 0x59, 0x91, 0xff, 0xa7, 0xfa, 0xbe, 0x37, 0xe6, 0xe5, + 0xe9, 0xbe, 0x8c, 0xe7, 0x6e, 0x75, 0x94, 0xb7, 0x98, 0x56, 0x9c, 0xee, 0xfe, 0x7d, 0xbc, 0x2d, 0xff, 0xa7, 0xa4, 0xfc, + 0xac, 0xfe, 0xff, 0xd4, 0x24, 0x7d, 0x1e, 0x63, 0xdf, 0xf9, 0xa9, 0xb5, 0xa2, 0xc5, 0x64, 0xd3, 0x9d, 0xbf, 0x1a, 0x7e, + 0x42, 0xfe, 0xf7, 0xce, 0xff, 0xab, 0x1f, 0x99, 0xbb, 0x57, 0x71, 0xf5, 0xf8, 0xff, 0xcc, 0x91, 0x74, 0xbb, 0xb4, 0x97, + 0xd9, 0x73, 0x5f, 0x8b, 0xfa, 0x2b, 0x17, 0x35, 0xed, 0xe9, 0xbb, 0xe7, 0xff, 0x55, 0x8f, 0xdc, 0x30, 0xff, 0x97, 0xff, + 0x99, 0x94, 0xb7, 0xd7, 0x8e, 0x4e, 0xef, 0x7f, 0xf7, 0x67, 0xf2, 0xbf, 0x27, 0x97, 0xab, 0x1e, 0x59, 0x31, 0xe2, 0x39, + 0x7b, 0xfc, 0x7f, 0xe3, 0xf9, 0xaa, 0xbd, 0xc6, 0x5e, 0xbf, 0x6d, 0x99, 0xff, 0xe3, 0xd5, 0x6d, 0xf5, 0xae, 0xff, 0xce, + 0x54, 0x8d, 0x3b, 0x4e, 0x6e, 0x4f, 0x6b, 0xfe, 0x3b, 0x7b, 0x4e, 0xfe, 0xbf, 0xf9, 0x7c, 0x9d, 0x96, 0xff, 0xb6, 0xe9, + 0xbf, 0x4b, 0xf2, 0xbf, 0xa2, 0x3d, 0xc5, 0xd6, 0xf9, 0x7f, 0xc8, 0x7f, 0x71, 0x0b, 0xdf, 0xb9, 0x6d, 0xb1, 0x38, 0x4b, + 0x77, 0x7e, 0xef, 0xf8, 0xdc, 0xbe, 0x61, 0xff, 0xf7, 0x8d, 0x6a, 0xee, 0x56, 0xb4, 0xf2, 0xfb, 0x57, 0xef, 0x5f, 0xc9, + 0xb9, 0xf5, 0x3c, 0xa9, 0x18, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0x5b, 0xbb, + 0xa7, 0xa6, 0x7e, 0x2b, 0xaa, 0xa9, 0x3f, 0xfe, 0x48, 0xed, 0xfe, 0x46, 0xa2, 0x3a, 0x78, 0x14, 0xac, 0x48, 0x5c, 0x71, + 0x96, 0xc6, 0xce, 0x4a, 0xdf, 0xab, 0xfd, 0x7a, 0xfa, 0xd7, 0x57, 0x62, 0xef, 0x5f, 0xc3, 0x57, 0xb5, 0x7a, 0xf6, 0x94, + 0x9a, 0xfa, 0x2d, 0x75, 0x7c, 0xdf, 0xae, 0xa8, 0x3f, 0x7e, 0xfe, 0xda, 0x05, 0x15, 0xf5, 0x79, 0x6b, 0xed, 0xe4, 0x6c, + 0xfe, 0x77, 0x6c, 0xfd, 0xba, 0x71, 0xd4, 0x6d, 0x15, 0xf5, 0x9f, 0xea, 0xe6, 0xc4, 0xa1, 0x15, 0xf5, 0x2b, 0x5f, 0x4d, + 0x96, 0xa3, 0xb0, 0x0a, 0x71, 0xcf, 0xf8, 0x7f, 0xcf, 0x5a, 0xed, 0x18, 0x1a, 0x41, 0x56, 0xd5, 0xd4, 0x78, 0xb3, 0x02, + 0x62, 0xe5, 0x7d, 0x26, 0xce, 0xae, 0xa8, 0x7d, 0xc2, 0x1d, 0x35, 0xbe, 0xeb, 0x1a, 0x40, 0x2b, 0xcb, 0xff, 0xfc, 0xab, + 0xad, 0xaf, 0x15, 0xb2, 0xae, 0xa6, 0xfe, 0x7d, 0x15, 0xf5, 0x3e, 0xdd, 0x05, 0xf0, 0xfb, 0x2a, 0x6a, 0xcb, 0xff, 0xea, + 0x9e, 0xeb, 0x9c, 0xfc, 0xef, 0xac, 0xa9, 0xa5, 0xa2, 0xae, 0xfc, 0x7f, 0xdb, 0xf8, 0xbf, 0xe2, 0x9e, 0x3a, 0xef, 0x8f, + 0x7a, 0x9b, 0xfc, 0xa7, 0xf2, 0x7f, 0x77, 0x45, 0x67, 0x89, 0x3f, 0xf9, 0x38, 0x7f, 0x5f, 0x4d, 0xdd, 0xdf, 0x49, 0x85, + 0xfc, 0xff, 0x4e, 0xfe, 0xd7, 0x54, 0x6f, 0xfc, 0xc6, 0x9a, 0xba, 0x67, 0xf7, 0x97, 0x37, 0x56, 0xd4, 0x7d, 0x7f, 0x4f, + 0x5d, 0xff, 0xbf, 0x61, 0x8e, 0x72, 0x7a, 0x4d, 0x5d, 0x15, 0x75, 0x73, 0xdb, 0xb6, 0xe6, 0x3f, 0x56, 0xc0, 0xdd, 0x57, + 0xac, 0x63, 0xe2, 0x2a, 0x37, 0xf0, 0xad, 0xf9, 0x37, 0xfe, 0x87, 0xef, 0x9f, 0xb1, 0x3a, 0x3a, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x37, 0xf8, 0xe7, 0xc7, + 0x71, 0x00, 0xf9, 0x07, 0x7e, 0x2e, 0xff, 0xff, 0x02 }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle rltechFontRecs[189] = { + { 4, 4, 5 , 16 }, + { 17, 4, 1 , 9 }, + { 26, 4, 3 , 3 }, + { 37, 4, 5 , 7 }, + { 50, 4, 5 , 9 }, + { 63, 4, 7 , 9 }, + { 78, 4, 6 , 9 }, + { 92, 4, 1 , 3 }, + { 101, 4, 2 , 13 }, + { 111, 4, 2 , 13 }, + { 121, 4, 5 , 5 }, + { 134, 4, 5 , 5 }, + { 147, 4, 1 , 2 }, + { 156, 4, 5 , 1 }, + { 169, 4, 1 , 1 }, + { 178, 4, 3 , 9 }, + { 189, 4, 5 , 9 }, + { 202, 4, 2 , 9 }, + { 212, 4, 5 , 9 }, + { 225, 4, 5 , 9 }, + { 238, 4, 5 , 9 }, + { 251, 4, 5 , 9 }, + { 264, 4, 5 , 9 }, + { 277, 4, 5 , 9 }, + { 290, 4, 5 , 9 }, + { 303, 4, 5 , 9 }, + { 316, 4, 1 , 6 }, + { 325, 4, 1 , 7 }, + { 334, 4, 3 , 5 }, + { 345, 4, 5 , 3 }, + { 358, 4, 3 , 5 }, + { 369, 4, 5 , 9 }, + { 382, 4, 8 , 9 }, + { 398, 4, 5 , 9 }, + { 411, 4, 5 , 9 }, + { 424, 4, 5 , 9 }, + { 437, 4, 5 , 9 }, + { 450, 4, 5 , 9 }, + { 463, 4, 5 , 9 }, + { 476, 4, 5 , 9 }, + { 489, 4, 5 , 9 }, + { 502, 4, 1 , 9 }, + { 4, 28, 5 , 9 }, + { 17, 28, 5 , 9 }, + { 30, 28, 5 , 9 }, + { 43, 28, 9 , 9 }, + { 60, 28, 5 , 9 }, + { 73, 28, 5 , 9 }, + { 86, 28, 5 , 9 }, + { 99, 28, 5 , 9 }, + { 112, 28, 5 , 9 }, + { 125, 28, 5 , 9 }, + { 138, 28, 5 , 9 }, + { 151, 28, 5 , 9 }, + { 164, 28, 5 , 9 }, + { 177, 28, 9 , 9 }, + { 194, 28, 5 , 9 }, + { 207, 28, 5 , 9 }, + { 220, 28, 5 , 9 }, + { 233, 28, 3 , 13 }, + { 244, 28, 3 , 9 }, + { 255, 28, 3 , 13 }, + { 266, 28, 3 , 2 }, + { 277, 28, 6 , 1 }, + { 291, 28, 2 , 2 }, + { 301, 28, 5 , 7 }, + { 314, 28, 5 , 9 }, + { 327, 28, 5 , 7 }, + { 340, 28, 5 , 9 }, + { 353, 28, 5 , 7 }, + { 366, 28, 4 , 9 }, + { 378, 28, 5 , 10 }, + { 391, 28, 5 , 9 }, + { 404, 28, 1 , 9 }, + { 413, 28, 1 , 12 }, + { 422, 28, 5 , 9 }, + { 435, 28, 1 , 9 }, + { 444, 28, 9 , 7 }, + { 461, 28, 5 , 7 }, + { 474, 28, 5 , 7 }, + { 487, 28, 5 , 10 }, + { 4, 52, 5 , 10 }, + { 17, 52, 5 , 7 }, + { 30, 52, 5 , 7 }, + { 43, 52, 4 , 9 }, + { 55, 52, 5 , 7 }, + { 68, 52, 5 , 7 }, + { 81, 52, 9 , 7 }, + { 98, 52, 5 , 7 }, + { 111, 52, 5 , 10 }, + { 124, 52, 5 , 7 }, + { 137, 52, 3 , 13 }, + { 148, 52, 1 , 13 }, + { 157, 52, 3 , 13 }, + { 168, 52, 4 , 2 }, + { 180, 52, 1 , 9 }, + { 189, 52, 5 , 7 }, + { 202, 52, 5 , 9 }, + { 215, 52, 5 , 9 }, + { 228, 52, 5 , 9 }, + { 241, 52, 5 , 12 }, + { 254, 52, 5 , 9 }, + { 267, 52, 5 , 10 }, + { 280, 52, 8 , 9 }, + { 296, 52, 4 , 7 }, + { 308, 52, 6 , 5 }, + { 322, 52, 5 , 3 }, + { 335, 52, 8 , 9 }, + { 351, 52, 6 , 1 }, + { 365, 52, 3 , 3 }, + { 376, 52, 5 , 7 }, + { 389, 52, 4 , 5 }, + { 401, 52, 4 , 5 }, + { 413, 52, 5 , 12 }, + { 426, 52, 5 , 10 }, + { 439, 52, 6 , 9 }, + { 453, 52, 1 , 1 }, + { 462, 52, 5 , 10 }, + { 475, 52, 2 , 5 }, + { 485, 52, 4 , 7 }, + { 497, 52, 6 , 5 }, + { 4, 76, 9 , 9 }, + { 21, 76, 9 , 7 }, + { 38, 76, 5 , 11 }, + { 51, 76, 5 , 9 }, + { 64, 76, 5 , 12 }, + { 77, 76, 5 , 12 }, + { 90, 76, 5 , 12 }, + { 103, 76, 5 , 12 }, + { 116, 76, 5 , 11 }, + { 129, 76, 5 , 11 }, + { 142, 76, 9 , 9 }, + { 159, 76, 5 , 11 }, + { 172, 76, 5 , 12 }, + { 185, 76, 5 , 12 }, + { 198, 76, 5 , 12 }, + { 211, 76, 5 , 11 }, + { 224, 76, 2 , 12 }, + { 234, 76, 2 , 12 }, + { 244, 76, 3 , 12 }, + { 255, 76, 3 , 11 }, + { 266, 76, 6 , 9 }, + { 280, 76, 5 , 12 }, + { 293, 76, 5 , 12 }, + { 306, 76, 5 , 12 }, + { 319, 76, 5 , 12 }, + { 332, 76, 5 , 12 }, + { 345, 76, 5 , 11 }, + { 358, 76, 5 , 5 }, + { 371, 76, 5 , 9 }, + { 384, 76, 5 , 12 }, + { 397, 76, 5 , 12 }, + { 410, 76, 5 , 12 }, + { 423, 76, 5 , 11 }, + { 436, 76, 5 , 12 }, + { 449, 76, 5 , 9 }, + { 462, 76, 5 , 11 }, + { 475, 76, 5 , 10 }, + { 488, 76, 5 , 10 }, + { 4, 100, 5 , 10 }, + { 17, 100, 5 , 10 }, + { 30, 100, 5 , 9 }, + { 43, 100, 5 , 9 }, + { 56, 100, 9 , 7 }, + { 73, 100, 5 , 9 }, + { 86, 100, 5 , 10 }, + { 99, 100, 5 , 10 }, + { 112, 100, 5 , 10 }, + { 125, 100, 5 , 9 }, + { 138, 100, 2 , 10 }, + { 148, 100, 2 , 10 }, + { 158, 100, 3 , 10 }, + { 169, 100, 3 , 9 }, + { 180, 100, 5 , 9 }, + { 193, 100, 5 , 10 }, + { 206, 100, 5 , 10 }, + { 219, 100, 5 , 10 }, + { 232, 100, 5 , 10 }, + { 245, 100, 5 , 10 }, + { 258, 100, 5 , 9 }, + { 271, 100, 5 , 5 }, + { 284, 100, 5 , 7 }, + { 297, 100, 5 , 10 }, + { 310, 100, 5 , 10 }, + { 323, 100, 5 , 10 }, + { 336, 100, 5 , 9 }, + { 349, 100, 5 , 13 }, + { 362, 100, 5 , 13 }, + { 375, 100, 5 , 12 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo rltechFontGlyphs[189] = { + { 32, 0, 0, 5, { 0 }}, + { 33, 0, 3, 2, { 0 }}, + { 34, 0, 3, 4, { 0 }}, + { 35, 0, 3, 6, { 0 }}, + { 36, 0, 3, 6, { 0 }}, + { 37, 0, 3, 8, { 0 }}, + { 38, 0, 3, 7, { 0 }}, + { 39, 0, 3, 2, { 0 }}, + { 40, 0, 1, 2, { 0 }}, + { 41, -1, 1, 2, { 0 }}, + { 42, 0, 3, 6, { 0 }}, + { 43, 0, 5, 6, { 0 }}, + { 44, 0, 10, 2, { 0 }}, + { 45, 0, 8, 6, { 0 }}, + { 46, 0, 11, 2, { 0 }}, + { 47, 0, 3, 4, { 0 }}, + { 48, 0, 3, 6, { 0 }}, + { 49, 0, 3, 3, { 0 }}, + { 50, 0, 3, 6, { 0 }}, + { 51, 0, 3, 6, { 0 }}, + { 52, 0, 3, 6, { 0 }}, + { 53, 0, 3, 6, { 0 }}, + { 54, 0, 3, 6, { 0 }}, + { 55, 0, 3, 6, { 0 }}, + { 56, 0, 3, 6, { 0 }}, + { 57, 0, 3, 6, { 0 }}, + { 58, 0, 4, 2, { 0 }}, + { 59, 0, 4, 2, { 0 }}, + { 60, 0, 5, 4, { 0 }}, + { 61, 0, 6, 6, { 0 }}, + { 62, 0, 5, 4, { 0 }}, + { 63, 0, 3, 6, { 0 }}, + { 64, 0, 3, 9, { 0 }}, + { 65, 0, 3, 6, { 0 }}, + { 66, 0, 3, 6, { 0 }}, + { 67, 0, 3, 6, { 0 }}, + { 68, 0, 3, 6, { 0 }}, + { 69, 0, 3, 6, { 0 }}, + { 70, 0, 3, 6, { 0 }}, + { 71, 0, 3, 6, { 0 }}, + { 72, 0, 3, 6, { 0 }}, + { 73, 0, 3, 2, { 0 }}, + { 74, 0, 3, 6, { 0 }}, + { 75, 0, 3, 6, { 0 }}, + { 76, 0, 3, 6, { 0 }}, + { 77, 0, 3, 10, { 0 }}, + { 78, 0, 3, 6, { 0 }}, + { 79, 0, 3, 6, { 0 }}, + { 80, 0, 3, 6, { 0 }}, + { 81, 0, 3, 6, { 0 }}, + { 82, 0, 3, 6, { 0 }}, + { 83, 0, 3, 6, { 0 }}, + { 84, 0, 3, 6, { 0 }}, + { 85, 0, 3, 6, { 0 }}, + { 86, 0, 3, 6, { 0 }}, + { 87, 0, 3, 10, { 0 }}, + { 88, 0, 3, 6, { 0 }}, + { 89, 0, 3, 6, { 0 }}, + { 90, 0, 3, 6, { 0 }}, + { 91, 0, 1, 2, { 0 }}, + { 92, 0, 3, 4, { 0 }}, + { 93, -2, 1, 2, { 0 }}, + { 94, 0, 3, 4, { 0 }}, + { 95, 0, 12, 7, { 0 }}, + { 96, 0, 3, 3, { 0 }}, + { 97, 0, 5, 6, { 0 }}, + { 98, 0, 3, 6, { 0 }}, + { 99, 0, 5, 6, { 0 }}, + { 100, 0, 3, 6, { 0 }}, + { 101, 0, 5, 6, { 0 }}, + { 102, 0, 3, 5, { 0 }}, + { 103, 0, 5, 6, { 0 }}, + { 104, 0, 3, 6, { 0 }}, + { 105, 0, 3, 2, { 0 }}, + { 106, 0, 3, 2, { 0 }}, + { 107, 0, 3, 6, { 0 }}, + { 108, 0, 3, 2, { 0 }}, + { 109, 0, 5, 10, { 0 }}, + { 110, 0, 5, 6, { 0 }}, + { 111, 0, 5, 6, { 0 }}, + { 112, 0, 5, 6, { 0 }}, + { 113, 0, 5, 6, { 0 }}, + { 114, 0, 5, 6, { 0 }}, + { 115, 0, 5, 6, { 0 }}, + { 116, 0, 3, 5, { 0 }}, + { 117, 0, 5, 6, { 0 }}, + { 118, 0, 5, 6, { 0 }}, + { 119, 0, 5, 10, { 0 }}, + { 120, 0, 5, 6, { 0 }}, + { 121, 0, 5, 6, { 0 }}, + { 122, 0, 5, 6, { 0 }}, + { 123, 0, 1, 3, { 0 }}, + { 124, 0, 1, 2, { 0 }}, + { 125, -1, 1, 3, { 0 }}, + { 126, 0, 3, 5, { 0 }}, + { 161, 0, 6, 2, { 0 }}, + { 162, 0, 4, 6, { 0 }}, + { 163, 0, 3, 6, { 0 }}, + { 8364, 0, 3, 6, { 0 }}, + { 165, 0, 3, 6, { 0 }}, + { 352, 0, 0, 6, { 0 }}, + { 167, 0, 3, 6, { 0 }}, + { 353, 0, 2, 6, { 0 }}, + { 169, 0, 3, 9, { 0 }}, + { 170, 0, 3, 5, { 0 }}, + { 171, 0, 5, 7, { 0 }}, + { 172, 0, 6, 6, { 0 }}, + { 174, 0, 3, 9, { 0 }}, + { 175, 0, 2, 7, { 0 }}, + { 176, 0, 3, 4, { 0 }}, + { 177, 0, 4, 6, { 0 }}, + { 178, 0, 3, 5, { 0 }}, + { 179, 0, 3, 5, { 0 }}, + { 381, 0, 0, 6, { 0 }}, + { 181, 0, 5, 6, { 0 }}, + { 182, 0, 3, 7, { 0 }}, + { 183, 0, 7, 2, { 0 }}, + { 382, 0, 2, 6, { 0 }}, + { 185, 0, 3, 3, { 0 }}, + { 186, 0, 3, 5, { 0 }}, + { 187, 0, 5, 7, { 0 }}, + { 338, 0, 3, 10, { 0 }}, + { 339, 0, 5, 10, { 0 }}, + { 376, 0, 1, 6, { 0 }}, + { 191, 0, 6, 6, { 0 }}, + { 192, 0, 0, 6, { 0 }}, + { 193, 0, 0, 6, { 0 }}, + { 194, 0, 0, 6, { 0 }}, + { 195, 0, 0, 6, { 0 }}, + { 196, 0, 1, 6, { 0 }}, + { 197, 0, 1, 6, { 0 }}, + { 198, 0, 3, 10, { 0 }}, + { 199, 0, 3, 6, { 0 }}, + { 200, 0, 0, 6, { 0 }}, + { 201, 0, 0, 6, { 0 }}, + { 202, 0, 0, 6, { 0 }}, + { 203, 0, 1, 6, { 0 }}, + { 204, -1, 0, 2, { 0 }}, + { 205, 0, 0, 2, { 0 }}, + { 206, -1, 0, 2, { 0 }}, + { 207, -1, 1, 2, { 0 }}, + { 208, -1, 3, 6, { 0 }}, + { 209, 0, 0, 6, { 0 }}, + { 210, 0, 0, 6, { 0 }}, + { 211, 0, 0, 6, { 0 }}, + { 212, 0, 0, 6, { 0 }}, + { 213, 0, 0, 6, { 0 }}, + { 214, 0, 1, 6, { 0 }}, + { 215, 0, 5, 6, { 0 }}, + { 216, 0, 3, 6, { 0 }}, + { 217, 0, 0, 6, { 0 }}, + { 218, 0, 0, 6, { 0 }}, + { 219, 0, 0, 6, { 0 }}, + { 220, 0, 1, 6, { 0 }}, + { 221, 0, 0, 6, { 0 }}, + { 222, 0, 3, 6, { 0 }}, + { 223, 0, 3, 6, { 0 }}, + { 224, 0, 2, 6, { 0 }}, + { 225, 0, 2, 6, { 0 }}, + { 226, 0, 2, 6, { 0 }}, + { 227, 0, 2, 6, { 0 }}, + { 228, 0, 3, 6, { 0 }}, + { 229, 0, 3, 6, { 0 }}, + { 230, 0, 5, 10, { 0 }}, + { 231, 0, 5, 6, { 0 }}, + { 232, 0, 2, 6, { 0 }}, + { 233, 0, 2, 6, { 0 }}, + { 234, 0, 2, 6, { 0 }}, + { 235, 0, 3, 6, { 0 }}, + { 236, -1, 2, 2, { 0 }}, + { 237, 0, 2, 2, { 0 }}, + { 238, -1, 2, 2, { 0 }}, + { 239, -1, 3, 2, { 0 }}, + { 240, 0, 3, 6, { 0 }}, + { 241, 0, 2, 6, { 0 }}, + { 242, 0, 2, 6, { 0 }}, + { 243, 0, 2, 6, { 0 }}, + { 244, 0, 2, 6, { 0 }}, + { 245, 0, 2, 6, { 0 }}, + { 246, 0, 3, 6, { 0 }}, + { 247, 0, 5, 6, { 0 }}, + { 248, 0, 5, 6, { 0 }}, + { 249, 0, 2, 6, { 0 }}, + { 250, 0, 2, 6, { 0 }}, + { 251, 0, 2, 6, { 0 }}, + { 252, 0, 3, 6, { 0 }}, + { 253, 0, 2, 6, { 0 }}, + { 254, 0, 2, 6, { 0 }}, + { 255, 0, 3, 6, { 0 }}, +}; + +// Style loading function: RLTech +static void GuiLoadStyleRLTech(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < RLTECH_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(rltechStyleProps[i].controlId, rltechStyleProps[i].propertyId, rltechStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int rltechFontDataSize = 0; + unsigned char *data = DecompressData(rltechFontData, RLTECH_STYLE_FONT_ATLAS_COMP_SIZE, &rltechFontDataSize); + Image imFont = { data, 512, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 16; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, rltechFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, rltechFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 510, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_sunny.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_sunny.h new file mode 100644 index 0000000..639ce1a --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_sunny.h @@ -0,0 +1,614 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleSunny(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define SUNNY_STYLE_PROPS_COUNT 33 + +// Custom style name: Sunny +static const GuiStyleProp sunnyStyleProps[SUNNY_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0x9c760aff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0x594006ff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0xf6d519ff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0xf6ee89ff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0xf5f3d1ff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0xf4cd19ff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0xf7e580ff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0xf7f2c1ff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0x52470aff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0xc0be92ff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0xd3d3a1ff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0xbcbc89ff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE + { 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING + { 0, 18, (int)0x725706ff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0xf0be4bff }, // DEFAULT_BACKGROUND_COLOR + { 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING + { 1, 2, (int)0x504506ff }, // LABEL_TEXT_COLOR_NORMAL + { 1, 5, (int)0xfdeb9bff }, // LABEL_TEXT_COLOR_FOCUSED + { 1, 8, (int)0xf5e8a4ff }, // LABEL_TEXT_COLOR_PRESSED + { 2, 2, (int)0xebc21fff }, // BUTTON_TEXT_COLOR_NORMAL + { 3, 2, (int)0xebc21fff }, // TOGGLE_TEXT_COLOR_NORMAL + { 4, 2, (int)0x81700fff }, // SLIDER_TEXT_COLOR_NORMAL + { 4, 5, (int)0xf4e49aff }, // SLIDER_TEXT_COLOR_FOCUSED + { 7, 2, (int)0xebc21fff }, // COMBOBOX_TEXT_COLOR_NORMAL + { 8, 2, (int)0xefd87bff }, // DROPDOWNBOX_TEXT_COLOR_NORMAL + { 8, 5, (int)0xd4b219ff }, // DROPDOWNBOX_TEXT_COLOR_FOCUSED + { 9, 2, (int)0x7a680bff }, // TEXTBOX_TEXT_COLOR_NORMAL + { 9, 5, (int)0xad931fff }, // TEXTBOX_TEXT_COLOR_FOCUSED + { 10, 2, (int)0x62570eff }, // VALUEBOX_TEXT_COLOR_NORMAL + { 10, 5, (int)0xf2df88ff }, // VALUEBOX_TEXT_COLOR_FOCUSED + { 12, 2, (int)0xf4e798ff }, // LISTVIEW_TEXT_COLOR_NORMAL + { 15, 2, (int)0xebc21fff }, // STATUSBAR_TEXT_COLOR_NORMAL +}; + +// WARNING: This style uses a custom font: "GMSN.ttf" (size: 16, spacing: 0) + +#define SUNNY_STYLE_FONT_ATLAS_COMP_SIZE 2434 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char sunnyFontData[SUNNY_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0xdd, 0x5b, 0x6e, 0xe4, 0x36, 0x10, 0x05, 0x50, 0xee, 0x7f, 0xa1, 0xd9, 0x06, 0x83, 0x20, 0x18, 0x24, 0xe3, 0xb1, 0x45, + 0xb2, 0xaa, 0xa8, 0x57, 0x9f, 0x1c, 0xe4, 0xc7, 0x1a, 0xb7, 0xd5, 0x94, 0xae, 0x44, 0x3d, 0x58, 0xec, 0x0d, 0x00, 0x00, + 0x00, 0xf8, 0x78, 0xff, 0xfc, 0xf7, 0xfd, 0xcf, 0xbe, 0x5b, 0x72, 0xbc, 0xec, 0xd7, 0xbf, 0x18, 0x2d, 0xe9, 0x3f, 0xae, + 0x49, 0x3f, 0x58, 0x36, 0xf7, 0xb7, 0x62, 0xeb, 0xd5, 0x97, 0xda, 0xa6, 0x1f, 0xb4, 0x5a, 0x4b, 0xff, 0xbc, 0x1d, 0xb6, + 0x7d, 0x0f, 0xb4, 0x5e, 0x3b, 0x5c, 0xe7, 0x9f, 0x7f, 0x73, 0xbc, 0xa4, 0x72, 0x3d, 0x57, 0xda, 0xb4, 0x72, 0xfb, 0xac, + 0xb4, 0x60, 0x5b, 0x5e, 0x7a, 0xdc, 0x52, 0x6d, 0xaa, 0x1d, 0xc7, 0x9f, 0xdc, 0x6f, 0x92, 0xff, 0xe3, 0x6f, 0xf3, 0x2b, + 0x83, 0x47, 0x5b, 0x7f, 0x7e, 0xdf, 0x68, 0xd3, 0xc7, 0x84, 0xff, 0xfe, 0x76, 0x5d, 0x42, 0xb3, 0x9f, 0xd2, 0x87, 0x47, + 0xc2, 0x95, 0x16, 0x3a, 0x6e, 0xbd, 0x16, 0xca, 0xc4, 0xe8, 0x33, 0x23, 0xeb, 0x32, 0xb3, 0x6c, 0x6e, 0xfd, 0x62, 0xfb, + 0xfc, 0xf8, 0xf3, 0x8e, 0xf7, 0xb4, 0xa3, 0x2d, 0x3c, 0xda, 0x73, 0x8f, 0xbf, 0xdf, 0xfa, 0x56, 0xcd, 0xa4, 0x7e, 0x4f, + 0xfe, 0xfb, 0xff, 0x72, 0xd6, 0x83, 0x19, 0xcc, 0x9f, 0x1b, 0xd6, 0xcf, 0x0a, 0xc7, 0xc7, 0xac, 0x7d, 0x2d, 0x7c, 0xd4, + 0x4e, 0x3d, 0xb0, 0x0f, 0xaf, 0x6f, 0xb3, 0xe8, 0xdf, 0xd9, 0x91, 0xff, 0x8a, 0x14, 0xb7, 0x89, 0x33, 0x62, 0xa4, 0x4f, + 0x71, 0xdc, 0xe3, 0xcc, 0x27, 0x7c, 0xb4, 0x2e, 0x91, 0xfe, 0x4c, 0xbe, 0x2d, 0x57, 0xfb, 0x1c, 0xfb, 0xf2, 0x5f, 0x71, + 0xbe, 0x5d, 0x3f, 0x97, 0xec, 0x6b, 0xdf, 0x99, 0xf3, 0xf5, 0xfd, 0xf3, 0xbf, 0xfe, 0xdd, 0x2a, 0xf2, 0x5f, 0xb3, 0x55, + 0xd6, 0xf3, 0xdf, 0xe5, 0x7f, 0xfa, 0xfc, 0xff, 0x73, 0xab, 0xf7, 0xe0, 0xf5, 0x57, 0xfe, 0xaa, 0xbd, 0xaa, 0x9f, 0x7f, + 0x6d, 0xfe, 0x47, 0xd7, 0x83, 0x6d, 0x39, 0xff, 0xb1, 0xab, 0xcf, 0xc8, 0xd5, 0x46, 0x55, 0xff, 0x7f, 0x6f, 0xef, 0xe1, + 0xf8, 0xea, 0x31, 0x92, 0xf0, 0xb5, 0x7b, 0x1e, 0x35, 0x9f, 0x7c, 0x45, 0xfe, 0xdb, 0xc4, 0xda, 0xf4, 0xe1, 0xf5, 0xff, + 0xec, 0x11, 0x7e, 0x2d, 0xff, 0x75, 0xe7, 0x8e, 0x2b, 0xf3, 0xdf, 0x83, 0x77, 0xc4, 0xaa, 0xaf, 0xe3, 0xe3, 0xdf, 0x6d, + 0xed, 0xfe, 0xdc, 0x79, 0xd7, 0xff, 0xa3, 0x7e, 0x60, 0x26, 0xff, 0x9f, 0xd2, 0xff, 0x9f, 0xe9, 0x69, 0x8f, 0x5a, 0x71, + 0xfe, 0x78, 0x76, 0xc5, 0xd9, 0xfc, 0xda, 0xfc, 0xf7, 0xa9, 0x7b, 0xd8, 0xf7, 0xce, 0x7f, 0x5b, 0xbe, 0xca, 0xab, 0xdc, + 0x77, 0xa3, 0x7b, 0xd4, 0x68, 0xcf, 0x9d, 0x39, 0xaa, 0xdd, 0x33, 0xff, 0xb1, 0xfd, 0xb9, 0x0f, 0x7b, 0xf9, 0x3d, 0x91, + 0xff, 0xf6, 0x9a, 0xfc, 0xf7, 0xe0, 0xdd, 0x8e, 0x9f, 0xfb, 0x7b, 0xb1, 0xfb, 0x71, 0x91, 0x9e, 0x7c, 0xa6, 0x8f, 0x52, + 0x95, 0xff, 0x7b, 0x6c, 0x49, 0xe7, 0xff, 0x8a, 0xfb, 0xff, 0xed, 0xb0, 0x87, 0xff, 0x59, 0xf9, 0x3f, 0x7e, 0xfe, 0xd7, + 0x6e, 0xff, 0xac, 0x2e, 0x9a, 0xff, 0x9a, 0xfb, 0xff, 0xe7, 0x1f, 0xad, 0x67, 0xae, 0x5c, 0x73, 0xf9, 0xbf, 0xd3, 0xf3, + 0xbf, 0xbd, 0xf9, 0x1f, 0x3d, 0xf5, 0x7e, 0x53, 0xff, 0xbf, 0xf2, 0x3e, 0x7e, 0xfc, 0x9d, 0x9b, 0x7d, 0xef, 0x14, 0xb5, + 0xd0, 0x9b, 0x5c, 0xf7, 0x4c, 0x7f, 0xf4, 0x39, 0x50, 0xee, 0x2e, 0xdd, 0xd5, 0xef, 0xff, 0xd4, 0xb7, 0xe0, 0x79, 0xeb, + 0xd3, 0x6f, 0xdc, 0x67, 0xe4, 0x5d, 0x6f, 0xc9, 0xda, 0xbb, 0xce, 0x7c, 0x3e, 0x1b, 0xff, 0x5b, 0xb6, 0x0f, 0x3b, 0xcf, + 0x6c, 0x5a, 0xe2, 0x19, 0xf7, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xc9, 0xe3, + 0x17, 0x22, 0x63, 0x0d, 0xa3, 0x75, 0x08, 0x6a, 0xeb, 0x21, 0xf4, 0x2f, 0x75, 0x58, 0x57, 0x3f, 0x7b, 0x76, 0xac, 0x65, + 0x66, 0x9c, 0x66, 0xed, 0xef, 0x56, 0x55, 0x96, 0xa8, 0x1d, 0x79, 0x3e, 0xae, 0x77, 0xb3, 0x5a, 0xad, 0x39, 0x56, 0x05, + 0x6d, 0xbd, 0xa6, 0x79, 0xa6, 0x0e, 0x5f, 0xf5, 0xd8, 0xea, 0x9a, 0xfa, 0x68, 0xf3, 0x63, 0xde, 0x6b, 0x2a, 0x8d, 0xd4, + 0xe5, 0x7f, 0x7d, 0x3b, 0xf4, 0x2f, 0xeb, 0xd1, 0x2f, 0xa8, 0xc4, 0x50, 0xbf, 0x74, 0xee, 0xe7, 0x77, 0xca, 0xff, 0xec, + 0x31, 0x38, 0xbb, 0xf7, 0xc6, 0x47, 0xdc, 0x8d, 0xaa, 0x4f, 0x5c, 0x5f, 0x5b, 0xa5, 0x15, 0xd5, 0x47, 0xad, 0xcf, 0x7f, + 0x3b, 0xe9, 0xfc, 0x1f, 0xcd, 0x7f, 0x1f, 0xce, 0x66, 0x73, 0xdf, 0xfc, 0xaf, 0xd7, 0x9d, 0xc8, 0xfe, 0xd5, 0xdc, 0x4c, + 0x0e, 0xf1, 0x5a, 0xe3, 0xf9, 0xfc, 0xe7, 0x2a, 0x05, 0x9d, 0x7b, 0x6e, 0xbd, 0x3e, 0xff, 0xd1, 0x16, 0xb9, 0x2a, 0xff, + 0xf1, 0xbd, 0xa4, 0x0f, 0xab, 0x59, 0xdf, 0x31, 0xff, 0xfd, 0xe3, 0xf3, 0x5f, 0x5f, 0xcb, 0x37, 0x9a, 0x80, 0x48, 0x1d, + 0xf4, 0x99, 0xeb, 0xea, 0xd5, 0x2b, 0xbb, 0xf8, 0x75, 0x57, 0xf4, 0xfc, 0x3f, 0xfa, 0xfd, 0x99, 0x6f, 0x72, 0x75, 0xfe, + 0xdb, 0x30, 0xe1, 0x3d, 0x91, 0xd2, 0xf8, 0x1d, 0x90, 0x4c, 0xcd, 0xab, 0x6b, 0xf2, 0xdf, 0x42, 0x33, 0x06, 0xc6, 0xcf, + 0xf3, 0x77, 0xcf, 0x7f, 0xf5, 0xb5, 0x41, 0xf4, 0x8e, 0x41, 0xf5, 0x3a, 0xde, 0xef, 0xfa, 0xbf, 0x17, 0xf4, 0x12, 0x77, + 0xe4, 0x3f, 0xdb, 0x3e, 0xd1, 0x34, 0xc5, 0xf2, 0x3f, 0x7f, 0x76, 0x8f, 0xcd, 0x26, 0x10, 0x5b, 0xf6, 0xde, 0xfc, 0xd7, + 0xd6, 0x4f, 0x5d, 0xbf, 0x57, 0xfc, 0xa6, 0xfc, 0x47, 0xaf, 0xff, 0xe7, 0xaf, 0xb8, 0xee, 0x95, 0xff, 0x36, 0x31, 0x3f, + 0xcf, 0xd9, 0xf9, 0x1f, 0x55, 0x5b, 0x7d, 0x5b, 0xfe, 0xa3, 0xd9, 0x8a, 0xce, 0x67, 0xd4, 0xc2, 0x67, 0xba, 0xb7, 0x9f, + 0xff, 0xdb, 0x4b, 0xf3, 0x1f, 0x9f, 0x5f, 0xe6, 0x59, 0xf9, 0xaf, 0xee, 0x35, 0x5c, 0x5f, 0x57, 0x2f, 0x7a, 0xb7, 0x31, + 0x7e, 0x97, 0xf2, 0xdd, 0xfd, 0xff, 0xbe, 0xa1, 0x17, 0x9e, 0x7d, 0xfe, 0x7f, 0x55, 0xfe, 0x77, 0x3d, 0xff, 0x6b, 0xd3, + 0x73, 0xfe, 0xed, 0x5a, 0x2b, 0xf9, 0xaf, 0xce, 0x7f, 0xe5, 0xdc, 0x89, 0x6b, 0xff, 0xa2, 0xfa, 0xfd, 0x9f, 0xfa, 0x3b, + 0x69, 0xfb, 0xdf, 0xff, 0xd9, 0xd3, 0x3e, 0x6d, 0x6a, 0xc6, 0xb4, 0xf5, 0xbf, 0xda, 0x26, 0x67, 0x35, 0x8e, 0xad, 0x73, + 0xfd, 0xdb, 0x37, 0x77, 0xcf, 0x7f, 0xec, 0x6d, 0x83, 0xe8, 0x6f, 0xc6, 0x7f, 0xe3, 0x3e, 0x73, 0x81, 0x7d, 0xe6, 0x5b, + 0x94, 0x5a, 0xa1, 0xba, 0x85, 0xb4, 0x2a, 0x8e, 0x00, 0xef, 0x7a, 0xcf, 0x7c, 0xd7, 0xbf, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xbc, 0xd1, 0x2b, 0xb3, 0x35, 0xb7, 0xff, 0xfc, 0x69, 0x0f, 0x8d, 0x77, + 0xed, 0xc9, 0xdf, 0xeb, 0xcb, 0x75, 0x30, 0xd6, 0xc6, 0x9d, 0x56, 0xd4, 0x60, 0xa8, 0xae, 0x23, 0x35, 0x6e, 0x97, 0xd9, + 0x2d, 0x3d, 0x1e, 0x49, 0xbc, 0xba, 0x87, 0x44, 0xc6, 0xf5, 0x64, 0x2a, 0xea, 0x64, 0xe6, 0x12, 0x88, 0x57, 0x42, 0x6c, + 0x8b, 0x9f, 0x1a, 0xdb, 0x6a, 0x91, 0xf1, 0xe1, 0x3b, 0xf3, 0x1f, 0xab, 0x2d, 0x79, 0x45, 0xa5, 0xb5, 0xf8, 0xde, 0x54, + 0xbb, 0x86, 0xf5, 0xad, 0x32, 0xb7, 0xb6, 0xb9, 0x9f, 0x67, 0xc6, 0xf4, 0xe7, 0x6a, 0x0f, 0xac, 0xb6, 0x44, 0x9f, 0xaa, + 0x96, 0xb2, 0xfa, 0x9b, 0x3f, 0xff, 0xde, 0xf1, 0xb2, 0x3e, 0x55, 0x39, 0x62, 0xed, 0x53, 0xbf, 0xff, 0xb7, 0xfb, 0x2a, + 0x27, 0xbc, 0x23, 0xff, 0x2d, 0x70, 0x94, 0x3d, 0x37, 0xff, 0xf1, 0xe3, 0x54, 0x2b, 0xac, 0xd2, 0xb3, 0x3e, 0x37, 0x46, + 0x64, 0xe4, 0x6e, 0xbe, 0x46, 0xd0, 0x19, 0x15, 0x35, 0xfe, 0xcc, 0xd7, 0xca, 0x56, 0x9b, 0x4b, 0xff, 0xf7, 0xc7, 0xb8, + 0x76, 0xd0, 0xdb, 0x9a, 0xcd, 0x7f, 0x0f, 0xd4, 0x1e, 0xa9, 0xa9, 0xc8, 0xf7, 0x9c, 0xfc, 0xcf, 0x5c, 0x6d, 0x9c, 0x97, + 0xff, 0xf1, 0xcf, 0xeb, 0xaa, 0x6a, 0x57, 0xd6, 0xda, 0x19, 0xd5, 0x5a, 0x6e, 0xa1, 0x2d, 0xd2, 0x83, 0xc7, 0x95, 0x5e, + 0x5c, 0xcf, 0xbc, 0x7f, 0xf9, 0x7f, 0xf6, 0x4c, 0x3d, 0x9b, 0xff, 0xd5, 0xbf, 0x78, 0x4d, 0xff, 0x7f, 0x65, 0x7f, 0x79, + 0x52, 0xfe, 0xdb, 0x54, 0x2d, 0xb2, 0x7b, 0x9f, 0xff, 0x2b, 0x6b, 0x6a, 0xd5, 0xe7, 0x3f, 0x96, 0xf0, 0xc8, 0xfe, 0x3e, + 0x3f, 0xe3, 0xc1, 0xda, 0x76, 0x1b, 0xf7, 0xf2, 0x7b, 0xa2, 0xff, 0x9f, 0xcf, 0x7f, 0x5d, 0x9f, 0x67, 0xed, 0xea, 0xf9, + 0x8a, 0xfc, 0xf7, 0x44, 0x65, 0xf4, 0xfd, 0xd7, 0xff, 0xa3, 0x7e, 0x62, 0xb4, 0x55, 0xea, 0xe7, 0xa6, 0xaa, 0xac, 0xb6, + 0xbd, 0x9a, 0xff, 0xcc, 0xf9, 0x3f, 0x7a, 0x1f, 0x22, 0xd3, 0x43, 0x5c, 0xbb, 0x1e, 0xcf, 0x1f, 0x01, 0xd6, 0xfa, 0xff, + 0x67, 0xdc, 0xff, 0xef, 0xa7, 0x5d, 0xff, 0xb7, 0xd4, 0x2c, 0x46, 0x95, 0xfd, 0xff, 0x96, 0xe8, 0x65, 0x66, 0x8e, 0x36, + 0x91, 0xd6, 0x5e, 0x6f, 0xb3, 0x2b, 0xcf, 0xff, 0xb9, 0xd9, 0xe6, 0xda, 0xb6, 0x7a, 0xa7, 0x91, 0xfe, 0xff, 0x9e, 0x14, + 0x56, 0xfc, 0xc5, 0xca, 0xeb, 0xff, 0xeb, 0xe7, 0x66, 0xc8, 0xe4, 0xff, 0xac, 0xde, 0xd3, 0xfe, 0x6f, 0x5e, 0x5b, 0x47, + 0xfa, 0x0e, 0xd7, 0xff, 0x91, 0xfb, 0xff, 0xd1, 0x9a, 0xc7, 0xe3, 0xb3, 0x71, 0xff, 0xf1, 0x0a, 0xff, 0xcc, 0xb3, 0xf1, + 0xf9, 0x47, 0x9c, 0xda, 0xeb, 0x7f, 0xf9, 0xdf, 0xf3, 0xdd, 0x2b, 0x6b, 0xe7, 0xee, 0xce, 0xff, 0x5c, 0xcf, 0x2a, 0x36, + 0x23, 0x62, 0x6e, 0xc6, 0xe4, 0xe8, 0x35, 0x5d, 0x3b, 0x75, 0x4f, 0x6f, 0x17, 0xf4, 0xfe, 0xab, 0x67, 0xe4, 0x79, 0xe7, + 0xfb, 0x50, 0xef, 0xf8, 0x06, 0x67, 0x1c, 0xcf, 0x7b, 0x61, 0xcf, 0x34, 0x7f, 0xff, 0x2f, 0x7e, 0xb4, 0x6a, 0x17, 0xd4, + 0x20, 0x3e, 0xfb, 0x2f, 0xc6, 0x9f, 0x56, 0x20, 0xff, 0x6b, 0xf9, 0xdf, 0xdf, 0x4b, 0xaa, 0x7a, 0x87, 0xe1, 0xd3, 0xf6, + 0x14, 0x2d, 0xf3, 0x29, 0xdb, 0x75, 0xfd, 0x4e, 0xef, 0x5b, 0x5a, 0xc2, 0x3e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x6b, 0xf4, 0x4f, 0xac, 0x9a, 0xc2, 0x6c, 0x2d, 0xab, 0xbe, 0x30, 0x3a, 0xb3, 0x0d, + 0xeb, 0x33, 0x67, 0x3f, 0xe7, 0xeb, 0xcc, 0x05, 0x7d, 0xf0, 0x2f, 0x5a, 0x60, 0x4d, 0x7b, 0x78, 0xac, 0xf1, 0xfa, 0x3c, + 0x0c, 0x5f, 0xd7, 0xb8, 0x25, 0x5a, 0x64, 0x3c, 0x92, 0x77, 0x7d, 0xc6, 0x86, 0xbd, 0xdf, 0xb9, 0xa6, 0x22, 0x7a, 0xa4, + 0xb6, 0xdf, 0x6c, 0x85, 0x92, 0xb3, 0x5b, 0x25, 0x33, 0x62, 0xbb, 0x05, 0x8e, 0x0d, 0xa3, 0x7a, 0x42, 0x2b, 0xb5, 0xba, + 0xd6, 0x8e, 0x4f, 0x73, 0x55, 0xf8, 0xd6, 0xc7, 0xa5, 0xcf, 0xd5, 0xf0, 0x6c, 0x1b, 0xeb, 0x5e, 0xaf, 0xef, 0xed, 0xf1, + 0xa4, 0xe4, 0x96, 0xce, 0x8d, 0xc7, 0xdf, 0xf1, 0x9d, 0xe3, 0x35, 0x6b, 0xe7, 0x3f, 0x27, 0x73, 0xf6, 0x1b, 0xa7, 0x74, + 0x4f, 0xab, 0xc4, 0xd2, 0x9f, 0xa9, 0x08, 0xb3, 0x9e, 0xff, 0x9a, 0xf5, 0x1e, 0xcf, 0x89, 0x10, 0x9b, 0x65, 0x63, 0xa6, + 0x86, 0xf7, 0xfb, 0xaa, 0x07, 0xe4, 0xf3, 0xff, 0xa9, 0x35, 0x17, 0x9e, 0xd4, 0x02, 0x7d, 0x31, 0x61, 0x33, 0xbd, 0xf8, + 0x9a, 0xfc, 0x8f, 0xe7, 0x4a, 0x3a, 0x3f, 0xff, 0x3d, 0xf4, 0x09, 0xf1, 0x9e, 0xdb, 0x1d, 0x97, 0xe6, 0xf2, 0x3f, 0xde, + 0x83, 0xf6, 0x2c, 0xad, 0x9a, 0x29, 0x29, 0x57, 0x87, 0xbc, 0x05, 0xaf, 0x1e, 0x32, 0x4b, 0x23, 0xb5, 0x11, 0x7a, 0xe8, + 0x6a, 0x64, 0xcf, 0xf9, 0x3f, 0x7f, 0xfd, 0x3f, 0xdf, 0x6f, 0x8b, 0xdf, 0x3f, 0xc8, 0xec, 0x4b, 0x3b, 0xfa, 0xe1, 0x67, + 0x2c, 0x8d, 0xd4, 0x86, 0xbb, 0x6a, 0xe9, 0xee, 0xfc, 0xf7, 0xdf, 0xe6, 0x4a, 0x3c, 0x4a, 0xd4, 0xfa, 0xd1, 0x21, 0x77, + 0x64, 0xd9, 0xdb, 0xd7, 0x59, 0xbd, 0xff, 0xb7, 0xba, 0x96, 0x75, 0x73, 0x99, 0x45, 0xab, 0x52, 0x7e, 0xfd, 0xfd, 0xba, + 0xf3, 0xff, 0xbe, 0xad, 0xbe, 0x77, 0x69, 0xe6, 0xee, 0xde, 0x5b, 0xf3, 0x3f, 0xd7, 0x6e, 0xef, 0xc8, 0xff, 0xb8, 0x7e, + 0x6b, 0x2f, 0xba, 0x4f, 0x71, 0xc6, 0x37, 0x9a, 0xad, 0xc0, 0x9f, 0x9b, 0x63, 0xf6, 0x4d, 0xf9, 0x6f, 0x45, 0xfd, 0xff, + 0x33, 0x97, 0xde, 0xa3, 0xff, 0xdf, 0x5f, 0x90, 0xff, 0xec, 0x73, 0x9d, 0x8a, 0x19, 0x8e, 0xcf, 0xce, 0x7f, 0xf6, 0x98, + 0x78, 0xaf, 0x6b, 0xe1, 0xec, 0xd2, 0x6c, 0xfe, 0x3f, 0xf5, 0xfc, 0xff, 0x86, 0xfc, 0xe7, 0x9f, 0x65, 0xaf, 0xdc, 0xff, + 0x3b, 0xef, 0x1d, 0x88, 0xbe, 0x31, 0xff, 0xed, 0x43, 0xcf, 0xff, 0x35, 0xf3, 0xca, 0x3f, 0x2d, 0xff, 0x33, 0x77, 0x99, + 0x9e, 0x9a, 0xff, 0x8a, 0x8c, 0x54, 0xdd, 0xff, 0xaf, 0x7f, 0x0b, 0x6a, 0x67, 0x75, 0xfa, 0xe7, 0x25, 0x7c, 0x9c, 0xff, + 0xc8, 0xfb, 0x3f, 0xef, 0xce, 0xff, 0xdc, 0xbb, 0x31, 0xcf, 0xce, 0x7f, 0x4f, 0xce, 0x4a, 0xf3, 0xce, 0xe7, 0xc3, 0xb1, + 0x39, 0xa6, 0x9f, 0x97, 0xff, 0xfc, 0x3b, 0x65, 0x6f, 0x7d, 0xfe, 0x97, 0x7b, 0x3b, 0xe0, 0x9a, 0xe7, 0x7f, 0x77, 0x7a, + 0xaf, 0x84, 0xb7, 0xbf, 0x55, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x66, 0xec, + 0xeb, 0xea, 0x88, 0x9d, 0xb9, 0x71, 0x62, 0xd7, 0x54, 0xbe, 0x8f, 0xd4, 0x29, 0x98, 0x59, 0x9f, 0x78, 0xf5, 0x83, 0x48, + 0xad, 0xfd, 0xa3, 0x6d, 0x13, 0xad, 0x38, 0x9e, 0xa9, 0x64, 0xb4, 0xeb, 0x3b, 0xae, 0xd7, 0x84, 0x9f, 0xff, 0x0b, 0x73, + 0x95, 0x1f, 0x63, 0xb9, 0xb8, 0xfb, 0xb6, 0x9e, 0x1b, 0xa5, 0xb9, 0xb3, 0x4e, 0x7c, 0x4f, 0xd6, 0x34, 0xaf, 0x5f, 0xab, + 0x6c, 0x95, 0xfe, 0xd8, 0x3a, 0x47, 0x5a, 0xb8, 0x27, 0xe6, 0x61, 0x69, 0x13, 0x7b, 0x52, 0x75, 0x75, 0x9f, 0xcc, 0xbc, + 0x1c, 0xf3, 0x47, 0xe4, 0xca, 0x8a, 0xfd, 0x2d, 0x51, 0xad, 0xff, 0x2e, 0xdb, 0xfa, 0xda, 0xf1, 0xb4, 0xe3, 0x75, 0x7e, + 0xce, 0x78, 0xdf, 0xb9, 0xd1, 0xe3, 0xcf, 0xf8, 0x36, 0x33, 0xc7, 0xb2, 0xf5, 0xea, 0x3c, 0xef, 0xac, 0xd9, 0xf0, 0xd9, + 0x63, 0x95, 0xb3, 0x95, 0x05, 0x46, 0xc7, 0xba, 0xe7, 0x54, 0xaf, 0xca, 0xd5, 0xbd, 0x9a, 0x69, 0xc5, 0xb3, 0x96, 0x1d, + 0xf9, 0x2b, 0x30, 0x0f, 0xdb, 0x95, 0xdf, 0x71, 0x7f, 0xc5, 0x8e, 0xe3, 0x5a, 0x22, 0xf7, 0xde, 0xd6, 0xd9, 0x1a, 0x59, + 0xd9, 0x4a, 0x30, 0xd1, 0xf3, 0xff, 0x53, 0xf3, 0x3f, 0x9a, 0x8b, 0xe0, 0xe7, 0x59, 0xc9, 0xce, 0x5b, 0x56, 0x31, 0x93, + 0xc1, 0xea, 0x15, 0xd0, 0x8e, 0x65, 0x57, 0x56, 0xec, 0x3a, 0xfb, 0xbb, 0xc6, 0xdb, 0xa8, 0xaa, 0x9f, 0x18, 0x9d, 0xb3, + 0x64, 0xb4, 0xec, 0xd3, 0xce, 0xff, 0xfd, 0xf2, 0x65, 0xf3, 0x47, 0xb1, 0xbb, 0xef, 0xdb, 0xfb, 0x67, 0xec, 0x78, 0x42, + 0xc6, 0x33, 0xb3, 0x4b, 0xed, 0xcc, 0xff, 0x3d, 0xeb, 0x1d, 0xf7, 0xd4, 0xb9, 0x31, 0x5b, 0xab, 0xef, 0x3e, 0xb9, 0xc9, + 0xcc, 0x64, 0x1c, 0x9b, 0xbf, 0xb9, 0x7a, 0x99, 0xfc, 0xdf, 0x3b, 0xff, 0x73, 0xf7, 0x56, 0xee, 0x57, 0xbd, 0x32, 0x3b, + 0x4b, 0xef, 0xfb, 0xfb, 0x8b, 0x7d, 0xc3, 0xd3, 0x9a, 0xba, 0xe7, 0x89, 0xf2, 0x7f, 0x97, 0xfe, 0xbf, 0xfc, 0xbf, 0x6f, + 0x7f, 0xe9, 0xa9, 0x4a, 0xe6, 0xfa, 0xff, 0xf2, 0xff, 0xe6, 0xfc, 0xf7, 0x47, 0x5c, 0xff, 0xef, 0xda, 0x5f, 0xde, 0x76, + 0xff, 0x3f, 0xfa, 0xb4, 0xf7, 0x29, 0xcf, 0x7a, 0xce, 0x78, 0xfe, 0xb7, 0xe7, 0x93, 0x77, 0x56, 0x43, 0x7f, 0xff, 0xf3, + 0xde, 0xa7, 0xd4, 0x83, 0xe7, 0xed, 0xfb, 0xa1, 0x36, 0x00, 0xf9, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x76, 0xbe, 0xa9, 0x7f, 0x66, 0xc5, 0xf7, 0xc8, 0xa8, 0xcf, 0xb9, 0xcf, 0x04, 0x62, 0x23, 0x75, 0xce, + 0xac, 0xf8, 0x9e, 0x1f, 0x9d, 0x6f, 0x5b, 0xc2, 0xfb, 0xc6, 0x8a, 0xcb, 0x36, 0xec, 0x49, 0x55, 0x7f, 0x48, 0x15, 0xa4, + 0x77, 0xcc, 0xcd, 0x01, 0xf2, 0xff, 0x94, 0x0a, 0x69, 0x20, 0xff, 0xf2, 0x0f, 0xf2, 0x2f, 0xff, 0x20, 0xff, 0xf2, 0x0f, + 0x6f, 0xbf, 0xff, 0x7f, 0xa7, 0x99, 0x6b, 0xf6, 0xd5, 0x29, 0x06, 0xcf, 0xfe, 0x63, 0x47, 0x87, 0xea, 0x65, 0x6d, 0x78, + 0xdc, 0xf0, 0x8c, 0x10, 0xce, 0xca, 0xff, 0x35, 0xcf, 0xf8, 0x57, 0xf3, 0xaf, 0xff, 0x0f, 0x6f, 0xba, 0x1a, 0x89, 0xbc, + 0xff, 0x27, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x95, 0x7f, 0xff, 0xd3, 0x0e, 0x20, 0xff, 0xc0, 0xc7, 0xe5, 0xff, 0x6f }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle sunnyFontRecs[189] = { + { 4, 4, 4 , 16 }, + { 16, 4, 2 , 10 }, + { 26, 4, 5 , 3 }, + { 39, 4, 7 , 10 }, + { 54, 4, 7 , 13 }, + { 69, 4, 7 , 10 }, + { 84, 4, 7 , 10 }, + { 99, 4, 2 , 3 }, + { 109, 4, 3 , 12 }, + { 120, 4, 3 , 12 }, + { 131, 4, 5 , 6 }, + { 144, 4, 6 , 5 }, + { 158, 4, 2 , 4 }, + { 168, 4, 5 , 1 }, + { 181, 4, 2 , 2 }, + { 191, 4, 4 , 10 }, + { 203, 4, 6 , 10 }, + { 217, 4, 4 , 10 }, + { 229, 4, 6 , 10 }, + { 243, 4, 6 , 10 }, + { 257, 4, 6 , 10 }, + { 271, 4, 6 , 10 }, + { 285, 4, 6 , 10 }, + { 299, 4, 6 , 10 }, + { 313, 4, 6 , 10 }, + { 327, 4, 6 , 10 }, + { 341, 4, 2 , 6 }, + { 351, 4, 2 , 8 }, + { 361, 4, 7 , 7 }, + { 376, 4, 5 , 3 }, + { 389, 4, 7 , 7 }, + { 404, 4, 6 , 10 }, + { 418, 4, 7 , 12 }, + { 433, 4, 7 , 10 }, + { 448, 4, 7 , 10 }, + { 463, 4, 7 , 10 }, + { 478, 4, 7 , 10 }, + { 493, 4, 7 , 10 }, + { 4, 28, 7 , 10 }, + { 19, 28, 7 , 10 }, + { 34, 28, 7 , 10 }, + { 49, 28, 2 , 10 }, + { 59, 28, 5 , 10 }, + { 72, 28, 7 , 10 }, + { 87, 28, 6 , 10 }, + { 101, 28, 9 , 10 }, + { 118, 28, 7 , 10 }, + { 133, 28, 7 , 10 }, + { 148, 28, 7 , 10 }, + { 163, 28, 7 , 12 }, + { 178, 28, 7 , 10 }, + { 193, 28, 7 , 10 }, + { 208, 28, 6 , 10 }, + { 222, 28, 7 , 10 }, + { 237, 28, 7 , 10 }, + { 252, 28, 8 , 10 }, + { 268, 28, 7 , 10 }, + { 283, 28, 6 , 10 }, + { 297, 28, 7 , 10 }, + { 312, 28, 4 , 12 }, + { 324, 28, 4 , 10 }, + { 336, 28, 4 , 12 }, + { 348, 28, 6 , 3 }, + { 362, 28, 7 , 1 }, + { 377, 28, 4 , 3 }, + { 389, 28, 6 , 7 }, + { 403, 28, 6 , 10 }, + { 417, 28, 6 , 7 }, + { 431, 28, 6 , 10 }, + { 445, 28, 6 , 7 }, + { 459, 28, 4 , 10 }, + { 471, 28, 6 , 9 }, + { 485, 28, 6 , 10 }, + { 499, 28, 2 , 10 }, + { 4, 52, 5 , 12 }, + { 17, 52, 6 , 10 }, + { 31, 52, 3 , 10 }, + { 42, 52, 8 , 7 }, + { 58, 52, 6 , 7 }, + { 72, 52, 6 , 7 }, + { 86, 52, 6 , 9 }, + { 100, 52, 6 , 9 }, + { 114, 52, 5 , 7 }, + { 127, 52, 6 , 7 }, + { 141, 52, 4 , 10 }, + { 153, 52, 6 , 7 }, + { 167, 52, 6 , 7 }, + { 181, 52, 8 , 7 }, + { 197, 52, 6 , 7 }, + { 211, 52, 6 , 9 }, + { 225, 52, 6 , 7 }, + { 239, 52, 5 , 12 }, + { 252, 52, 2 , 12 }, + { 262, 52, 5 , 12 }, + { 275, 52, 7 , 3 }, + { 290, 52, 2 , 9 }, + { 300, 52, 6 , 11 }, + { 314, 52, 7 , 10 }, + { 329, 52, 7 , 9 }, + { 344, 52, 6 , 10 }, + { 358, 52, 7 , 11 }, + { 373, 52, 6 , 12 }, + { 387, 52, 6 , 10 }, + { 401, 52, 7 , 10 }, + { 416, 52, 5 , 5 }, + { 429, 52, 7 , 6 }, + { 444, 52, 6 , 3 }, + { 458, 52, 7 , 10 }, + { 473, 52, 0 , 0 }, + { 481, 52, 4 , 4 }, + { 493, 52, 6 , 7 }, + { 4, 76, 4 , 5 }, + { 16, 76, 4 , 5 }, + { 28, 76, 7 , 11 }, + { 43, 76, 6 , 9 }, + { 57, 76, 7 , 12 }, + { 72, 76, 2 , 2 }, + { 82, 76, 6 , 10 }, + { 96, 76, 3 , 5 }, + { 107, 76, 4 , 5 }, + { 119, 76, 7 , 6 }, + { 134, 76, 9 , 10 }, + { 151, 76, 8 , 7 }, + { 167, 76, 6 , 11 }, + { 181, 76, 6 , 11 }, + { 195, 76, 7 , 11 }, + { 210, 76, 7 , 11 }, + { 225, 76, 7 , 11 }, + { 240, 76, 7 , 11 }, + { 255, 76, 7 , 11 }, + { 270, 76, 7 , 11 }, + { 285, 76, 9 , 10 }, + { 302, 76, 7 , 12 }, + { 317, 76, 7 , 11 }, + { 332, 76, 7 , 11 }, + { 347, 76, 7 , 11 }, + { 362, 76, 7 , 11 }, + { 377, 76, 3 , 11 }, + { 388, 76, 3 , 11 }, + { 399, 76, 5 , 11 }, + { 412, 76, 5 , 11 }, + { 425, 76, 8 , 10 }, + { 441, 76, 7 , 11 }, + { 456, 76, 7 , 11 }, + { 471, 76, 7 , 11 }, + { 486, 76, 7 , 11 }, + { 4, 100, 7 , 11 }, + { 19, 100, 7 , 11 }, + { 34, 100, 7 , 7 }, + { 49, 100, 7 , 13 }, + { 64, 100, 7 , 11 }, + { 79, 100, 7 , 11 }, + { 94, 100, 7 , 11 }, + { 109, 100, 7 , 11 }, + { 124, 100, 6 , 11 }, + { 138, 100, 7 , 10 }, + { 153, 100, 7 , 10 }, + { 168, 100, 6 , 10 }, + { 182, 100, 6 , 10 }, + { 196, 100, 6 , 10 }, + { 210, 100, 6 , 10 }, + { 224, 100, 6 , 10 }, + { 238, 100, 6 , 11 }, + { 252, 100, 8 , 7 }, + { 268, 100, 6 , 9 }, + { 282, 100, 6 , 10 }, + { 296, 100, 6 , 10 }, + { 310, 100, 6 , 10 }, + { 324, 100, 6 , 10 }, + { 338, 100, 3 , 10 }, + { 349, 100, 3 , 10 }, + { 360, 100, 5 , 10 }, + { 373, 100, 5 , 10 }, + { 386, 100, 6 , 10 }, + { 400, 100, 6 , 10 }, + { 414, 100, 6 , 10 }, + { 428, 100, 6 , 10 }, + { 442, 100, 6 , 10 }, + { 456, 100, 6 , 10 }, + { 470, 100, 6 , 10 }, + { 484, 100, 6 , 7 }, + { 4, 124, 7 , 11 }, + { 19, 124, 6 , 10 }, + { 33, 124, 6 , 10 }, + { 47, 124, 6 , 10 }, + { 61, 124, 6 , 10 }, + { 75, 124, 6 , 12 }, + { 89, 124, 6 , 12 }, + { 103, 124, 6 , 12 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo sunnyFontGlyphs[189] = { + { 32, 0, 0, 4, { 0 }}, + { 33, 0, 2, 3, { 0 }}, + { 34, 0, 2, 6, { 0 }}, + { 35, 0, 2, 8, { 0 }}, + { 36, 0, 1, 8, { 0 }}, + { 37, 0, 2, 8, { 0 }}, + { 38, 0, 2, 8, { 0 }}, + { 39, 0, 2, 3, { 0 }}, + { 40, 0, 2, 4, { 0 }}, + { 41, 0, 2, 4, { 0 }}, + { 42, 0, 4, 6, { 0 }}, + { 43, 0, 6, 7, { 0 }}, + { 44, 0, 10, 3, { 0 }}, + { 45, 0, 8, 6, { 0 }}, + { 46, 0, 10, 3, { 0 }}, + { 47, 0, 2, 5, { 0 }}, + { 48, 0, 2, 7, { 0 }}, + { 49, 0, 2, 7, { 0 }}, + { 50, 0, 2, 7, { 0 }}, + { 51, 0, 2, 7, { 0 }}, + { 52, 0, 2, 7, { 0 }}, + { 53, 0, 2, 7, { 0 }}, + { 54, 0, 2, 7, { 0 }}, + { 55, 0, 2, 7, { 0 }}, + { 56, 0, 2, 7, { 0 }}, + { 57, 0, 2, 7, { 0 }}, + { 58, 0, 4, 3, { 0 }}, + { 59, 0, 4, 3, { 0 }}, + { 60, 0, 4, 8, { 0 }}, + { 61, 0, 6, 6, { 0 }}, + { 62, 0, 4, 8, { 0 }}, + { 63, 0, 2, 7, { 0 }}, + { 64, 0, 2, 8, { 0 }}, + { 65, 0, 2, 8, { 0 }}, + { 66, 0, 2, 8, { 0 }}, + { 67, 0, 2, 8, { 0 }}, + { 68, 0, 2, 8, { 0 }}, + { 69, 0, 2, 8, { 0 }}, + { 70, 0, 2, 8, { 0 }}, + { 71, 0, 2, 8, { 0 }}, + { 72, 0, 2, 8, { 0 }}, + { 73, 0, 2, 3, { 0 }}, + { 74, 0, 2, 6, { 0 }}, + { 75, 0, 2, 8, { 0 }}, + { 76, 0, 2, 7, { 0 }}, + { 77, 0, 2, 10, { 0 }}, + { 78, 0, 2, 8, { 0 }}, + { 79, 0, 2, 8, { 0 }}, + { 80, 0, 2, 8, { 0 }}, + { 81, 0, 2, 8, { 0 }}, + { 82, 0, 2, 8, { 0 }}, + { 83, 0, 2, 8, { 0 }}, + { 84, 0, 2, 7, { 0 }}, + { 85, 0, 2, 8, { 0 }}, + { 86, 0, 2, 8, { 0 }}, + { 87, 0, 2, 9, { 0 }}, + { 88, 0, 2, 8, { 0 }}, + { 89, 0, 2, 7, { 0 }}, + { 90, 0, 2, 8, { 0 }}, + { 91, 0, 2, 5, { 0 }}, + { 92, 0, 2, 5, { 0 }}, + { 93, 0, 2, 5, { 0 }}, + { 94, 0, 2, 7, { 0 }}, + { 95, 0, 14, 8, { 0 }}, + { 96, 0, 2, 5, { 0 }}, + { 97, 0, 5, 7, { 0 }}, + { 98, 0, 2, 7, { 0 }}, + { 99, 0, 5, 7, { 0 }}, + { 100, 0, 2, 7, { 0 }}, + { 101, 0, 5, 7, { 0 }}, + { 102, 0, 2, 5, { 0 }}, + { 103, 0, 5, 7, { 0 }}, + { 104, 0, 2, 7, { 0 }}, + { 105, 0, 2, 3, { 0 }}, + { 106, 0, 2, 6, { 0 }}, + { 107, 0, 2, 7, { 0 }}, + { 108, 0, 2, 4, { 0 }}, + { 109, 0, 5, 9, { 0 }}, + { 110, 0, 5, 7, { 0 }}, + { 111, 0, 5, 7, { 0 }}, + { 112, 0, 5, 7, { 0 }}, + { 113, 0, 5, 7, { 0 }}, + { 114, 0, 5, 6, { 0 }}, + { 115, 0, 5, 7, { 0 }}, + { 116, 0, 2, 5, { 0 }}, + { 117, 0, 5, 7, { 0 }}, + { 118, 0, 5, 7, { 0 }}, + { 119, 0, 5, 9, { 0 }}, + { 120, 0, 5, 7, { 0 }}, + { 121, 0, 5, 7, { 0 }}, + { 122, 0, 5, 7, { 0 }}, + { 123, 0, 2, 6, { 0 }}, + { 124, 0, 2, 3, { 0 }}, + { 125, 0, 2, 6, { 0 }}, + { 126, 0, 6, 8, { 0 }}, + { 161, 0, 5, 3, { 0 }}, + { 162, 0, 3, 7, { 0 }}, + { 163, 0, 2, 8, { 0 }}, + { 8364, 0, 3, 8, { 0 }}, + { 165, 0, 2, 7, { 0 }}, + { 352, 0, 1, 8, { 0 }}, + { 167, 0, 2, 7, { 0 }}, + { 353, 0, 2, 7, { 0 }}, + { 169, 0, 2, 8, { 0 }}, + { 170, 0, 2, 6, { 0 }}, + { 171, 0, 6, 8, { 0 }}, + { 172, 0, 7, 7, { 0 }}, + { 174, 0, 2, 8, { 0 }}, + { 175, 0, 0, 0, { 0 }}, + { 176, 0, 2, 5, { 0 }}, + { 177, 0, 4, 7, { 0 }}, + { 178, 0, 2, 5, { 0 }}, + { 179, 0, 2, 5, { 0 }}, + { 381, 0, 1, 8, { 0 }}, + { 181, 0, 5, 7, { 0 }}, + { 182, 0, 2, 8, { 0 }}, + { 183, 0, 6, 3, { 0 }}, + { 382, 0, 2, 7, { 0 }}, + { 185, 0, 2, 4, { 0 }}, + { 186, 0, 2, 5, { 0 }}, + { 187, 0, 6, 8, { 0 }}, + { 338, 0, 2, 10, { 0 }}, + { 339, 0, 5, 9, { 0 }}, + { 376, 0, 1, 7, { 0 }}, + { 191, 0, 3, 7, { 0 }}, + { 192, 0, 1, 8, { 0 }}, + { 193, 0, 1, 8, { 0 }}, + { 194, 0, 1, 8, { 0 }}, + { 195, 0, 1, 8, { 0 }}, + { 196, 0, 1, 8, { 0 }}, + { 197, 0, 1, 8, { 0 }}, + { 198, 0, 2, 10, { 0 }}, + { 199, 0, 2, 8, { 0 }}, + { 200, 0, 1, 8, { 0 }}, + { 201, 0, 1, 8, { 0 }}, + { 202, 0, 1, 8, { 0 }}, + { 203, 0, 1, 8, { 0 }}, + { 204, 0, 1, 4, { 0 }}, + { 205, 0, 1, 4, { 0 }}, + { 206, 0, 1, 6, { 0 }}, + { 207, 0, 1, 6, { 0 }}, + { 208, 0, 2, 9, { 0 }}, + { 209, 0, 1, 8, { 0 }}, + { 210, 0, 1, 8, { 0 }}, + { 211, 0, 1, 8, { 0 }}, + { 212, 0, 1, 8, { 0 }}, + { 213, 0, 1, 8, { 0 }}, + { 214, 0, 1, 8, { 0 }}, + { 215, 0, 5, 8, { 0 }}, + { 216, 0, 1, 8, { 0 }}, + { 217, 0, 1, 8, { 0 }}, + { 218, 0, 1, 8, { 0 }}, + { 219, 0, 1, 8, { 0 }}, + { 220, 0, 1, 8, { 0 }}, + { 221, 0, 1, 7, { 0 }}, + { 222, 0, 2, 8, { 0 }}, + { 223, 0, 2, 8, { 0 }}, + { 224, 0, 2, 7, { 0 }}, + { 225, 0, 2, 7, { 0 }}, + { 226, 0, 2, 7, { 0 }}, + { 227, 0, 2, 7, { 0 }}, + { 228, 0, 2, 7, { 0 }}, + { 229, 0, 1, 7, { 0 }}, + { 230, 0, 5, 9, { 0 }}, + { 231, 0, 5, 7, { 0 }}, + { 232, 0, 2, 7, { 0 }}, + { 233, 0, 2, 7, { 0 }}, + { 234, 0, 2, 7, { 0 }}, + { 235, 0, 2, 7, { 0 }}, + { 236, 0, 2, 4, { 0 }}, + { 237, 0, 2, 4, { 0 }}, + { 238, 0, 2, 6, { 0 }}, + { 239, 0, 2, 6, { 0 }}, + { 240, 0, 2, 7, { 0 }}, + { 241, 0, 2, 7, { 0 }}, + { 242, 0, 2, 7, { 0 }}, + { 243, 0, 2, 7, { 0 }}, + { 244, 0, 2, 7, { 0 }}, + { 245, 0, 2, 7, { 0 }}, + { 246, 0, 2, 7, { 0 }}, + { 247, 0, 4, 7, { 0 }}, + { 248, 0, 3, 8, { 0 }}, + { 249, 0, 2, 7, { 0 }}, + { 250, 0, 2, 7, { 0 }}, + { 251, 0, 2, 7, { 0 }}, + { 252, 0, 2, 7, { 0 }}, + { 253, 0, 2, 7, { 0 }}, + { 254, 0, 2, 7, { 0 }}, + { 255, 0, 2, 7, { 0 }}, +}; + +// Style loading function: Sunny +static void GuiLoadStyleSunny(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < SUNNY_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(sunnyStyleProps[i].controlId, sunnyStyleProps[i].propertyId, sunnyStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int sunnyFontDataSize = 0; + unsigned char *data = DecompressData(sunnyFontData, SUNNY_STYLE_FONT_ATLAS_COMP_SIZE, &sunnyFontDataSize); + Image imFont = { data, 512, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 16; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, sunnyFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, sunnyFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 510, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_terminal.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_terminal.h new file mode 100644 index 0000000..d5e42f4 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/examples/styles/style_terminal.h @@ -0,0 +1,569 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleTerminal(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define TERMINAL_STYLE_PROPS_COUNT 17 + +// Custom style name: Terminal +static const GuiStyleProp terminalStyleProps[TERMINAL_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0x1c8d00ff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0x161313ff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0x38f620ff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0xc3fbc6ff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0x43bf2eff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0xdcfadcff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0x1f5b19ff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0x43ff28ff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0x1e6f15ff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0x223b22ff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0x182c18ff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0x244125ff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE + { 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING + { 0, 18, (int)0xe6fce3ff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0x0c1505ff }, // DEFAULT_BACKGROUND_COLOR + { 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING +}; + +// WARNING: This style uses a custom font: "Mecha.ttf" (size: 16, spacing: 0) + +#define TERMINAL_STYLE_FONT_ATLAS_COMP_SIZE 1860 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char terminalFontData[TERMINAL_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0xdd, 0x41, 0x92, 0xa4, 0x36, 0x10, 0x05, 0x50, 0xee, 0x7f, 0xe9, 0xf4, 0x62, 0x62, 0x16, 0x76, 0xb8, 0x1b, 0x94, 0x4a, + 0x89, 0x04, 0x9e, 0x5f, 0x78, 0xd3, 0xd5, 0x53, 0x4d, 0x01, 0xbf, 0x24, 0x84, 0x94, 0xc4, 0x01, 0x00, 0x00, 0x00, 0x7c, + 0x5e, 0xfc, 0xef, 0x4f, 0xe2, 0xc7, 0xdf, 0x8c, 0xcb, 0xef, 0xf3, 0xe7, 0xa7, 0xf1, 0xe3, 0x5f, 0xf9, 0xfb, 0xdf, 0x95, + 0x77, 0xba, 0xfe, 0x5b, 0x31, 0xb4, 0x75, 0x73, 0x5b, 0x95, 0x7b, 0x9f, 0xd1, 0xdf, 0xfe, 0x7d, 0x7b, 0xaa, 0xde, 0xad, + 0xf6, 0x95, 0xb1, 0xb3, 0x23, 0xbf, 0xe7, 0xae, 0x6e, 0x61, 0x6c, 0xdf, 0x2b, 0xc7, 0xa6, 0x7d, 0x1c, 0x0d, 0xf2, 0x7f, + 0x7e, 0xcc, 0x46, 0xf2, 0x14, 0xe9, 0xf4, 0x8e, 0x7f, 0x3b, 0xad, 0xfc, 0x0e, 0x1d, 0xdd, 0xc6, 0xdc, 0x3e, 0x89, 0x92, + 0xf7, 0x9f, 0xf9, 0x3b, 0x51, 0xb6, 0xd7, 0x72, 0xff, 0x26, 0x86, 0xdb, 0x88, 0xf9, 0x4f, 0x78, 0xbe, 0x8f, 0x63, 0xd1, + 0x71, 0xef, 0x99, 0xff, 0xfc, 0x51, 0xcb, 0x9f, 0x29, 0x57, 0xb7, 0x3c, 0xd7, 0xa6, 0xaf, 0x3a, 0x27, 0xe5, 0xff, 0xec, + 0x9b, 0xfa, 0xe7, 0x16, 0xb4, 0xa2, 0xdd, 0x90, 0xff, 0x5c, 0x06, 0x62, 0x22, 0x47, 0xbb, 0xf2, 0x5f, 0xdb, 0xd6, 0xc8, + 0xff, 0x33, 0xda, 0xff, 0xb3, 0x6d, 0xff, 0xf7, 0x79, 0x2b, 0xff, 0xd9, 0xa3, 0x90, 0x6d, 0xff, 0x63, 0x7a, 0xfb, 0x3b, + 0xe7, 0x7f, 0x74, 0xdc, 0x43, 0xfe, 0xcf, 0xaf, 0xe8, 0x73, 0xbf, 0x7d, 0xb6, 0x27, 0xe4, 0x7f, 0x5d, 0xfe, 0x7f, 0xeb, + 0xb3, 0x9d, 0xf5, 0xf4, 0x76, 0xe4, 0xff, 0xd8, 0x9e, 0xff, 0xb3, 0xeb, 0xa8, 0xeb, 0xfb, 0x62, 0xc7, 0x08, 0xd4, 0x91, + 0x1c, 0xdb, 0x89, 0xc1, 0x0c, 0xdf, 0xd3, 0x0b, 0x3b, 0xcb, 0x7f, 0x66, 0x4f, 0x66, 0xf2, 0x7f, 0x76, 0x5c, 0x8e, 0x5f, + 0x7a, 0x30, 0xab, 0xf6, 0x7e, 0x45, 0xfe, 0x67, 0x46, 0xe4, 0x9e, 0x9d, 0xff, 0x38, 0xd9, 0x57, 0x31, 0x31, 0xbe, 0xb9, + 0xb3, 0xcf, 0x30, 0xd3, 0x4f, 0xeb, 0x7b, 0x1c, 0xde, 0xd3, 0xff, 0x8f, 0xd6, 0xed, 0xbf, 0xfc, 0xcf, 0x5d, 0xff, 0xbf, + 0x2d, 0xff, 0xb1, 0xfd, 0x58, 0xc5, 0x85, 0x33, 0x56, 0xfe, 0xe7, 0xf6, 0xf0, 0x79, 0x8f, 0x23, 0x16, 0x5d, 0xbf, 0x74, + 0xcd, 0x7f, 0xee, 0xd3, 0x7d, 0xb1, 0xfd, 0x8f, 0x1b, 0x8f, 0x8f, 0xfc, 0xaf, 0xd8, 0x9b, 0x23, 0x77, 0xd8, 0x66, 0xe7, + 0x2f, 0xc8, 0xbf, 0xfc, 0xcb, 0x7f, 0xef, 0xfe, 0x7f, 0x0c, 0x8e, 0xdc, 0xc6, 0xe3, 0xc7, 0xff, 0xe2, 0x52, 0x6f, 0x69, + 0x7e, 0xb6, 0xe0, 0x78, 0x9f, 0x2b, 0xf7, 0x6e, 0xf9, 0xd9, 0x75, 0x4f, 0xb9, 0xfe, 0xdf, 0x39, 0x93, 0xf2, 0x28, 0x99, + 0x87, 0xb2, 0x7e, 0xfe, 0xdf, 0x33, 0xe7, 0x28, 0x77, 0xcf, 0x3f, 0xb0, 0x7a, 0x95, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x65, 0x0d, 0x4d, 0x94, 0xad, 0x7b, 0x8c, 0x16, 0x95, 0xe7, 0xf7, 0xd4, 0x58, + 0xbf, 0xb6, 0x87, 0xaa, 0xde, 0x71, 0xec, 0x59, 0x02, 0x63, 0xeb, 0x30, 0x73, 0x2b, 0xff, 0x56, 0xaf, 0x6e, 0x9b, 0x59, + 0xdd, 0x58, 0xb3, 0x65, 0x15, 0xb5, 0x2d, 0xee, 0x49, 0xc7, 0xca, 0x75, 0xe2, 0x71, 0x69, 0x75, 0x70, 0x6d, 0x92, 0x56, + 0xaf, 0xd8, 0xce, 0xac, 0x7d, 0xdf, 0x99, 0xff, 0xb1, 0x33, 0x70, 0xfc, 0x73, 0x46, 0x62, 0x35, 0x55, 0x6d, 0x0d, 0x98, + 0x63, 0xe9, 0xb9, 0x19, 0x8b, 0xd6, 0x90, 0x8d, 0xef, 0x83, 0x3d, 0xe9, 0x90, 0xff, 0x2f, 0xe7, 0x3f, 0x57, 0x23, 0x7b, + 0xc7, 0xb3, 0x50, 0xe4, 0x5f, 0xfe, 0xe5, 0xff, 0xad, 0xf9, 0x8f, 0xe2, 0xfe, 0x77, 0xbe, 0x5a, 0x47, 0xcd, 0x95, 0x55, + 0x6d, 0x4a, 0xe4, 0x5f, 0xfe, 0x7f, 0xef, 0x6d, 0xc7, 0xc5, 0x56, 0x6c, 0xa4, 0xc5, 0xdb, 0x59, 0xb3, 0x64, 0x5f, 0x15, + 0xad, 0xd1, 0x6f, 0x93, 0x28, 0x4c, 0xf0, 0x57, 0xf2, 0x9f, 0xaf, 0x7b, 0xbe, 0x67, 0xdc, 0x2b, 0xb3, 0xe5, 0x99, 0xda, + 0x57, 0xf5, 0xf9, 0x3f, 0x7b, 0x1e, 0x42, 0xe6, 0xfb, 0xe9, 0x5b, 0xf9, 0x1f, 0xfd, 0x6c, 0xf2, 0x7f, 0x6c, 0x7e, 0xb6, + 0xcc, 0xfd, 0x35, 0x16, 0x23, 0xd9, 0xd2, 0x57, 0x6d, 0x75, 0xa4, 0x46, 0xdb, 0xaa, 0x7e, 0x9e, 0xab, 0xd2, 0xf8, 0xde, + 0xfc, 0x47, 0xc1, 0x7d, 0xae, 0xb9, 0x56, 0x52, 0xfe, 0xe5, 0xff, 0x98, 0xac, 0xc0, 0xdb, 0x3d, 0xff, 0x2b, 0xae, 0xbf, + 0x2b, 0x9f, 0xe6, 0xfa, 0xcc, 0xf6, 0xff, 0x59, 0xf7, 0xff, 0xbe, 0x92, 0xff, 0xb3, 0x63, 0x79, 0x77, 0xfe, 0x3b, 0xd5, + 0x4c, 0xcd, 0x8c, 0x30, 0xce, 0xfc, 0x9b, 0x8e, 0xf9, 0xdf, 0x35, 0x9f, 0x47, 0xfe, 0x77, 0xe5, 0xff, 0xe7, 0xa7, 0x8d, + 0xcb, 0x7f, 0xaf, 0xfc, 0xaf, 0xeb, 0xff, 0x3f, 0x3b, 0xff, 0xeb, 0x7a, 0x5f, 0xab, 0xfb, 0x73, 0xb5, 0x5b, 0x9e, 0x99, + 0x01, 0xf7, 0xdb, 0xfc, 0xbb, 0x48, 0x57, 0x6d, 0xaf, 0x98, 0x87, 0x37, 0x33, 0x3b, 0x68, 0xf7, 0x95, 0x41, 0xf5, 0xbf, + 0xa9, 0x1f, 0xb3, 0xe8, 0x9b, 0x7f, 0x78, 0x46, 0xfe, 0xbf, 0xb0, 0xaf, 0x71, 0x3c, 0xee, 0x69, 0x59, 0x57, 0xfe, 0x3e, + 0xce, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xd3, 0x2a, 0xac, 0xaa, 0xba, 0x8d, 0x3b, + 0xab, 0x65, 0xe4, 0xd6, 0xf9, 0xc5, 0xe5, 0xba, 0x2e, 0x99, 0x55, 0xe4, 0x23, 0x6b, 0xf9, 0x6a, 0xd6, 0x34, 0xe6, 0xcf, + 0x81, 0x48, 0xad, 0x96, 0x3b, 0x3f, 0x53, 0x32, 0x35, 0xec, 0xd7, 0xcd, 0xb6, 0xff, 0xbd, 0x7e, 0x43, 0xbe, 0x92, 0xc8, + 0xaa, 0xf5, 0x05, 0x75, 0xf5, 0x9f, 0x8e, 0x82, 0xd5, 0x8a, 0xd9, 0x35, 0xf4, 0xf7, 0xe6, 0x7f, 0x74, 0xf5, 0xdb, 0xf5, + 0x9f, 0x55, 0xd4, 0x5b, 0x89, 0xc4, 0xca, 0xbc, 0xca, 0xfc, 0x57, 0x9c, 0xe3, 0x51, 0xf6, 0xbe, 0xb1, 0xb8, 0x4e, 0xc1, + 0x95, 0x56, 0xe2, 0xd9, 0x6b, 0xa2, 0xe2, 0xd5, 0xf9, 0xaf, 0xad, 0x96, 0x5b, 0xff, 0x9d, 0x90, 0xaf, 0x4f, 0x70, 0x5f, + 0xfe, 0xff, 0x6e, 0x57, 0x75, 0xfe, 0x33, 0xef, 0x5b, 0x53, 0xd9, 0x6a, 0x2e, 0xff, 0x3d, 0x56, 0xf6, 0xc5, 0xf2, 0x9e, + 0x47, 0x26, 0xff, 0x63, 0xfd, 0xb6, 0x15, 0xf9, 0xcf, 0x57, 0xe6, 0x39, 0x36, 0x65, 0xfd, 0x28, 0x4e, 0xf9, 0xfa, 0xfc, + 0xd7, 0x9f, 0x69, 0xf1, 0x9f, 0xff, 0xbb, 0xac, 0xb6, 0x7d, 0x4b, 0xfe, 0x73, 0xd5, 0x69, 0x66, 0xf3, 0x9f, 0xbd, 0xe2, + 0xbd, 0xbb, 0xfd, 0x5f, 0x73, 0x4d, 0xb0, 0x3e, 0xff, 0x91, 0xaa, 0x0c, 0xde, 0x27, 0xff, 0xb1, 0x20, 0xb9, 0xf2, 0x9f, + 0x6d, 0x03, 0xdf, 0x90, 0xff, 0xea, 0xe7, 0x7c, 0x74, 0xc8, 0x7f, 0x6e, 0xc4, 0x2b, 0x4a, 0x73, 0x1a, 0xed, 0xdb, 0xff, + 0x63, 0xdb, 0xf8, 0x5f, 0xff, 0xfc, 0x47, 0x49, 0xbf, 0xf0, 0xce, 0xfc, 0xd7, 0x57, 0xcb, 0xcd, 0x56, 0x0d, 0xbc, 0x3e, + 0xd6, 0xd7, 0xa7, 0xfd, 0xaf, 0xbf, 0x1e, 0x5e, 0xd1, 0xfe, 0x1f, 0x0b, 0xee, 0x52, 0xac, 0xbf, 0xaa, 0xee, 0x9f, 0xff, + 0xaa, 0xeb, 0xc2, 0xcc, 0x73, 0x93, 0x46, 0xef, 0xff, 0xc5, 0xe9, 0x59, 0x3c, 0x7a, 0xe7, 0x68, 0x3c, 0x4f, 0x31, 0xf8, + 0xf4, 0xa2, 0xfe, 0xd7, 0xff, 0x95, 0xed, 0xff, 0x9a, 0x51, 0xef, 0xae, 0xa3, 0xe9, 0xd7, 0x9e, 0x2f, 0xde, 0x63, 0x8b, + 0xf3, 0x4f, 0xdc, 0x8a, 0xed, 0x57, 0x56, 0x7d, 0x8e, 0xf1, 0xfc, 0x67, 0x5f, 0x93, 0xff, 0x8a, 0x8a, 0xd3, 0xf5, 0xed, + 0xe1, 0xf7, 0xe6, 0xbc, 0xcc, 0xdc, 0x75, 0xef, 0xb1, 0xb5, 0xd5, 0xe7, 0xc5, 0x3b, 0xf2, 0x5f, 0xf7, 0xd9, 0x63, 0xc9, + 0xb7, 0x4a, 0xa6, 0x96, 0x77, 0x2c, 0x9f, 0x0f, 0x23, 0xff, 0xcf, 0xcd, 0x7f, 0xdc, 0x70, 0xcf, 0xf0, 0x58, 0x3c, 0x1e, + 0xdd, 0x61, 0x0f, 0xef, 0xcd, 0x3f, 0xfd, 0xce, 0x88, 0xee, 0xf9, 0x5f, 0x3f, 0x2f, 0xf4, 0xcb, 0xed, 0x81, 0x2a, 0xf9, + 0x3c, 0xf1, 0x5a, 0x56, 0xfe, 0x73, 0xfd, 0x96, 0xd9, 0xf9, 0xff, 0x20, 0xff, 0xdf, 0xdd, 0xeb, 0xd0, 0x7f, 0x76, 0x03, + 0xf2, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xfb, 0x67, 0xbb, 0x45, 0x6a, 0x7d, 0x5b, 0x0c, 0x56, + 0x32, 0x88, 0x74, 0xa5, 0xf8, 0x6c, 0x7d, 0x8c, 0x18, 0x5c, 0xf7, 0x35, 0x5f, 0x37, 0xf8, 0xfa, 0xf3, 0x15, 0x66, 0xd6, + 0x0f, 0xae, 0x3f, 0x8e, 0x75, 0x15, 0xd6, 0xeb, 0x8f, 0x52, 0xe6, 0xef, 0x47, 0x79, 0xed, 0xb5, 0xfe, 0x99, 0x99, 0xdf, + 0xcf, 0x99, 0x95, 0xbe, 0xb5, 0x67, 0xd4, 0xb5, 0x63, 0x5b, 0xb7, 0xba, 0x33, 0x26, 0x92, 0x3e, 0x3e, 0x4f, 0xfb, 0xf7, + 0xaa, 0x9f, 0x5d, 0x8f, 0x63, 0x2e, 0x4b, 0x51, 0xba, 0x06, 0x37, 0xf7, 0xd7, 0x9f, 0xb6, 0xaf, 0xaf, 0x57, 0x01, 0xd8, + 0xdd, 0x5f, 0xc8, 0x3f, 0x35, 0x28, 0x6e, 0x9f, 0x8b, 0xbf, 0xae, 0xa2, 0x4e, 0x5d, 0xad, 0xe2, 0xbb, 0x8f, 0xe3, 0x71, + 0xfa, 0x0c, 0x93, 0x68, 0xb8, 0xbe, 0xe5, 0xac, 0xff, 0x18, 0x2d, 0xf7, 0x75, 0x5c, 0xee, 0x23, 0xe6, 0xf3, 0x9f, 0x7f, + 0x3e, 0x53, 0x14, 0x57, 0xe6, 0xcd, 0x57, 0xc7, 0xac, 0xde, 0xfa, 0x7c, 0xfb, 0x9f, 0xb9, 0x52, 0x88, 0xe5, 0x9f, 0xaa, + 0xf6, 0x3b, 0x39, 0x4e, 0x6a, 0xb9, 0xae, 0x3e, 0x2b, 0x56, 0xbc, 0x12, 0x1b, 0xce, 0xad, 0xdc, 0xf5, 0xde, 0xb5, 0x33, + 0x64, 0x26, 0xff, 0x7d, 0x8f, 0xcd, 0xd1, 0xe6, 0x95, 0xdd, 0xf9, 0x7f, 0xee, 0x2b, 0xef, 0xc9, 0x7f, 0x9f, 0xb3, 0xef, + 0xb7, 0xcf, 0x33, 0xfb, 0xac, 0xc2, 0x0e, 0x47, 0xe0, 0xac, 0x4e, 0xec, 0x5b, 0xf3, 0x1f, 0x3f, 0x8e, 0x0c, 0xf6, 0xff, + 0x4e, 0xfe, 0xb9, 0x5f, 0xf0, 0xb4, 0xfc, 0x57, 0xb6, 0xcb, 0x15, 0x6d, 0xf9, 0xde, 0x6b, 0x66, 0xed, 0xbf, 0xf6, 0xff, + 0xdb, 0xf9, 0xbf, 0xff, 0x2a, 0x6c, 0x6f, 0x66, 0xfa, 0xed, 0xb3, 0x3e, 0xf9, 0x1f, 0x19, 0xf3, 0x92, 0xff, 0xb7, 0xe7, + 0xff, 0x09, 0xdf, 0x4d, 0xb3, 0xf7, 0xff, 0xde, 0x31, 0xfe, 0x57, 0xf5, 0x8a, 0xf6, 0x7f, 0x6e, 0x8c, 0xfd, 0xee, 0x6d, + 0xcb, 0x1f, 0xf3, 0xb7, 0x1c, 0x85, 0xd1, 0x3e, 0x80, 0xfe, 0xbf, 0xfc, 0xbf, 0x27, 0xff, 0x47, 0x7a, 0xf6, 0xc1, 0xb3, + 0xae, 0x33, 0x46, 0x8e, 0xc7, 0x73, 0xf2, 0x5f, 0x79, 0xc7, 0xee, 0x29, 0xe3, 0x7f, 0x4f, 0xfb, 0x66, 0x78, 0x63, 0xfe, + 0xef, 0xbd, 0xd7, 0xda, 0x63, 0xe6, 0xef, 0x33, 0xfb, 0x32, 0x4f, 0xce, 0xff, 0xb3, 0xfb, 0x64, 0xc7, 0x6d, 0x57, 0x85, + 0x51, 0xb8, 0xa7, 0x79, 0x46, 0xfe, 0x63, 0x53, 0xfe, 0x47, 0xc6, 0x06, 0xde, 0x9d, 0xff, 0xf1, 0xd6, 0x2a, 0x6e, 0x1f, + 0x63, 0x96, 0xff, 0xbb, 0xf3, 0xbf, 0x7f, 0xeb, 0x77, 0xf5, 0xc4, 0x62, 0x49, 0xd2, 0xc7, 0x8f, 0xc9, 0x13, 0xfb, 0xa4, + 0x3b, 0xb7, 0x4d, 0xfe, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xef, 0xcc, 0x00, 0x1e, 0x7b, 0xb5, + 0x43, 0x05, 0xfd, 0x23, 0x5d, 0x6d, 0xbd, 0xee, 0xf3, 0x1e, 0x89, 0xaa, 0xee, 0x99, 0x6d, 0xe8, 0x5c, 0x41, 0xdf, 0xac, + 0xdb, 0xb7, 0x7e, 0x03, 0xf4, 0xae, 0xa0, 0x7f, 0x5e, 0xe5, 0x63, 0xfd, 0xe7, 0xad, 0x9c, 0x3f, 0xdf, 0xbb, 0x82, 0x7e, + 0xbf, 0xb5, 0xab, 0xf4, 0xfb, 0x26, 0xd9, 0x59, 0x41, 0x7f, 0xbc, 0xbf, 0x71, 0x6c, 0xdc, 0xae, 0x6c, 0x35, 0x83, 0xae, + 0x15, 0xf4, 0xbb, 0xaf, 0x05, 0xe3, 0xfe, 0xb5, 0x59, 0x63, 0xcf, 0xb4, 0xa8, 0xaa, 0xa0, 0xf1, 0xb4, 0x0a, 0xfa, 0x67, + 0x19, 0x7b, 0x52, 0x9d, 0x6c, 0xf9, 0xb7, 0xfe, 0xf7, 0xbe, 0xfc, 0xf7, 0xad, 0x93, 0x91, 0xad, 0x52, 0xd3, 0xbb, 0x82, + 0xa6, 0xfc, 0xcb, 0xbf, 0xfc, 0xaf, 0xaa, 0x91, 0x20, 0xff, 0x3c, 0x3d, 0xff, 0x3b, 0x2b, 0xe8, 0xa8, 0xa0, 0xb9, 0xbb, + 0x22, 0xd0, 0x21, 0xff, 0xae, 0xff, 0x1f, 0xf1, 0x04, 0x3d, 0xf9, 0x5f, 0xf3, 0x8a, 0xfc, 0x7f, 0xfd, 0xde, 0x9f, 0x0a, + 0xda, 0x2b, 0xf3, 0x1f, 0x4d, 0xc7, 0xff, 0xf6, 0xdf, 0xf1, 0xe1, 0x89, 0xf9, 0xd7, 0xff, 0xcf, 0xe7, 0xe2, 0xfe, 0x0a, + 0x9a, 0xf9, 0x34, 0xcb, 0xbf, 0xfe, 0x7f, 0xc5, 0xfc, 0x9f, 0x9a, 0xb6, 0x47, 0x05, 0xcd, 0xb9, 0x6d, 0x93, 0x7f, 0xd0, + 0x2b, 0xd4, 0xff, 0x07, 0xbd, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xf9, 0xf3, 0x9f, 0xfd, 0x00, 0xf2, 0x0f, 0x7c, 0x2e, 0xff, 0xff, 0x00 }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle terminalFontRecs[189] = { + { 4, 4, 4 , 16 }, + { 16, 4, 1 , 11 }, + { 25, 4, 3 , 3 }, + { 36, 4, 6 , 11 }, + { 50, 4, 5 , 11 }, + { 63, 4, 5 , 11 }, + { 76, 4, 5 , 11 }, + { 89, 4, 1 , 2 }, + { 98, 4, 2 , 13 }, + { 108, 4, 2 , 13 }, + { 118, 4, 3 , 3 }, + { 129, 4, 5 , 5 }, + { 142, 4, 1 , 3 }, + { 151, 4, 5 , 1 }, + { 164, 4, 1 , 1 }, + { 173, 4, 6 , 12 }, + { 187, 4, 5 , 11 }, + { 200, 4, 2 , 11 }, + { 210, 4, 5 , 11 }, + { 223, 4, 5 , 11 }, + { 236, 4, 5 , 11 }, + { 249, 4, 5 , 11 }, + { 262, 4, 5 , 11 }, + { 275, 4, 5 , 11 }, + { 288, 4, 5 , 11 }, + { 301, 4, 5 , 11 }, + { 314, 4, 1 , 8 }, + { 323, 4, 1 , 10 }, + { 332, 4, 4 , 5 }, + { 344, 4, 5 , 3 }, + { 357, 4, 4 , 5 }, + { 369, 4, 5 , 11 }, + { 382, 4, 11 , 11 }, + { 401, 4, 5 , 11 }, + { 414, 4, 5 , 11 }, + { 427, 4, 5 , 11 }, + { 440, 4, 5 , 11 }, + { 453, 4, 5 , 11 }, + { 466, 4, 5 , 11 }, + { 479, 4, 5 , 11 }, + { 492, 4, 5 , 11 }, + { 4, 28, 1 , 11 }, + { 13, 28, 5 , 11 }, + { 26, 28, 5 , 11 }, + { 39, 28, 5 , 11 }, + { 52, 28, 7 , 11 }, + { 67, 28, 5 , 11 }, + { 80, 28, 5 , 11 }, + { 93, 28, 5 , 11 }, + { 106, 28, 5 , 13 }, + { 119, 28, 5 , 11 }, + { 132, 28, 5 , 11 }, + { 145, 28, 5 , 11 }, + { 158, 28, 5 , 11 }, + { 171, 28, 5 , 11 }, + { 184, 28, 7 , 11 }, + { 199, 28, 5 , 11 }, + { 212, 28, 5 , 11 }, + { 225, 28, 5 , 11 }, + { 238, 28, 2 , 13 }, + { 248, 28, 6 , 12 }, + { 262, 28, 2 , 13 }, + { 272, 28, 5 , 4 }, + { 285, 28, 5 , 1 }, + { 298, 28, 2 , 2 }, + { 308, 28, 5 , 8 }, + { 321, 28, 5 , 11 }, + { 334, 28, 5 , 8 }, + { 347, 28, 5 , 11 }, + { 360, 28, 5 , 8 }, + { 373, 28, 4 , 11 }, + { 385, 28, 5 , 10 }, + { 398, 28, 5 , 11 }, + { 411, 28, 1 , 11 }, + { 420, 28, 1 , 13 }, + { 429, 28, 5 , 11 }, + { 442, 28, 1 , 11 }, + { 451, 28, 7 , 8 }, + { 466, 28, 5 , 8 }, + { 479, 28, 5 , 8 }, + { 492, 28, 5 , 10 }, + { 4, 52, 5 , 10 }, + { 17, 52, 4 , 8 }, + { 29, 52, 5 , 8 }, + { 42, 52, 3 , 11 }, + { 53, 52, 5 , 8 }, + { 66, 52, 5 , 8 }, + { 79, 52, 7 , 8 }, + { 94, 52, 5 , 8 }, + { 107, 52, 5 , 10 }, + { 120, 52, 5 , 8 }, + { 133, 52, 3 , 13 }, + { 144, 52, 1 , 15 }, + { 153, 52, 3 , 13 }, + { 164, 52, 5 , 3 }, + { 177, 52, 1 , 11 }, + { 186, 52, 5 , 11 }, + { 199, 52, 5 , 10 }, + { 212, 52, 5 , 10 }, + { 225, 52, 5 , 10 }, + { 238, 52, 0 , 0 }, + { 246, 52, 0 , 0 }, + { 254, 52, 0 , 0 }, + { 262, 52, 7 , 8 }, + { 277, 52, 0 , 0 }, + { 285, 52, 0 , 0 }, + { 293, 52, 5 , 3 }, + { 306, 52, 7 , 8 }, + { 321, 52, 5 , 1 }, + { 334, 52, 3 , 3 }, + { 345, 52, 5 , 7 }, + { 358, 52, 0 , 0 }, + { 366, 52, 0 , 0 }, + { 374, 52, 0 , 0 }, + { 382, 52, 5 , 10 }, + { 395, 52, 7 , 11 }, + { 410, 52, 1 , 1 }, + { 419, 52, 0 , 0 }, + { 427, 52, 0 , 0 }, + { 435, 52, 0 , 0 }, + { 443, 52, 0 , 0 }, + { 451, 52, 0 , 0 }, + { 459, 52, 0 , 0 }, + { 467, 52, 5 , 13 }, + { 480, 52, 5 , 11 }, + { 493, 52, 5 , 14 }, + { 4, 76, 5 , 14 }, + { 17, 76, 5 , 14 }, + { 30, 76, 5 , 14 }, + { 43, 76, 5 , 13 }, + { 56, 76, 5 , 13 }, + { 69, 76, 9 , 11 }, + { 86, 76, 5 , 13 }, + { 99, 76, 5 , 14 }, + { 112, 76, 5 , 14 }, + { 125, 76, 5 , 14 }, + { 138, 76, 5 , 13 }, + { 151, 76, 2 , 14 }, + { 161, 76, 2 , 14 }, + { 171, 76, 3 , 14 }, + { 182, 76, 3 , 13 }, + { 193, 76, 5 , 11 }, + { 206, 76, 5 , 14 }, + { 219, 76, 5 , 14 }, + { 232, 76, 5 , 14 }, + { 245, 76, 5 , 14 }, + { 258, 76, 5 , 14 }, + { 271, 76, 5 , 13 }, + { 284, 76, 5 , 5 }, + { 297, 76, 5 , 13 }, + { 310, 76, 5 , 14 }, + { 323, 76, 5 , 14 }, + { 336, 76, 5 , 14 }, + { 349, 76, 5 , 13 }, + { 362, 76, 5 , 14 }, + { 375, 76, 5 , 11 }, + { 388, 76, 5 , 11 }, + { 401, 76, 5 , 11 }, + { 414, 76, 5 , 11 }, + { 427, 76, 5 , 11 }, + { 440, 76, 5 , 11 }, + { 453, 76, 5 , 10 }, + { 466, 76, 5 , 10 }, + { 479, 76, 9 , 8 }, + { 496, 76, 5 , 10 }, + { 4, 100, 5 , 11 }, + { 17, 100, 5 , 11 }, + { 30, 100, 5 , 11 }, + { 43, 100, 5 , 10 }, + { 56, 100, 2 , 11 }, + { 66, 100, 2 , 11 }, + { 76, 100, 3 , 11 }, + { 87, 100, 3 , 10 }, + { 98, 100, 5 , 11 }, + { 111, 100, 5 , 11 }, + { 124, 100, 5 , 11 }, + { 137, 100, 5 , 11 }, + { 150, 100, 5 , 11 }, + { 163, 100, 5 , 11 }, + { 176, 100, 5 , 10 }, + { 189, 100, 5 , 5 }, + { 202, 100, 5 , 10 }, + { 215, 100, 5 , 11 }, + { 228, 100, 5 , 11 }, + { 241, 100, 5 , 11 }, + { 254, 100, 5 , 10 }, + { 267, 100, 5 , 13 }, + { 280, 100, 4 , 8 }, + { 292, 100, 5 , 12 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo terminalFontGlyphs[189] = { + { 32, 0, 0, 4, { 0 }}, + { 33, 1, 3, 3, { 0 }}, + { 34, 1, 3, 5, { 0 }}, + { 35, 1, 3, 8, { 0 }}, + { 36, 1, 3, 7, { 0 }}, + { 37, 1, 3, 7, { 0 }}, + { 38, 1, 3, 7, { 0 }}, + { 39, 1, 3, 3, { 0 }}, + { 40, 1, 2, 4, { 0 }}, + { 41, 1, 2, 4, { 0 }}, + { 42, 1, 3, 5, { 0 }}, + { 43, 1, 7, 7, { 0 }}, + { 44, 1, 13, 3, { 0 }}, + { 45, 1, 9, 7, { 0 }}, + { 46, 1, 13, 3, { 0 }}, + { 47, 1, 2, 8, { 0 }}, + { 48, 1, 3, 7, { 0 }}, + { 49, 1, 3, 4, { 0 }}, + { 50, 1, 3, 7, { 0 }}, + { 51, 1, 3, 7, { 0 }}, + { 52, 1, 3, 7, { 0 }}, + { 53, 1, 3, 7, { 0 }}, + { 54, 1, 3, 7, { 0 }}, + { 55, 1, 3, 7, { 0 }}, + { 56, 1, 3, 7, { 0 }}, + { 57, 1, 3, 7, { 0 }}, + { 58, 1, 6, 3, { 0 }}, + { 59, 1, 6, 3, { 0 }}, + { 60, 1, 7, 6, { 0 }}, + { 61, 1, 8, 7, { 0 }}, + { 62, 1, 7, 6, { 0 }}, + { 63, 1, 3, 7, { 0 }}, + { 64, 2, 3, 15, { 0 }}, + { 65, 1, 3, 7, { 0 }}, + { 66, 1, 3, 7, { 0 }}, + { 67, 1, 3, 7, { 0 }}, + { 68, 1, 3, 7, { 0 }}, + { 69, 1, 3, 7, { 0 }}, + { 70, 1, 3, 7, { 0 }}, + { 71, 1, 3, 7, { 0 }}, + { 72, 1, 3, 7, { 0 }}, + { 73, 1, 3, 3, { 0 }}, + { 74, 1, 3, 7, { 0 }}, + { 75, 1, 3, 7, { 0 }}, + { 76, 1, 3, 7, { 0 }}, + { 77, 1, 3, 9, { 0 }}, + { 78, 1, 3, 7, { 0 }}, + { 79, 1, 3, 7, { 0 }}, + { 80, 1, 3, 7, { 0 }}, + { 81, 1, 3, 7, { 0 }}, + { 82, 1, 3, 7, { 0 }}, + { 83, 1, 3, 7, { 0 }}, + { 84, 1, 3, 7, { 0 }}, + { 85, 1, 3, 7, { 0 }}, + { 86, 1, 3, 7, { 0 }}, + { 87, 1, 3, 9, { 0 }}, + { 88, 1, 3, 7, { 0 }}, + { 89, 1, 3, 7, { 0 }}, + { 90, 1, 3, 7, { 0 }}, + { 91, 1, 2, 4, { 0 }}, + { 92, 1, 2, 8, { 0 }}, + { 93, 1, 2, 4, { 0 }}, + { 94, 1, 3, 7, { 0 }}, + { 95, 1, 15, 7, { 0 }}, + { 96, 1, 0, 4, { 0 }}, + { 97, 1, 6, 7, { 0 }}, + { 98, 1, 3, 7, { 0 }}, + { 99, 1, 6, 7, { 0 }}, + { 100, 1, 3, 7, { 0 }}, + { 101, 1, 6, 7, { 0 }}, + { 102, 1, 3, 6, { 0 }}, + { 103, 1, 6, 7, { 0 }}, + { 104, 1, 3, 7, { 0 }}, + { 105, 1, 3, 3, { 0 }}, + { 106, 1, 3, 3, { 0 }}, + { 107, 1, 3, 7, { 0 }}, + { 108, 1, 3, 3, { 0 }}, + { 109, 1, 6, 9, { 0 }}, + { 110, 1, 6, 7, { 0 }}, + { 111, 1, 6, 7, { 0 }}, + { 112, 1, 6, 7, { 0 }}, + { 113, 1, 6, 7, { 0 }}, + { 114, 1, 6, 6, { 0 }}, + { 115, 1, 6, 7, { 0 }}, + { 116, 1, 3, 5, { 0 }}, + { 117, 1, 6, 7, { 0 }}, + { 118, 1, 6, 7, { 0 }}, + { 119, 1, 6, 9, { 0 }}, + { 120, 1, 6, 7, { 0 }}, + { 121, 1, 6, 7, { 0 }}, + { 122, 1, 6, 7, { 0 }}, + { 123, 1, 2, 5, { 0 }}, + { 124, 1, 1, 3, { 0 }}, + { 125, 1, 2, 5, { 0 }}, + { 126, 1, 8, 7, { 0 }}, + { 161, 1, 3, 3, { 0 }}, + { 162, 1, 3, 7, { 0 }}, + { 163, 1, 3, 7, { 0 }}, + { 8364, 1, 3, 7, { 0 }}, + { 165, 1, 3, 7, { 0 }}, + { 352, 0, 0, 0, { 0 }}, + { 167, 0, 0, 0, { 0 }}, + { 353, 0, 0, 0, { 0 }}, + { 169, 1, 3, 9, { 0 }}, + { 170, 0, 0, 0, { 0 }}, + { 171, 0, 0, 0, { 0 }}, + { 172, 1, 8, 7, { 0 }}, + { 174, 1, 3, 9, { 0 }}, + { 175, 1, 1, 7, { 0 }}, + { 176, 1, 0, 5, { 0 }}, + { 177, 1, 7, 7, { 0 }}, + { 178, 0, 0, 0, { 0 }}, + { 179, 0, 0, 0, { 0 }}, + { 381, 0, 0, 0, { 0 }}, + { 181, 1, 6, 7, { 0 }}, + { 182, 1, 3, 9, { 0 }}, + { 183, 1, 8, 3, { 0 }}, + { 382, 0, 0, 0, { 0 }}, + { 185, 0, 0, 0, { 0 }}, + { 186, 0, 0, 0, { 0 }}, + { 187, 0, 0, 0, { 0 }}, + { 338, 0, 0, 0, { 0 }}, + { 339, 0, 0, 0, { 0 }}, + { 376, 1, 1, 7, { 0 }}, + { 191, 1, 3, 7, { 0 }}, + { 192, 1, 0, 7, { 0 }}, + { 193, 1, 0, 7, { 0 }}, + { 194, 1, 0, 7, { 0 }}, + { 195, 1, 0, 7, { 0 }}, + { 196, 1, 1, 7, { 0 }}, + { 197, 1, 1, 7, { 0 }}, + { 198, 1, 3, 11, { 0 }}, + { 199, 1, 3, 7, { 0 }}, + { 200, 1, 0, 7, { 0 }}, + { 201, 1, 0, 7, { 0 }}, + { 202, 1, 0, 7, { 0 }}, + { 203, 1, 1, 7, { 0 }}, + { 204, 0, 0, 3, { 0 }}, + { 205, 1, 0, 3, { 0 }}, + { 206, 0, 0, 3, { 0 }}, + { 207, 0, 1, 3, { 0 }}, + { 208, 1, 3, 7, { 0 }}, + { 209, 1, 0, 7, { 0 }}, + { 210, 1, 0, 7, { 0 }}, + { 211, 1, 0, 7, { 0 }}, + { 212, 1, 0, 7, { 0 }}, + { 213, 1, 0, 7, { 0 }}, + { 214, 1, 1, 7, { 0 }}, + { 215, 1, 7, 7, { 0 }}, + { 216, 1, 2, 7, { 0 }}, + { 217, 1, 0, 7, { 0 }}, + { 218, 1, 0, 7, { 0 }}, + { 219, 1, 0, 7, { 0 }}, + { 220, 1, 1, 7, { 0 }}, + { 221, 1, 0, 7, { 0 }}, + { 222, 1, 3, 7, { 0 }}, + { 223, 1, 3, 7, { 0 }}, + { 224, 1, 3, 7, { 0 }}, + { 225, 1, 3, 7, { 0 }}, + { 226, 1, 3, 7, { 0 }}, + { 227, 1, 3, 7, { 0 }}, + { 228, 1, 4, 7, { 0 }}, + { 229, 1, 4, 7, { 0 }}, + { 230, 1, 6, 11, { 0 }}, + { 231, 1, 6, 7, { 0 }}, + { 232, 1, 3, 7, { 0 }}, + { 233, 1, 3, 7, { 0 }}, + { 234, 1, 3, 7, { 0 }}, + { 235, 1, 4, 7, { 0 }}, + { 236, 0, 3, 3, { 0 }}, + { 237, 1, 3, 3, { 0 }}, + { 238, 0, 3, 3, { 0 }}, + { 239, 0, 4, 3, { 0 }}, + { 240, 1, 3, 7, { 0 }}, + { 241, 1, 3, 7, { 0 }}, + { 242, 1, 3, 7, { 0 }}, + { 243, 1, 3, 7, { 0 }}, + { 244, 1, 3, 7, { 0 }}, + { 245, 1, 3, 7, { 0 }}, + { 246, 1, 4, 7, { 0 }}, + { 247, 1, 7, 7, { 0 }}, + { 248, 1, 5, 7, { 0 }}, + { 249, 1, 3, 7, { 0 }}, + { 250, 1, 3, 7, { 0 }}, + { 251, 1, 3, 7, { 0 }}, + { 252, 1, 4, 7, { 0 }}, + { 253, 1, 3, 7, { 0 }}, + { 254, 1, 6, 6, { 0 }}, + { 255, 1, 4, 7, { 0 }}, +}; + +// Style loading function: Terminal +static void GuiLoadStyleTerminal(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < TERMINAL_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(terminalStyleProps[i].controlId, terminalStyleProps[i].propertyId, terminalStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int terminalFontDataSize = 0; + unsigned char *data = DecompressData(terminalFontData, TERMINAL_STYLE_FONT_ATLAS_COMP_SIZE, &terminalFontDataSize); + Image imFont = { data, 512, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 16; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, terminalFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, terminalFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 510, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/icons/raygui_icons.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/icons/raygui_icons.h new file mode 100644 index 0000000..e491101 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/icons/raygui_icons.h @@ -0,0 +1,547 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// raygui Icons exporter v1.1 - Icons data exported as a values array // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2019-2022 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- +#define RAYGUI_ICON_SIZE 16 // Size of icons (squared) +#define RAYGUI_ICON_MAX_ICONS 256 // Maximum number of icons +#define RAYGUI_ICON_MAX_NAME_LENGTH 32 // Maximum length of icon name id + +// Icons data is defined by bit array (every bit represents one pixel) +// Those arrays are stored as unsigned int data arrays, so every array +// element defines 32 pixels (bits) of information +// Number of elemens depend on RAYGUI_ICON_SIZE (by default 16x16 pixels) +#define RAYGUI_ICON_DATA_ELEMENTS (RAYGUI_ICON_SIZE*RAYGUI_ICON_SIZE/32) + +//---------------------------------------------------------------------------------- +// Icons enumeration +//---------------------------------------------------------------------------------- +typedef enum { + ICON_NONE = 0, + ICON_FOLDER_FILE_OPEN = 1, + ICON_FILE_SAVE_CLASSIC = 2, + ICON_FOLDER_OPEN = 3, + ICON_FOLDER_SAVE = 4, + ICON_FILE_OPEN = 5, + ICON_FILE_SAVE = 6, + ICON_FILE_EXPORT = 7, + ICON_FILE_ADD = 8, + ICON_FILE_DELETE = 9, + ICON_FILETYPE_TEXT = 10, + ICON_FILETYPE_AUDIO = 11, + ICON_FILETYPE_IMAGE = 12, + ICON_FILETYPE_PLAY = 13, + ICON_FILETYPE_VIDEO = 14, + ICON_FILETYPE_INFO = 15, + ICON_FILE_COPY = 16, + ICON_FILE_CUT = 17, + ICON_FILE_PASTE = 18, + ICON_CURSOR_HAND = 19, + ICON_CURSOR_POINTER = 20, + ICON_CURSOR_CLASSIC = 21, + ICON_PENCIL = 22, + ICON_PENCIL_BIG = 23, + ICON_BRUSH_CLASSIC = 24, + ICON_BRUSH_PAINTER = 25, + ICON_WATER_DROP = 26, + ICON_COLOR_PICKER = 27, + ICON_RUBBER = 28, + ICON_COLOR_BUCKET = 29, + ICON_TEXT_T = 30, + ICON_TEXT_A = 31, + ICON_SCALE = 32, + ICON_RESIZE = 33, + ICON_FILTER_POINT = 34, + ICON_FILTER_BILINEAR = 35, + ICON_CROP = 36, + ICON_CROP_ALPHA = 37, + ICON_SQUARE_TOGGLE = 38, + ICON_SYMMETRY = 39, + ICON_SYMMETRY_HORIZONTAL = 40, + ICON_SYMMETRY_VERTICAL = 41, + ICON_LENS = 42, + ICON_LENS_BIG = 43, + ICON_EYE_ON = 44, + ICON_EYE_OFF = 45, + ICON_FILTER_TOP = 46, + ICON_FILTER = 47, + ICON_TARGET_POINT = 48, + ICON_TARGET_SMALL = 49, + ICON_TARGET_BIG = 50, + ICON_TARGET_MOVE = 51, + ICON_CURSOR_MOVE = 52, + ICON_CURSOR_SCALE = 53, + ICON_CURSOR_SCALE_RIGHT = 54, + ICON_CURSOR_SCALE_LEFT = 55, + ICON_UNDO = 56, + ICON_REDO = 57, + ICON_REREDO = 58, + ICON_MUTATE = 59, + ICON_ROTATE = 60, + ICON_REPEAT = 61, + ICON_SHUFFLE = 62, + ICON_EMPTYBOX = 63, + ICON_TARGET = 64, + ICON_TARGET_SMALL_FILL = 65, + ICON_TARGET_BIG_FILL = 66, + ICON_TARGET_MOVE_FILL = 67, + ICON_CURSOR_MOVE_FILL = 68, + ICON_CURSOR_SCALE_FILL = 69, + ICON_CURSOR_SCALE_RIGHT_FILL = 70, + ICON_CURSOR_SCALE_LEFT_FILL = 71, + ICON_UNDO_FILL = 72, + ICON_REDO_FILL = 73, + ICON_REREDO_FILL = 74, + ICON_MUTATE_FILL = 75, + ICON_ROTATE_FILL = 76, + ICON_REPEAT_FILL = 77, + ICON_SHUFFLE_FILL = 78, + ICON_EMPTYBOX_SMALL = 79, + ICON_BOX = 80, + ICON_BOX_TOP = 81, + ICON_BOX_TOP_RIGHT = 82, + ICON_BOX_RIGHT = 83, + ICON_BOX_BOTTOM_RIGHT = 84, + ICON_BOX_BOTTOM = 85, + ICON_BOX_BOTTOM_LEFT = 86, + ICON_BOX_LEFT = 87, + ICON_BOX_TOP_LEFT = 88, + ICON_BOX_CENTER = 89, + ICON_BOX_CIRCLE_MASK = 90, + ICON_POT = 91, + ICON_ALPHA_MULTIPLY = 92, + ICON_ALPHA_CLEAR = 93, + ICON_DITHERING = 94, + ICON_MIPMAPS = 95, + ICON_BOX_GRID = 96, + ICON_GRID = 97, + ICON_BOX_CORNERS_SMALL = 98, + ICON_BOX_CORNERS_BIG = 99, + ICON_FOUR_BOXES = 100, + ICON_GRID_FILL = 101, + ICON_BOX_MULTISIZE = 102, + ICON_ZOOM_SMALL = 103, + ICON_ZOOM_MEDIUM = 104, + ICON_ZOOM_BIG = 105, + ICON_ZOOM_ALL = 106, + ICON_ZOOM_CENTER = 107, + ICON_BOX_DOTS_SMALL = 108, + ICON_BOX_DOTS_BIG = 109, + ICON_BOX_CONCENTRIC = 110, + ICON_BOX_GRID_BIG = 111, + ICON_OK_TICK = 112, + ICON_CROSS = 113, + ICON_ARROW_LEFT = 114, + ICON_ARROW_RIGHT = 115, + ICON_ARROW_DOWN = 116, + ICON_ARROW_UP = 117, + ICON_ARROW_LEFT_FILL = 118, + ICON_ARROW_RIGHT_FILL = 119, + ICON_ARROW_DOWN_FILL = 120, + ICON_ARROW_UP_FILL = 121, + ICON_AUDIO = 122, + ICON_FX = 123, + ICON_WAVE = 124, + ICON_WAVE_SINUS = 125, + ICON_WAVE_SQUARE = 126, + ICON_WAVE_TRIANGULAR = 127, + ICON_CROSS_SMALL = 128, + ICON_PLAYER_PREVIOUS = 129, + ICON_PLAYER_PLAY_BACK = 130, + ICON_PLAYER_PLAY = 131, + ICON_PLAYER_PAUSE = 132, + ICON_PLAYER_STOP = 133, + ICON_PLAYER_NEXT = 134, + ICON_PLAYER_RECORD = 135, + ICON_MAGNET = 136, + ICON_LOCK_CLOSE = 137, + ICON_LOCK_OPEN = 138, + ICON_CLOCK = 139, + ICON_TOOLS = 140, + ICON_GEAR = 141, + ICON_GEAR_BIG = 142, + ICON_BIN = 143, + ICON_HAND_POINTER = 144, + ICON_LASER = 145, + ICON_COIN = 146, + ICON_EXPLOSION = 147, + ICON_1UP = 148, + ICON_PLAYER = 149, + ICON_PLAYER_JUMP = 150, + ICON_KEY = 151, + ICON_DEMON = 152, + ICON_TEXT_POPUP = 153, + ICON_GEAR_EX = 154, + ICON_CRACK = 155, + ICON_CRACK_POINTS = 156, + ICON_STAR = 157, + ICON_DOOR = 158, + ICON_EXIT = 159, + ICON_MODE_2D = 160, + ICON_MODE_3D = 161, + ICON_CUBE = 162, + ICON_CUBE_FACE_TOP = 163, + ICON_CUBE_FACE_LEFT = 164, + ICON_CUBE_FACE_FRONT = 165, + ICON_CUBE_FACE_BOTTOM = 166, + ICON_CUBE_FACE_RIGHT = 167, + ICON_CUBE_FACE_BACK = 168, + ICON_CAMERA = 169, + ICON_SPECIAL = 170, + ICON_LINK_NET = 171, + ICON_LINK_BOXES = 172, + ICON_LINK_MULTI = 173, + ICON_LINK = 174, + ICON_LINK_BROKE = 175, + ICON_TEXT_NOTES = 176, + ICON_NOTEBOOK = 177, + ICON_SUITCASE = 178, + ICON_SUITCASE_ZIP = 179, + ICON_MAILBOX = 180, + ICON_MONITOR = 181, + ICON_PRINTER = 182, + ICON_PHOTO_CAMERA = 183, + ICON_PHOTO_CAMERA_FLASH = 184, + ICON_HOUSE = 185, + ICON_HEART = 186, + ICON_CORNER = 187, + ICON_VERTICAL_BARS = 188, + ICON_VERTICAL_BARS_FILL = 189, + ICON_LIFE_BARS = 190, + ICON_INFO = 191, + ICON_CROSSLINE = 192, + ICON_HELP = 193, + ICON_FILETYPE_ALPHA = 194, + ICON_FILETYPE_HOME = 195, + ICON_LAYERS_VISIBLE = 196, + ICON_LAYERS = 197, + ICON_WINDOW = 198, + ICON_HIDPI = 199, + ICON_FILETYPE_BINARY = 200, + ICON_HEX = 201, + ICON_SHIELD = 202, + ICON_FILE_NEW = 203, + ICON_FOLDER_ADD = 204, + ICON_ALARM = 205, + ICON_CPU = 206, + ICON_ROM = 207, + ICON_STEP_OVER = 208, + ICON_STEP_INTO = 209, + ICON_STEP_OUT = 210, + ICON_RESTART = 211, + ICON_BREAKPOINT_ON = 212, + ICON_BREAKPOINT_OFF = 213, + ICON_BURGER_MENU = 214, + ICON_CASE_SENSITIVE = 215, + ICON_REG_EXP = 216, + ICON_217 = 217, + ICON_218 = 218, + ICON_219 = 219, + ICON_220 = 220, + ICON_221 = 221, + ICON_222 = 222, + ICON_223 = 223, + ICON_224 = 224, + ICON_225 = 225, + ICON_226 = 226, + ICON_227 = 227, + ICON_228 = 228, + ICON_229 = 229, + ICON_230 = 230, + ICON_231 = 231, + ICON_232 = 232, + ICON_233 = 233, + ICON_234 = 234, + ICON_235 = 235, + ICON_236 = 236, + ICON_237 = 237, + ICON_238 = 238, + ICON_239 = 239, + ICON_240 = 240, + ICON_241 = 241, + ICON_242 = 242, + ICON_243 = 243, + ICON_244 = 244, + ICON_245 = 245, + ICON_246 = 246, + ICON_247 = 247, + ICON_248 = 248, + ICON_249 = 249, + ICON_250 = 250, + ICON_251 = 251, + ICON_252 = 252, + ICON_253 = 253, + ICON_254 = 254, + ICON_255 = 255, +} guiIconName; + +//---------------------------------------------------------------------------------- +// Icons data +//---------------------------------------------------------------------------------- +static unsigned int guiIcons[RAYGUI_ICON_MAX_ICONS*RAYGUI_ICON_DATA_ELEMENTS] = { + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_NONE + 0x3ff80000, 0x2f082008, 0x2042207e, 0x40027fc2, 0x40024002, 0x40024002, 0x40024002, 0x00007ffe, // ICON_FOLDER_FILE_OPEN + 0x3ffe0000, 0x44226422, 0x400247e2, 0x5ffa4002, 0x57ea500a, 0x500a500a, 0x40025ffa, 0x00007ffe, // ICON_FILE_SAVE_CLASSIC + 0x00000000, 0x0042007e, 0x40027fc2, 0x40024002, 0x41024002, 0x44424282, 0x793e4102, 0x00000100, // ICON_FOLDER_OPEN + 0x00000000, 0x0042007e, 0x40027fc2, 0x40024002, 0x41024102, 0x44424102, 0x793e4282, 0x00000000, // ICON_FOLDER_SAVE + 0x3ff00000, 0x201c2010, 0x20042004, 0x21042004, 0x24442284, 0x21042104, 0x20042104, 0x00003ffc, // ICON_FILE_OPEN + 0x3ff00000, 0x201c2010, 0x20042004, 0x21042004, 0x21042104, 0x22842444, 0x20042104, 0x00003ffc, // ICON_FILE_SAVE + 0x3ff00000, 0x201c2010, 0x00042004, 0x20041004, 0x20844784, 0x00841384, 0x20042784, 0x00003ffc, // ICON_FILE_EXPORT + 0x3ff00000, 0x201c2010, 0x20042004, 0x20042004, 0x22042204, 0x22042f84, 0x20042204, 0x00003ffc, // ICON_FILE_ADD + 0x3ff00000, 0x201c2010, 0x20042004, 0x20042004, 0x25042884, 0x25042204, 0x20042884, 0x00003ffc, // ICON_FILE_DELETE + 0x3ff00000, 0x201c2010, 0x20042004, 0x20042ff4, 0x20042ff4, 0x20042ff4, 0x20042004, 0x00003ffc, // ICON_FILETYPE_TEXT + 0x3ff00000, 0x201c2010, 0x27042004, 0x244424c4, 0x26442444, 0x20642664, 0x20042004, 0x00003ffc, // ICON_FILETYPE_AUDIO + 0x3ff00000, 0x201c2010, 0x26042604, 0x20042004, 0x35442884, 0x2414222c, 0x20042004, 0x00003ffc, // ICON_FILETYPE_IMAGE + 0x3ff00000, 0x201c2010, 0x20c42004, 0x22442144, 0x22442444, 0x20c42144, 0x20042004, 0x00003ffc, // ICON_FILETYPE_PLAY + 0x3ff00000, 0x3ffc2ff0, 0x3f3c2ff4, 0x3dbc2eb4, 0x3dbc2bb4, 0x3f3c2eb4, 0x3ffc2ff4, 0x00002ff4, // ICON_FILETYPE_VIDEO + 0x3ff00000, 0x201c2010, 0x21842184, 0x21842004, 0x21842184, 0x21842184, 0x20042184, 0x00003ffc, // ICON_FILETYPE_INFO + 0x0ff00000, 0x381c0810, 0x28042804, 0x28042804, 0x28042804, 0x28042804, 0x20102ffc, 0x00003ff0, // ICON_FILE_COPY + 0x00000000, 0x701c0000, 0x079c1e14, 0x55a000f0, 0x079c00f0, 0x701c1e14, 0x00000000, 0x00000000, // ICON_FILE_CUT + 0x01c00000, 0x13e41bec, 0x3f841004, 0x204420c4, 0x20442044, 0x20442044, 0x207c2044, 0x00003fc0, // ICON_FILE_PASTE + 0x00000000, 0x3aa00fe0, 0x2abc2aa0, 0x2aa42aa4, 0x20042aa4, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_CURSOR_HAND + 0x00000000, 0x003c000c, 0x030800c8, 0x30100c10, 0x10202020, 0x04400840, 0x01800280, 0x00000000, // ICON_CURSOR_POINTER + 0x00000000, 0x00180000, 0x01f00078, 0x03e007f0, 0x07c003e0, 0x04000e40, 0x00000000, 0x00000000, // ICON_CURSOR_CLASSIC + 0x00000000, 0x04000000, 0x11000a00, 0x04400a80, 0x01100220, 0x00580088, 0x00000038, 0x00000000, // ICON_PENCIL + 0x04000000, 0x15000a00, 0x50402880, 0x14102820, 0x05040a08, 0x015c028c, 0x007c00bc, 0x00000000, // ICON_PENCIL_BIG + 0x01c00000, 0x01400140, 0x01400140, 0x0ff80140, 0x0ff80808, 0x0aa80808, 0x0aa80aa8, 0x00000ff8, // ICON_BRUSH_CLASSIC + 0x1ffc0000, 0x5ffc7ffe, 0x40004000, 0x00807f80, 0x01c001c0, 0x01c001c0, 0x01c001c0, 0x00000080, // ICON_BRUSH_PAINTER + 0x00000000, 0x00800000, 0x01c00080, 0x03e001c0, 0x07f003e0, 0x036006f0, 0x000001c0, 0x00000000, // ICON_WATER_DROP + 0x00000000, 0x3e003800, 0x1f803f80, 0x0c201e40, 0x02080c10, 0x00840104, 0x00380044, 0x00000000, // ICON_COLOR_PICKER + 0x00000000, 0x07800300, 0x1fe00fc0, 0x3f883fd0, 0x0e021f04, 0x02040402, 0x00f00108, 0x00000000, // ICON_RUBBER + 0x00c00000, 0x02800140, 0x08200440, 0x20081010, 0x2ffe3004, 0x03f807fc, 0x00e001f0, 0x00000040, // ICON_COLOR_BUCKET + 0x00000000, 0x21843ffc, 0x01800180, 0x01800180, 0x01800180, 0x01800180, 0x03c00180, 0x00000000, // ICON_TEXT_T + 0x00800000, 0x01400180, 0x06200340, 0x0c100620, 0x1ff80c10, 0x380c1808, 0x70067004, 0x0000f80f, // ICON_TEXT_A + 0x78000000, 0x50004000, 0x00004800, 0x03c003c0, 0x03c003c0, 0x00100000, 0x0002000a, 0x0000000e, // ICON_SCALE + 0x75560000, 0x5e004002, 0x54001002, 0x41001202, 0x408200fe, 0x40820082, 0x40820082, 0x00006afe, // ICON_RESIZE + 0x00000000, 0x3f003f00, 0x3f003f00, 0x3f003f00, 0x00400080, 0x001c0020, 0x001c001c, 0x00000000, // ICON_FILTER_POINT + 0x6d800000, 0x00004080, 0x40804080, 0x40800000, 0x00406d80, 0x001c0020, 0x001c001c, 0x00000000, // ICON_FILTER_BILINEAR + 0x40080000, 0x1ffe2008, 0x14081008, 0x11081208, 0x10481088, 0x10081028, 0x10047ff8, 0x00001002, // ICON_CROP + 0x00100000, 0x3ffc0010, 0x2ab03550, 0x22b02550, 0x20b02150, 0x20302050, 0x2000fff0, 0x00002000, // ICON_CROP_ALPHA + 0x40000000, 0x1ff82000, 0x04082808, 0x01082208, 0x00482088, 0x00182028, 0x35542008, 0x00000002, // ICON_SQUARE_TOGGLE + 0x00000000, 0x02800280, 0x06c006c0, 0x0ea00ee0, 0x1e901eb0, 0x3e883e98, 0x7efc7e8c, 0x00000000, // ICON_SYMMETRY + 0x01000000, 0x05600100, 0x1d480d50, 0x7d423d44, 0x3d447d42, 0x0d501d48, 0x01000560, 0x00000100, // ICON_SYMMETRY_HORIZONTAL + 0x01800000, 0x04200240, 0x10080810, 0x00001ff8, 0x00007ffe, 0x0ff01ff8, 0x03c007e0, 0x00000180, // ICON_SYMMETRY_VERTICAL + 0x00000000, 0x010800f0, 0x02040204, 0x02040204, 0x07f00308, 0x1c000e00, 0x30003800, 0x00000000, // ICON_LENS + 0x00000000, 0x061803f0, 0x08240c0c, 0x08040814, 0x0c0c0804, 0x23f01618, 0x18002400, 0x00000000, // ICON_LENS_BIG + 0x00000000, 0x00000000, 0x1c7007c0, 0x638e3398, 0x1c703398, 0x000007c0, 0x00000000, 0x00000000, // ICON_EYE_ON + 0x00000000, 0x10002000, 0x04700fc0, 0x610e3218, 0x1c703098, 0x001007a0, 0x00000008, 0x00000000, // ICON_EYE_OFF + 0x00000000, 0x00007ffc, 0x40047ffc, 0x10102008, 0x04400820, 0x02800280, 0x02800280, 0x00000100, // ICON_FILTER_TOP + 0x00000000, 0x40027ffe, 0x10082004, 0x04200810, 0x02400240, 0x02400240, 0x01400240, 0x000000c0, // ICON_FILTER + 0x00800000, 0x00800080, 0x00000080, 0x3c9e0000, 0x00000000, 0x00800080, 0x00800080, 0x00000000, // ICON_TARGET_POINT + 0x00800000, 0x00800080, 0x00800080, 0x3f7e01c0, 0x008001c0, 0x00800080, 0x00800080, 0x00000000, // ICON_TARGET_SMALL + 0x00800000, 0x00800080, 0x03e00080, 0x3e3e0220, 0x03e00220, 0x00800080, 0x00800080, 0x00000000, // ICON_TARGET_BIG + 0x01000000, 0x04400280, 0x01000100, 0x43842008, 0x43849ab2, 0x01002008, 0x04400100, 0x01000280, // ICON_TARGET_MOVE + 0x01000000, 0x04400280, 0x01000100, 0x41042108, 0x41049ff2, 0x01002108, 0x04400100, 0x01000280, // ICON_CURSOR_MOVE + 0x781e0000, 0x500a4002, 0x04204812, 0x00000240, 0x02400000, 0x48120420, 0x4002500a, 0x0000781e, // ICON_CURSOR_SCALE + 0x00000000, 0x20003c00, 0x24002800, 0x01000200, 0x00400080, 0x00140024, 0x003c0004, 0x00000000, // ICON_CURSOR_SCALE_RIGHT + 0x00000000, 0x0004003c, 0x00240014, 0x00800040, 0x02000100, 0x28002400, 0x3c002000, 0x00000000, // ICON_CURSOR_SCALE_LEFT + 0x00000000, 0x00100020, 0x10101fc8, 0x10001020, 0x10001000, 0x10001000, 0x00001fc0, 0x00000000, // ICON_UNDO + 0x00000000, 0x08000400, 0x080813f8, 0x00080408, 0x00080008, 0x00080008, 0x000003f8, 0x00000000, // ICON_REDO + 0x00000000, 0x3ffc0000, 0x20042004, 0x20002000, 0x20402000, 0x3f902020, 0x00400020, 0x00000000, // ICON_REREDO + 0x00000000, 0x3ffc0000, 0x20042004, 0x27fc2004, 0x20202000, 0x3fc82010, 0x00200010, 0x00000000, // ICON_MUTATE + 0x00000000, 0x0ff00000, 0x10081818, 0x11801008, 0x10001180, 0x18101020, 0x00100fc8, 0x00000020, // ICON_ROTATE + 0x00000000, 0x04000200, 0x240429fc, 0x20042204, 0x20442004, 0x3f942024, 0x00400020, 0x00000000, // ICON_REPEAT + 0x00000000, 0x20001000, 0x22104c0e, 0x00801120, 0x11200040, 0x4c0e2210, 0x10002000, 0x00000000, // ICON_SHUFFLE + 0x7ffe0000, 0x50024002, 0x44024802, 0x41024202, 0x40424082, 0x40124022, 0x4002400a, 0x00007ffe, // ICON_EMPTYBOX + 0x00800000, 0x03e00080, 0x08080490, 0x3c9e0808, 0x08080808, 0x03e00490, 0x00800080, 0x00000000, // ICON_TARGET + 0x00800000, 0x00800080, 0x00800080, 0x3ffe01c0, 0x008001c0, 0x00800080, 0x00800080, 0x00000000, // ICON_TARGET_SMALL_FILL + 0x00800000, 0x00800080, 0x03e00080, 0x3ffe03e0, 0x03e003e0, 0x00800080, 0x00800080, 0x00000000, // ICON_TARGET_BIG_FILL + 0x01000000, 0x07c00380, 0x01000100, 0x638c2008, 0x638cfbbe, 0x01002008, 0x07c00100, 0x01000380, // ICON_TARGET_MOVE_FILL + 0x01000000, 0x07c00380, 0x01000100, 0x610c2108, 0x610cfffe, 0x01002108, 0x07c00100, 0x01000380, // ICON_CURSOR_MOVE_FILL + 0x781e0000, 0x6006700e, 0x04204812, 0x00000240, 0x02400000, 0x48120420, 0x700e6006, 0x0000781e, // ICON_CURSOR_SCALE_FILL + 0x00000000, 0x38003c00, 0x24003000, 0x01000200, 0x00400080, 0x000c0024, 0x003c001c, 0x00000000, // ICON_CURSOR_SCALE_RIGHT_FILL + 0x00000000, 0x001c003c, 0x0024000c, 0x00800040, 0x02000100, 0x30002400, 0x3c003800, 0x00000000, // ICON_CURSOR_SCALE_LEFT_FILL + 0x00000000, 0x00300020, 0x10301ff8, 0x10001020, 0x10001000, 0x10001000, 0x00001fc0, 0x00000000, // ICON_UNDO_FILL + 0x00000000, 0x0c000400, 0x0c081ff8, 0x00080408, 0x00080008, 0x00080008, 0x000003f8, 0x00000000, // ICON_REDO_FILL + 0x00000000, 0x3ffc0000, 0x20042004, 0x20002000, 0x20402000, 0x3ff02060, 0x00400060, 0x00000000, // ICON_REREDO_FILL + 0x00000000, 0x3ffc0000, 0x20042004, 0x27fc2004, 0x20202000, 0x3ff82030, 0x00200030, 0x00000000, // ICON_MUTATE_FILL + 0x00000000, 0x0ff00000, 0x10081818, 0x11801008, 0x10001180, 0x18301020, 0x00300ff8, 0x00000020, // ICON_ROTATE_FILL + 0x00000000, 0x06000200, 0x26042ffc, 0x20042204, 0x20442004, 0x3ff42064, 0x00400060, 0x00000000, // ICON_REPEAT_FILL + 0x00000000, 0x30001000, 0x32107c0e, 0x00801120, 0x11200040, 0x7c0e3210, 0x10003000, 0x00000000, // ICON_SHUFFLE_FILL + 0x00000000, 0x30043ffc, 0x24042804, 0x21042204, 0x20442084, 0x20142024, 0x3ffc200c, 0x00000000, // ICON_EMPTYBOX_SMALL + 0x00000000, 0x20043ffc, 0x20042004, 0x20042004, 0x20042004, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX + 0x00000000, 0x23c43ffc, 0x23c423c4, 0x200423c4, 0x20042004, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX_TOP + 0x00000000, 0x3e043ffc, 0x3e043e04, 0x20043e04, 0x20042004, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX_TOP_RIGHT + 0x00000000, 0x20043ffc, 0x20042004, 0x3e043e04, 0x3e043e04, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX_RIGHT + 0x00000000, 0x20043ffc, 0x20042004, 0x20042004, 0x3e042004, 0x3e043e04, 0x3ffc3e04, 0x00000000, // ICON_BOX_BOTTOM_RIGHT + 0x00000000, 0x20043ffc, 0x20042004, 0x20042004, 0x23c42004, 0x23c423c4, 0x3ffc23c4, 0x00000000, // ICON_BOX_BOTTOM + 0x00000000, 0x20043ffc, 0x20042004, 0x20042004, 0x207c2004, 0x207c207c, 0x3ffc207c, 0x00000000, // ICON_BOX_BOTTOM_LEFT + 0x00000000, 0x20043ffc, 0x20042004, 0x207c207c, 0x207c207c, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX_LEFT + 0x00000000, 0x207c3ffc, 0x207c207c, 0x2004207c, 0x20042004, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX_TOP_LEFT + 0x00000000, 0x20043ffc, 0x20042004, 0x23c423c4, 0x23c423c4, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX_CENTER + 0x7ffe0000, 0x40024002, 0x47e24182, 0x4ff247e2, 0x47e24ff2, 0x418247e2, 0x40024002, 0x00007ffe, // ICON_BOX_CIRCLE_MASK + 0x7fff0000, 0x40014001, 0x40014001, 0x49555ddd, 0x4945495d, 0x400149c5, 0x40014001, 0x00007fff, // ICON_POT + 0x7ffe0000, 0x53327332, 0x44ce4cce, 0x41324332, 0x404e40ce, 0x48125432, 0x4006540e, 0x00007ffe, // ICON_ALPHA_MULTIPLY + 0x7ffe0000, 0x53327332, 0x44ce4cce, 0x41324332, 0x5c4e40ce, 0x44124432, 0x40065c0e, 0x00007ffe, // ICON_ALPHA_CLEAR + 0x7ffe0000, 0x42fe417e, 0x42fe417e, 0x42fe417e, 0x42fe417e, 0x42fe417e, 0x42fe417e, 0x00007ffe, // ICON_DITHERING + 0x07fe0000, 0x1ffa0002, 0x7fea000a, 0x402a402a, 0x5b2a512a, 0x5128552a, 0x40205128, 0x00007fe0, // ICON_MIPMAPS + 0x00000000, 0x1ff80000, 0x12481248, 0x12481ff8, 0x1ff81248, 0x12481248, 0x00001ff8, 0x00000000, // ICON_BOX_GRID + 0x12480000, 0x7ffe1248, 0x12481248, 0x12487ffe, 0x7ffe1248, 0x12481248, 0x12487ffe, 0x00001248, // ICON_GRID + 0x00000000, 0x1c380000, 0x1c3817e8, 0x08100810, 0x08100810, 0x17e81c38, 0x00001c38, 0x00000000, // ICON_BOX_CORNERS_SMALL + 0x700e0000, 0x700e5ffa, 0x20042004, 0x20042004, 0x20042004, 0x20042004, 0x5ffa700e, 0x0000700e, // ICON_BOX_CORNERS_BIG + 0x3f7e0000, 0x21422142, 0x21422142, 0x00003f7e, 0x21423f7e, 0x21422142, 0x3f7e2142, 0x00000000, // ICON_FOUR_BOXES + 0x00000000, 0x3bb80000, 0x3bb83bb8, 0x3bb80000, 0x3bb83bb8, 0x3bb80000, 0x3bb83bb8, 0x00000000, // ICON_GRID_FILL + 0x7ffe0000, 0x7ffe7ffe, 0x77fe7000, 0x77fe77fe, 0x777e7700, 0x777e777e, 0x777e777e, 0x0000777e, // ICON_BOX_MULTISIZE + 0x781e0000, 0x40024002, 0x00004002, 0x01800000, 0x00000180, 0x40020000, 0x40024002, 0x0000781e, // ICON_ZOOM_SMALL + 0x781e0000, 0x40024002, 0x00004002, 0x03c003c0, 0x03c003c0, 0x40020000, 0x40024002, 0x0000781e, // ICON_ZOOM_MEDIUM + 0x781e0000, 0x40024002, 0x07e04002, 0x07e007e0, 0x07e007e0, 0x400207e0, 0x40024002, 0x0000781e, // ICON_ZOOM_BIG + 0x781e0000, 0x5ffa4002, 0x1ff85ffa, 0x1ff81ff8, 0x1ff81ff8, 0x5ffa1ff8, 0x40025ffa, 0x0000781e, // ICON_ZOOM_ALL + 0x00000000, 0x2004381c, 0x00002004, 0x00000000, 0x00000000, 0x20040000, 0x381c2004, 0x00000000, // ICON_ZOOM_CENTER + 0x00000000, 0x1db80000, 0x10081008, 0x10080000, 0x00001008, 0x10081008, 0x00001db8, 0x00000000, // ICON_BOX_DOTS_SMALL + 0x35560000, 0x00002002, 0x00002002, 0x00002002, 0x00002002, 0x00002002, 0x35562002, 0x00000000, // ICON_BOX_DOTS_BIG + 0x7ffe0000, 0x40024002, 0x48124ff2, 0x49924812, 0x48124992, 0x4ff24812, 0x40024002, 0x00007ffe, // ICON_BOX_CONCENTRIC + 0x00000000, 0x10841ffc, 0x10841084, 0x1ffc1084, 0x10841084, 0x10841084, 0x00001ffc, 0x00000000, // ICON_BOX_GRID_BIG + 0x00000000, 0x00000000, 0x10000000, 0x04000800, 0x01040200, 0x00500088, 0x00000020, 0x00000000, // ICON_OK_TICK + 0x00000000, 0x10080000, 0x04200810, 0x01800240, 0x02400180, 0x08100420, 0x00001008, 0x00000000, // ICON_CROSS + 0x00000000, 0x02000000, 0x00800100, 0x00200040, 0x00200010, 0x00800040, 0x02000100, 0x00000000, // ICON_ARROW_LEFT + 0x00000000, 0x00400000, 0x01000080, 0x04000200, 0x04000800, 0x01000200, 0x00400080, 0x00000000, // ICON_ARROW_RIGHT + 0x00000000, 0x00000000, 0x00000000, 0x08081004, 0x02200410, 0x00800140, 0x00000000, 0x00000000, // ICON_ARROW_DOWN + 0x00000000, 0x00000000, 0x01400080, 0x04100220, 0x10040808, 0x00000000, 0x00000000, 0x00000000, // ICON_ARROW_UP + 0x00000000, 0x02000000, 0x03800300, 0x03e003c0, 0x03e003f0, 0x038003c0, 0x02000300, 0x00000000, // ICON_ARROW_LEFT_FILL + 0x00000000, 0x00400000, 0x01c000c0, 0x07c003c0, 0x07c00fc0, 0x01c003c0, 0x004000c0, 0x00000000, // ICON_ARROW_RIGHT_FILL + 0x00000000, 0x00000000, 0x00000000, 0x0ff81ffc, 0x03e007f0, 0x008001c0, 0x00000000, 0x00000000, // ICON_ARROW_DOWN_FILL + 0x00000000, 0x00000000, 0x01c00080, 0x07f003e0, 0x1ffc0ff8, 0x00000000, 0x00000000, 0x00000000, // ICON_ARROW_UP_FILL + 0x00000000, 0x18a008c0, 0x32881290, 0x24822686, 0x26862482, 0x12903288, 0x08c018a0, 0x00000000, // ICON_AUDIO + 0x00000000, 0x04800780, 0x004000c0, 0x662000f0, 0x08103c30, 0x130a0e18, 0x0000318e, 0x00000000, // ICON_FX + 0x00000000, 0x00800000, 0x08880888, 0x2aaa0a8a, 0x0a8a2aaa, 0x08880888, 0x00000080, 0x00000000, // ICON_WAVE + 0x00000000, 0x00600000, 0x01080090, 0x02040108, 0x42044204, 0x24022402, 0x00001800, 0x00000000, // ICON_WAVE_SINUS + 0x00000000, 0x07f80000, 0x04080408, 0x04080408, 0x04080408, 0x7c0e0408, 0x00000000, 0x00000000, // ICON_WAVE_SQUARE + 0x00000000, 0x00000000, 0x00a00040, 0x22084110, 0x08021404, 0x00000000, 0x00000000, 0x00000000, // ICON_WAVE_TRIANGULAR + 0x00000000, 0x00000000, 0x04200000, 0x01800240, 0x02400180, 0x00000420, 0x00000000, 0x00000000, // ICON_CROSS_SMALL + 0x00000000, 0x18380000, 0x12281428, 0x10a81128, 0x112810a8, 0x14281228, 0x00001838, 0x00000000, // ICON_PLAYER_PREVIOUS + 0x00000000, 0x18000000, 0x11801600, 0x10181060, 0x10601018, 0x16001180, 0x00001800, 0x00000000, // ICON_PLAYER_PLAY_BACK + 0x00000000, 0x00180000, 0x01880068, 0x18080608, 0x06081808, 0x00680188, 0x00000018, 0x00000000, // ICON_PLAYER_PLAY + 0x00000000, 0x1e780000, 0x12481248, 0x12481248, 0x12481248, 0x12481248, 0x00001e78, 0x00000000, // ICON_PLAYER_PAUSE + 0x00000000, 0x1ff80000, 0x10081008, 0x10081008, 0x10081008, 0x10081008, 0x00001ff8, 0x00000000, // ICON_PLAYER_STOP + 0x00000000, 0x1c180000, 0x14481428, 0x15081488, 0x14881508, 0x14281448, 0x00001c18, 0x00000000, // ICON_PLAYER_NEXT + 0x00000000, 0x03c00000, 0x08100420, 0x10081008, 0x10081008, 0x04200810, 0x000003c0, 0x00000000, // ICON_PLAYER_RECORD + 0x00000000, 0x0c3007e0, 0x13c81818, 0x14281668, 0x14281428, 0x1c381c38, 0x08102244, 0x00000000, // ICON_MAGNET + 0x07c00000, 0x08200820, 0x3ff80820, 0x23882008, 0x21082388, 0x20082108, 0x1ff02008, 0x00000000, // ICON_LOCK_CLOSE + 0x07c00000, 0x08000800, 0x3ff80800, 0x23882008, 0x21082388, 0x20082108, 0x1ff02008, 0x00000000, // ICON_LOCK_OPEN + 0x01c00000, 0x0c180770, 0x3086188c, 0x60832082, 0x60034781, 0x30062002, 0x0c18180c, 0x01c00770, // ICON_CLOCK + 0x0a200000, 0x1b201b20, 0x04200e20, 0x04200420, 0x04700420, 0x0e700e70, 0x0e700e70, 0x04200e70, // ICON_TOOLS + 0x01800000, 0x3bdc318c, 0x0ff01ff8, 0x7c3e1e78, 0x1e787c3e, 0x1ff80ff0, 0x318c3bdc, 0x00000180, // ICON_GEAR + 0x01800000, 0x3ffc318c, 0x1c381ff8, 0x781e1818, 0x1818781e, 0x1ff81c38, 0x318c3ffc, 0x00000180, // ICON_GEAR_BIG + 0x00000000, 0x08080ff8, 0x08081ffc, 0x0aa80aa8, 0x0aa80aa8, 0x0aa80aa8, 0x08080aa8, 0x00000ff8, // ICON_BIN + 0x00000000, 0x00000000, 0x20043ffc, 0x08043f84, 0x04040f84, 0x04040784, 0x000007fc, 0x00000000, // ICON_HAND_POINTER + 0x00000000, 0x24400400, 0x00001480, 0x6efe0e00, 0x00000e00, 0x24401480, 0x00000400, 0x00000000, // ICON_LASER + 0x00000000, 0x03c00000, 0x08300460, 0x11181118, 0x11181118, 0x04600830, 0x000003c0, 0x00000000, // ICON_COIN + 0x00000000, 0x10880080, 0x06c00810, 0x366c07e0, 0x07e00240, 0x00001768, 0x04200240, 0x00000000, // ICON_EXPLOSION + 0x00000000, 0x3d280000, 0x2528252c, 0x3d282528, 0x05280528, 0x05e80528, 0x00000000, 0x00000000, // ICON_1UP + 0x01800000, 0x03c003c0, 0x018003c0, 0x0ff007e0, 0x0bd00bd0, 0x0a500bd0, 0x02400240, 0x02400240, // ICON_PLAYER + 0x01800000, 0x03c003c0, 0x118013c0, 0x03c81ff8, 0x07c003c8, 0x04400440, 0x0c080478, 0x00000000, // ICON_PLAYER_JUMP + 0x3ff80000, 0x30183ff8, 0x30183018, 0x3ff83ff8, 0x03000300, 0x03c003c0, 0x03e00300, 0x000003e0, // ICON_KEY + 0x3ff80000, 0x3ff83ff8, 0x33983ff8, 0x3ff83398, 0x3ff83ff8, 0x00000540, 0x0fe00aa0, 0x00000fe0, // ICON_DEMON + 0x00000000, 0x0ff00000, 0x20041008, 0x25442004, 0x10082004, 0x06000bf0, 0x00000300, 0x00000000, // ICON_TEXT_POPUP + 0x00000000, 0x11440000, 0x07f00be8, 0x1c1c0e38, 0x1c1c0c18, 0x07f00e38, 0x11440be8, 0x00000000, // ICON_GEAR_EX + 0x00000000, 0x20080000, 0x0c601010, 0x07c00fe0, 0x07c007c0, 0x0c600fe0, 0x20081010, 0x00000000, // ICON_CRACK + 0x00000000, 0x20080000, 0x0c601010, 0x04400fe0, 0x04405554, 0x0c600fe0, 0x20081010, 0x00000000, // ICON_CRACK_POINTS + 0x00000000, 0x00800080, 0x01c001c0, 0x1ffc3ffe, 0x03e007f0, 0x07f003e0, 0x0c180770, 0x00000808, // ICON_STAR + 0x0ff00000, 0x08180810, 0x08100818, 0x0a100810, 0x08180810, 0x08100818, 0x08100810, 0x00001ff8, // ICON_DOOR + 0x0ff00000, 0x08100810, 0x08100810, 0x10100010, 0x4f902010, 0x10102010, 0x08100010, 0x00000ff0, // ICON_EXIT + 0x00040000, 0x001f000e, 0x0ef40004, 0x12f41284, 0x0ef41214, 0x10040004, 0x7ffc3004, 0x10003000, // ICON_MODE_2D + 0x78040000, 0x501f600e, 0x0ef44004, 0x12f41284, 0x0ef41284, 0x10140004, 0x7ffc300c, 0x10003000, // ICON_MODE_3D + 0x7fe00000, 0x50286030, 0x47fe4804, 0x44224402, 0x44224422, 0x241275e2, 0x0c06140a, 0x000007fe, // ICON_CUBE + 0x7fe00000, 0x5ff87ff0, 0x47fe4ffc, 0x44224402, 0x44224422, 0x241275e2, 0x0c06140a, 0x000007fe, // ICON_CUBE_FACE_TOP + 0x7fe00000, 0x50386030, 0x47fe483c, 0x443e443e, 0x443e443e, 0x241e75fe, 0x0c06140e, 0x000007fe, // ICON_CUBE_FACE_LEFT + 0x7fe00000, 0x50286030, 0x47fe4804, 0x47fe47fe, 0x47fe47fe, 0x27fe77fe, 0x0ffe17fe, 0x000007fe, // ICON_CUBE_FACE_FRONT + 0x7fe00000, 0x50286030, 0x47fe4804, 0x44224402, 0x44224422, 0x3ff27fe2, 0x0ffe1ffa, 0x000007fe, // ICON_CUBE_FACE_BOTTOM + 0x7fe00000, 0x70286030, 0x7ffe7804, 0x7c227c02, 0x7c227c22, 0x3c127de2, 0x0c061c0a, 0x000007fe, // ICON_CUBE_FACE_RIGHT + 0x7fe00000, 0x7fe87ff0, 0x7ffe7fe4, 0x7fe27fe2, 0x7fe27fe2, 0x24127fe2, 0x0c06140a, 0x000007fe, // ICON_CUBE_FACE_BACK + 0x00000000, 0x2a0233fe, 0x22022602, 0x22022202, 0x2a022602, 0x00a033fe, 0x02080110, 0x00000000, // ICON_CAMERA + 0x00000000, 0x200c3ffc, 0x000c000c, 0x3ffc000c, 0x30003000, 0x30003000, 0x3ffc3004, 0x00000000, // ICON_SPECIAL + 0x00000000, 0x0022003e, 0x012201e2, 0x0100013e, 0x01000100, 0x79000100, 0x4f004900, 0x00007800, // ICON_LINK_NET + 0x00000000, 0x44007c00, 0x45004600, 0x00627cbe, 0x00620022, 0x45007cbe, 0x44004600, 0x00007c00, // ICON_LINK_BOXES + 0x00000000, 0x0044007c, 0x0010007c, 0x3f100010, 0x3f1021f0, 0x3f100010, 0x3f0021f0, 0x00000000, // ICON_LINK_MULTI + 0x00000000, 0x0044007c, 0x00440044, 0x0010007c, 0x00100010, 0x44107c10, 0x440047f0, 0x00007c00, // ICON_LINK + 0x00000000, 0x0044007c, 0x00440044, 0x0000007c, 0x00000010, 0x44007c10, 0x44004550, 0x00007c00, // ICON_LINK_BROKE + 0x02a00000, 0x22a43ffc, 0x20042004, 0x20042ff4, 0x20042ff4, 0x20042ff4, 0x20042004, 0x00003ffc, // ICON_TEXT_NOTES + 0x3ffc0000, 0x20042004, 0x245e27c4, 0x27c42444, 0x2004201e, 0x201e2004, 0x20042004, 0x00003ffc, // ICON_NOTEBOOK + 0x00000000, 0x07e00000, 0x04200420, 0x24243ffc, 0x24242424, 0x24242424, 0x3ffc2424, 0x00000000, // ICON_SUITCASE + 0x00000000, 0x0fe00000, 0x08200820, 0x40047ffc, 0x7ffc5554, 0x40045554, 0x7ffc4004, 0x00000000, // ICON_SUITCASE_ZIP + 0x00000000, 0x20043ffc, 0x3ffc2004, 0x13c81008, 0x100813c8, 0x10081008, 0x1ff81008, 0x00000000, // ICON_MAILBOX + 0x00000000, 0x40027ffe, 0x5ffa5ffa, 0x5ffa5ffa, 0x40025ffa, 0x03c07ffe, 0x1ff81ff8, 0x00000000, // ICON_MONITOR + 0x0ff00000, 0x6bfe7ffe, 0x7ffe7ffe, 0x68167ffe, 0x08106816, 0x08100810, 0x0ff00810, 0x00000000, // ICON_PRINTER + 0x3ff80000, 0xfffe2008, 0x870a8002, 0x904a888a, 0x904a904a, 0x870a888a, 0xfffe8002, 0x00000000, // ICON_PHOTO_CAMERA + 0x0fc00000, 0xfcfe0cd8, 0x8002fffe, 0x84428382, 0x84428442, 0x80028382, 0xfffe8002, 0x00000000, // ICON_PHOTO_CAMERA_FLASH + 0x00000000, 0x02400180, 0x08100420, 0x20041008, 0x23c42004, 0x22442244, 0x3ffc2244, 0x00000000, // ICON_HOUSE + 0x00000000, 0x1c700000, 0x3ff83ef8, 0x3ff83ff8, 0x0fe01ff0, 0x038007c0, 0x00000100, 0x00000000, // ICON_HEART + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80000000, 0xe000c000, // ICON_CORNER + 0x00000000, 0x14001c00, 0x15c01400, 0x15401540, 0x155c1540, 0x15541554, 0x1ddc1554, 0x00000000, // ICON_VERTICAL_BARS + 0x00000000, 0x03000300, 0x1b001b00, 0x1b601b60, 0x1b6c1b60, 0x1b6c1b6c, 0x1b6c1b6c, 0x00000000, // ICON_VERTICAL_BARS_FILL + 0x00000000, 0x00000000, 0x403e7ffe, 0x7ffe403e, 0x7ffe0000, 0x43fe43fe, 0x00007ffe, 0x00000000, // ICON_LIFE_BARS + 0x7ffc0000, 0x43844004, 0x43844284, 0x43844004, 0x42844284, 0x42844284, 0x40044384, 0x00007ffc, // ICON_INFO + 0x40008000, 0x10002000, 0x04000800, 0x01000200, 0x00400080, 0x00100020, 0x00040008, 0x00010002, // ICON_CROSSLINE + 0x00000000, 0x1ff01ff0, 0x18301830, 0x1f001830, 0x03001f00, 0x00000300, 0x03000300, 0x00000000, // ICON_HELP + 0x3ff00000, 0x2abc3550, 0x2aac3554, 0x2aac3554, 0x2aac3554, 0x2aac3554, 0x2aac3554, 0x00003ffc, // ICON_FILETYPE_ALPHA + 0x3ff00000, 0x201c2010, 0x22442184, 0x28142424, 0x29942814, 0x2ff42994, 0x20042004, 0x00003ffc, // ICON_FILETYPE_HOME + 0x07fe0000, 0x04020402, 0x7fe20402, 0x44224422, 0x44224422, 0x402047fe, 0x40204020, 0x00007fe0, // ICON_LAYERS_VISIBLE + 0x07fe0000, 0x04020402, 0x7c020402, 0x44024402, 0x44024402, 0x402047fe, 0x40204020, 0x00007fe0, // ICON_LAYERS + 0x00000000, 0x40027ffe, 0x7ffe4002, 0x40024002, 0x40024002, 0x40024002, 0x7ffe4002, 0x00000000, // ICON_WINDOW + 0x09100000, 0x09f00910, 0x09100910, 0x00000910, 0x24a2779e, 0x27a224a2, 0x709e20a2, 0x00000000, // ICON_HIDPI + 0x3ff00000, 0x201c2010, 0x2a842e84, 0x2e842a84, 0x2ba42004, 0x2aa42aa4, 0x20042ba4, 0x00003ffc, // ICON_FILETYPE_BINARY + 0x00000000, 0x00000000, 0x00120012, 0x4a5e4bd2, 0x485233d2, 0x00004bd2, 0x00000000, 0x00000000, // ICON_HEX + 0x01800000, 0x381c0660, 0x23c42004, 0x23c42044, 0x13c82204, 0x08101008, 0x02400420, 0x00000180, // ICON_SHIELD + 0x007e0000, 0x20023fc2, 0x40227fe2, 0x400a403a, 0x400a400a, 0x400a400a, 0x4008400e, 0x00007ff8, // ICON_FILE_NEW + 0x00000000, 0x0042007e, 0x40027fc2, 0x44024002, 0x5f024402, 0x44024402, 0x7ffe4002, 0x00000000, // ICON_FOLDER_ADD + 0x44220000, 0x12482244, 0xf3cf0000, 0x14280420, 0x48122424, 0x08100810, 0x1ff81008, 0x03c00420, // ICON_ALARM + 0x0aa00000, 0x1ff80aa0, 0x1068700e, 0x1008706e, 0x1008700e, 0x1008700e, 0x0aa01ff8, 0x00000aa0, // ICON_CPU + 0x07e00000, 0x04201db8, 0x04a01c38, 0x04a01d38, 0x04a01d38, 0x04a01d38, 0x04201d38, 0x000007e0, // ICON_ROM + 0x00000000, 0x03c00000, 0x3c382ff0, 0x3c04380c, 0x01800000, 0x03c003c0, 0x00000180, 0x00000000, // ICON_STEP_OVER + 0x01800000, 0x01800180, 0x01800180, 0x03c007e0, 0x00000180, 0x01800000, 0x03c003c0, 0x00000180, // ICON_STEP_INTO + 0x01800000, 0x07e003c0, 0x01800180, 0x01800180, 0x00000180, 0x01800000, 0x03c003c0, 0x00000180, // ICON_STEP_OUT + 0x00000000, 0x0ff003c0, 0x181c1c34, 0x303c301c, 0x30003000, 0x1c301800, 0x03c00ff0, 0x00000000, // ICON_RESTART + 0x00000000, 0x00000000, 0x07e003c0, 0x0ff00ff0, 0x0ff00ff0, 0x03c007e0, 0x00000000, 0x00000000, // ICON_BREAKPOINT_ON + 0x00000000, 0x00000000, 0x042003c0, 0x08100810, 0x08100810, 0x03c00420, 0x00000000, 0x00000000, // ICON_BREAKPOINT_OFF + 0x00000000, 0x00000000, 0x1ff81ff8, 0x1ff80000, 0x00001ff8, 0x1ff81ff8, 0x00000000, 0x00000000, // ICON_BURGER_MENU + 0x00000000, 0x00000000, 0x00880070, 0x0c880088, 0x1e8810f8, 0x3e881288, 0x00000000, 0x00000000, // ICON_CASE_SENSITIVE + 0x00000000, 0x02000000, 0x07000a80, 0x07001fc0, 0x02000a80, 0x00300030, 0x00000000, 0x00000000, // ICON_REG_EXP + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_217 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_218 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_219 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_220 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_221 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_222 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_223 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_224 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_225 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_226 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_227 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_228 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_229 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_230 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_231 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_232 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_233 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_234 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_235 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_236 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_237 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_238 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_239 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_240 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_241 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_242 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_243 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_244 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_245 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_246 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_247 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_248 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_249 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_250 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_251 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_252 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_253 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_254 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_255 +}; diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/icons/raygui_icons.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/icons/raygui_icons.png new file mode 100644 index 0000000..bb555f7 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/icons/raygui_icons.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/icons/raygui_icons.rgi b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/icons/raygui_icons.rgi new file mode 100644 index 0000000..949dbea Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/icons/raygui_icons.rgi differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/images/raygui_controls_panel.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/images/raygui_controls_panel.png new file mode 100644 index 0000000..50dbc9c Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/images/raygui_controls_panel.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/images/raygui_ricons.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/images/raygui_ricons.png new file mode 100644 index 0000000..d269476 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/images/raygui_ricons.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/images/raygui_style_table_multi.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/images/raygui_style_table_multi.png new file mode 100644 index 0000000..ab41b5d Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/images/raygui_style_table_multi.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/images/rguiicons_v100.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/images/rguiicons_v100.png new file mode 100644 index 0000000..4d29b1e Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/images/rguiicons_v100.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/images/rguilayout_v220.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/images/rguilayout_v220.png new file mode 100644 index 0000000..2318fd0 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/images/rguilayout_v220.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/images/rguistyler_v210.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/images/rguistyler_v210.png new file mode 100644 index 0000000..abf4838 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/images/rguistyler_v210.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/images/rguistyler_v300.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/images/rguistyler_v300.png new file mode 100644 index 0000000..82bbcb0 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/images/rguistyler_v300.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui.ico b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui.ico new file mode 100644 index 0000000..cc8498b Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui.ico differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_128x128.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_128x128.png new file mode 100644 index 0000000..d22ea7d Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_128x128.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_16x16.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_16x16.png new file mode 100644 index 0000000..0e9c485 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_16x16.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_24x24.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_24x24.png new file mode 100644 index 0000000..4cea8e0 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_24x24.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_256x256.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_256x256.png new file mode 100644 index 0000000..75a76a0 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_256x256.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_32x32.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_32x32.png new file mode 100644 index 0000000..d56878a Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_32x32.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_48x48.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_48x48.png new file mode 100644 index 0000000..863e07f Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_48x48.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_512x512.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_512x512.png new file mode 100644 index 0000000..bde5703 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_512x512.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_64x64.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_64x64.png new file mode 100644 index 0000000..c72b09d Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_64x64.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_96x96.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_96x96.png new file mode 100644 index 0000000..d0098c7 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/logo/raygui_96x96.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/CMake/CMakeLists.txt b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/CMake/CMakeLists.txt new file mode 100644 index 0000000..046f6e3 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/CMake/CMakeLists.txt @@ -0,0 +1,76 @@ +cmake_minimum_required(VERSION 3.11) +set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) + +project(raygui C) + +# Config options +option(BUILD_RAYGUI_EXAMPLES "Build the examples." OFF) + +# Force building examples if building in the root as standalone. +if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) + set(BUILD_RAYGUI_EXAMPLES TRUE) +endif() + +# Directory Variables +set(RAYGUI_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../..) +set(RAYGUI_SRC ${RAYGUI_ROOT}/src) +set(RAYGUI_EXAMPLES ${RAYGUI_ROOT}/examples) + +# raygui +add_library(raygui INTERFACE) +file(GLOB sources ${RAYGUI_SRC}/*.h) +set(RAYGUI_HEADERS ${sources}) +install(FILES + ${RAYGUI_HEADERS} DESTINATION include +) +target_include_directories(raygui INTERFACE ${RAYGUI_SRC}) + +# Examples +if(${BUILD_RAYGUI_EXAMPLES}) + find_package(Raylib) + + # Get the sources together + set(example_dirs + animation_curve + controls_test_suite + custom_file_dialog + custom_sliders + image_exporter + image_importer_raw + portable_window + property_list + scroll_panel + style_selector + ) + + set(example_sources) + set(example_resources) + + foreach(example_dir ${example_dirs}) + # Get the .c files + file(GLOB sources ${RAYGUI_EXAMPLES}/${example_dir}/*.c) + list(APPEND example_sources ${sources}) + + # Any any resources + file(GLOB resources ${RAYGUI_EXAMPLES}/${example_dir}/resources/*) + list(APPEND example_resources ${resources}) + endforeach() + + # Do each example + foreach(example_source ${example_sources}) + # Create the basename for the example + get_filename_component(example_name ${example_source} NAME) + string(REPLACE ".c" "${OUTPUT_EXT}" example_name ${example_name}) + + # Setup the example + add_executable(${example_name} ${example_source}) + + target_link_libraries(${example_name} PUBLIC raylib raygui) + + string(REGEX MATCH ".*/.*/" resources_dir ${example_source}) + string(APPEND resources_dir "resources") + endforeach() + + # Copy all of the resource files to the destination + file(COPY ${example_resources} DESTINATION "resources/") +endif() diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/CMake/README.md b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/CMake/README.md new file mode 100644 index 0000000..b384a8d --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/CMake/README.md @@ -0,0 +1,13 @@ +# raygui CMake Definitions + +This provides CMake definition files for raygui. + +## Usage + +``` +cd projects/CMake +mkdir build +cd build +cmake .. +make +``` \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/CMake/cmake/FindRaylib.cmake b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/CMake/cmake/FindRaylib.cmake new file mode 100644 index 0000000..c8c3a64 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/CMake/cmake/FindRaylib.cmake @@ -0,0 +1,17 @@ +find_package(raylib 4.5.0 QUIET CONFIG) +if (NOT raylib_FOUND) + include(FetchContent) + FetchContent_Declare( + raylib + GIT_REPOSITORY https://github.com/raysan5/raylib.git + GIT_TAG 4.5.0 + ) + FetchContent_GetProperties(raylib) + if (NOT raylib_POPULATED) # Have we downloaded raylib yet? + set(FETCHCONTENT_QUIET NO) + FetchContent_Populate(raylib) + set(BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) # don't build the supplied examples + set(BUILD_GAMES OFF CACHE BOOL "" FORCE) # or games + add_subdirectory(${raylib_SOURCE_DIR} ${raylib_BINARY_DIR}) + endif() +endif() diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/animation_curve.vcxproj b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/animation_curve.vcxproj new file mode 100644 index 0000000..8e90f64 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/animation_curve.vcxproj @@ -0,0 +1,363 @@ + + + + + Debug.DLL + Win32 + + + Debug.DLL + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release.DLL + Win32 + + + Release.DLL + x64 + + + Release + Win32 + + + Release + x64 + + + + {50A98C3D-C898-4830-A00B-3F78DC2E742B} + Win32Proj + style_selector + animation_curve + 10.0 + + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + /FS %(AdditionalOptions) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + Copy Debug DLL to output directory + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + Copy Debug DLL to output directory + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + MultiThreaded + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + MultiThreaded + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + + + Copy Release DLL to output directory + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + + + Copy Release DLL to output directory + + + + + {e89d61ac-55de-4482-afd4-df7242ebc859} + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/controls_test_suite.vcxproj b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/controls_test_suite.vcxproj new file mode 100644 index 0000000..e9a5715 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/controls_test_suite.vcxproj @@ -0,0 +1,360 @@ + + + + + Debug.DLL + Win32 + + + Debug.DLL + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release.DLL + Win32 + + + Release.DLL + x64 + + + Release + Win32 + + + Release + x64 + + + + {0981CA98-E4A5-4DF1-987F-A41D09131EFC} + Win32Proj + controls_test_suite + controls_test_suite + 10.0 + + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + /FS %(AdditionalOptions) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + Copy Debug DLL to output directory + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + Copy Debug DLL to output directory + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + MultiThreaded + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + MultiThreaded + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + + + Copy Release DLL to output directory + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + + + Copy Release DLL to output directory + + + + + {e89d61ac-55de-4482-afd4-df7242ebc859} + + + + + + + + + + + + \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/custom_file_dialog.vcxproj b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/custom_file_dialog.vcxproj new file mode 100644 index 0000000..fcf7fe8 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/custom_file_dialog.vcxproj @@ -0,0 +1,363 @@ + + + + + Debug.DLL + Win32 + + + Debug.DLL + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release.DLL + Win32 + + + Release.DLL + x64 + + + Release + Win32 + + + Release + x64 + + + + {E1CF5310-BCF6-4063-861D-EDFF65D9FE2A} + Win32Proj + custom_file_dialog + custom_file_dialog + 10.0 + + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + /FS %(AdditionalOptions) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + Copy Debug DLL to output directory + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + Copy Debug DLL to output directory + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + MultiThreaded + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + MultiThreaded + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + + + Copy Release DLL to output directory + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + + + Copy Release DLL to output directory + + + + + {e89d61ac-55de-4482-afd4-df7242ebc859} + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/image_exporter.vcxproj b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/image_exporter.vcxproj new file mode 100644 index 0000000..a1bc4db --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/image_exporter.vcxproj @@ -0,0 +1,360 @@ + + + + + Debug.DLL + Win32 + + + Debug.DLL + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release.DLL + Win32 + + + Release.DLL + x64 + + + Release + Win32 + + + Release + x64 + + + + {67B2B88C-EA52-403F-A596-5107008C71F2} + Win32Proj + image_exporter + image_exporter + 10.0 + + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + /FS %(AdditionalOptions) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + Copy Debug DLL to output directory + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + Copy Debug DLL to output directory + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + MultiThreaded + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + MultiThreaded + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + + + Copy Release DLL to output directory + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + + + Copy Release DLL to output directory + + + + + {e89d61ac-55de-4482-afd4-df7242ebc859} + + + + + + + + + + + + \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/image_importer_raw.vcxproj b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/image_importer_raw.vcxproj new file mode 100644 index 0000000..69f2a90 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/image_importer_raw.vcxproj @@ -0,0 +1,360 @@ + + + + + Debug.DLL + Win32 + + + Debug.DLL + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release.DLL + Win32 + + + Release.DLL + x64 + + + Release + Win32 + + + Release + x64 + + + + {6628D753-270D-418D-A87F-6E2E63B9E3D0} + Win32Proj + image_importer_raw + image_importer_raw + 10.0 + + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + /FS %(AdditionalOptions) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + Copy Debug DLL to output directory + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + Copy Debug DLL to output directory + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + MultiThreaded + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + MultiThreaded + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + + + Copy Release DLL to output directory + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + + + Copy Release DLL to output directory + + + + + {e89d61ac-55de-4482-afd4-df7242ebc859} + + + + + + + + + + + + \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/portable_window.vcxproj b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/portable_window.vcxproj new file mode 100644 index 0000000..508ac84 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/portable_window.vcxproj @@ -0,0 +1,360 @@ + + + + + Debug.DLL + Win32 + + + Debug.DLL + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release.DLL + Win32 + + + Release.DLL + x64 + + + Release + Win32 + + + Release + x64 + + + + {FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8} + Win32Proj + portable_window + portable_window + 10.0 + + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + /FS %(AdditionalOptions) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + Copy Debug DLL to output directory + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + Copy Debug DLL to output directory + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + MultiThreaded + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + MultiThreaded + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + + + Copy Release DLL to output directory + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + + + Copy Release DLL to output directory + + + + + {e89d61ac-55de-4482-afd4-df7242ebc859} + + + + + + + + + + + + \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/property_list.vcxproj b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/property_list.vcxproj new file mode 100644 index 0000000..9bfa63f --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/property_list.vcxproj @@ -0,0 +1,360 @@ + + + + + Debug.DLL + Win32 + + + Debug.DLL + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release.DLL + Win32 + + + Release.DLL + x64 + + + Release + Win32 + + + Release + x64 + + + + {D28301C9-C293-4F41-9F58-F2609F33134E} + Win32Proj + property_list + property_list + 10.0 + + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + /FS %(AdditionalOptions) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + Copy Debug DLL to output directory + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + Copy Debug DLL to output directory + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + MultiThreaded + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + MultiThreaded + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + + + Copy Release DLL to output directory + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + + + Copy Release DLL to output directory + + + + + {e89d61ac-55de-4482-afd4-df7242ebc859} + + + + + + + + + + + + \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/scroll_panel.vcxproj b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/scroll_panel.vcxproj new file mode 100644 index 0000000..365d029 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/scroll_panel.vcxproj @@ -0,0 +1,360 @@ + + + + + Debug.DLL + Win32 + + + Debug.DLL + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release.DLL + Win32 + + + Release.DLL + x64 + + + Release + Win32 + + + Release + x64 + + + + {56EE93DF-A3AF-4856-A4EC-E27358C6DA87} + Win32Proj + scroll_panel + scroll_panel + 10.0 + + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + /FS %(AdditionalOptions) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + Copy Debug DLL to output directory + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + Copy Debug DLL to output directory + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + MultiThreaded + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + MultiThreaded + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + + + Copy Release DLL to output directory + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + + + Copy Release DLL to output directory + + + + + {e89d61ac-55de-4482-afd4-df7242ebc859} + + + + + + + + + + + + \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/style_selector.vcxproj b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/style_selector.vcxproj new file mode 100644 index 0000000..90da635 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/style_selector.vcxproj @@ -0,0 +1,360 @@ + + + + + Debug.DLL + Win32 + + + Debug.DLL + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release.DLL + Win32 + + + Release.DLL + x64 + + + Release + Win32 + + + Release + x64 + + + + {BCF5E746-FDBF-4CAC-9B95-44FE9A498430} + Win32Proj + style_selector + style_selector + 10.0 + + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + /FS %(AdditionalOptions) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + Copy Debug DLL to output directory + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + Copy Debug DLL to output directory + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + MultiThreaded + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + MultiThreaded + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + + + Copy Release DLL to output directory + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + $(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + + + Copy Release DLL to output directory + + + + + {e89d61ac-55de-4482-afd4-df7242ebc859} + + + + + + + + + + + + \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/test.props b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/test.props new file mode 100644 index 0000000..664c501 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/examples/test.props @@ -0,0 +1,27 @@ +# +# Property types: +# b // Bool +# i // Int +# f // Float +# t // Text +# l // Select +# g // Section (Group) +# v2 // Vector 2D +# v3 // Vector 3D +# v4 // Vector 4D +# r // Rectangle +# c // Color +# + +b Bool 0 1 +g #102#SECTION 0 2 +i Int 0 123 0 0 1 +f Float 0 0.990000 0.000000 0.000000 1.000000 3 +t Text 0 Hello! 30 +l Select 0 ONE;TWO;THREE;FOUR 0 +i Int Range 0 32 0 100 1 +r Rect 0 0 0 100 200 +v2 Vec2 0 20.000000 20.000000 +v3 Vec3 0 12.000000 13.000000 14.000000 +v4 Vec4 0 14.000000 13.000000 14.000000 15.000000 +c Color 0 0 255 0 255 diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/raygui.sln b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/raygui.sln new file mode 100644 index 0000000..e6c7b56 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/raygui.sln @@ -0,0 +1,218 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31912.275 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "controls_test_suite", "examples\controls_test_suite.vcxproj", "{0981CA98-E4A5-4DF1-987F-A41D09131EFC}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "raylib", "raylib\raylib.vcxproj", "{E89D61AC-55DE-4482-AFD4-DF7242EBC859}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "custom_file_dialog", "examples\custom_file_dialog.vcxproj", "{E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "image_exporter", "examples\image_exporter.vcxproj", "{67B2B88C-EA52-403F-A596-5107008C71F2}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "image_importer_raw", "examples\image_importer_raw.vcxproj", "{6628D753-270D-418D-A87F-6E2E63B9E3D0}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "portable_window", "examples\portable_window.vcxproj", "{FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "property_list", "examples\property_list.vcxproj", "{D28301C9-C293-4F41-9F58-F2609F33134E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "scroll_panel", "examples\scroll_panel.vcxproj", "{56EE93DF-A3AF-4856-A4EC-E27358C6DA87}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "examples", "examples", "{5DC256E9-D698-4D07-8AD7-DFDAE9125DE3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "style_selector", "examples\style_selector.vcxproj", "{BCF5E746-FDBF-4CAC-9B95-44FE9A498430}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "animation_curve", "examples\animation_curve.vcxproj", "{50A98C3D-C898-4830-A00B-3F78DC2E742B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug.DLL|x64 = Debug.DLL|x64 + Debug.DLL|x86 = Debug.DLL|x86 + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release.DLL|x64 = Release.DLL|x64 + Release.DLL|x86 = Release.DLL|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 + {0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 + {0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 + {0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 + {0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Debug|x64.ActiveCfg = Debug|x64 + {0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Debug|x64.Build.0 = Debug|x64 + {0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Debug|x86.ActiveCfg = Debug|Win32 + {0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Debug|x86.Build.0 = Debug|Win32 + {0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 + {0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Release.DLL|x64.Build.0 = Release.DLL|x64 + {0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 + {0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Release.DLL|x86.Build.0 = Release.DLL|Win32 + {0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Release|x64.ActiveCfg = Release|x64 + {0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Release|x64.Build.0 = Release|x64 + {0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Release|x86.ActiveCfg = Release|Win32 + {0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Release|x86.Build.0 = Release|Win32 + {E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 + {E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 + {E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 + {E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 + {E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Debug|x64.ActiveCfg = Debug|x64 + {E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Debug|x64.Build.0 = Debug|x64 + {E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Debug|x86.ActiveCfg = Debug|Win32 + {E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Debug|x86.Build.0 = Debug|Win32 + {E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 + {E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Release.DLL|x64.Build.0 = Release.DLL|x64 + {E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 + {E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Release.DLL|x86.Build.0 = Release.DLL|Win32 + {E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Release|x64.ActiveCfg = Release|x64 + {E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Release|x64.Build.0 = Release|x64 + {E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Release|x86.ActiveCfg = Release|Win32 + {E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Release|x86.Build.0 = Release|Win32 + {E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 + {E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 + {E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 + {E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 + {E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Debug|x64.ActiveCfg = Debug|x64 + {E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Debug|x64.Build.0 = Debug|x64 + {E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Debug|x86.ActiveCfg = Debug|Win32 + {E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Debug|x86.Build.0 = Debug|Win32 + {E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 + {E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Release.DLL|x64.Build.0 = Release.DLL|x64 + {E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 + {E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Release.DLL|x86.Build.0 = Release.DLL|Win32 + {E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Release|x64.ActiveCfg = Release|x64 + {E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Release|x64.Build.0 = Release|x64 + {E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Release|x86.ActiveCfg = Release|Win32 + {E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Release|x86.Build.0 = Release|Win32 + {67B2B88C-EA52-403F-A596-5107008C71F2}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 + {67B2B88C-EA52-403F-A596-5107008C71F2}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 + {67B2B88C-EA52-403F-A596-5107008C71F2}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 + {67B2B88C-EA52-403F-A596-5107008C71F2}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 + {67B2B88C-EA52-403F-A596-5107008C71F2}.Debug|x64.ActiveCfg = Debug|x64 + {67B2B88C-EA52-403F-A596-5107008C71F2}.Debug|x64.Build.0 = Debug|x64 + {67B2B88C-EA52-403F-A596-5107008C71F2}.Debug|x86.ActiveCfg = Debug|Win32 + {67B2B88C-EA52-403F-A596-5107008C71F2}.Debug|x86.Build.0 = Debug|Win32 + {67B2B88C-EA52-403F-A596-5107008C71F2}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 + {67B2B88C-EA52-403F-A596-5107008C71F2}.Release.DLL|x64.Build.0 = Release.DLL|x64 + {67B2B88C-EA52-403F-A596-5107008C71F2}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 + {67B2B88C-EA52-403F-A596-5107008C71F2}.Release.DLL|x86.Build.0 = Release.DLL|Win32 + {67B2B88C-EA52-403F-A596-5107008C71F2}.Release|x64.ActiveCfg = Release|x64 + {67B2B88C-EA52-403F-A596-5107008C71F2}.Release|x64.Build.0 = Release|x64 + {67B2B88C-EA52-403F-A596-5107008C71F2}.Release|x86.ActiveCfg = Release|Win32 + {67B2B88C-EA52-403F-A596-5107008C71F2}.Release|x86.Build.0 = Release|Win32 + {6628D753-270D-418D-A87F-6E2E63B9E3D0}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 + {6628D753-270D-418D-A87F-6E2E63B9E3D0}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 + {6628D753-270D-418D-A87F-6E2E63B9E3D0}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 + {6628D753-270D-418D-A87F-6E2E63B9E3D0}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 + {6628D753-270D-418D-A87F-6E2E63B9E3D0}.Debug|x64.ActiveCfg = Debug|x64 + {6628D753-270D-418D-A87F-6E2E63B9E3D0}.Debug|x64.Build.0 = Debug|x64 + {6628D753-270D-418D-A87F-6E2E63B9E3D0}.Debug|x86.ActiveCfg = Debug|Win32 + {6628D753-270D-418D-A87F-6E2E63B9E3D0}.Debug|x86.Build.0 = Debug|Win32 + {6628D753-270D-418D-A87F-6E2E63B9E3D0}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 + {6628D753-270D-418D-A87F-6E2E63B9E3D0}.Release.DLL|x64.Build.0 = Release.DLL|x64 + {6628D753-270D-418D-A87F-6E2E63B9E3D0}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 + {6628D753-270D-418D-A87F-6E2E63B9E3D0}.Release.DLL|x86.Build.0 = Release.DLL|Win32 + {6628D753-270D-418D-A87F-6E2E63B9E3D0}.Release|x64.ActiveCfg = Release|x64 + {6628D753-270D-418D-A87F-6E2E63B9E3D0}.Release|x64.Build.0 = Release|x64 + {6628D753-270D-418D-A87F-6E2E63B9E3D0}.Release|x86.ActiveCfg = Release|Win32 + {6628D753-270D-418D-A87F-6E2E63B9E3D0}.Release|x86.Build.0 = Release|Win32 + {FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 + {FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 + {FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 + {FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 + {FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Debug|x64.ActiveCfg = Debug|x64 + {FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Debug|x64.Build.0 = Debug|x64 + {FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Debug|x86.ActiveCfg = Debug|Win32 + {FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Debug|x86.Build.0 = Debug|Win32 + {FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 + {FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Release.DLL|x64.Build.0 = Release.DLL|x64 + {FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 + {FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Release.DLL|x86.Build.0 = Release.DLL|Win32 + {FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Release|x64.ActiveCfg = Release|x64 + {FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Release|x64.Build.0 = Release|x64 + {FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Release|x86.ActiveCfg = Release|Win32 + {FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Release|x86.Build.0 = Release|Win32 + {D28301C9-C293-4F41-9F58-F2609F33134E}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 + {D28301C9-C293-4F41-9F58-F2609F33134E}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 + {D28301C9-C293-4F41-9F58-F2609F33134E}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 + {D28301C9-C293-4F41-9F58-F2609F33134E}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 + {D28301C9-C293-4F41-9F58-F2609F33134E}.Debug|x64.ActiveCfg = Debug|x64 + {D28301C9-C293-4F41-9F58-F2609F33134E}.Debug|x64.Build.0 = Debug|x64 + {D28301C9-C293-4F41-9F58-F2609F33134E}.Debug|x86.ActiveCfg = Debug|Win32 + {D28301C9-C293-4F41-9F58-F2609F33134E}.Debug|x86.Build.0 = Debug|Win32 + {D28301C9-C293-4F41-9F58-F2609F33134E}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 + {D28301C9-C293-4F41-9F58-F2609F33134E}.Release.DLL|x64.Build.0 = Release.DLL|x64 + {D28301C9-C293-4F41-9F58-F2609F33134E}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 + {D28301C9-C293-4F41-9F58-F2609F33134E}.Release.DLL|x86.Build.0 = Release.DLL|Win32 + {D28301C9-C293-4F41-9F58-F2609F33134E}.Release|x64.ActiveCfg = Release|x64 + {D28301C9-C293-4F41-9F58-F2609F33134E}.Release|x64.Build.0 = Release|x64 + {D28301C9-C293-4F41-9F58-F2609F33134E}.Release|x86.ActiveCfg = Release|Win32 + {D28301C9-C293-4F41-9F58-F2609F33134E}.Release|x86.Build.0 = Release|Win32 + {56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 + {56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 + {56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 + {56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 + {56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Debug|x64.ActiveCfg = Debug|x64 + {56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Debug|x64.Build.0 = Debug|x64 + {56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Debug|x86.ActiveCfg = Debug|Win32 + {56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Debug|x86.Build.0 = Debug|Win32 + {56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 + {56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Release.DLL|x64.Build.0 = Release.DLL|x64 + {56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 + {56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Release.DLL|x86.Build.0 = Release.DLL|Win32 + {56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Release|x64.ActiveCfg = Release|x64 + {56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Release|x64.Build.0 = Release|x64 + {56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Release|x86.ActiveCfg = Release|Win32 + {56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Release|x86.Build.0 = Release|Win32 + {BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 + {BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 + {BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 + {BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 + {BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Debug|x64.ActiveCfg = Debug|x64 + {BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Debug|x64.Build.0 = Debug|x64 + {BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Debug|x86.ActiveCfg = Debug|Win32 + {BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Debug|x86.Build.0 = Debug|Win32 + {BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 + {BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Release.DLL|x64.Build.0 = Release.DLL|x64 + {BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 + {BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Release.DLL|x86.Build.0 = Release.DLL|Win32 + {BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Release|x64.ActiveCfg = Release|x64 + {BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Release|x64.Build.0 = Release|x64 + {BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Release|x86.ActiveCfg = Release|Win32 + {BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Release|x86.Build.0 = Release|Win32 + {50A98C3D-C898-4830-A00B-3F78DC2E742B}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 + {50A98C3D-C898-4830-A00B-3F78DC2E742B}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 + {50A98C3D-C898-4830-A00B-3F78DC2E742B}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 + {50A98C3D-C898-4830-A00B-3F78DC2E742B}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 + {50A98C3D-C898-4830-A00B-3F78DC2E742B}.Debug|x64.ActiveCfg = Debug|x64 + {50A98C3D-C898-4830-A00B-3F78DC2E742B}.Debug|x64.Build.0 = Debug|x64 + {50A98C3D-C898-4830-A00B-3F78DC2E742B}.Debug|x86.ActiveCfg = Debug|Win32 + {50A98C3D-C898-4830-A00B-3F78DC2E742B}.Debug|x86.Build.0 = Debug|Win32 + {50A98C3D-C898-4830-A00B-3F78DC2E742B}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 + {50A98C3D-C898-4830-A00B-3F78DC2E742B}.Release.DLL|x64.Build.0 = Release.DLL|x64 + {50A98C3D-C898-4830-A00B-3F78DC2E742B}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 + {50A98C3D-C898-4830-A00B-3F78DC2E742B}.Release.DLL|x86.Build.0 = Release.DLL|Win32 + {50A98C3D-C898-4830-A00B-3F78DC2E742B}.Release|x64.ActiveCfg = Release|x64 + {50A98C3D-C898-4830-A00B-3F78DC2E742B}.Release|x64.Build.0 = Release|x64 + {50A98C3D-C898-4830-A00B-3F78DC2E742B}.Release|x86.ActiveCfg = Release|Win32 + {50A98C3D-C898-4830-A00B-3F78DC2E742B}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {0981CA98-E4A5-4DF1-987F-A41D09131EFC} = {5DC256E9-D698-4D07-8AD7-DFDAE9125DE3} + {E1CF5310-BCF6-4063-861D-EDFF65D9FE2A} = {5DC256E9-D698-4D07-8AD7-DFDAE9125DE3} + {67B2B88C-EA52-403F-A596-5107008C71F2} = {5DC256E9-D698-4D07-8AD7-DFDAE9125DE3} + {6628D753-270D-418D-A87F-6E2E63B9E3D0} = {5DC256E9-D698-4D07-8AD7-DFDAE9125DE3} + {FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8} = {5DC256E9-D698-4D07-8AD7-DFDAE9125DE3} + {D28301C9-C293-4F41-9F58-F2609F33134E} = {5DC256E9-D698-4D07-8AD7-DFDAE9125DE3} + {56EE93DF-A3AF-4856-A4EC-E27358C6DA87} = {5DC256E9-D698-4D07-8AD7-DFDAE9125DE3} + {BCF5E746-FDBF-4CAC-9B95-44FE9A498430} = {5DC256E9-D698-4D07-8AD7-DFDAE9125DE3} + {50A98C3D-C898-4830-A00B-3F78DC2E742B} = {5DC256E9-D698-4D07-8AD7-DFDAE9125DE3} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {E926C768-6307-4423-A1EC-57E95B1FAB29} + EndGlobalSection +EndGlobal diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/raylib/raylib.vcxproj b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/raylib/raylib.vcxproj new file mode 100644 index 0000000..3e44eaa --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/projects/VS2022/raylib/raylib.vcxproj @@ -0,0 +1,340 @@ + + + + + Debug.DLL + Win32 + + + Debug.DLL + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release.DLL + Win32 + + + Release.DLL + x64 + + + Release + Win32 + + + Release + x64 + + + + {E89D61AC-55DE-4482-AFD4-DF7242EBC859} + Win32Proj + raylib + 10.0 + + + + StaticLibrary + true + $(DefaultPlatformToolset) + Unicode + + + StaticLibrary + true + $(DefaultPlatformToolset) + Unicode + + + DynamicLibrary + true + $(DefaultPlatformToolset) + Unicode + + + DynamicLibrary + true + $(DefaultPlatformToolset) + Unicode + + + StaticLibrary + false + $(DefaultPlatformToolset) + Unicode + + + StaticLibrary + false + $(DefaultPlatformToolset) + Unicode + + + DynamicLibrary + false + $(DefaultPlatformToolset) + Unicode + + + DynamicLibrary + false + $(DefaultPlatformToolset) + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + + + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + + + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + + + + + + Level3 + Disabled + _CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions);GRAPHICS_API_OPENGL_33;PLATFORM_DESKTOP + CompileAsC + $(ProjectDir)..\..\..\..\raylib\src\external\glfw\include + + + Windows + + + %(AdditionalLibraryDirectories) + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions);GRAPHICS_API_OPENGL_33;PLATFORM_DESKTOP + CompileAsC + $(ProjectDir)..\..\..\..\raylib\src\external\glfw\include + + + Windows + + + %(AdditionalLibraryDirectories) + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions);GRAPHICS_API_OPENGL_33;PLATFORM_DESKTOP;BUILD_LIBTYPE_SHARED + CompileAsC + $(ProjectDir)..\..\..\..\raylib\src\external\glfw\include + MultiThreadedDebug + + + Windows + kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + %(AdditionalLibraryDirectories) + + + + + + + Level3 + Disabled + _CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions);GRAPHICS_API_OPENGL_33;PLATFORM_DESKTOP;BUILD_LIBTYPE_SHARED + CompileAsC + $(ProjectDir)..\..\..\..\raylib\src\external\glfw\include + MultiThreadedDebug + + + Windows + kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + %(AdditionalLibraryDirectories) + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions);GRAPHICS_API_OPENGL_33;PLATFORM_DESKTOP + $(ProjectDir)..\..\..\..\raylib\src\external\glfw\include + CompileAsC + MultiThreaded + + + Windows + true + true + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions);GRAPHICS_API_OPENGL_33;PLATFORM_DESKTOP + $(ProjectDir)..\..\..\..\raylib\src\external\glfw\include + CompileAsC + + MultiThreaded + + + Windows + true + true + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions);GRAPHICS_API_OPENGL_33;PLATFORM_DESKTOP;BUILD_LIBTYPE_SHARED + $(ProjectDir)..\..\..\..\raylib\src\external\glfw\include + CompileAsC + MultiThreaded + + + Windows + true + true + kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions);GRAPHICS_API_OPENGL_33;PLATFORM_DESKTOP;BUILD_LIBTYPE_SHARED + $(ProjectDir)..\..\..\..\raylib\src\external\glfw\include + CompileAsC + MultiThreaded + + + + Windows + true + true + kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/src/raygui.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/src/raygui.h new file mode 100644 index 0000000..72f7108 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/src/raygui.h @@ -0,0 +1,6052 @@ +/******************************************************************************************* +* +* raygui v5.0 - A simple and easy-to-use immediate-mode gui library +* +* DESCRIPTION: +* raygui is a tools-dev-focused immediate-mode-gui library based on raylib but also +* available as a standalone library, as long as input and drawing functions are provided +* +* FEATURES: +* - Immediate-mode gui, minimal retained data +* - +25 controls provided (basic and advanced) +* - Styling system for colors, font and metrics +* - Icons supported, embedded as a 1-bit icons pack +* - Standalone mode option (custom input/graphics backend) +* - Multiple support tools provided for raygui development +* +* POSSIBLE IMPROVEMENTS: +* - Better standalone mode API for easy plug of custom backends +* - Externalize required inputs, allow user easier customization +* +* LIMITATIONS: +* - No editable multi-line word-wraped text box supported +* - No auto-layout mechanism, up to the user to define controls position and size +* - Standalone mode requires library modification and some user work to plug another backend +* +* NOTES: +* - WARNING: GuiLoadStyle() and GuiLoadStyle{Custom}() functions, allocate memory for +* font atlas recs and glyphs, freeing that memory is (usually) up to the user, +* no unload function is explicitly provided... but note that GuiLoadStyleDefault() unloads +* by default any previously loaded font (texture, recs, glyphs) +* - Global UI alpha (guiAlpha) is applied inside GuiDrawRectangle() and GuiDrawText() functions +* +* CONTROLS PROVIDED: +* # Container/separators Controls +* - WindowBox --> StatusBar, Panel +* - GroupBox --> Line +* - Line +* - Panel --> StatusBar +* - ScrollPanel --> StatusBar +* - TabBar --> Button +* +* # Basic Controls +* - Label +* - LabelButton --> Label +* - Button +* - Toggle +* - ToggleGroup --> Toggle +* - ToggleSlider +* - CheckBox +* - ComboBox +* - DropdownBox +* - TextBox +* - ValueBox --> TextBox +* - Spinner --> Button, ValueBox +* - Slider +* - SliderBar --> Slider +* - ProgressBar +* - StatusBar +* - DummyRec +* - Grid +* +* # Advance Controls +* - ListView +* - ColorPicker --> ColorPanel, ColorBarHue +* - MessageBox --> Window, Label, Button +* - TextInputBox --> Window, Label, TextBox, Button +* +* It also provides a set of functions for styling the controls based on its properties (size, color) +* +* +* RAYGUI STYLE (guiStyle): +* raygui uses a global data array for all gui style properties (allocated on data segment by default), +* when a new style is loaded, it is loaded over the global style... but a default gui style could always be +* recovered with GuiLoadStyleDefault() function, that overwrites the current style to the default one +* +* The global style array size is fixed and depends on the number of controls and properties: +* +* static unsigned int guiStyle[RAYGUI_MAX_CONTROLS*(RAYGUI_MAX_PROPS_BASE + RAYGUI_MAX_PROPS_EXTENDED)]; +* +* guiStyle size is by default: 16*(16 + 8) = 384 int = 384*4 bytes = 1536 bytes = 1.5 KB +* +* Note that the first set of BASE properties (by default guiStyle[0..15]) belong to the generic style +* used for all controls, when any of those base values is set, it is automatically populated to all +* controls, so, specific control values overwriting generic style should be set after base values +* +* After the first BASE properties set, the EXTENDED properties set is defined (by default guiStyle[16..23]), +* those properties are actually common to all controls and can not be overwritten individually (like BASE ones) +* Some of those properties are: TEXT_SIZE, TEXT_SPACING, LINE_COLOR, BACKGROUND_COLOR +* +* Custom control properties can be defined using the EXTENDED properties for each independent control. +* +* TOOL: rGuiStyler is a visual tool to customize raygui style: github.com/raysan5/rguistyler +* +* +* RAYGUI ICONS (guiIcons): +* raygui could use a global array containing icons data (allocated on data segment by default), +* a custom icons set could be loaded over this array using GuiLoadIcons(), but loaded icons set +* must be same RAYGUI_ICON_SIZE and no more than RAYGUI_ICON_MAX_ICONS will be loaded +* +* Every icon is codified in binary form, using 1 bit per pixel, so, every 16x16 icon +* requires 8 integers (16*16/32) to be stored in memory. +* +* When the icon is draw, actually one quad per pixel is drawn if the bit for that pixel is set +* +* The global icons array size is fixed and depends on the number of icons and size: +* +* static unsigned int guiIcons[RAYGUI_ICON_MAX_ICONS*RAYGUI_ICON_DATA_ELEMENTS]; +* +* guiIcons size is by default: 256*(16*16/32) = 2048*4 = 8192 bytes = 8 KB +* +* TOOL: rGuiIcons is a visual tool to customize/create raygui icons: github.com/raysan5/rguiicons +* +* RAYGUI LAYOUT: +* raygui currently does not provide an auto-layout mechanism like other libraries, +* layouts must be defined manually on controls drawing, providing the right bounds Rectangle for it +* +* TOOL: rGuiLayout is a visual tool to create raygui layouts: github.com/raysan5/rguilayout +* +* CONFIGURATION: +* #define RAYGUI_IMPLEMENTATION +* Generates the implementation of the library into the included file +* If not defined, the library is in header only mode and can be included in other headers +* or source files without problems. But only ONE file should hold the implementation +* +* #define RAYGUI_STANDALONE +* Avoid raylib.h header inclusion in this file. Data types defined on raylib are defined +* internally in the library and input management and drawing functions must be provided by +* the user (check library implementation for further details) +* +* #define RAYGUI_NO_ICONS +* Avoid including embedded ricons data (256 icons, 16x16 pixels, 1-bit per pixel, 2KB) +* +* #define RAYGUI_CUSTOM_ICONS +* Includes custom ricons.h header defining a set of custom icons, +* this file can be generated using rGuiIcons tool +* +* #define RAYGUI_DEBUG_RECS_BOUNDS +* Draw control bounds rectangles for debug +* +* #define RAYGUI_DEBUG_TEXT_BOUNDS +* Draw text bounds rectangles for debug +* +* VERSIONS HISTORY: +* 5.0 (xx-Mar-2026) ADDED: Support up to 32 controls (v500) +* ADDED: guiControlExclusiveMode and guiControlExclusiveRec for exclusive modes +* ADDED: GuiValueBoxFloat() +* ADDED: GuiDropdonwBox() properties: DROPDOWN_ARROW_HIDDEN, DROPDOWN_ROLL_UP +* ADDED: GuiListView() property: LIST_ITEMS_BORDER_WIDTH +* ADDED: GuiLoadIconsFromMemory() +* ADDED: Multiple new icons +* ADDED: Macros for inputs customization, raylib decoupling +* REMOVED: GuiSpinner() from controls list, using BUTTON + VALUEBOX properties +* REMOVED: GuiSliderPro(), functionality was redundant +* REVIEWED: Controls using text labels to use LABEL properties +* REVIEWED: Replaced sprintf() by snprintf() for more safety +* REVIEWED: GuiTabBar(), close tab with mouse middle button +* REVIEWED: GuiScrollPanel(), scroll speed proportional to content +* REVIEWED: GuiDropdownBox(), support roll up and hidden arrow +* REVIEWED: GuiTextBox(), cursor position initialization +* REVIEWED: GuiSliderPro(), control value change check +* REVIEWED: GuiGrid(), simplified implementation +* REVIEWED: GuiIconText(), increase buffer size and reviewed padding +* REVIEWED: GuiDrawText(), improved wrap mode drawing +* REVIEWED: GuiScrollBar(), minor tweaks +* REVIEWED: GuiProgressBar(), improved borders computing +* REVIEWED: GuiTextBox(), multiple improvements: autocursor and more +* REVIEWED: Functions descriptions, removed wrong return value reference +* REDESIGNED: GuiColorPanel(), improved HSV <-> RGBA convertion +* REDESIGNED: WARNING: TEXT_LINE_SPACING does not consider text height, only lines spacing +* +* 4.0 (12-Sep-2023) ADDED: GuiToggleSlider() +* ADDED: GuiColorPickerHSV() and GuiColorPanelHSV() +* ADDED: Multiple new icons, mostly compiler related +* ADDED: New DEFAULT properties: TEXT_LINE_SPACING, TEXT_ALIGNMENT_VERTICAL, TEXT_WRAP_MODE +* ADDED: New enum values: GuiTextAlignment, GuiTextAlignmentVertical, GuiTextWrapMode +* ADDED: Support loading styles with custom font charset from external file +* REDESIGNED: GuiTextBox(), support mouse cursor positioning +* REDESIGNED: GuiDrawText(), support multiline and word-wrap modes (read only) +* REDESIGNED: GuiProgressBar() to be more visual, progress affects border color +* REDESIGNED: Global alpha consideration moved to GuiDrawRectangle() and GuiDrawText() +* REDESIGNED: GuiScrollPanel(), get parameters by reference and return result value +* REDESIGNED: GuiToggleGroup(), get parameters by reference and return result value +* REDESIGNED: GuiComboBox(), get parameters by reference and return result value +* REDESIGNED: GuiCheckBox(), get parameters by reference and return result value +* REDESIGNED: GuiSlider(), get parameters by reference and return result value +* REDESIGNED: GuiSliderBar(), get parameters by reference and return result value +* REDESIGNED: GuiProgressBar(), get parameters by reference and return result value +* REDESIGNED: GuiListView(), get parameters by reference and return result value +* REDESIGNED: GuiColorPicker(), get parameters by reference and return result value +* REDESIGNED: GuiColorPanel(), get parameters by reference and return result value +* REDESIGNED: GuiColorBarAlpha(), get parameters by reference and return result value +* REDESIGNED: GuiColorBarHue(), get parameters by reference and return result value +* REDESIGNED: GuiGrid(), get parameters by reference and return result value +* REDESIGNED: GuiGrid(), added extra parameter +* REDESIGNED: GuiListViewEx(), change parameters order +* REDESIGNED: All controls return result as int value +* REVIEWED: GuiScrollPanel() to avoid smallish scroll-bars +* REVIEWED: All examples and specially controls_test_suite +* RENAMED: gui_file_dialog module to gui_window_file_dialog +* UPDATED: All styles to include ISO-8859-15 charset (as much as possible) +* +* 3.6 (10-May-2023) ADDED: New icon: SAND_TIMER +* ADDED: GuiLoadStyleFromMemory() (binary only) +* REVIEWED: GuiScrollBar() horizontal movement key +* REVIEWED: GuiTextBox() crash on cursor movement +* REVIEWED: GuiTextBox(), additional inputs support +* REVIEWED: GuiLabelButton(), avoid text cut +* REVIEWED: GuiTextInputBox(), password input +* REVIEWED: Local GetCodepointNext(), aligned with raylib +* REDESIGNED: GuiSlider*()/GuiScrollBar() to support out-of-bounds +* +* 3.5 (20-Apr-2023) ADDED: GuiTabBar(), based on GuiToggle() +* ADDED: Helper functions to split text in separate lines +* ADDED: Multiple new icons, useful for code editing tools +* REMOVED: Unneeded icon editing functions +* REMOVED: GuiTextBoxMulti(), very limited and broken +* REMOVED: MeasureTextEx() dependency, logic directly implemented +* REMOVED: DrawTextEx() dependency, logic directly implemented +* REVIEWED: GuiScrollBar(), improve mouse-click behaviour +* REVIEWED: Library header info, more info, better organized +* REDESIGNED: GuiTextBox() to support cursor movement +* REDESIGNED: GuiDrawText() to divide drawing by lines +* +* 3.2 (22-May-2022) RENAMED: Some enum values, for unification, avoiding prefixes +* REMOVED: GuiScrollBar(), only internal +* REDESIGNED: GuiPanel() to support text parameter +* REDESIGNED: GuiScrollPanel() to support text parameter +* REDESIGNED: GuiColorPicker() to support text parameter +* REDESIGNED: GuiColorPanel() to support text parameter +* REDESIGNED: GuiColorBarAlpha() to support text parameter +* REDESIGNED: GuiColorBarHue() to support text parameter +* REDESIGNED: GuiTextInputBox() to support password +* +* 3.1 (12-Jan-2022) REVIEWED: Default style for consistency (aligned with rGuiLayout v2.5 tool) +* REVIEWED: GuiLoadStyle() to support compressed font atlas image data and unload previous textures +* REVIEWED: External icons usage logic +* REVIEWED: GuiLine() for centered alignment when including text +* RENAMED: Multiple controls properties definitions to prepend RAYGUI_ +* RENAMED: RICON_ references to RAYGUI_ICON_ for library consistency +* Projects updated and multiple tweaks +* +* 3.0 (04-Nov-2021) Integrated ricons data to avoid external file +* REDESIGNED: GuiTextBoxMulti() +* REMOVED: GuiImageButton*() +* Multiple minor tweaks and bugs corrected +* +* 2.9 (17-Mar-2021) REMOVED: Tooltip API +* 2.8 (03-May-2020) Centralized rectangles drawing to GuiDrawRectangle() +* 2.7 (20-Feb-2020) ADDED: Possible tooltips API +* 2.6 (09-Sep-2019) ADDED: GuiTextInputBox() +* REDESIGNED: GuiListView*(), GuiDropdownBox(), GuiSlider*(), GuiProgressBar(), GuiMessageBox() +* REVIEWED: GuiTextBox(), GuiSpinner(), GuiValueBox(), GuiLoadStyle() +* Replaced property INNER_PADDING by TEXT_PADDING, renamed some properties +* ADDED: 8 new custom styles ready to use +* Multiple minor tweaks and bugs corrected +* +* 2.5 (28-May-2019) Implemented extended GuiTextBox(), GuiValueBox(), GuiSpinner() +* 2.3 (29-Apr-2019) ADDED: rIcons auxiliar library and support for it, multiple controls reviewed +* Refactor all controls drawing mechanism to use control state +* 2.2 (05-Feb-2019) ADDED: GuiScrollBar(), GuiScrollPanel(), reviewed GuiListView(), removed Gui*Ex() controls +* 2.1 (26-Dec-2018) REDESIGNED: GuiCheckBox(), GuiComboBox(), GuiDropdownBox(), GuiToggleGroup() > Use combined text string +* REDESIGNED: Style system (breaking change) +* 2.0 (08-Nov-2018) ADDED: Support controls guiLock and custom fonts +* REVIEWED: GuiComboBox(), GuiListView()... +* 1.9 (09-Oct-2018) REVIEWED: GuiGrid(), GuiTextBox(), GuiTextBoxMulti(), GuiValueBox()... +* 1.8 (01-May-2018) Lot of rework and redesign to align with rGuiStyler and rGuiLayout +* 1.5 (21-Jun-2017) Working in an improved styles system +* 1.4 (15-Jun-2017) Rewritten all GUI functions (removed useless ones) +* 1.3 (12-Jun-2017) Complete redesign of style system +* 1.1 (01-Jun-2017) Complete review of the library +* 1.0 (07-Jun-2016) Converted to header-only by Ramon Santamaria +* 0.9 (07-Mar-2016) Reviewed and tested by Albert Martos, Ian Eito, Sergio Martinez and Ramon Santamaria +* 0.8 (27-Aug-2015) Initial release. Implemented by Kevin Gato, Daniel Nicolás and Ramon Santamaria +* +* DEPENDENCIES: +* raylib 5.6-dev - Inputs reading (keyboard/mouse), shapes drawing, font loading and text drawing +* +* STANDALONE MODE: +* By default raygui depends on raylib mostly for the inputs and the drawing functionality but that dependency can be disabled +* with the config flag RAYGUI_STANDALONE. In that case is up to the user to provide another backend to cover library needs +* +* The following functions should be redefined for a custom backend: +* +* - Vector2 GetMousePosition(void); +* - float GetMouseWheelMove(void); +* - bool IsMouseButtonDown(int button); +* - bool IsMouseButtonPressed(int button); +* - bool IsMouseButtonReleased(int button); +* - bool IsKeyDown(int key); +* - bool IsKeyPressed(int key); +* - int GetCharPressed(void); // -- GuiTextBox(), GuiValueBox() +* +* - void DrawRectangle(int x, int y, int width, int height, Color color); // -- GuiDrawRectangle() +* - void DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color col3, Color col4); // -- GuiColorPicker() +* +* - Font GetFontDefault(void); // -- GuiLoadStyleDefault() +* - Font LoadFontEx(const char *fileName, int fontSize, int *codepoints, int codepointCount); // -- GuiLoadStyle() +* - Texture2D LoadTextureFromImage(Image image); // -- GuiLoadStyle(), required to load texture from embedded font atlas image +* - void SetShapesTexture(Texture2D tex, Rectangle rec); // -- GuiLoadStyle(), required to set shapes rec to font white rec (optimization) +* - char *LoadFileText(const char *fileName); // -- GuiLoadStyle(), required to load charset data +* - void UnloadFileText(char *text); // -- GuiLoadStyle(), required to unload charset data +* - const char *GetDirectoryPath(const char *filePath); // -- GuiLoadStyle(), required to find charset/font file from text .rgs +* - int *LoadCodepoints(const char *text, int *count); // -- GuiLoadStyle(), required to load required font codepoints list +* - void UnloadCodepoints(int *codepoints); // -- GuiLoadStyle(), required to unload codepoints list +* - unsigned char *DecompressData(const unsigned char *compData, int compDataSize, int *dataSize); // -- GuiLoadStyle() +* +* CONTRIBUTORS: +* Ramon Santamaria: Supervision, review, redesign, update and maintenance +* Vlad Adrian: Complete rewrite of GuiTextBox() to support extended features (2019) +* Sergio Martinez: Review, testing (2015) and redesign of multiple controls (2018) +* Adria Arranz: Testing and implementation of additional controls (2018) +* Jordi Jorba: Testing and implementation of additional controls (2018) +* Albert Martos: Review and testing of the library (2015) +* Ian Eito: Review and testing of the library (2015) +* Kevin Gato: Initial implementation of basic components (2014) +* Daniel Nicolas: Initial implementation of basic components (2014) +* +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2014-2026 Ramon Santamaria (@raysan5) +* +* This software is provided "as-is", without any express or implied warranty. In no event +* will the authors be held liable for any damages arising from the use of this software. +* +* Permission is granted to anyone to use this software for any purpose, including commercial +* applications, and to alter it and redistribute it freely, subject to the following restrictions: +* +* 1. The origin of this software must not be misrepresented; you must not claim that you +* wrote the original software. If you use this software in a product, an acknowledgment +* in the product documentation would be appreciated but is not required. +* +* 2. Altered source versions must be plainly marked as such, and must not be misrepresented +* as being the original software. +* +* 3. This notice may not be removed or altered from any source distribution. +* +**********************************************************************************************/ + +#ifndef RAYGUI_H +#define RAYGUI_H + +#define RAYGUI_VERSION_MAJOR 4 +#define RAYGUI_VERSION_MINOR 5 +#define RAYGUI_VERSION_PATCH 0 +#define RAYGUI_VERSION "5.0-dev" + +#if !defined(RAYGUI_STANDALONE) + #include "raylib.h" +#endif + +// Function specifiers in case library is build/used as a shared library (Windows) +// NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll +#if defined(_WIN32) + #if defined(BUILD_LIBTYPE_SHARED) + #define RAYGUIAPI __declspec(dllexport) // Building the library as a Win32 shared library (.dll) + #elif defined(USE_LIBTYPE_SHARED) + #define RAYGUIAPI __declspec(dllimport) // Using the library as a Win32 shared library (.dll) + #endif + #if !defined(_CRT_SECURE_NO_WARNINGS) + #define _CRT_SECURE_NO_WARNINGS // Disable unsafe warnings on scanf() functions in MSVC + #endif +#endif + +// Function specifiers definition +#ifndef RAYGUIAPI + #define RAYGUIAPI // Functions defined as 'extern' by default (implicit specifiers) +#endif + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- +// Simple log system to avoid printf() calls if required +// NOTE: Avoiding those calls, also avoids const strings memory usage +#define RAYGUI_SUPPORT_LOG_INFO +#if defined(RAYGUI_SUPPORT_LOG_INFO) + #define RAYGUI_LOG(...) printf(__VA_ARGS__) +#else + #define RAYGUI_LOG(...) +#endif + +// Macros to define required UI inputs, including mapping to gamepad controls +// TODO: Define additionally required macros for missing inputs +#if !defined(GUI_BUTTON_DOWN) + #define GUI_BUTTON_DOWN (IsMouseButtonDown(MOUSE_LEFT_BUTTON) || IsGamepadButtonDown(0, GAMEPAD_BUTTON_RIGHT_FACE_DOWN)) +#endif +#if !defined(GUI_BUTTON_DOWN_ALT) + // Mapping to alternative button down pressed + #define GUI_BUTTON_DOWN_ALT (IsMouseButtonDown(MOUSE_RIGHT_BUTTON) || IsGamepadButtonDown(0, GAMEPAD_BUTTON_RIGHT_FACE_RIGHT)) +#endif +#if !defined(GUI_BUTTON_PRESSED) + #define GUI_BUTTON_PRESSED (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) || IsGamepadButtonPressed(0, GAMEPAD_BUTTON_RIGHT_FACE_DOWN)) +#endif +// TODO: WARNING: GuiTabBar() still requires IsMouseButtonPressed(MOUSE_MIDDLE_BUTTON) +#if !defined(GUI_BUTTON_RELEASED) + #define GUI_BUTTON_RELEASED (IsMouseButtonReleased(MOUSE_LEFT_BUTTON) || IsGamepadButtonReleased(0, GAMEPAD_BUTTON_RIGHT_FACE_DOWN)) +#endif +#if !defined(GUI_SCROLL_DELTA) + // Mapping to scroll delta changes + // TODO: Review inconsistencies between platforms + #if defined(PLATFORM_WEB) + // NOTE: Gamepad axis triggers not detected on web platform + #define GUI_SCROLL_DELTA ((float)IsGamepadButtonDown(0, GAMEPAD_BUTTON_RIGHT_TRIGGER_2) - (float)IsGamepadButtonDown(0, GAMEPAD_BUTTON_LEFT_TRIGGER_2)) + #else + #define GUI_SCROLL_DELTA (GetMouseWheelMove() + (GetGamepadAxisMovement(0, GAMEPAD_AXIS_RIGHT_TRIGGER) + 1) - (GetGamepadAxisMovement(0, GAMEPAD_AXIS_LEFT_TRIGGER) + 1)) + #endif +#endif +#if !defined(GUI_POINTER_POSITION) + #define GUI_POINTER_POSITION GetMousePosition() +#endif +#if !defined(GUI_KEY_DOWN) + #define GUI_KEY_DOWN(key) IsKeyDown(key) +#endif +#if !defined(GUI_KEY_PRESSED) + #define GUI_KEY_PRESSED(key) IsKeyPressed(key) +#endif +#if !defined(GUI_INPUT_KEY) + #define GUI_INPUT_KEY GetCharPressed() +#endif + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +// NOTE: Some types are required for RAYGUI_STANDALONE usage +//---------------------------------------------------------------------------------- +#if defined(RAYGUI_STANDALONE) + #ifndef __cplusplus + // Boolean type + #ifndef true + typedef enum { false, true } bool; + #endif + #endif + + // Vector2 type + typedef struct Vector2 { + float x; + float y; + } Vector2; + + // Vector3 type // -- ConvertHSVtoRGB(), ConvertRGBtoHSV() + typedef struct Vector3 { + float x; + float y; + float z; + } Vector3; + + // Color type, RGBA (32bit) + typedef struct Color { + unsigned char r; + unsigned char g; + unsigned char b; + unsigned char a; + } Color; + + // Rectangle type + typedef struct Rectangle { + float x; + float y; + float width; + float height; + } Rectangle; + + // TODO: Texture2D type is very coupled to raylib, required by Font type + // It should be redesigned to be provided by user + typedef struct Texture { + unsigned int id; // OpenGL texture id + int width; // Texture base width + int height; // Texture base height + int mipmaps; // Mipmap levels, 1 by default + int format; // Data format (PixelFormat type) + } Texture; + + // Texture2D, same as Texture + typedef Texture Texture2D; + + // Image, pixel data stored in CPU memory (RAM) + typedef struct Image { + void *data; // Image raw data + int width; // Image base width + int height; // Image base height + int mipmaps; // Mipmap levels, 1 by default + int format; // Data format (PixelFormat type) + } Image; + + // GlyphInfo, font characters glyphs info + typedef struct GlyphInfo { + int value; // Character value (Unicode) + int offsetX; // Character offset X when drawing + int offsetY; // Character offset Y when drawing + int advanceX; // Character advance position X + Image image; // Character image data + } GlyphInfo; + + // TODO: Font type is very coupled to raylib, mostly required by GuiLoadStyle() + // It should be redesigned to be provided by user + typedef struct Font { + int baseSize; // Base size (default chars height) + int glyphCount; // Number of glyph characters + int glyphPadding; // Padding around the glyph characters + Texture2D texture; // Texture atlas containing the glyphs + Rectangle *recs; // Rectangles in texture for the glyphs + GlyphInfo *glyphs; // Glyphs info data + } Font; +#endif + +// Style property +// NOTE: Used when exporting style as code for convenience +typedef struct GuiStyleProp { + unsigned short controlId; // Control identifier + unsigned short propertyId; // Property identifier + int propertyValue; // Property value +} GuiStyleProp; + +/* +// Controls text style -NOT USED- +// NOTE: Text style is defined by control +typedef struct GuiTextStyle { + unsigned int size; + int charSpacing; + int lineSpacing; + int alignmentH; + int alignmentV; + int padding; +} GuiTextStyle; +*/ + +// Gui control state +typedef enum { + STATE_NORMAL = 0, + STATE_FOCUSED, + STATE_PRESSED, + STATE_DISABLED +} GuiState; + +// Gui control text alignment +typedef enum { + TEXT_ALIGN_LEFT = 0, + TEXT_ALIGN_CENTER, + TEXT_ALIGN_RIGHT +} GuiTextAlignment; + +// Gui control text alignment vertical +// NOTE: Text vertical position inside the text bounds +typedef enum { + TEXT_ALIGN_TOP = 0, + TEXT_ALIGN_MIDDLE, + TEXT_ALIGN_BOTTOM +} GuiTextAlignmentVertical; + +// Gui control text wrap mode +// NOTE: Useful for multiline text +typedef enum { + TEXT_WRAP_NONE = 0, + TEXT_WRAP_CHAR, + TEXT_WRAP_WORD +} GuiTextWrapMode; + +// Gui controls +typedef enum { + // Default -> populates to all controls when set + DEFAULT = 0, + + // Basic controls + LABEL, // Used also for: LABELBUTTON + BUTTON, + TOGGLE, // Used also for: TOGGLEGROUP + SLIDER, // Used also for: SLIDERBAR, TOGGLESLIDER + PROGRESSBAR, + CHECKBOX, + COMBOBOX, + DROPDOWNBOX, + TEXTBOX, // Used also for: TEXTBOXMULTI + VALUEBOX, + CONTROL11, + LISTVIEW, + COLORPICKER, + SCROLLBAR, + STATUSBAR +} GuiControl; + +// Gui base properties for every control +// NOTE: RAYGUI_MAX_PROPS_BASE properties (by default 16 properties) +typedef enum { + BORDER_COLOR_NORMAL = 0, // Control border color in STATE_NORMAL + BASE_COLOR_NORMAL, // Control base color in STATE_NORMAL + TEXT_COLOR_NORMAL, // Control text color in STATE_NORMAL + BORDER_COLOR_FOCUSED, // Control border color in STATE_FOCUSED + BASE_COLOR_FOCUSED, // Control base color in STATE_FOCUSED + TEXT_COLOR_FOCUSED, // Control text color in STATE_FOCUSED + BORDER_COLOR_PRESSED, // Control border color in STATE_PRESSED + BASE_COLOR_PRESSED, // Control base color in STATE_PRESSED + TEXT_COLOR_PRESSED, // Control text color in STATE_PRESSED + BORDER_COLOR_DISABLED, // Control border color in STATE_DISABLED + BASE_COLOR_DISABLED, // Control base color in STATE_DISABLED + TEXT_COLOR_DISABLED, // Control text color in STATE_DISABLED + BORDER_WIDTH = 12, // Control border size, 0 for no border + //TEXT_SIZE, // Control text size (glyphs max height) -> GLOBAL for all controls + //TEXT_SPACING, // Control text spacing between glyphs -> GLOBAL for all controls + //TEXT_LINE_SPACING, // Control text spacing between lines -> GLOBAL for all controls + TEXT_PADDING = 13, // Control text padding, not considering border + TEXT_ALIGNMENT = 14, // Control text horizontal alignment inside control text bound (after border and padding) + //TEXT_WRAP_MODE // Control text wrap-mode inside text bounds -> GLOBAL for all controls +} GuiControlProperty; + +// TODO: Which text styling properties should be global or per-control? +// At this moment TEXT_PADDING and TEXT_ALIGNMENT is configured and saved per control while +// TEXT_SIZE, TEXT_SPACING, TEXT_LINE_SPACING, TEXT_ALIGNMENT_VERTICAL, TEXT_WRAP_MODE are global and +// should be configured by user as needed while defining the UI layout + +// Gui extended properties depend on control +// NOTE: RAYGUI_MAX_PROPS_EXTENDED properties (by default, max 8 properties) +//---------------------------------------------------------------------------------- +// DEFAULT extended properties +// NOTE: Those properties are common to all controls or global +// WARNING: Only 8 slots vailable for those properties by default +typedef enum { + TEXT_SIZE = 16, // Text size (glyphs max height) + TEXT_SPACING, // Text spacing between glyphs + LINE_COLOR, // Line control color + BACKGROUND_COLOR, // Background color + TEXT_LINE_SPACING, // Text spacing between lines + TEXT_ALIGNMENT_VERTICAL, // Text vertical alignment inside text bounds (after border and padding) + TEXT_WRAP_MODE // Text wrap-mode inside text bounds + //TEXT_DECORATION // Text decoration: 0-None, 1-Underline, 2-Line-through, 3-Overline + //TEXT_DECORATION_THICK // Text decoration line thickness +} GuiDefaultProperty; + +// Other possible text properties: +// TEXT_WEIGHT // Normal, Italic, Bold -> Requires specific font change +// TEXT_INDENT // Text indentation -> Now using TEXT_PADDING... + +// Label +//typedef enum { } GuiLabelProperty; + +// Button/Spinner +//typedef enum { } GuiButtonProperty; + +// Toggle/ToggleGroup +typedef enum { + GROUP_PADDING = 16, // ToggleGroup separation between toggles +} GuiToggleProperty; + +// Slider/SliderBar +typedef enum { + SLIDER_WIDTH = 16, // Slider size of internal bar + SLIDER_PADDING // Slider/SliderBar internal bar padding +} GuiSliderProperty; + +// ProgressBar +typedef enum { + PROGRESS_PADDING = 16, // ProgressBar internal padding + PROGRESS_SIDE, // ProgressBar increment side: 0-left->right, 1-right-left +} GuiProgressBarProperty; + +// ScrollBar +typedef enum { + ARROWS_SIZE = 16, // ScrollBar arrows size + ARROWS_VISIBLE, // ScrollBar arrows visible + SCROLL_SLIDER_PADDING, // ScrollBar slider internal padding + SCROLL_SLIDER_SIZE, // ScrollBar slider size + SCROLL_PADDING, // ScrollBar scroll padding from arrows + SCROLL_SPEED, // ScrollBar scrolling speed +} GuiScrollBarProperty; + +// CheckBox +typedef enum { + CHECK_PADDING = 16 // CheckBox internal check padding +} GuiCheckBoxProperty; + +// ComboBox +typedef enum { + COMBO_BUTTON_WIDTH = 16, // ComboBox right button width + COMBO_BUTTON_SPACING // ComboBox button separation +} GuiComboBoxProperty; + +// DropdownBox +typedef enum { + ARROW_PADDING = 16, // DropdownBox arrow separation from border and items + DROPDOWN_ITEMS_SPACING, // DropdownBox items separation + DROPDOWN_ARROW_HIDDEN, // DropdownBox arrow hidden + DROPDOWN_ROLL_UP // DropdownBox roll up flag (default rolls down) +} GuiDropdownBoxProperty; + +// TextBox/TextBoxMulti/ValueBox/Spinner +typedef enum { + TEXT_READONLY = 16, // TextBox in read-only mode: 0-text editable, 1-text no-editable +} GuiTextBoxProperty; + +// ValueBox/Spinner +typedef enum { + SPINNER_BUTTON_WIDTH = 16, // Spinner left/right buttons width + SPINNER_BUTTON_SPACING, // Spinner buttons separation +} GuiValueBoxProperty; + +// Control11 +//typedef enum { } GuiControl11Property; + +// ListView +typedef enum { + LIST_ITEMS_HEIGHT = 16, // ListView items height + LIST_ITEMS_SPACING, // ListView items separation + SCROLLBAR_WIDTH, // ListView scrollbar size (usually width) + SCROLLBAR_SIDE, // ListView scrollbar side (0-SCROLLBAR_LEFT_SIDE, 1-SCROLLBAR_RIGHT_SIDE) + LIST_ITEMS_BORDER_NORMAL, // ListView items border enabled in normal state + LIST_ITEMS_BORDER_WIDTH // ListView items border width +} GuiListViewProperty; + +// ColorPicker +typedef enum { + COLOR_SELECTOR_SIZE = 16, + HUEBAR_WIDTH, // ColorPicker right hue bar width + HUEBAR_PADDING, // ColorPicker right hue bar separation from panel + HUEBAR_SELECTOR_HEIGHT, // ColorPicker right hue bar selector height + HUEBAR_SELECTOR_OVERFLOW // ColorPicker right hue bar selector overflow +} GuiColorPickerProperty; + +#define SCROLLBAR_LEFT_SIDE 0 +#define SCROLLBAR_RIGHT_SIDE 1 + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +// ... + +//---------------------------------------------------------------------------------- +// Module Functions Declaration +//---------------------------------------------------------------------------------- + +#if defined(__cplusplus) +extern "C" { // Prevents name mangling of functions +#endif + +// Global gui state control functions +RAYGUIAPI void GuiEnable(void); // Enable gui controls (global state) +RAYGUIAPI void GuiDisable(void); // Disable gui controls (global state) +RAYGUIAPI void GuiLock(void); // Lock gui controls (global state) +RAYGUIAPI void GuiUnlock(void); // Unlock gui controls (global state) +RAYGUIAPI bool GuiIsLocked(void); // Check if gui is locked (global state) +RAYGUIAPI void GuiSetAlpha(float alpha); // Set gui controls alpha (global state), alpha goes from 0.0f to 1.0f +RAYGUIAPI void GuiSetState(int state); // Set gui state (global state) +RAYGUIAPI int GuiGetState(void); // Get gui state (global state) + +// Font set/get functions +RAYGUIAPI void GuiSetFont(Font font); // Set gui custom font (global state) +RAYGUIAPI Font GuiGetFont(void); // Get gui custom font (global state) + +// Style set/get functions +RAYGUIAPI void GuiSetStyle(int control, int property, int value); // Set one style property +RAYGUIAPI int GuiGetStyle(int control, int property); // Get one style property + +// Styles loading functions +RAYGUIAPI void GuiLoadStyle(const char *fileName); // Load style file over global style variable (.rgs) +RAYGUIAPI void GuiLoadStyleDefault(void); // Load style default over global style + +// Tooltips management functions +RAYGUIAPI void GuiEnableTooltip(void); // Enable gui tooltips (global state) +RAYGUIAPI void GuiDisableTooltip(void); // Disable gui tooltips (global state) +RAYGUIAPI void GuiSetTooltip(const char *tooltip); // Set tooltip string + +// Icons functionality +RAYGUIAPI const char *GuiIconText(int iconId, const char *text); // Get text with icon id prepended (if supported) +#if !defined(RAYGUI_NO_ICONS) +RAYGUIAPI void GuiSetIconScale(int scale); // Set default icon drawing size +RAYGUIAPI unsigned int *GuiGetIcons(void); // Get raygui icons data pointer +RAYGUIAPI char **GuiLoadIcons(const char *fileName, bool loadIconsName); // Load raygui icons file (.rgi) into internal icons data +RAYGUIAPI void GuiDrawIcon(int iconId, int posX, int posY, int pixelSize, Color color); // Draw icon using pixel size at specified position +#endif + +// Utility functions +RAYGUIAPI int GuiGetTextWidth(const char *text); // Get text width considering gui style and icon size (if required) + +// Controls +//---------------------------------------------------------------------------------------------------------- +// Container/separator controls, useful for controls organization +RAYGUIAPI int GuiWindowBox(Rectangle bounds, const char *title); // Window Box control, shows a window that can be closed +RAYGUIAPI int GuiGroupBox(Rectangle bounds, const char *text); // Group Box control with text name +RAYGUIAPI int GuiLine(Rectangle bounds, const char *text); // Line separator control, could contain text +RAYGUIAPI int GuiPanel(Rectangle bounds, const char *text); // Panel control, useful to group controls +RAYGUIAPI int GuiTabBar(Rectangle bounds, char **text, int count, int *active); // Tab Bar control, returns TAB to be closed or -1 +RAYGUIAPI int GuiScrollPanel(Rectangle bounds, const char *text, Rectangle content, Vector2 *scroll, Rectangle *view); // Scroll Panel control + +// Basic controls set +RAYGUIAPI int GuiLabel(Rectangle bounds, const char *text); // Label control +RAYGUIAPI int GuiButton(Rectangle bounds, const char *text); // Button control, returns true when clicked +RAYGUIAPI int GuiLabelButton(Rectangle bounds, const char *text); // Label button control, returns true when clicked +RAYGUIAPI int GuiToggle(Rectangle bounds, const char *text, bool *active); // Toggle Button control +RAYGUIAPI int GuiToggleGroup(Rectangle bounds, const char *text, int *active); // Toggle Group control +RAYGUIAPI int GuiToggleSlider(Rectangle bounds, const char *text, int *active); // Toggle Slider control +RAYGUIAPI int GuiCheckBox(Rectangle bounds, const char *text, bool *checked); // Check Box control, returns true when active +RAYGUIAPI int GuiComboBox(Rectangle bounds, const char *text, int *active); // Combo Box control + +RAYGUIAPI int GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMode); // Dropdown Box control +RAYGUIAPI int GuiSpinner(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode); // Spinner control +RAYGUIAPI int GuiValueBox(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode); // Value Box control, updates input text with numbers +RAYGUIAPI int GuiValueBoxFloat(Rectangle bounds, const char *text, char *textValue, float *value, bool editMode); // Value box control for float values +RAYGUIAPI int GuiTextBox(Rectangle bounds, char *text, int textSize, bool editMode); // Text Box control, updates input text + +RAYGUIAPI int GuiSlider(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue); // Slider control +RAYGUIAPI int GuiSliderBar(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue); // Slider Bar control +RAYGUIAPI int GuiProgressBar(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue); // Progress Bar control +RAYGUIAPI int GuiStatusBar(Rectangle bounds, const char *text); // Status Bar control, shows info text +RAYGUIAPI int GuiDummyRec(Rectangle bounds, const char *text); // Dummy control for placeholders +RAYGUIAPI int GuiGrid(Rectangle bounds, const char *text, float spacing, int subdivs, Vector2 *mouseCell); // Grid control + +// Advance controls set +RAYGUIAPI int GuiListView(Rectangle bounds, const char *text, int *scrollIndex, int *active); // List View control +RAYGUIAPI int GuiListViewEx(Rectangle bounds, char **text, int count, int *scrollIndex, int *active, int *focus); // List View with extended parameters +RAYGUIAPI int GuiMessageBox(Rectangle bounds, const char *title, const char *message, const char *buttons); // Message Box control, displays a message +RAYGUIAPI int GuiTextInputBox(Rectangle bounds, const char *title, const char *message, const char *buttons, char *text, int textMaxSize, bool *secretViewActive); // Text Input Box control, ask for text, supports secret +RAYGUIAPI int GuiColorPicker(Rectangle bounds, const char *text, Color *color); // Color Picker control (multiple color controls) +RAYGUIAPI int GuiColorPanel(Rectangle bounds, const char *text, Color *color); // Color Panel control +RAYGUIAPI int GuiColorBarAlpha(Rectangle bounds, const char *text, float *alpha); // Color Bar Alpha control +RAYGUIAPI int GuiColorBarHue(Rectangle bounds, const char *text, float *value); // Color Bar Hue control +RAYGUIAPI int GuiColorPickerHSV(Rectangle bounds, const char *text, Vector3 *colorHsv); // Color Picker control that avoids conversion to RGB on each call (multiple color controls) +RAYGUIAPI int GuiColorPanelHSV(Rectangle bounds, const char *text, Vector3 *colorHsv); // Color Panel control that updates Hue-Saturation-Value color value, used by GuiColorPickerHSV() +//---------------------------------------------------------------------------------------------------------- + +#if !defined(RAYGUI_NO_ICONS) + +#if !defined(RAYGUI_CUSTOM_ICONS) +//---------------------------------------------------------------------------------- +// Icons enumeration +//---------------------------------------------------------------------------------- +typedef enum { + ICON_NONE = 0, + ICON_FOLDER_FILE_OPEN = 1, + ICON_FILE_SAVE_CLASSIC = 2, + ICON_FOLDER_OPEN = 3, + ICON_FOLDER_SAVE = 4, + ICON_FILE_OPEN = 5, + ICON_FILE_SAVE = 6, + ICON_FILE_EXPORT = 7, + ICON_FILE_ADD = 8, + ICON_FILE_DELETE = 9, + ICON_FILETYPE_TEXT = 10, + ICON_FILETYPE_AUDIO = 11, + ICON_FILETYPE_IMAGE = 12, + ICON_FILETYPE_PLAY = 13, + ICON_FILETYPE_VIDEO = 14, + ICON_FILETYPE_INFO = 15, + ICON_FILE_COPY = 16, + ICON_FILE_CUT = 17, + ICON_FILE_PASTE = 18, + ICON_CURSOR_HAND = 19, + ICON_CURSOR_POINTER = 20, + ICON_CURSOR_CLASSIC = 21, + ICON_PENCIL = 22, + ICON_PENCIL_BIG = 23, + ICON_BRUSH_CLASSIC = 24, + ICON_BRUSH_PAINTER = 25, + ICON_WATER_DROP = 26, + ICON_COLOR_PICKER = 27, + ICON_RUBBER = 28, + ICON_COLOR_BUCKET = 29, + ICON_TEXT_T = 30, + ICON_TEXT_A = 31, + ICON_SCALE = 32, + ICON_RESIZE = 33, + ICON_FILTER_POINT = 34, + ICON_FILTER_BILINEAR = 35, + ICON_CROP = 36, + ICON_CROP_ALPHA = 37, + ICON_SQUARE_TOGGLE = 38, + ICON_SYMMETRY = 39, + ICON_SYMMETRY_HORIZONTAL = 40, + ICON_SYMMETRY_VERTICAL = 41, + ICON_LENS = 42, + ICON_LENS_BIG = 43, + ICON_EYE_ON = 44, + ICON_EYE_OFF = 45, + ICON_FILTER_TOP = 46, + ICON_FILTER = 47, + ICON_TARGET_POINT = 48, + ICON_TARGET_SMALL = 49, + ICON_TARGET_BIG = 50, + ICON_TARGET_MOVE = 51, + ICON_CURSOR_MOVE = 52, + ICON_CURSOR_SCALE = 53, + ICON_CURSOR_SCALE_RIGHT = 54, + ICON_CURSOR_SCALE_LEFT = 55, + ICON_UNDO = 56, + ICON_REDO = 57, + ICON_REREDO = 58, + ICON_MUTATE = 59, + ICON_ROTATE = 60, + ICON_REPEAT = 61, + ICON_SHUFFLE = 62, + ICON_EMPTYBOX = 63, + ICON_TARGET = 64, + ICON_TARGET_SMALL_FILL = 65, + ICON_TARGET_BIG_FILL = 66, + ICON_TARGET_MOVE_FILL = 67, + ICON_CURSOR_MOVE_FILL = 68, + ICON_CURSOR_SCALE_FILL = 69, + ICON_CURSOR_SCALE_RIGHT_FILL = 70, + ICON_CURSOR_SCALE_LEFT_FILL = 71, + ICON_UNDO_FILL = 72, + ICON_REDO_FILL = 73, + ICON_REREDO_FILL = 74, + ICON_MUTATE_FILL = 75, + ICON_ROTATE_FILL = 76, + ICON_REPEAT_FILL = 77, + ICON_SHUFFLE_FILL = 78, + ICON_EMPTYBOX_SMALL = 79, + ICON_BOX = 80, + ICON_BOX_TOP = 81, + ICON_BOX_TOP_RIGHT = 82, + ICON_BOX_RIGHT = 83, + ICON_BOX_BOTTOM_RIGHT = 84, + ICON_BOX_BOTTOM = 85, + ICON_BOX_BOTTOM_LEFT = 86, + ICON_BOX_LEFT = 87, + ICON_BOX_TOP_LEFT = 88, + ICON_BOX_CENTER = 89, + ICON_BOX_CIRCLE_MASK = 90, + ICON_POT = 91, + ICON_ALPHA_MULTIPLY = 92, + ICON_ALPHA_CLEAR = 93, + ICON_DITHERING = 94, + ICON_MIPMAPS = 95, + ICON_BOX_GRID = 96, + ICON_GRID = 97, + ICON_BOX_CORNERS_SMALL = 98, + ICON_BOX_CORNERS_BIG = 99, + ICON_FOUR_BOXES = 100, + ICON_GRID_FILL = 101, + ICON_BOX_MULTISIZE = 102, + ICON_ZOOM_SMALL = 103, + ICON_ZOOM_MEDIUM = 104, + ICON_ZOOM_BIG = 105, + ICON_ZOOM_ALL = 106, + ICON_ZOOM_CENTER = 107, + ICON_BOX_DOTS_SMALL = 108, + ICON_BOX_DOTS_BIG = 109, + ICON_BOX_CONCENTRIC = 110, + ICON_BOX_GRID_BIG = 111, + ICON_OK_TICK = 112, + ICON_CROSS = 113, + ICON_ARROW_LEFT = 114, + ICON_ARROW_RIGHT = 115, + ICON_ARROW_DOWN = 116, + ICON_ARROW_UP = 117, + ICON_ARROW_LEFT_FILL = 118, + ICON_ARROW_RIGHT_FILL = 119, + ICON_ARROW_DOWN_FILL = 120, + ICON_ARROW_UP_FILL = 121, + ICON_AUDIO = 122, + ICON_FX = 123, + ICON_WAVE = 124, + ICON_WAVE_SINUS = 125, + ICON_WAVE_SQUARE = 126, + ICON_WAVE_TRIANGULAR = 127, + ICON_CROSS_SMALL = 128, + ICON_PLAYER_PREVIOUS = 129, + ICON_PLAYER_PLAY_BACK = 130, + ICON_PLAYER_PLAY = 131, + ICON_PLAYER_PAUSE = 132, + ICON_PLAYER_STOP = 133, + ICON_PLAYER_NEXT = 134, + ICON_PLAYER_RECORD = 135, + ICON_MAGNET = 136, + ICON_LOCK_CLOSE = 137, + ICON_LOCK_OPEN = 138, + ICON_CLOCK = 139, + ICON_TOOLS = 140, + ICON_GEAR = 141, + ICON_GEAR_BIG = 142, + ICON_BIN = 143, + ICON_HAND_POINTER = 144, + ICON_LASER = 145, + ICON_COIN = 146, + ICON_EXPLOSION = 147, + ICON_1UP = 148, + ICON_PLAYER = 149, + ICON_PLAYER_JUMP = 150, + ICON_KEY = 151, + ICON_DEMON = 152, + ICON_TEXT_POPUP = 153, + ICON_GEAR_EX = 154, + ICON_CRACK = 155, + ICON_CRACK_POINTS = 156, + ICON_STAR = 157, + ICON_DOOR = 158, + ICON_EXIT = 159, + ICON_MODE_2D = 160, + ICON_MODE_3D = 161, + ICON_CUBE = 162, + ICON_CUBE_FACE_TOP = 163, + ICON_CUBE_FACE_LEFT = 164, + ICON_CUBE_FACE_FRONT = 165, + ICON_CUBE_FACE_BOTTOM = 166, + ICON_CUBE_FACE_RIGHT = 167, + ICON_CUBE_FACE_BACK = 168, + ICON_CAMERA = 169, + ICON_SPECIAL = 170, + ICON_LINK_NET = 171, + ICON_LINK_BOXES = 172, + ICON_LINK_MULTI = 173, + ICON_LINK = 174, + ICON_LINK_BROKE = 175, + ICON_TEXT_NOTES = 176, + ICON_NOTEBOOK = 177, + ICON_SUITCASE = 178, + ICON_SUITCASE_ZIP = 179, + ICON_MAILBOX = 180, + ICON_MONITOR = 181, + ICON_PRINTER = 182, + ICON_PHOTO_CAMERA = 183, + ICON_PHOTO_CAMERA_FLASH = 184, + ICON_HOUSE = 185, + ICON_HEART = 186, + ICON_CORNER = 187, + ICON_VERTICAL_BARS = 188, + ICON_VERTICAL_BARS_FILL = 189, + ICON_LIFE_BARS = 190, + ICON_INFO = 191, + ICON_CROSSLINE = 192, + ICON_HELP = 193, + ICON_FILETYPE_ALPHA = 194, + ICON_FILETYPE_HOME = 195, + ICON_LAYERS_VISIBLE = 196, + ICON_LAYERS = 197, + ICON_WINDOW = 198, + ICON_HIDPI = 199, + ICON_FILETYPE_BINARY = 200, + ICON_HEX = 201, + ICON_SHIELD = 202, + ICON_FILE_NEW = 203, + ICON_FOLDER_ADD = 204, + ICON_ALARM = 205, + ICON_CPU = 206, + ICON_ROM = 207, + ICON_STEP_OVER = 208, + ICON_STEP_INTO = 209, + ICON_STEP_OUT = 210, + ICON_RESTART = 211, + ICON_BREAKPOINT_ON = 212, + ICON_BREAKPOINT_OFF = 213, + ICON_BURGER_MENU = 214, + ICON_CASE_SENSITIVE = 215, + ICON_REG_EXP = 216, + ICON_FOLDER = 217, + ICON_FILE = 218, + ICON_SAND_TIMER = 219, + ICON_WARNING = 220, + ICON_HELP_BOX = 221, + ICON_INFO_BOX = 222, + ICON_PRIORITY = 223, + ICON_LAYERS_ISO = 224, + ICON_LAYERS2 = 225, + ICON_MLAYERS = 226, + ICON_MAPS = 227, + ICON_HOT = 228, + ICON_LABEL = 229, + ICON_NAME_ID = 230, + ICON_SLICING = 231, + ICON_MANUAL_CONTROL = 232, + ICON_COLLISION = 233, + ICON_CIRCLE_ADD = 234, + ICON_CIRCLE_ADD_FILL = 235, + ICON_CIRCLE_WARNING = 236, + ICON_CIRCLE_WARNING_FILL = 237, + ICON_BOX_MORE = 238, + ICON_BOX_MORE_FILL = 239, + ICON_BOX_MINUS = 240, + ICON_BOX_MINUS_FILL = 241, + ICON_UNION = 242, + ICON_INTERSECTION = 243, + ICON_DIFFERENCE = 244, + ICON_SPHERE = 245, + ICON_CYLINDER = 246, + ICON_CONE = 247, + ICON_ELLIPSOID = 248, + ICON_CAPSULE = 249, + ICON_250 = 250, + ICON_251 = 251, + ICON_252 = 252, + ICON_253 = 253, + ICON_254 = 254, + ICON_255 = 255 +} GuiIconName; +#endif + +#endif + +#if defined(__cplusplus) +} // Prevents name mangling of functions +#endif + +#endif // RAYGUI_H + +/*********************************************************************************** +* +* RAYGUI IMPLEMENTATION +* +************************************************************************************/ + +#if defined(RAYGUI_IMPLEMENTATION) + +#include // Required for: FILE, fopen(), fclose(), fprintf(), feof(), fscanf(), snprintf(), vsprintf() [GuiLoadStyle(), GuiLoadIcons()] +#include // Required for: strlen() [GuiTextBox(), GuiValueBox()], memset(), memcpy() +#include // Required for: va_list, va_start(), vfprintf(), va_end() [TextFormat()] +#include // Required for: roundf() [GuiColorPicker()] +#include // Required for: isspace() [GuiTextBox()] + +// Allow custom memory allocators +#if defined(RAYGUI_MALLOC) || defined(RAYGUI_CALLOC) || defined(RAYGUI_FREE) + #if !defined(RAYGUI_MALLOC) || !defined(RAYGUI_CALLOC) || !defined(RAYGUI_FREE) + #error "RAYGUI: if RAYGUI_MALLOC, RAYGUI_CALLOC, or RAYGUI_FREE is customized, all three must be customized" + #endif +#else + #include // Required for: malloc(), calloc(), free() [GuiLoadStyle(), GuiLoadIcons()] + + #define RAYGUI_MALLOC(sz) malloc(sz) + #define RAYGUI_CALLOC(n,sz) calloc(n,sz) + #define RAYGUI_FREE(p) free(p) +#endif + +#ifdef __cplusplus + #define RAYGUI_CLITERAL(name) name +#else + #define RAYGUI_CLITERAL(name) (name) +#endif + +// Check if two rectangles are equal, used to validate a slider bounds as an id +#ifndef CHECK_BOUNDS_ID + #define CHECK_BOUNDS_ID(src, dst) (((int)src.x == (int)dst.x) && ((int)src.y == (int)dst.y) && ((int)src.width == (int)dst.width) && ((int)src.height == (int)dst.height)) +#endif + +#if !defined(RAYGUI_NO_ICONS) && !defined(RAYGUI_CUSTOM_ICONS) + +// Embedded icons, no external file provided +#define RAYGUI_ICON_SIZE 16 // Size of icons in pixels (squared) +#define RAYGUI_ICON_MAX_ICONS 256 // Maximum number of icons +#define RAYGUI_ICON_MAX_NAME_LENGTH 32 // Maximum length of icon name id + +// Icons data is defined by bit array (every bit represents one pixel) +// Those arrays are stored as unsigned int data arrays, so, +// every array element defines 32 pixels (bits) of information +// One icon is defined by 8 int, (8 int*32 bit = 256 bit = 16*16 pixels) +// NOTE: Number of elemens depend on RAYGUI_ICON_SIZE (by default 16x16 pixels) +#define RAYGUI_ICON_DATA_ELEMENTS (RAYGUI_ICON_SIZE*RAYGUI_ICON_SIZE/32) + +//---------------------------------------------------------------------------------- +// Icons data for all gui possible icons (allocated on data segment by default) +// +// NOTE 1: Every icon is codified in binary form, using 1 bit per pixel, so, +// every 16x16 icon requires 8 integers (16*16/32) to be stored +// +// NOTE 2: A different icon set could be loaded over this array using GuiLoadIcons(), +// but loaded icons set must be same RAYGUI_ICON_SIZE and no more than RAYGUI_ICON_MAX_ICONS +// +// guiIcons size is by default: 256*(16*16/32) = 2048*4 = 8192 bytes = 8 KB +//---------------------------------------------------------------------------------- +static unsigned int guiIcons[RAYGUI_ICON_MAX_ICONS*RAYGUI_ICON_DATA_ELEMENTS] = { + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_NONE + 0x3ff80000, 0x2f082008, 0x2042207e, 0x40027fc2, 0x40024002, 0x40024002, 0x40024002, 0x00007ffe, // ICON_FOLDER_FILE_OPEN + 0x3ffe0000, 0x44226422, 0x400247e2, 0x5ffa4002, 0x57ea500a, 0x500a500a, 0x40025ffa, 0x00007ffe, // ICON_FILE_SAVE_CLASSIC + 0x00000000, 0x0042007e, 0x40027fc2, 0x40024002, 0x41024002, 0x44424282, 0x793e4102, 0x00000100, // ICON_FOLDER_OPEN + 0x00000000, 0x0042007e, 0x40027fc2, 0x40024002, 0x41024102, 0x44424102, 0x793e4282, 0x00000000, // ICON_FOLDER_SAVE + 0x3ff00000, 0x201c2010, 0x20042004, 0x21042004, 0x24442284, 0x21042104, 0x20042104, 0x00003ffc, // ICON_FILE_OPEN + 0x3ff00000, 0x201c2010, 0x20042004, 0x21042004, 0x21042104, 0x22842444, 0x20042104, 0x00003ffc, // ICON_FILE_SAVE + 0x3ff00000, 0x201c2010, 0x00042004, 0x20041004, 0x20844784, 0x00841384, 0x20042784, 0x00003ffc, // ICON_FILE_EXPORT + 0x3ff00000, 0x201c2010, 0x20042004, 0x20042004, 0x22042204, 0x22042f84, 0x20042204, 0x00003ffc, // ICON_FILE_ADD + 0x3ff00000, 0x201c2010, 0x20042004, 0x20042004, 0x25042884, 0x25042204, 0x20042884, 0x00003ffc, // ICON_FILE_DELETE + 0x3ff00000, 0x201c2010, 0x20042004, 0x20042ff4, 0x20042ff4, 0x20042ff4, 0x20042004, 0x00003ffc, // ICON_FILETYPE_TEXT + 0x3ff00000, 0x201c2010, 0x27042004, 0x244424c4, 0x26442444, 0x20642664, 0x20042004, 0x00003ffc, // ICON_FILETYPE_AUDIO + 0x3ff00000, 0x201c2010, 0x26042604, 0x20042004, 0x35442884, 0x2414222c, 0x20042004, 0x00003ffc, // ICON_FILETYPE_IMAGE + 0x3ff00000, 0x201c2010, 0x20c42004, 0x22442144, 0x22442444, 0x20c42144, 0x20042004, 0x00003ffc, // ICON_FILETYPE_PLAY + 0x3ff00000, 0x3ffc2ff0, 0x3f3c2ff4, 0x3dbc2eb4, 0x3dbc2bb4, 0x3f3c2eb4, 0x3ffc2ff4, 0x00002ff4, // ICON_FILETYPE_VIDEO + 0x3ff00000, 0x201c2010, 0x21842184, 0x21842004, 0x21842184, 0x21842184, 0x20042184, 0x00003ffc, // ICON_FILETYPE_INFO + 0x0ff00000, 0x381c0810, 0x28042804, 0x28042804, 0x28042804, 0x28042804, 0x20102ffc, 0x00003ff0, // ICON_FILE_COPY + 0x00000000, 0x701c0000, 0x079c1e14, 0x55a000f0, 0x079c00f0, 0x701c1e14, 0x00000000, 0x00000000, // ICON_FILE_CUT + 0x01c00000, 0x13e41bec, 0x3f841004, 0x204420c4, 0x20442044, 0x20442044, 0x207c2044, 0x00003fc0, // ICON_FILE_PASTE + 0x00000000, 0x3aa00fe0, 0x2abc2aa0, 0x2aa42aa4, 0x20042aa4, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_CURSOR_HAND + 0x00000000, 0x003c000c, 0x030800c8, 0x30100c10, 0x10202020, 0x04400840, 0x01800280, 0x00000000, // ICON_CURSOR_POINTER + 0x00000000, 0x00180000, 0x01f00078, 0x03e007f0, 0x07c003e0, 0x04000e40, 0x00000000, 0x00000000, // ICON_CURSOR_CLASSIC + 0x00000000, 0x04000000, 0x11000a00, 0x04400a80, 0x01100220, 0x00580088, 0x00000038, 0x00000000, // ICON_PENCIL + 0x04000000, 0x15000a00, 0x50402880, 0x14102820, 0x05040a08, 0x015c028c, 0x007c00bc, 0x00000000, // ICON_PENCIL_BIG + 0x01c00000, 0x01400140, 0x01400140, 0x0ff80140, 0x0ff80808, 0x0aa80808, 0x0aa80aa8, 0x00000ff8, // ICON_BRUSH_CLASSIC + 0x1ffc0000, 0x5ffc7ffe, 0x40004000, 0x00807f80, 0x01c001c0, 0x01c001c0, 0x01c001c0, 0x00000080, // ICON_BRUSH_PAINTER + 0x00000000, 0x00800000, 0x01c00080, 0x03e001c0, 0x07f003e0, 0x036006f0, 0x000001c0, 0x00000000, // ICON_WATER_DROP + 0x00000000, 0x3e003800, 0x1f803f80, 0x0c201e40, 0x02080c10, 0x00840104, 0x00380044, 0x00000000, // ICON_COLOR_PICKER + 0x00000000, 0x07800300, 0x1fe00fc0, 0x3f883fd0, 0x0e021f04, 0x02040402, 0x00f00108, 0x00000000, // ICON_RUBBER + 0x00c00000, 0x02800140, 0x08200440, 0x20081010, 0x2ffe3004, 0x03f807fc, 0x00e001f0, 0x00000040, // ICON_COLOR_BUCKET + 0x00000000, 0x21843ffc, 0x01800180, 0x01800180, 0x01800180, 0x01800180, 0x03c00180, 0x00000000, // ICON_TEXT_T + 0x00800000, 0x01400180, 0x06200340, 0x0c100620, 0x1ff80c10, 0x380c1808, 0x70067004, 0x0000f80f, // ICON_TEXT_A + 0x78000000, 0x50004000, 0x00004800, 0x03c003c0, 0x03c003c0, 0x00100000, 0x0002000a, 0x0000000e, // ICON_SCALE + 0x75560000, 0x5e004002, 0x54001002, 0x41001202, 0x408200fe, 0x40820082, 0x40820082, 0x00006afe, // ICON_RESIZE + 0x00000000, 0x3f003f00, 0x3f003f00, 0x3f003f00, 0x00400080, 0x001c0020, 0x001c001c, 0x00000000, // ICON_FILTER_POINT + 0x6d800000, 0x00004080, 0x40804080, 0x40800000, 0x00406d80, 0x001c0020, 0x001c001c, 0x00000000, // ICON_FILTER_BILINEAR + 0x40080000, 0x1ffe2008, 0x14081008, 0x11081208, 0x10481088, 0x10081028, 0x10047ff8, 0x00001002, // ICON_CROP + 0x00100000, 0x3ffc0010, 0x2ab03550, 0x22b02550, 0x20b02150, 0x20302050, 0x2000fff0, 0x00002000, // ICON_CROP_ALPHA + 0x40000000, 0x1ff82000, 0x04082808, 0x01082208, 0x00482088, 0x00182028, 0x35542008, 0x00000002, // ICON_SQUARE_TOGGLE + 0x00000000, 0x02800280, 0x06c006c0, 0x0ea00ee0, 0x1e901eb0, 0x3e883e98, 0x7efc7e8c, 0x00000000, // ICON_SYMMETRY + 0x01000000, 0x05600100, 0x1d480d50, 0x7d423d44, 0x3d447d42, 0x0d501d48, 0x01000560, 0x00000100, // ICON_SYMMETRY_HORIZONTAL + 0x01800000, 0x04200240, 0x10080810, 0x00001ff8, 0x00007ffe, 0x0ff01ff8, 0x03c007e0, 0x00000180, // ICON_SYMMETRY_VERTICAL + 0x00000000, 0x010800f0, 0x02040204, 0x02040204, 0x07f00308, 0x1c000e00, 0x30003800, 0x00000000, // ICON_LENS + 0x00000000, 0x061803f0, 0x08240c0c, 0x08040814, 0x0c0c0804, 0x23f01618, 0x18002400, 0x00000000, // ICON_LENS_BIG + 0x00000000, 0x00000000, 0x1c7007c0, 0x638e3398, 0x1c703398, 0x000007c0, 0x00000000, 0x00000000, // ICON_EYE_ON + 0x00000000, 0x10002000, 0x04700fc0, 0x610e3218, 0x1c703098, 0x001007a0, 0x00000008, 0x00000000, // ICON_EYE_OFF + 0x00000000, 0x00007ffc, 0x40047ffc, 0x10102008, 0x04400820, 0x02800280, 0x02800280, 0x00000100, // ICON_FILTER_TOP + 0x00000000, 0x40027ffe, 0x10082004, 0x04200810, 0x02400240, 0x02400240, 0x01400240, 0x000000c0, // ICON_FILTER + 0x00800000, 0x00800080, 0x00000080, 0x3c9e0000, 0x00000000, 0x00800080, 0x00800080, 0x00000000, // ICON_TARGET_POINT + 0x00800000, 0x00800080, 0x00800080, 0x3f7e01c0, 0x008001c0, 0x00800080, 0x00800080, 0x00000000, // ICON_TARGET_SMALL + 0x00800000, 0x00800080, 0x03e00080, 0x3e3e0220, 0x03e00220, 0x00800080, 0x00800080, 0x00000000, // ICON_TARGET_BIG + 0x01000000, 0x04400280, 0x01000100, 0x43842008, 0x43849ab2, 0x01002008, 0x04400100, 0x01000280, // ICON_TARGET_MOVE + 0x01000000, 0x04400280, 0x01000100, 0x41042108, 0x41049ff2, 0x01002108, 0x04400100, 0x01000280, // ICON_CURSOR_MOVE + 0x781e0000, 0x500a4002, 0x04204812, 0x00000240, 0x02400000, 0x48120420, 0x4002500a, 0x0000781e, // ICON_CURSOR_SCALE + 0x00000000, 0x20003c00, 0x24002800, 0x01000200, 0x00400080, 0x00140024, 0x003c0004, 0x00000000, // ICON_CURSOR_SCALE_RIGHT + 0x00000000, 0x0004003c, 0x00240014, 0x00800040, 0x02000100, 0x28002400, 0x3c002000, 0x00000000, // ICON_CURSOR_SCALE_LEFT + 0x00000000, 0x00100020, 0x10101fc8, 0x10001020, 0x10001000, 0x10001000, 0x00001fc0, 0x00000000, // ICON_UNDO + 0x00000000, 0x08000400, 0x080813f8, 0x00080408, 0x00080008, 0x00080008, 0x000003f8, 0x00000000, // ICON_REDO + 0x00000000, 0x3ffc0000, 0x20042004, 0x20002000, 0x20402000, 0x3f902020, 0x00400020, 0x00000000, // ICON_REREDO + 0x00000000, 0x3ffc0000, 0x20042004, 0x27fc2004, 0x20202000, 0x3fc82010, 0x00200010, 0x00000000, // ICON_MUTATE + 0x00000000, 0x0ff00000, 0x10081818, 0x11801008, 0x10001180, 0x18101020, 0x00100fc8, 0x00000020, // ICON_ROTATE + 0x00000000, 0x04000200, 0x240429fc, 0x20042204, 0x20442004, 0x3f942024, 0x00400020, 0x00000000, // ICON_REPEAT + 0x00000000, 0x20001000, 0x22104c0e, 0x00801120, 0x11200040, 0x4c0e2210, 0x10002000, 0x00000000, // ICON_SHUFFLE + 0x7ffe0000, 0x50024002, 0x44024802, 0x41024202, 0x40424082, 0x40124022, 0x4002400a, 0x00007ffe, // ICON_EMPTYBOX + 0x00800000, 0x03e00080, 0x08080490, 0x3c9e0808, 0x08080808, 0x03e00490, 0x00800080, 0x00000000, // ICON_TARGET + 0x00800000, 0x00800080, 0x00800080, 0x3ffe01c0, 0x008001c0, 0x00800080, 0x00800080, 0x00000000, // ICON_TARGET_SMALL_FILL + 0x00800000, 0x00800080, 0x03e00080, 0x3ffe03e0, 0x03e003e0, 0x00800080, 0x00800080, 0x00000000, // ICON_TARGET_BIG_FILL + 0x01000000, 0x07c00380, 0x01000100, 0x638c2008, 0x638cfbbe, 0x01002008, 0x07c00100, 0x01000380, // ICON_TARGET_MOVE_FILL + 0x01000000, 0x07c00380, 0x01000100, 0x610c2108, 0x610cfffe, 0x01002108, 0x07c00100, 0x01000380, // ICON_CURSOR_MOVE_FILL + 0x781e0000, 0x6006700e, 0x04204812, 0x00000240, 0x02400000, 0x48120420, 0x700e6006, 0x0000781e, // ICON_CURSOR_SCALE_FILL + 0x00000000, 0x38003c00, 0x24003000, 0x01000200, 0x00400080, 0x000c0024, 0x003c001c, 0x00000000, // ICON_CURSOR_SCALE_RIGHT_FILL + 0x00000000, 0x001c003c, 0x0024000c, 0x00800040, 0x02000100, 0x30002400, 0x3c003800, 0x00000000, // ICON_CURSOR_SCALE_LEFT_FILL + 0x00000000, 0x00300020, 0x10301ff8, 0x10001020, 0x10001000, 0x10001000, 0x00001fc0, 0x00000000, // ICON_UNDO_FILL + 0x00000000, 0x0c000400, 0x0c081ff8, 0x00080408, 0x00080008, 0x00080008, 0x000003f8, 0x00000000, // ICON_REDO_FILL + 0x00000000, 0x3ffc0000, 0x20042004, 0x20002000, 0x20402000, 0x3ff02060, 0x00400060, 0x00000000, // ICON_REREDO_FILL + 0x00000000, 0x3ffc0000, 0x20042004, 0x27fc2004, 0x20202000, 0x3ff82030, 0x00200030, 0x00000000, // ICON_MUTATE_FILL + 0x00000000, 0x0ff00000, 0x10081818, 0x11801008, 0x10001180, 0x18301020, 0x00300ff8, 0x00000020, // ICON_ROTATE_FILL + 0x00000000, 0x06000200, 0x26042ffc, 0x20042204, 0x20442004, 0x3ff42064, 0x00400060, 0x00000000, // ICON_REPEAT_FILL + 0x00000000, 0x30001000, 0x32107c0e, 0x00801120, 0x11200040, 0x7c0e3210, 0x10003000, 0x00000000, // ICON_SHUFFLE_FILL + 0x00000000, 0x30043ffc, 0x24042804, 0x21042204, 0x20442084, 0x20142024, 0x3ffc200c, 0x00000000, // ICON_EMPTYBOX_SMALL + 0x00000000, 0x20043ffc, 0x20042004, 0x20042004, 0x20042004, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX + 0x00000000, 0x23c43ffc, 0x23c423c4, 0x200423c4, 0x20042004, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX_TOP + 0x00000000, 0x3e043ffc, 0x3e043e04, 0x20043e04, 0x20042004, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX_TOP_RIGHT + 0x00000000, 0x20043ffc, 0x20042004, 0x3e043e04, 0x3e043e04, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX_RIGHT + 0x00000000, 0x20043ffc, 0x20042004, 0x20042004, 0x3e042004, 0x3e043e04, 0x3ffc3e04, 0x00000000, // ICON_BOX_BOTTOM_RIGHT + 0x00000000, 0x20043ffc, 0x20042004, 0x20042004, 0x23c42004, 0x23c423c4, 0x3ffc23c4, 0x00000000, // ICON_BOX_BOTTOM + 0x00000000, 0x20043ffc, 0x20042004, 0x20042004, 0x207c2004, 0x207c207c, 0x3ffc207c, 0x00000000, // ICON_BOX_BOTTOM_LEFT + 0x00000000, 0x20043ffc, 0x20042004, 0x207c207c, 0x207c207c, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX_LEFT + 0x00000000, 0x207c3ffc, 0x207c207c, 0x2004207c, 0x20042004, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX_TOP_LEFT + 0x00000000, 0x20043ffc, 0x20042004, 0x23c423c4, 0x23c423c4, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX_CENTER + 0x7ffe0000, 0x40024002, 0x47e24182, 0x4ff247e2, 0x47e24ff2, 0x418247e2, 0x40024002, 0x00007ffe, // ICON_BOX_CIRCLE_MASK + 0x7fff0000, 0x40014001, 0x40014001, 0x49555ddd, 0x4945495d, 0x400149c5, 0x40014001, 0x00007fff, // ICON_POT + 0x7ffe0000, 0x53327332, 0x44ce4cce, 0x41324332, 0x404e40ce, 0x48125432, 0x4006540e, 0x00007ffe, // ICON_ALPHA_MULTIPLY + 0x7ffe0000, 0x53327332, 0x44ce4cce, 0x41324332, 0x5c4e40ce, 0x44124432, 0x40065c0e, 0x00007ffe, // ICON_ALPHA_CLEAR + 0x7ffe0000, 0x42fe417e, 0x42fe417e, 0x42fe417e, 0x42fe417e, 0x42fe417e, 0x42fe417e, 0x00007ffe, // ICON_DITHERING + 0x07fe0000, 0x1ffa0002, 0x7fea000a, 0x402a402a, 0x5b2a512a, 0x5128552a, 0x40205128, 0x00007fe0, // ICON_MIPMAPS + 0x00000000, 0x1ff80000, 0x12481248, 0x12481ff8, 0x1ff81248, 0x12481248, 0x00001ff8, 0x00000000, // ICON_BOX_GRID + 0x12480000, 0x7ffe1248, 0x12481248, 0x12487ffe, 0x7ffe1248, 0x12481248, 0x12487ffe, 0x00001248, // ICON_GRID + 0x00000000, 0x1c380000, 0x1c3817e8, 0x08100810, 0x08100810, 0x17e81c38, 0x00001c38, 0x00000000, // ICON_BOX_CORNERS_SMALL + 0x700e0000, 0x700e5ffa, 0x20042004, 0x20042004, 0x20042004, 0x20042004, 0x5ffa700e, 0x0000700e, // ICON_BOX_CORNERS_BIG + 0x3f7e0000, 0x21422142, 0x21422142, 0x00003f7e, 0x21423f7e, 0x21422142, 0x3f7e2142, 0x00000000, // ICON_FOUR_BOXES + 0x00000000, 0x3bb80000, 0x3bb83bb8, 0x3bb80000, 0x3bb83bb8, 0x3bb80000, 0x3bb83bb8, 0x00000000, // ICON_GRID_FILL + 0x7ffe0000, 0x7ffe7ffe, 0x77fe7000, 0x77fe77fe, 0x777e7700, 0x777e777e, 0x777e777e, 0x0000777e, // ICON_BOX_MULTISIZE + 0x781e0000, 0x40024002, 0x00004002, 0x01800000, 0x00000180, 0x40020000, 0x40024002, 0x0000781e, // ICON_ZOOM_SMALL + 0x781e0000, 0x40024002, 0x00004002, 0x03c003c0, 0x03c003c0, 0x40020000, 0x40024002, 0x0000781e, // ICON_ZOOM_MEDIUM + 0x781e0000, 0x40024002, 0x07e04002, 0x07e007e0, 0x07e007e0, 0x400207e0, 0x40024002, 0x0000781e, // ICON_ZOOM_BIG + 0x781e0000, 0x5ffa4002, 0x1ff85ffa, 0x1ff81ff8, 0x1ff81ff8, 0x5ffa1ff8, 0x40025ffa, 0x0000781e, // ICON_ZOOM_ALL + 0x00000000, 0x2004381c, 0x00002004, 0x00000000, 0x00000000, 0x20040000, 0x381c2004, 0x00000000, // ICON_ZOOM_CENTER + 0x00000000, 0x1db80000, 0x10081008, 0x10080000, 0x00001008, 0x10081008, 0x00001db8, 0x00000000, // ICON_BOX_DOTS_SMALL + 0x35560000, 0x00002002, 0x00002002, 0x00002002, 0x00002002, 0x00002002, 0x35562002, 0x00000000, // ICON_BOX_DOTS_BIG + 0x7ffe0000, 0x40024002, 0x48124ff2, 0x49924812, 0x48124992, 0x4ff24812, 0x40024002, 0x00007ffe, // ICON_BOX_CONCENTRIC + 0x00000000, 0x10841ffc, 0x10841084, 0x1ffc1084, 0x10841084, 0x10841084, 0x00001ffc, 0x00000000, // ICON_BOX_GRID_BIG + 0x00000000, 0x00000000, 0x10000000, 0x04000800, 0x01040200, 0x00500088, 0x00000020, 0x00000000, // ICON_OK_TICK + 0x00000000, 0x10080000, 0x04200810, 0x01800240, 0x02400180, 0x08100420, 0x00001008, 0x00000000, // ICON_CROSS + 0x00000000, 0x02000000, 0x00800100, 0x00200040, 0x00200010, 0x00800040, 0x02000100, 0x00000000, // ICON_ARROW_LEFT + 0x00000000, 0x00400000, 0x01000080, 0x04000200, 0x04000800, 0x01000200, 0x00400080, 0x00000000, // ICON_ARROW_RIGHT + 0x00000000, 0x00000000, 0x00000000, 0x08081004, 0x02200410, 0x00800140, 0x00000000, 0x00000000, // ICON_ARROW_DOWN + 0x00000000, 0x00000000, 0x01400080, 0x04100220, 0x10040808, 0x00000000, 0x00000000, 0x00000000, // ICON_ARROW_UP + 0x00000000, 0x02000000, 0x03800300, 0x03e003c0, 0x03e003f0, 0x038003c0, 0x02000300, 0x00000000, // ICON_ARROW_LEFT_FILL + 0x00000000, 0x00400000, 0x01c000c0, 0x07c003c0, 0x07c00fc0, 0x01c003c0, 0x004000c0, 0x00000000, // ICON_ARROW_RIGHT_FILL + 0x00000000, 0x00000000, 0x00000000, 0x0ff81ffc, 0x03e007f0, 0x008001c0, 0x00000000, 0x00000000, // ICON_ARROW_DOWN_FILL + 0x00000000, 0x00000000, 0x01c00080, 0x07f003e0, 0x1ffc0ff8, 0x00000000, 0x00000000, 0x00000000, // ICON_ARROW_UP_FILL + 0x00000000, 0x18a008c0, 0x32881290, 0x24822686, 0x26862482, 0x12903288, 0x08c018a0, 0x00000000, // ICON_AUDIO + 0x00000000, 0x04800780, 0x004000c0, 0x662000f0, 0x08103c30, 0x130a0e18, 0x0000318e, 0x00000000, // ICON_FX + 0x00000000, 0x00800000, 0x08880888, 0x2aaa0a8a, 0x0a8a2aaa, 0x08880888, 0x00000080, 0x00000000, // ICON_WAVE + 0x00000000, 0x00600000, 0x01080090, 0x02040108, 0x42044204, 0x24022402, 0x00001800, 0x00000000, // ICON_WAVE_SINUS + 0x00000000, 0x07f80000, 0x04080408, 0x04080408, 0x04080408, 0x7c0e0408, 0x00000000, 0x00000000, // ICON_WAVE_SQUARE + 0x00000000, 0x00000000, 0x00a00040, 0x22084110, 0x08021404, 0x00000000, 0x00000000, 0x00000000, // ICON_WAVE_TRIANGULAR + 0x00000000, 0x00000000, 0x04200000, 0x01800240, 0x02400180, 0x00000420, 0x00000000, 0x00000000, // ICON_CROSS_SMALL + 0x00000000, 0x18380000, 0x12281428, 0x10a81128, 0x112810a8, 0x14281228, 0x00001838, 0x00000000, // ICON_PLAYER_PREVIOUS + 0x00000000, 0x18000000, 0x11801600, 0x10181060, 0x10601018, 0x16001180, 0x00001800, 0x00000000, // ICON_PLAYER_PLAY_BACK + 0x00000000, 0x00180000, 0x01880068, 0x18080608, 0x06081808, 0x00680188, 0x00000018, 0x00000000, // ICON_PLAYER_PLAY + 0x00000000, 0x1e780000, 0x12481248, 0x12481248, 0x12481248, 0x12481248, 0x00001e78, 0x00000000, // ICON_PLAYER_PAUSE + 0x00000000, 0x1ff80000, 0x10081008, 0x10081008, 0x10081008, 0x10081008, 0x00001ff8, 0x00000000, // ICON_PLAYER_STOP + 0x00000000, 0x1c180000, 0x14481428, 0x15081488, 0x14881508, 0x14281448, 0x00001c18, 0x00000000, // ICON_PLAYER_NEXT + 0x00000000, 0x03c00000, 0x08100420, 0x10081008, 0x10081008, 0x04200810, 0x000003c0, 0x00000000, // ICON_PLAYER_RECORD + 0x00000000, 0x0c3007e0, 0x13c81818, 0x14281668, 0x14281428, 0x1c381c38, 0x08102244, 0x00000000, // ICON_MAGNET + 0x07c00000, 0x08200820, 0x3ff80820, 0x23882008, 0x21082388, 0x20082108, 0x1ff02008, 0x00000000, // ICON_LOCK_CLOSE + 0x07c00000, 0x08000800, 0x3ff80800, 0x23882008, 0x21082388, 0x20082108, 0x1ff02008, 0x00000000, // ICON_LOCK_OPEN + 0x01c00000, 0x0c180770, 0x3086188c, 0x60832082, 0x60034781, 0x30062002, 0x0c18180c, 0x01c00770, // ICON_CLOCK + 0x0a200000, 0x1b201b20, 0x04200e20, 0x04200420, 0x04700420, 0x0e700e70, 0x0e700e70, 0x04200e70, // ICON_TOOLS + 0x01800000, 0x3bdc318c, 0x0ff01ff8, 0x7c3e1e78, 0x1e787c3e, 0x1ff80ff0, 0x318c3bdc, 0x00000180, // ICON_GEAR + 0x01800000, 0x3ffc318c, 0x1c381ff8, 0x781e1818, 0x1818781e, 0x1ff81c38, 0x318c3ffc, 0x00000180, // ICON_GEAR_BIG + 0x00000000, 0x08080ff8, 0x08081ffc, 0x0aa80aa8, 0x0aa80aa8, 0x0aa80aa8, 0x08080aa8, 0x00000ff8, // ICON_BIN + 0x00000000, 0x00000000, 0x20043ffc, 0x08043f84, 0x04040f84, 0x04040784, 0x000007fc, 0x00000000, // ICON_HAND_POINTER + 0x00000000, 0x24400400, 0x00001480, 0x6efe0e00, 0x00000e00, 0x24401480, 0x00000400, 0x00000000, // ICON_LASER + 0x00000000, 0x03c00000, 0x08300460, 0x11181118, 0x11181118, 0x04600830, 0x000003c0, 0x00000000, // ICON_COIN + 0x00000000, 0x10880080, 0x06c00810, 0x366c07e0, 0x07e00240, 0x00001768, 0x04200240, 0x00000000, // ICON_EXPLOSION + 0x00000000, 0x3d280000, 0x2528252c, 0x3d282528, 0x05280528, 0x05e80528, 0x00000000, 0x00000000, // ICON_1UP + 0x01800000, 0x03c003c0, 0x018003c0, 0x0ff007e0, 0x0bd00bd0, 0x0a500bd0, 0x02400240, 0x02400240, // ICON_PLAYER + 0x01800000, 0x03c003c0, 0x118013c0, 0x03c81ff8, 0x07c003c8, 0x04400440, 0x0c080478, 0x00000000, // ICON_PLAYER_JUMP + 0x3ff80000, 0x30183ff8, 0x30183018, 0x3ff83ff8, 0x03000300, 0x03c003c0, 0x03e00300, 0x000003e0, // ICON_KEY + 0x3ff80000, 0x3ff83ff8, 0x33983ff8, 0x3ff83398, 0x3ff83ff8, 0x00000540, 0x0fe00aa0, 0x00000fe0, // ICON_DEMON + 0x00000000, 0x0ff00000, 0x20041008, 0x25442004, 0x10082004, 0x06000bf0, 0x00000300, 0x00000000, // ICON_TEXT_POPUP + 0x00000000, 0x11440000, 0x07f00be8, 0x1c1c0e38, 0x1c1c0c18, 0x07f00e38, 0x11440be8, 0x00000000, // ICON_GEAR_EX + 0x00000000, 0x20080000, 0x0c601010, 0x07c00fe0, 0x07c007c0, 0x0c600fe0, 0x20081010, 0x00000000, // ICON_CRACK + 0x00000000, 0x20080000, 0x0c601010, 0x04400fe0, 0x04405554, 0x0c600fe0, 0x20081010, 0x00000000, // ICON_CRACK_POINTS + 0x00000000, 0x00800080, 0x01c001c0, 0x1ffc3ffe, 0x03e007f0, 0x07f003e0, 0x0c180770, 0x00000808, // ICON_STAR + 0x0ff00000, 0x08180810, 0x08100818, 0x0a100810, 0x08180810, 0x08100818, 0x08100810, 0x00001ff8, // ICON_DOOR + 0x0ff00000, 0x08100810, 0x08100810, 0x10100010, 0x4f902010, 0x10102010, 0x08100010, 0x00000ff0, // ICON_EXIT + 0x00040000, 0x001f000e, 0x0ef40004, 0x12f41284, 0x0ef41214, 0x10040004, 0x7ffc3004, 0x10003000, // ICON_MODE_2D + 0x78040000, 0x501f600e, 0x0ef44004, 0x12f41284, 0x0ef41284, 0x10140004, 0x7ffc300c, 0x10003000, // ICON_MODE_3D + 0x7fe00000, 0x50286030, 0x47fe4804, 0x44224402, 0x44224422, 0x241275e2, 0x0c06140a, 0x000007fe, // ICON_CUBE + 0x7fe00000, 0x5ff87ff0, 0x47fe4ffc, 0x44224402, 0x44224422, 0x241275e2, 0x0c06140a, 0x000007fe, // ICON_CUBE_FACE_TOP + 0x7fe00000, 0x50386030, 0x47c2483c, 0x443e443e, 0x443e443e, 0x241e75fe, 0x0c06140e, 0x000007fe, // ICON_CUBE_FACE_LEFT + 0x7fe00000, 0x50286030, 0x47fe4804, 0x47fe47fe, 0x47fe47fe, 0x27fe77fe, 0x0ffe17fe, 0x000007fe, // ICON_CUBE_FACE_FRONT + 0x7fe00000, 0x50286030, 0x47fe4804, 0x44224402, 0x44224422, 0x3bf27be2, 0x0bfe1bfa, 0x000007fe, // ICON_CUBE_FACE_BOTTOM + 0x7fe00000, 0x70286030, 0x7ffe7804, 0x7c227c02, 0x7c227c22, 0x3c127de2, 0x0c061c0a, 0x000007fe, // ICON_CUBE_FACE_RIGHT + 0x7fe00000, 0x6fe85ff0, 0x781e77e4, 0x7be27be2, 0x7be27be2, 0x24127be2, 0x0c06140a, 0x000007fe, // ICON_CUBE_FACE_BACK + 0x00000000, 0x2a0233fe, 0x22022602, 0x22022202, 0x2a022602, 0x00a033fe, 0x02080110, 0x00000000, // ICON_CAMERA + 0x00000000, 0x200c3ffc, 0x000c000c, 0x3ffc000c, 0x30003000, 0x30003000, 0x3ffc3004, 0x00000000, // ICON_SPECIAL + 0x00000000, 0x0022003e, 0x012201e2, 0x0100013e, 0x01000100, 0x79000100, 0x4f004900, 0x00007800, // ICON_LINK_NET + 0x00000000, 0x44007c00, 0x45004600, 0x00627cbe, 0x00620022, 0x45007cbe, 0x44004600, 0x00007c00, // ICON_LINK_BOXES + 0x00000000, 0x0044007c, 0x0010007c, 0x3f100010, 0x3f1021f0, 0x3f100010, 0x3f0021f0, 0x00000000, // ICON_LINK_MULTI + 0x00000000, 0x0044007c, 0x00440044, 0x0010007c, 0x00100010, 0x44107c10, 0x440047f0, 0x00007c00, // ICON_LINK + 0x00000000, 0x0044007c, 0x00440044, 0x0000007c, 0x00000010, 0x44007c10, 0x44004550, 0x00007c00, // ICON_LINK_BROKE + 0x02a00000, 0x22a43ffc, 0x20042004, 0x20042ff4, 0x20042ff4, 0x20042ff4, 0x20042004, 0x00003ffc, // ICON_TEXT_NOTES + 0x3ffc0000, 0x20042004, 0x245e27c4, 0x27c42444, 0x2004201e, 0x201e2004, 0x20042004, 0x00003ffc, // ICON_NOTEBOOK + 0x00000000, 0x07e00000, 0x04200420, 0x24243ffc, 0x24242424, 0x24242424, 0x3ffc2424, 0x00000000, // ICON_SUITCASE + 0x00000000, 0x0fe00000, 0x08200820, 0x40047ffc, 0x7ffc5554, 0x40045554, 0x7ffc4004, 0x00000000, // ICON_SUITCASE_ZIP + 0x00000000, 0x20043ffc, 0x3ffc2004, 0x13c81008, 0x100813c8, 0x10081008, 0x1ff81008, 0x00000000, // ICON_MAILBOX + 0x00000000, 0x40027ffe, 0x5ffa5ffa, 0x5ffa5ffa, 0x40025ffa, 0x03c07ffe, 0x1ff81ff8, 0x00000000, // ICON_MONITOR + 0x0ff00000, 0x6bfe7ffe, 0x7ffe7ffe, 0x68167ffe, 0x08106816, 0x08100810, 0x0ff00810, 0x00000000, // ICON_PRINTER + 0x3ff80000, 0xfffe2008, 0x870a8002, 0x904a888a, 0x904a904a, 0x870a888a, 0xfffe8002, 0x00000000, // ICON_PHOTO_CAMERA + 0x0fc00000, 0xfcfe0cd8, 0x8002fffe, 0x84428382, 0x84428442, 0x80028382, 0xfffe8002, 0x00000000, // ICON_PHOTO_CAMERA_FLASH + 0x00000000, 0x02400180, 0x08100420, 0x20041008, 0x23c42004, 0x22442244, 0x3ffc2244, 0x00000000, // ICON_HOUSE + 0x00000000, 0x1c700000, 0x3ff83ef8, 0x3ff83ff8, 0x0fe01ff0, 0x038007c0, 0x00000100, 0x00000000, // ICON_HEART + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80000000, 0xe000c000, // ICON_CORNER + 0x00000000, 0x14001c00, 0x15c01400, 0x15401540, 0x155c1540, 0x15541554, 0x1ddc1554, 0x00000000, // ICON_VERTICAL_BARS + 0x00000000, 0x03000300, 0x1b001b00, 0x1b601b60, 0x1b6c1b60, 0x1b6c1b6c, 0x1b6c1b6c, 0x00000000, // ICON_VERTICAL_BARS_FILL + 0x00000000, 0x00000000, 0x403e7ffe, 0x7ffe403e, 0x7ffe0000, 0x43fe43fe, 0x00007ffe, 0x00000000, // ICON_LIFE_BARS + 0x7ffc0000, 0x43844004, 0x43844284, 0x43844004, 0x42844284, 0x42844284, 0x40044384, 0x00007ffc, // ICON_INFO + 0x40008000, 0x10002000, 0x04000800, 0x01000200, 0x00400080, 0x00100020, 0x00040008, 0x00010002, // ICON_CROSSLINE + 0x00000000, 0x1ff01ff0, 0x18301830, 0x1f001830, 0x03001f00, 0x00000300, 0x03000300, 0x00000000, // ICON_HELP + 0x3ff00000, 0x2abc3550, 0x2aac3554, 0x2aac3554, 0x2aac3554, 0x2aac3554, 0x2aac3554, 0x00003ffc, // ICON_FILETYPE_ALPHA + 0x3ff00000, 0x201c2010, 0x22442184, 0x28142424, 0x29942814, 0x2ff42994, 0x20042004, 0x00003ffc, // ICON_FILETYPE_HOME + 0x07fe0000, 0x04020402, 0x7fe20402, 0x44224422, 0x44224422, 0x402047fe, 0x40204020, 0x00007fe0, // ICON_LAYERS_VISIBLE + 0x07fe0000, 0x04020402, 0x7c020402, 0x44024402, 0x44024402, 0x402047fe, 0x40204020, 0x00007fe0, // ICON_LAYERS + 0x00000000, 0x40027ffe, 0x7ffe4002, 0x40024002, 0x40024002, 0x40024002, 0x7ffe4002, 0x00000000, // ICON_WINDOW + 0x09100000, 0x09f00910, 0x09100910, 0x00000910, 0x24a2779e, 0x27a224a2, 0x709e20a2, 0x00000000, // ICON_HIDPI + 0x3ff00000, 0x201c2010, 0x2a842e84, 0x2e842a84, 0x2ba42004, 0x2aa42aa4, 0x20042ba4, 0x00003ffc, // ICON_FILETYPE_BINARY + 0x00000000, 0x00000000, 0x00120012, 0x4a5e4bd2, 0x485233d2, 0x00004bd2, 0x00000000, 0x00000000, // ICON_HEX + 0x01800000, 0x381c0660, 0x23c42004, 0x23c42044, 0x13c82204, 0x08101008, 0x02400420, 0x00000180, // ICON_SHIELD + 0x007e0000, 0x20023fc2, 0x40227fe2, 0x400a403a, 0x400a400a, 0x400a400a, 0x4008400e, 0x00007ff8, // ICON_FILE_NEW + 0x00000000, 0x0042007e, 0x40027fc2, 0x44024002, 0x5f024402, 0x44024402, 0x7ffe4002, 0x00000000, // ICON_FOLDER_ADD + 0x44220000, 0x12482244, 0xf3cf0000, 0x14280420, 0x48122424, 0x08100810, 0x1ff81008, 0x03c00420, // ICON_ALARM + 0x0aa00000, 0x1ff80aa0, 0x1068700e, 0x1008706e, 0x1008700e, 0x1008700e, 0x0aa01ff8, 0x00000aa0, // ICON_CPU + 0x07e00000, 0x04201db8, 0x04a01c38, 0x04a01d38, 0x04a01d38, 0x04a01d38, 0x04201d38, 0x000007e0, // ICON_ROM + 0x00000000, 0x03c00000, 0x3c382ff0, 0x3c04380c, 0x01800000, 0x03c003c0, 0x00000180, 0x00000000, // ICON_STEP_OVER + 0x01800000, 0x01800180, 0x01800180, 0x03c007e0, 0x00000180, 0x01800000, 0x03c003c0, 0x00000180, // ICON_STEP_INTO + 0x01800000, 0x07e003c0, 0x01800180, 0x01800180, 0x00000180, 0x01800000, 0x03c003c0, 0x00000180, // ICON_STEP_OUT + 0x00000000, 0x0ff003c0, 0x181c1c34, 0x303c301c, 0x30003000, 0x1c301800, 0x03c00ff0, 0x00000000, // ICON_RESTART + 0x00000000, 0x00000000, 0x07e003c0, 0x0ff00ff0, 0x0ff00ff0, 0x03c007e0, 0x00000000, 0x00000000, // ICON_BREAKPOINT_ON + 0x00000000, 0x00000000, 0x042003c0, 0x08100810, 0x08100810, 0x03c00420, 0x00000000, 0x00000000, // ICON_BREAKPOINT_OFF + 0x00000000, 0x00000000, 0x1ff81ff8, 0x1ff80000, 0x00001ff8, 0x1ff81ff8, 0x00000000, 0x00000000, // ICON_BURGER_MENU + 0x00000000, 0x00000000, 0x00880070, 0x0c880088, 0x1e8810f8, 0x3e881288, 0x00000000, 0x00000000, // ICON_CASE_SENSITIVE + 0x00000000, 0x02000000, 0x07000a80, 0x07001fc0, 0x02000a80, 0x00300030, 0x00000000, 0x00000000, // ICON_REG_EXP + 0x00000000, 0x0042007e, 0x40027fc2, 0x40024002, 0x40024002, 0x40024002, 0x7ffe4002, 0x00000000, // ICON_FOLDER + 0x3ff00000, 0x201c2010, 0x20042004, 0x20042004, 0x20042004, 0x20042004, 0x20042004, 0x00003ffc, // ICON_FILE + 0x1ff00000, 0x20082008, 0x17d02fe8, 0x05400ba0, 0x09200540, 0x23881010, 0x2fe827c8, 0x00001ff0, // ICON_SAND_TIMER + 0x01800000, 0x02400240, 0x05a00420, 0x09900990, 0x11881188, 0x21842004, 0x40024182, 0x00003ffc, // ICON_WARNING + 0x7ffe0000, 0x4ff24002, 0x4c324ff2, 0x4f824c02, 0x41824f82, 0x41824002, 0x40024182, 0x00007ffe, // ICON_HELP_BOX + 0x7ffe0000, 0x41824002, 0x40024182, 0x41824182, 0x41824182, 0x41824182, 0x40024182, 0x00007ffe, // ICON_INFO_BOX + 0x01800000, 0x04200240, 0x10080810, 0x7bde2004, 0x0a500a50, 0x08500bd0, 0x08100850, 0x00000ff0, // ICON_PRIORITY + 0x01800000, 0x18180660, 0x80016006, 0x98196006, 0x99996666, 0x19986666, 0x01800660, 0x00000000, // ICON_LAYERS_ISO + 0x07fe0000, 0x1c020402, 0x74021402, 0x54025402, 0x54025402, 0x500857fe, 0x40205ff8, 0x00007fe0, // ICON_LAYERS2 + 0x0ffe0000, 0x3ffa0802, 0x7fea200a, 0x402a402a, 0x422a422a, 0x422e422a, 0x40384e28, 0x00007fe0, // ICON_MLAYERS + 0x0ffe0000, 0x3ffa0802, 0x7fea200a, 0x402a402a, 0x5b2a512a, 0x512e552a, 0x40385128, 0x00007fe0, // ICON_MAPS + 0x04200000, 0x1cf00c60, 0x11f019f0, 0x0f3807b8, 0x1e3c0f3c, 0x1c1c1e1c, 0x1e3c1c1c, 0x00000f70, // ICON_HOT + 0x00000000, 0x20803f00, 0x2a202e40, 0x20082e10, 0x08021004, 0x02040402, 0x00900108, 0x00000060, // ICON_LABEL + 0x00000000, 0x042007e0, 0x47e27c3e, 0x4ffa4002, 0x47fa4002, 0x4ffa4002, 0x7ffe4002, 0x00000000, // ICON_NAME_ID + 0x7fe00000, 0x402e4020, 0x43ce5e0a, 0x40504078, 0x438e4078, 0x402e5e0a, 0x7fe04020, 0x00000000, // ICON_SLICING + 0x00000000, 0x40027ffe, 0x47c24002, 0x55425d42, 0x55725542, 0x50125552, 0x10105016, 0x00001ff0, // ICON_MANUAL_CONTROL + 0x7ffe0000, 0x43c24002, 0x48124422, 0x500a500a, 0x500a500a, 0x44224812, 0x400243c2, 0x00007ffe, // ICON_COLLISION + 0x03c00000, 0x10080c30, 0x21842184, 0x4ff24182, 0x41824ff2, 0x21842184, 0x0c301008, 0x000003c0, // ICON_CIRCLE_ADD + 0x03c00000, 0x1ff80ff0, 0x3e7c3e7c, 0x700e7e7e, 0x7e7e700e, 0x3e7c3e7c, 0x0ff01ff8, 0x000003c0, // ICON_CIRCLE_ADD_FILL + 0x03c00000, 0x10080c30, 0x21842184, 0x41824182, 0x40024182, 0x21842184, 0x0c301008, 0x000003c0, // ICON_CIRCLE_WARNING + 0x03c00000, 0x1ff80ff0, 0x3e7c3e7c, 0x7e7e7e7e, 0x7ffe7e7e, 0x3e7c3e7c, 0x0ff01ff8, 0x000003c0, // ICON_CIRCLE_WARNING_FILL + 0x00000000, 0x10041ffc, 0x10841004, 0x13e41084, 0x10841084, 0x10041004, 0x00001ffc, 0x00000000, // ICON_BOX_MORE + 0x00000000, 0x1ffc1ffc, 0x1f7c1ffc, 0x1c1c1f7c, 0x1f7c1f7c, 0x1ffc1ffc, 0x00001ffc, 0x00000000, // ICON_BOX_MORE_FILL + 0x00000000, 0x1ffc1ffc, 0x1ffc1ffc, 0x1c1c1ffc, 0x1ffc1ffc, 0x1ffc1ffc, 0x00001ffc, 0x00000000, // ICON_BOX_MINUS + 0x00000000, 0x10041ffc, 0x10041004, 0x13e41004, 0x10041004, 0x10041004, 0x00001ffc, 0x00000000, // ICON_BOX_MINUS_FILL + 0x07fe0000, 0x055606aa, 0x7ff606aa, 0x55766eba, 0x55766eaa, 0x55606ffe, 0x55606aa0, 0x00007fe0, // ICON_UNION + 0x07fe0000, 0x04020402, 0x7fe20402, 0x456246a2, 0x456246a2, 0x402047fe, 0x40204020, 0x00007fe0, // ICON_INTERSECTION + 0x07fe0000, 0x055606aa, 0x7ff606aa, 0x4436442a, 0x4436442a, 0x402047fe, 0x40204020, 0x00007fe0, // ICON_DIFFERENCE + 0x03c00000, 0x10080c30, 0x20042004, 0x60064002, 0x47e2581a, 0x20042004, 0x0c301008, 0x000003c0, // ICON_SPHERE + 0x03e00000, 0x08080410, 0x0c180808, 0x08080be8, 0x08080808, 0x08080808, 0x04100808, 0x000003e0, // ICON_CYLINDER + 0x00800000, 0x01400140, 0x02200220, 0x04100410, 0x08080808, 0x1c1c13e4, 0x08081004, 0x000007f0, // ICON_CONE + 0x00000000, 0x07e00000, 0x20841918, 0x40824082, 0x40824082, 0x19182084, 0x000007e0, 0x00000000, // ICON_ELLIPSOID + 0x00000000, 0x00000000, 0x20041ff8, 0x40024002, 0x40024002, 0x1ff82004, 0x00000000, 0x00000000, // ICON_CAPSULE + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_250 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_251 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_252 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_253 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_254 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_255 +}; + +// NOTE: A pointer to current icons array should be defined +static unsigned int *guiIconsPtr = guiIcons; + +#endif // !RAYGUI_NO_ICONS && !RAYGUI_CUSTOM_ICONS + +#ifndef RAYGUI_ICON_SIZE + #define RAYGUI_ICON_SIZE 0 +#endif + +// WARNING: Those values define the total size of the style data array, +// if changed, previous saved styles could become incompatible +#define RAYGUI_MAX_CONTROLS 16 // Maximum number of controls +#define RAYGUI_MAX_PROPS_BASE 16 // Maximum number of base properties +#define RAYGUI_MAX_PROPS_EXTENDED 8 // Maximum number of extended properties + +//---------------------------------------------------------------------------------- +// Module Types and Structures Definition +//---------------------------------------------------------------------------------- +// Gui control property style color element +typedef enum { BORDER = 0, BASE, TEXT, OTHER } GuiPropertyElement; + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +static GuiState guiState = STATE_NORMAL; // Gui global state, if !STATE_NORMAL, forces defined state + +static Font guiFont = { 0 }; // Gui current font (WARNING: highly coupled to raylib) +static bool guiLocked = false; // Gui lock state (no inputs processed) +static float guiAlpha = 1.0f; // Gui controls transparency + +static unsigned int guiIconScale = 1; // Gui icon default scale (if icons enabled) + +static bool guiTooltip = false; // Tooltip enabled/disabled +static const char *guiTooltipPtr = NULL; // Tooltip string pointer (string provided by user) + +static bool guiControlExclusiveMode = false; // Gui control exclusive mode (no inputs processed except current control) +static Rectangle guiControlExclusiveRec = { 0 }; // Gui control exclusive bounds rectangle, used as an unique identifier + +static int textBoxCursorIndex = 0; // Cursor index, shared by all GuiTextBox*() +//static int blinkCursorFrameCounter = 0; // Frame counter for cursor blinking +static int autoCursorCounter = 0; // Frame counter for automatic repeated cursor movement on key-down (cooldown and delay) + +//---------------------------------------------------------------------------------- +// Style data array for all gui style properties (allocated on data segment by default) +// +// NOTE 1: First set of BASE properties are generic to all controls but could be individually +// overwritten per control, first set of EXTENDED properties are generic to all controls and +// can not be overwritten individually but custom EXTENDED properties can be used by control +// +// NOTE 2: A new style set could be loaded over this array using GuiLoadStyle(), +// but default gui style could always be recovered with GuiLoadStyleDefault() +// +// guiStyle size is by default: 16*(16 + 8) = 384*4 = 1536 bytes = 1.5 KB +//---------------------------------------------------------------------------------- +static unsigned int guiStyle[RAYGUI_MAX_CONTROLS*(RAYGUI_MAX_PROPS_BASE + RAYGUI_MAX_PROPS_EXTENDED)] = { 0 }; + +static bool guiStyleLoaded = false; // Style loaded flag for lazy style initialization + +//---------------------------------------------------------------------------------- +// Standalone Mode Functions Declaration +// +// NOTE: raygui depend on some raylib input and drawing functions +// To use raygui as standalone library, below functions must be defined by the user +//---------------------------------------------------------------------------------- +#if defined(RAYGUI_STANDALONE) + +#define KEY_RIGHT 262 +#define KEY_LEFT 263 +#define KEY_DOWN 264 +#define KEY_UP 265 +#define KEY_BACKSPACE 259 +#define KEY_ENTER 257 + +#define MOUSE_LEFT_BUTTON 0 + +// Input required functions +//------------------------------------------------------------------------------- +static Vector2 GetMousePosition(void); +static float GetMouseWheelMove(void); +static bool IsMouseButtonDown(int button); +static bool IsMouseButtonPressed(int button); +static bool IsMouseButtonReleased(int button); + +static bool IsKeyDown(int key); +static bool IsKeyPressed(int key); +static int GetCharPressed(void); // -- GuiTextBox(), GuiValueBox() +//------------------------------------------------------------------------------- + +// Drawing required functions +//------------------------------------------------------------------------------- +static void DrawRectangle(int x, int y, int width, int height, Color color); // -- GuiDrawRectangle() +static void DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color col3, Color col4); // -- GuiColorPicker() +//------------------------------------------------------------------------------- + +// Text required functions +//------------------------------------------------------------------------------- +static Font GetFontDefault(void); // -- GuiLoadStyleDefault() +static Font LoadFontEx(const char *fileName, int fontSize, int *codepoints, int codepointCount); // -- GuiLoadStyle(), load font + +static Texture2D LoadTextureFromImage(Image image); // -- GuiLoadStyle(), required to load texture from embedded font atlas image +static void SetShapesTexture(Texture2D tex, Rectangle rec); // -- GuiLoadStyle(), required to set shapes rec to font white rec (optimization) + +static char *LoadFileText(const char *fileName); // -- GuiLoadStyle(), required to load charset data +static void UnloadFileText(char *text); // -- GuiLoadStyle(), required to unload charset data + +static const char *GetDirectoryPath(const char *filePath); // -- GuiLoadStyle(), required to find charset/font file from text .rgs + +static int *LoadCodepoints(const char *text, int *count); // -- GuiLoadStyle(), required to load required font codepoints list +static void UnloadCodepoints(int *codepoints); // -- GuiLoadStyle(), required to unload codepoints list + +static unsigned char *DecompressData(const unsigned char *compData, int compDataSize, int *dataSize); // -- GuiLoadStyle() +//------------------------------------------------------------------------------- + +// raylib functions already implemented in raygui +//------------------------------------------------------------------------------- +static Color GetColor(int hexValue); // Returns a Color struct from hexadecimal value +static int ColorToInt(Color color); // Returns hexadecimal value for a Color +static bool CheckCollisionPointRec(Vector2 point, Rectangle rec); // Check if point is inside rectangle +static const char *TextFormat(const char *text, ...); // Formatting of text with variables to 'embed' +static char **TextSplit(const char *text, char delimiter, int *count); // Split text into multiple strings +static int TextToInteger(const char *text); // Get integer value from text +static float TextToFloat(const char *text); // Get float value from text + +static int GetCodepointNext(const char *text, int *codepointSize); // Get next codepoint in a UTF-8 encoded text +static const char *CodepointToUTF8(int codepoint, int *byteSize); // Encode codepoint into UTF-8 text (char array size returned as parameter) + +static void DrawRectangleGradientV(int posX, int posY, int width, int height, Color color1, Color color2); // Draw rectangle vertical gradient +//------------------------------------------------------------------------------- + +#endif // RAYGUI_STANDALONE + +//---------------------------------------------------------------------------------- +// Module Internal Functions Declaration +//---------------------------------------------------------------------------------- +static void GuiLoadStyleFromMemory(const unsigned char *fileData, int dataSize); // Load style from memory (binary only) + +static Rectangle GetTextBounds(int control, Rectangle bounds); // Get text bounds considering control bounds +static const char *GetTextIcon(const char *text, int *iconId); // Get text icon if provided and move text cursor + +static void GuiDrawText(const char *text, Rectangle textBounds, int alignment, Color tint); // Gui draw text using default font +static void GuiDrawRectangle(Rectangle rec, int borderWidth, Color borderColor, Color color); // Gui draw rectangle using default raygui style + +static char **GuiTextSplit(const char *text, char delimiter, int *count, int *textRow); // Split controls text into multiple strings +static Vector3 ConvertHSVtoRGB(Vector3 hsv); // Convert color data from HSV to RGB +static Vector3 ConvertRGBtoHSV(Vector3 rgb); // Convert color data from RGB to HSV + +static int GuiScrollBar(Rectangle bounds, int value, int minValue, int maxValue); // Scroll bar control, used by GuiScrollPanel() +static void GuiTooltip(Rectangle controlRec); // Draw tooltip using control rec position + +static Color GuiFade(Color color, float alpha); // Fade color by an alpha factor + +//---------------------------------------------------------------------------------- +// Gui Setup Functions Definition +//---------------------------------------------------------------------------------- +// Enable gui global state +// NOTE: Checking for STATE_DISABLED to avoid messing custom global state setups +void GuiEnable(void) { if (guiState == STATE_DISABLED) guiState = STATE_NORMAL; } + +// Disable gui global state +// NOTE: Checking for STATE_NORMAL to avoid messing custom global state setups +void GuiDisable(void) { if (guiState == STATE_NORMAL) guiState = STATE_DISABLED; } + +// Lock gui global state +void GuiLock(void) { guiLocked = true; } + +// Unlock gui global state +void GuiUnlock(void) { guiLocked = false; } + +// Check if gui is locked (global state) +bool GuiIsLocked(void) { return guiLocked; } + +// Set gui controls alpha global state +void GuiSetAlpha(float alpha) +{ + if (alpha < 0.0f) alpha = 0.0f; + else if (alpha > 1.0f) alpha = 1.0f; + + guiAlpha = alpha; +} + +// Set gui state (global state) +void GuiSetState(int state) { guiState = (GuiState)state; } + +// Get gui state (global state) +int GuiGetState(void) { return guiState; } + +// Set custom gui font +// NOTE: Font loading/unloading is external to raygui +void GuiSetFont(Font font) +{ + if (font.texture.id > 0) + { + // NOTE: If a font is tried to be set but default style has not been lazily loaded first, + // it will be overwritten, so default style loading needs to be forced first + if (!guiStyleLoaded) GuiLoadStyleDefault(); + + guiFont = font; + } +} + +// Get custom gui font +Font GuiGetFont(void) +{ + return guiFont; +} + +// Set control style property value +void GuiSetStyle(int control, int property, int value) +{ + if (!guiStyleLoaded) GuiLoadStyleDefault(); + guiStyle[control*(RAYGUI_MAX_PROPS_BASE + RAYGUI_MAX_PROPS_EXTENDED) + property] = value; + + // Default properties are propagated to all controls + if ((control == 0) && (property < RAYGUI_MAX_PROPS_BASE)) + { + for (int i = 1; i < RAYGUI_MAX_CONTROLS; i++) guiStyle[i*(RAYGUI_MAX_PROPS_BASE + RAYGUI_MAX_PROPS_EXTENDED) + property] = value; + } +} + +// Get control style property value +int GuiGetStyle(int control, int property) +{ + if (!guiStyleLoaded) GuiLoadStyleDefault(); + return guiStyle[control*(RAYGUI_MAX_PROPS_BASE + RAYGUI_MAX_PROPS_EXTENDED) + property]; +} + +//---------------------------------------------------------------------------------- +// Gui Controls Functions Definition +//---------------------------------------------------------------------------------- + +// Window Box control +int GuiWindowBox(Rectangle bounds, const char *title) +{ + // Window title bar height (including borders) + // NOTE: This define is also used by GuiMessageBox() and GuiTextInputBox() + #if !defined(RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT) + #define RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT 24 + #endif + + #if !defined(RAYGUI_WINDOWBOX_CLOSEBUTTON_HEIGHT) + #define RAYGUI_WINDOWBOX_CLOSEBUTTON_HEIGHT 18 + #endif + + int result = 0; + //GuiState state = guiState; + + int statusBarHeight = RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT; + int statusBorderWidth = GuiGetStyle(STATUSBAR, BORDER_WIDTH); + + Rectangle statusBar = { bounds.x, bounds.y, bounds.width, (float)statusBarHeight }; + if (bounds.height < statusBarHeight*2.0f) bounds.height = statusBarHeight*2.0f; + + const float vPadding = statusBarHeight/2.0f - RAYGUI_WINDOWBOX_CLOSEBUTTON_HEIGHT/2.0f; + Rectangle windowPanel = { bounds.x, bounds.y + (float)statusBarHeight - (float)statusBorderWidth, bounds.width, bounds.height - (float)statusBarHeight + (float)statusBorderWidth }; + Rectangle closeButtonRec = { statusBar.x + statusBar.width - (float)statusBorderWidth - RAYGUI_WINDOWBOX_CLOSEBUTTON_HEIGHT - vPadding, + statusBar.y + vPadding, RAYGUI_WINDOWBOX_CLOSEBUTTON_HEIGHT, RAYGUI_WINDOWBOX_CLOSEBUTTON_HEIGHT }; + + // Update control + //-------------------------------------------------------------------- + // NOTE: Logic is directly managed by button + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + GuiPanel(windowPanel, NULL); // Draw window base + GuiStatusBar(statusBar, title); // Draw window header as status bar + + // Draw window close button + int tempBorderWidth = GuiGetStyle(BUTTON, BORDER_WIDTH); + int tempTextAlignment = GuiGetStyle(BUTTON, TEXT_ALIGNMENT); + GuiSetStyle(BUTTON, BORDER_WIDTH, 1); + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); +#if defined(RAYGUI_NO_ICONS) + result = GuiButton(closeButtonRec, "x"); +#else + result = GuiButton(closeButtonRec, GuiIconText(ICON_CROSS_SMALL, NULL)); +#endif + GuiSetStyle(BUTTON, BORDER_WIDTH, tempBorderWidth); + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, tempTextAlignment); + //-------------------------------------------------------------------- + + return result; // Window close button clicked: result = 1 +} + +// Group Box control with text name +int GuiGroupBox(Rectangle bounds, const char *text) +{ + #if !defined(RAYGUI_GROUPBOX_LINE_THICK) + #define RAYGUI_GROUPBOX_LINE_THICK 1 + #endif + + int result = 0; + GuiState state = guiState; + + // Draw control + //-------------------------------------------------------------------- + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y, RAYGUI_GROUPBOX_LINE_THICK, bounds.height }, 0, BLANK, GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? (int)BORDER_COLOR_DISABLED : (int)LINE_COLOR))); + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y + bounds.height - 1, bounds.width, RAYGUI_GROUPBOX_LINE_THICK }, 0, BLANK, GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? (int)BORDER_COLOR_DISABLED : (int)LINE_COLOR))); + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + bounds.width - 1, bounds.y, RAYGUI_GROUPBOX_LINE_THICK, bounds.height }, 0, BLANK, GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? (int)BORDER_COLOR_DISABLED : (int)LINE_COLOR))); + + GuiLine(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y - GuiGetStyle(DEFAULT, TEXT_SIZE)/2, bounds.width, (float)GuiGetStyle(DEFAULT, TEXT_SIZE) }, text); + //-------------------------------------------------------------------- + + return result; +} + +// Line control +int GuiLine(Rectangle bounds, const char *text) +{ + #if !defined(RAYGUI_LINE_MARGIN_TEXT) + #define RAYGUI_LINE_MARGIN_TEXT 12 + #endif + #if !defined(RAYGUI_LINE_TEXT_PADDING) + #define RAYGUI_LINE_TEXT_PADDING 4 + #endif + + int result = 0; + GuiState state = guiState; + + Color color = GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? (int)BORDER_COLOR_DISABLED : (int)LINE_COLOR)); + + // Draw control + //-------------------------------------------------------------------- + if (text == NULL) GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y + bounds.height/2, bounds.width, 1 }, 0, BLANK, color); + else + { + Rectangle textBounds = { 0 }; + textBounds.width = (float)GuiGetTextWidth(text) + 2; + textBounds.height = bounds.height; + textBounds.x = bounds.x + RAYGUI_LINE_MARGIN_TEXT; + textBounds.y = bounds.y; + + // Draw line with embedded text label: "--- text --------------" + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y + bounds.height/2, RAYGUI_LINE_MARGIN_TEXT - RAYGUI_LINE_TEXT_PADDING, 1 }, 0, BLANK, color); + GuiDrawText(text, textBounds, TEXT_ALIGN_LEFT, color); + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + 12 + textBounds.width + 4, bounds.y + bounds.height/2, bounds.width - textBounds.width - RAYGUI_LINE_MARGIN_TEXT - RAYGUI_LINE_TEXT_PADDING, 1 }, 0, BLANK, color); + } + //-------------------------------------------------------------------- + + return result; +} + +// Panel control +int GuiPanel(Rectangle bounds, const char *text) +{ + #if !defined(RAYGUI_PANEL_BORDER_WIDTH) + #define RAYGUI_PANEL_BORDER_WIDTH 1 + #endif + + int result = 0; + GuiState state = guiState; + + // Text will be drawn as a header bar (if provided) + Rectangle statusBar = { bounds.x, bounds.y, bounds.width, (float)RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT }; + if ((text != NULL) && (bounds.height < RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT*2.0f)) bounds.height = RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT*2.0f; + + if (text != NULL) + { + // Move panel bounds after the header bar + bounds.y += (float)RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT - 1; + bounds.height -= (float)RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT - 1; + } + + // Draw control + //-------------------------------------------------------------------- + if (text != NULL) GuiStatusBar(statusBar, text); // Draw panel header as status bar + + GuiDrawRectangle(bounds, RAYGUI_PANEL_BORDER_WIDTH, GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? (int)BORDER_COLOR_DISABLED : (int)LINE_COLOR)), + GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? (int)BASE_COLOR_DISABLED : (int)BACKGROUND_COLOR))); + //-------------------------------------------------------------------- + + return result; +} + +// Tab Bar control +// NOTE: Using GuiToggle() for the TABS +int GuiTabBar(Rectangle bounds, char **text, int count, int *active) +{ + #define RAYGUI_TABBAR_ITEM_WIDTH 148 + + int result = -1; + //GuiState state = guiState; + + Rectangle tabBounds = { bounds.x, bounds.y, RAYGUI_TABBAR_ITEM_WIDTH, bounds.height }; + + if (*active < 0) *active = 0; + else if (*active > count - 1) *active = count - 1; + + int offsetX = 0; // Required in case tabs go out of screen + offsetX = (*active + 2)*RAYGUI_TABBAR_ITEM_WIDTH - GetScreenWidth(); + if (offsetX < 0) offsetX = 0; + + bool toggle = false; // Required for individual toggles + + // Draw control + //-------------------------------------------------------------------- + for (int i = 0; i < count; i++) + { + tabBounds.x = bounds.x + (RAYGUI_TABBAR_ITEM_WIDTH + 4)*i - offsetX; + + if (tabBounds.x < GetScreenWidth()) + { + // Draw tabs as toggle controls + int textAlignment = GuiGetStyle(TOGGLE, TEXT_ALIGNMENT); + int textPadding = GuiGetStyle(TOGGLE, TEXT_PADDING); + GuiSetStyle(TOGGLE, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); + GuiSetStyle(TOGGLE, TEXT_PADDING, 8); + + if (i == (*active)) + { + toggle = true; + GuiToggle(tabBounds, text[i], &toggle); + } + else + { + toggle = false; + GuiToggle(tabBounds, text[i], &toggle); + if (toggle) *active = i; + } + + // Close tab with middle mouse button pressed + if (CheckCollisionPointRec(GUI_POINTER_POSITION, tabBounds) && IsMouseButtonPressed(MOUSE_MIDDLE_BUTTON)) result = i; + + GuiSetStyle(TOGGLE, TEXT_PADDING, textPadding); + GuiSetStyle(TOGGLE, TEXT_ALIGNMENT, textAlignment); + + // Draw tab close button + // NOTE: Only draw close button for current tab: if (CheckCollisionPointRec(mousePosition, tabBounds)) + int tempBorderWidth = GuiGetStyle(BUTTON, BORDER_WIDTH); + int tempTextAlignment = GuiGetStyle(BUTTON, TEXT_ALIGNMENT); + GuiSetStyle(BUTTON, BORDER_WIDTH, 1); + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); +#if defined(RAYGUI_NO_ICONS) + if (GuiButton(RAYGUI_CLITERAL(Rectangle){ tabBounds.x + tabBounds.width - 14 - 5, tabBounds.y + 5, 14, 14 }, "x")) result = i; +#else + if (GuiButton(RAYGUI_CLITERAL(Rectangle){ tabBounds.x + tabBounds.width - 14 - 5, tabBounds.y + 5, 14, 14 }, GuiIconText(ICON_CROSS_SMALL, NULL))) result = i; +#endif + GuiSetStyle(BUTTON, BORDER_WIDTH, tempBorderWidth); + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, tempTextAlignment); + } + } + + // Draw tab-bar bottom line + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y + bounds.height - 1, bounds.width, 1 }, 0, BLANK, GetColor(GuiGetStyle(TOGGLE, BORDER_COLOR_NORMAL))); + //-------------------------------------------------------------------- + + return result; // Return as result the current TAB closing requested +} + +// Scroll Panel control +int GuiScrollPanel(Rectangle bounds, const char *text, Rectangle content, Vector2 *scroll, Rectangle *view) +{ + #define RAYGUI_MIN_SCROLLBAR_WIDTH 40 + #define RAYGUI_MIN_SCROLLBAR_HEIGHT 40 + #define RAYGUI_MIN_MOUSE_WHEEL_SPEED 20 + + int result = 0; + GuiState state = guiState; + + Rectangle temp = { 0 }; + if (view == NULL) view = &temp; + + Vector2 scrollPos = { 0.0f, 0.0f }; + if (scroll != NULL) scrollPos = *scroll; + + // Text will be drawn as a header bar (if provided) + Rectangle statusBar = { bounds.x, bounds.y, bounds.width, (float)RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT }; + if (bounds.height < RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT*2.0f) bounds.height = RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT*2.0f; + + if (text != NULL) + { + // Move panel bounds after the header bar + bounds.y += (float)RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT - 1; + bounds.height -= (float)RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT + 1; + } + + bool hasHorizontalScrollBar = (content.width > bounds.width - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH))? true : false; + bool hasVerticalScrollBar = (content.height > bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH))? true : false; + + // Recheck to account for the other scrollbar being visible + if (!hasHorizontalScrollBar) hasHorizontalScrollBar = (hasVerticalScrollBar && (content.width > (bounds.width - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH))))? true : false; + if (!hasVerticalScrollBar) hasVerticalScrollBar = (hasHorizontalScrollBar && (content.height > (bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH))))? true : false; + + int horizontalScrollBarWidth = hasHorizontalScrollBar? GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH) : 0; + int verticalScrollBarWidth = hasVerticalScrollBar? GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH) : 0; + Rectangle horizontalScrollBar = { + (float)((GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (float)bounds.x + verticalScrollBarWidth : (float)bounds.x) + GuiGetStyle(DEFAULT, BORDER_WIDTH), + (float)bounds.y + bounds.height - horizontalScrollBarWidth - GuiGetStyle(DEFAULT, BORDER_WIDTH), + (float)bounds.width - verticalScrollBarWidth - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH), + (float)horizontalScrollBarWidth + }; + Rectangle verticalScrollBar = { + (float)((GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (float)bounds.x + GuiGetStyle(DEFAULT, BORDER_WIDTH) : (float)bounds.x + bounds.width - verticalScrollBarWidth - GuiGetStyle(DEFAULT, BORDER_WIDTH)), + (float)bounds.y + GuiGetStyle(DEFAULT, BORDER_WIDTH), + (float)verticalScrollBarWidth, + (float)bounds.height - horizontalScrollBarWidth - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) + }; + + // Make sure scroll bars have a minimum width/height + if (horizontalScrollBar.width < RAYGUI_MIN_SCROLLBAR_WIDTH) horizontalScrollBar.width = RAYGUI_MIN_SCROLLBAR_WIDTH; + if (verticalScrollBar.height < RAYGUI_MIN_SCROLLBAR_HEIGHT) verticalScrollBar.height = RAYGUI_MIN_SCROLLBAR_HEIGHT; + + // Calculate view area (area without the scrollbars) + *view = (GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? + RAYGUI_CLITERAL(Rectangle){ bounds.x + verticalScrollBarWidth + GuiGetStyle(DEFAULT, BORDER_WIDTH), bounds.y + GuiGetStyle(DEFAULT, BORDER_WIDTH), bounds.width - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - verticalScrollBarWidth, bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - horizontalScrollBarWidth } : + RAYGUI_CLITERAL(Rectangle){ bounds.x + GuiGetStyle(DEFAULT, BORDER_WIDTH), bounds.y + GuiGetStyle(DEFAULT, BORDER_WIDTH), bounds.width - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - verticalScrollBarWidth, bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - horizontalScrollBarWidth }; + + // Clip view area to the actual content size + if (view->width > content.width) view->width = content.width; + if (view->height > content.height) view->height = content.height; + + float horizontalMin = hasHorizontalScrollBar? ((GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (float)-verticalScrollBarWidth : 0) - (float)GuiGetStyle(DEFAULT, BORDER_WIDTH) : (((float)GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (float)-verticalScrollBarWidth : 0) - (float)GuiGetStyle(DEFAULT, BORDER_WIDTH); + float horizontalMax = hasHorizontalScrollBar? content.width - bounds.width + (float)verticalScrollBarWidth + GuiGetStyle(DEFAULT, BORDER_WIDTH) - (((float)GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (float)verticalScrollBarWidth : 0) : (float)-GuiGetStyle(DEFAULT, BORDER_WIDTH); + float verticalMin = hasVerticalScrollBar? 0.0f : -1.0f; + float verticalMax = hasVerticalScrollBar? content.height - bounds.height + (float)horizontalScrollBarWidth + (float)GuiGetStyle(DEFAULT, BORDER_WIDTH) : (float)-GuiGetStyle(DEFAULT, BORDER_WIDTH); + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + // Check button state + if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (GUI_BUTTON_DOWN) state = STATE_PRESSED; + else state = STATE_FOCUSED; + +#if defined(SUPPORT_SCROLLBAR_KEY_INPUT) + if (hasHorizontalScrollBar) + { + if (GUI_KEY_DOWN(KEY_RIGHT)) scrollPos.x -= GuiGetStyle(SCROLLBAR, SCROLL_SPEED); + if (GUI_KEY_DOWN(KEY_LEFT)) scrollPos.x += GuiGetStyle(SCROLLBAR, SCROLL_SPEED); + } + + if (hasVerticalScrollBar) + { + if (GUI_KEY_DOWN(KEY_DOWN)) scrollPos.y -= GuiGetStyle(SCROLLBAR, SCROLL_SPEED); + if (GUI_KEY_DOWN(KEY_UP)) scrollPos.y += GuiGetStyle(SCROLLBAR, SCROLL_SPEED); + } +#endif + float scrollDelta = GUI_SCROLL_DELTA; + + // Set scrolling speed with mouse wheel based on ratio between bounds and content + Vector2 scrollSpeed = { content.width/bounds.width, content.height/bounds.height }; + if (scrollSpeed.x < RAYGUI_MIN_MOUSE_WHEEL_SPEED) scrollSpeed.x = RAYGUI_MIN_MOUSE_WHEEL_SPEED; + if (scrollSpeed.y < RAYGUI_MIN_MOUSE_WHEEL_SPEED) scrollSpeed.y = RAYGUI_MIN_MOUSE_WHEEL_SPEED; + + // Horizontal and vertical scrolling with mouse wheel + if (hasHorizontalScrollBar && (GUI_KEY_DOWN(KEY_LEFT_CONTROL) || GUI_KEY_DOWN(KEY_LEFT_SHIFT))) scrollPos.x += scrollDelta*scrollSpeed.x; + else scrollPos.y += scrollDelta*scrollSpeed.y; // Vertical scroll + } + } + + // Normalize scroll values + if (scrollPos.x > -horizontalMin) scrollPos.x = -horizontalMin; + if (scrollPos.x < -horizontalMax) scrollPos.x = -horizontalMax; + if (scrollPos.y > -verticalMin) scrollPos.y = -verticalMin; + if (scrollPos.y < -verticalMax) scrollPos.y = -verticalMax; + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + if (text != NULL) GuiStatusBar(statusBar, text); // Draw panel header as status bar + + GuiDrawRectangle(bounds, 0, BLANK, GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); // Draw background + + // Save size of the scrollbar slider + const int slider = GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE); + + // Draw horizontal scrollbar if visible + if (hasHorizontalScrollBar) + { + // Change scrollbar slider size to show the diff in size between the content width and the widget width + GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE, (int)(((bounds.width - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - verticalScrollBarWidth)/(int)content.width)*((int)bounds.width - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - verticalScrollBarWidth))); + scrollPos.x = (float)-GuiScrollBar(horizontalScrollBar, (int)-scrollPos.x, (int)horizontalMin, (int)horizontalMax); + } + else scrollPos.x = 0.0f; + + // Draw vertical scrollbar if visible + if (hasVerticalScrollBar) + { + // Change scrollbar slider size to show the diff in size between the content height and the widget height + GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE, (int)(((bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - horizontalScrollBarWidth)/(int)content.height)*((int)bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - horizontalScrollBarWidth))); + scrollPos.y = (float)-GuiScrollBar(verticalScrollBar, (int)-scrollPos.y, (int)verticalMin, (int)verticalMax); + } + else scrollPos.y = 0.0f; + + // Draw detail corner rectangle if both scroll bars are visible + if (hasHorizontalScrollBar && hasVerticalScrollBar) + { + Rectangle corner = { (GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (bounds.x + GuiGetStyle(DEFAULT, BORDER_WIDTH) + 2) : (horizontalScrollBar.x + horizontalScrollBar.width + 2), verticalScrollBar.y + verticalScrollBar.height + 2, (float)horizontalScrollBarWidth - 4, (float)verticalScrollBarWidth - 4 }; + GuiDrawRectangle(corner, 0, BLANK, GetColor(GuiGetStyle(LISTVIEW, TEXT + (state*3)))); + } + + // Draw scrollbar lines depending on current state + GuiDrawRectangle(bounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER + (state*3))), BLANK); + + // Set scrollbar slider size back to the way it was before + GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE, slider); + //-------------------------------------------------------------------- + + if (scroll != NULL) *scroll = scrollPos; + + return result; +} + +// Label control +int GuiLabel(Rectangle bounds, const char *text) +{ + int result = 0; + GuiState state = guiState; + + // Update control + //-------------------------------------------------------------------- + //... + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + GuiDrawText(text, GetTextBounds(LABEL, bounds), GuiGetStyle(LABEL, TEXT_ALIGNMENT), GetColor(GuiGetStyle(LABEL, TEXT + (state*3)))); + //-------------------------------------------------------------------- + + return result; +} + +// Button control, returns true when clicked +int GuiButton(Rectangle bounds, const char *text) +{ + int result = 0; + GuiState state = guiState; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked && !guiControlExclusiveMode) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + // Check button state + if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (GUI_BUTTON_DOWN) state = STATE_PRESSED; + else state = STATE_FOCUSED; + + if (GUI_BUTTON_RELEASED) result = 1; + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + GuiDrawRectangle(bounds, GuiGetStyle(BUTTON, BORDER_WIDTH), GetColor(GuiGetStyle(BUTTON, BORDER + (state*3))), GetColor(GuiGetStyle(BUTTON, BASE + (state*3)))); + GuiDrawText(text, GetTextBounds(BUTTON, bounds), GuiGetStyle(BUTTON, TEXT_ALIGNMENT), GetColor(GuiGetStyle(BUTTON, TEXT + (state*3)))); + + if (state == STATE_FOCUSED) GuiTooltip(bounds); + //------------------------------------------------------------------ + + return result; // Button pressed: result = 1 +} + +// Label button control +int GuiLabelButton(Rectangle bounds, const char *text) +{ + GuiState state = guiState; + bool pressed = false; + + // NOTE: Force bounds.width to be all text + float textWidth = (float)GuiGetTextWidth(text); + if ((bounds.width - 2*GuiGetStyle(LABEL, BORDER_WIDTH) - 2*GuiGetStyle(LABEL, TEXT_PADDING)) < textWidth) bounds.width = textWidth + 2*GuiGetStyle(LABEL, BORDER_WIDTH) + 2*GuiGetStyle(LABEL, TEXT_PADDING) + 2; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked && !guiControlExclusiveMode) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + // Check checkbox state + if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (GUI_BUTTON_DOWN) state = STATE_PRESSED; + else state = STATE_FOCUSED; + + if (GUI_BUTTON_RELEASED) pressed = true; + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + GuiDrawText(text, GetTextBounds(LABEL, bounds), GuiGetStyle(LABEL, TEXT_ALIGNMENT), GetColor(GuiGetStyle(LABEL, TEXT + (state*3)))); + //-------------------------------------------------------------------- + + return pressed; +} + +// Toggle Button control +int GuiToggle(Rectangle bounds, const char *text, bool *active) +{ + int result = 0; + GuiState state = guiState; + + bool temp = false; + if (active == NULL) active = &temp; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked && !guiControlExclusiveMode) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + // Check toggle button state + if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (GUI_BUTTON_DOWN) state = STATE_PRESSED; + else if (GUI_BUTTON_RELEASED) + { + state = STATE_NORMAL; + *active = !(*active); + } + else state = STATE_FOCUSED; + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + if (state == STATE_NORMAL) + { + GuiDrawRectangle(bounds, GuiGetStyle(TOGGLE, BORDER_WIDTH), GetColor(GuiGetStyle(TOGGLE, ((*active)? BORDER_COLOR_PRESSED : (BORDER + state*3)))), GetColor(GuiGetStyle(TOGGLE, ((*active)? BASE_COLOR_PRESSED : (BASE + state*3))))); + GuiDrawText(text, GetTextBounds(TOGGLE, bounds), GuiGetStyle(TOGGLE, TEXT_ALIGNMENT), GetColor(GuiGetStyle(TOGGLE, ((*active)? TEXT_COLOR_PRESSED : (TEXT + state*3))))); + } + else + { + GuiDrawRectangle(bounds, GuiGetStyle(TOGGLE, BORDER_WIDTH), GetColor(GuiGetStyle(TOGGLE, BORDER + state*3)), GetColor(GuiGetStyle(TOGGLE, BASE + state*3))); + GuiDrawText(text, GetTextBounds(TOGGLE, bounds), GuiGetStyle(TOGGLE, TEXT_ALIGNMENT), GetColor(GuiGetStyle(TOGGLE, TEXT + state*3))); + } + + if (state == STATE_FOCUSED) GuiTooltip(bounds); + //-------------------------------------------------------------------- + + return result; +} + +// Toggle Group control +int GuiToggleGroup(Rectangle bounds, const char *text, int *active) +{ + #if !defined(RAYGUI_TOGGLEGROUP_MAX_ITEMS) + #define RAYGUI_TOGGLEGROUP_MAX_ITEMS 32 + #endif + + int result = 0; + float initBoundsX = bounds.x; + + int temp = 0; + if (active == NULL) active = &temp; + + bool toggle = false; // Required for individual toggles + + // Get substrings items from text (items pointers) + int rows[RAYGUI_TOGGLEGROUP_MAX_ITEMS] = { 0 }; + int itemCount = 0; + char **items = GuiTextSplit(text, ';', &itemCount, rows); + + int prevRow = rows[0]; + + for (int i = 0; i < itemCount; i++) + { + if (prevRow != rows[i]) + { + bounds.x = initBoundsX; + bounds.y += (bounds.height + GuiGetStyle(TOGGLE, GROUP_PADDING)); + prevRow = rows[i]; + } + + if (i == (*active)) + { + toggle = true; + GuiToggle(bounds, items[i], &toggle); + } + else + { + toggle = false; + GuiToggle(bounds, items[i], &toggle); + if (toggle) *active = i; + } + + bounds.x += (bounds.width + GuiGetStyle(TOGGLE, GROUP_PADDING)); + } + + return result; +} + +// Toggle Slider control extended +int GuiToggleSlider(Rectangle bounds, const char *text, int *active) +{ + int result = 0; + GuiState state = guiState; + + int temp = 0; + if (active == NULL) active = &temp; + + //bool toggle = false; // Required for individual toggles + + // Get substrings items from text (items pointers) + int itemCount = 0; + char **items = NULL; + + if (text != NULL) items = GuiTextSplit(text, ';', &itemCount, NULL); + + Rectangle slider = { + 0, // Calculated later depending on the active toggle + bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH) + GuiGetStyle(SLIDER, SLIDER_PADDING), + (bounds.width - 2*GuiGetStyle(SLIDER, BORDER_WIDTH) - (itemCount + 1)*GuiGetStyle(SLIDER, SLIDER_PADDING))/itemCount, + bounds.height - 2*GuiGetStyle(SLIDER, BORDER_WIDTH) - 2*GuiGetStyle(SLIDER, SLIDER_PADDING) }; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (GUI_BUTTON_DOWN) state = STATE_PRESSED; + else if (GUI_BUTTON_RELEASED) + { + state = STATE_PRESSED; + (*active)++; + result = 1; + } + else state = STATE_FOCUSED; + } + + if ((*active) && (state != STATE_FOCUSED)) state = STATE_PRESSED; + } + + if (*active >= itemCount) *active = 0; + slider.x = bounds.x + GuiGetStyle(SLIDER, BORDER_WIDTH) + (*active + 1)*GuiGetStyle(SLIDER, SLIDER_PADDING) + (*active)*slider.width; + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + GuiDrawRectangle(bounds, GuiGetStyle(SLIDER, BORDER_WIDTH), GetColor(GuiGetStyle(TOGGLE, BORDER + (state*3))), + GetColor(GuiGetStyle(TOGGLE, BASE_COLOR_NORMAL))); + + // Draw internal slider + if (state == STATE_NORMAL) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, BASE_COLOR_PRESSED))); + else if (state == STATE_FOCUSED) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, BASE_COLOR_FOCUSED))); + else if (state == STATE_PRESSED) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, BASE_COLOR_PRESSED))); + + // Draw text in slider + if (text != NULL) + { + Rectangle textBounds = { 0 }; + textBounds.width = (float)GuiGetTextWidth(text); + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = slider.x + slider.width/2 - textBounds.width/2; + textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; + + GuiDrawText(items[*active], textBounds, GuiGetStyle(TOGGLE, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(TOGGLE, TEXT + (state*3))), guiAlpha)); + } + //-------------------------------------------------------------------- + + return result; +} + +// Check Box control, returns 1 when state changed +int GuiCheckBox(Rectangle bounds, const char *text, bool *checked) +{ + int result = 0; + GuiState state = guiState; + + bool temp = false; + if (checked == NULL) checked = &temp; + + Rectangle textBounds = { 0 }; + + if (text != NULL) + { + textBounds.width = (float)GuiGetTextWidth(text) + 2; + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = bounds.x + bounds.width + GuiGetStyle(CHECKBOX, TEXT_PADDING); + textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; + if (GuiGetStyle(CHECKBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_LEFT) textBounds.x = bounds.x - textBounds.width - GuiGetStyle(CHECKBOX, TEXT_PADDING); + } + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked && !guiControlExclusiveMode) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + Rectangle totalBounds = { + (GuiGetStyle(CHECKBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_LEFT)? textBounds.x : bounds.x, + bounds.y, + bounds.width + textBounds.width + GuiGetStyle(CHECKBOX, TEXT_PADDING), + bounds.height, + }; + + // Check checkbox state + if (CheckCollisionPointRec(mousePoint, totalBounds)) + { + if (GUI_BUTTON_DOWN) state = STATE_PRESSED; + else state = STATE_FOCUSED; + + if (GUI_BUTTON_RELEASED) + { + *checked = !(*checked); + result = 1; + } + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + GuiDrawRectangle(bounds, GuiGetStyle(CHECKBOX, BORDER_WIDTH), GetColor(GuiGetStyle(CHECKBOX, BORDER + (state*3))), BLANK); + + if (*checked) + { + Rectangle check = { bounds.x + GuiGetStyle(CHECKBOX, BORDER_WIDTH) + GuiGetStyle(CHECKBOX, CHECK_PADDING), + bounds.y + GuiGetStyle(CHECKBOX, BORDER_WIDTH) + GuiGetStyle(CHECKBOX, CHECK_PADDING), + bounds.width - 2*(GuiGetStyle(CHECKBOX, BORDER_WIDTH) + GuiGetStyle(CHECKBOX, CHECK_PADDING)), + bounds.height - 2*(GuiGetStyle(CHECKBOX, BORDER_WIDTH) + GuiGetStyle(CHECKBOX, CHECK_PADDING)) }; + GuiDrawRectangle(check, 0, BLANK, GetColor(GuiGetStyle(CHECKBOX, TEXT + state*3))); + } + + GuiDrawText(text, textBounds, (GuiGetStyle(CHECKBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT)? TEXT_ALIGN_LEFT : TEXT_ALIGN_RIGHT, GetColor(GuiGetStyle(LABEL, TEXT + (state*3)))); + //-------------------------------------------------------------------- + + return result; +} + +// Combo Box control +int GuiComboBox(Rectangle bounds, const char *text, int *active) +{ + int result = 0; + GuiState state = guiState; + + int temp = 0; + if (active == NULL) active = &temp; + + bounds.width -= (GuiGetStyle(COMBOBOX, COMBO_BUTTON_WIDTH) + GuiGetStyle(COMBOBOX, COMBO_BUTTON_SPACING)); + + Rectangle selector = { (float)bounds.x + bounds.width + GuiGetStyle(COMBOBOX, COMBO_BUTTON_SPACING), + (float)bounds.y, (float)GuiGetStyle(COMBOBOX, COMBO_BUTTON_WIDTH), (float)bounds.height }; + + // Get substrings items from text (items pointers, lengths and count) + int itemCount = 0; + char **items = GuiTextSplit(text, ';', &itemCount, NULL); + + if (*active < 0) *active = 0; + else if (*active > (itemCount - 1)) *active = itemCount - 1; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked && (itemCount > 1) && !guiControlExclusiveMode) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + if (CheckCollisionPointRec(mousePoint, bounds) || + CheckCollisionPointRec(mousePoint, selector)) + { + if (GUI_BUTTON_PRESSED) + { + *active += 1; + if (*active >= itemCount) *active = 0; // Cyclic combobox + } + + if (GUI_BUTTON_DOWN) state = STATE_PRESSED; + else state = STATE_FOCUSED; + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + // Draw combo box main + GuiDrawRectangle(bounds, GuiGetStyle(COMBOBOX, BORDER_WIDTH), GetColor(GuiGetStyle(COMBOBOX, BORDER + (state*3))), GetColor(GuiGetStyle(COMBOBOX, BASE + (state*3)))); + GuiDrawText(items[*active], GetTextBounds(COMBOBOX, bounds), GuiGetStyle(COMBOBOX, TEXT_ALIGNMENT), GetColor(GuiGetStyle(COMBOBOX, TEXT + (state*3)))); + + // Draw selector using a custom button + // NOTE: BORDER_WIDTH and TEXT_ALIGNMENT forced values + int tempBorderWidth = GuiGetStyle(BUTTON, BORDER_WIDTH); + int tempTextAlign = GuiGetStyle(BUTTON, TEXT_ALIGNMENT); + GuiSetStyle(BUTTON, BORDER_WIDTH, 1); + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + + GuiButton(selector, TextFormat("%i/%i", *active + 1, itemCount)); + + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, tempTextAlign); + GuiSetStyle(BUTTON, BORDER_WIDTH, tempBorderWidth); + //-------------------------------------------------------------------- + + return result; +} + +// Dropdown Box control +// NOTE: Returns mouse click +int GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMode) +{ + int result = 0; + GuiState state = guiState; + + int temp = 0; + if (active == NULL) active = &temp; + + int itemSelected = *active; + int itemFocused = -1; + + int direction = 0; // Dropdown box open direction: down (default) + if (GuiGetStyle(DROPDOWNBOX, DROPDOWN_ROLL_UP) == 1) direction = 1; // Up + + // Get substrings items from text (items pointers, lengths and count) + int itemCount = 0; + char **items = GuiTextSplit(text, ';', &itemCount, NULL); + + Rectangle boundsOpen = bounds; + boundsOpen.height = (itemCount + 1)*(bounds.height + GuiGetStyle(DROPDOWNBOX, DROPDOWN_ITEMS_SPACING)); + if (direction == 1) boundsOpen.y -= itemCount*(bounds.height + GuiGetStyle(DROPDOWNBOX, DROPDOWN_ITEMS_SPACING)) + GuiGetStyle(DROPDOWNBOX, DROPDOWN_ITEMS_SPACING); + + Rectangle itemBounds = bounds; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && (editMode || !guiLocked) && (itemCount > 1) && !guiControlExclusiveMode) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + if (editMode) + { + state = STATE_PRESSED; + + // Check if mouse has been pressed or released outside limits + if (!CheckCollisionPointRec(mousePoint, boundsOpen)) + { + if (GUI_BUTTON_PRESSED || GUI_BUTTON_RELEASED) result = 1; + } + + // Check if already selected item has been pressed again + if (CheckCollisionPointRec(mousePoint, bounds) && GUI_BUTTON_PRESSED) result = 1; + + // Check focused and selected item + for (int i = 0; i < itemCount; i++) + { + // Update item rectangle y position for next item + if (direction == 0) itemBounds.y += (bounds.height + GuiGetStyle(DROPDOWNBOX, DROPDOWN_ITEMS_SPACING)); + else itemBounds.y -= (bounds.height + GuiGetStyle(DROPDOWNBOX, DROPDOWN_ITEMS_SPACING)); + + if (CheckCollisionPointRec(mousePoint, itemBounds)) + { + itemFocused = i; + if (GUI_BUTTON_RELEASED) + { + itemSelected = i; + result = 1; // Item selected + } + break; + } + } + + itemBounds = bounds; + } + else + { + if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (GUI_BUTTON_PRESSED) + { + result = 1; + state = STATE_PRESSED; + } + else state = STATE_FOCUSED; + } + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + if (editMode) GuiPanel(boundsOpen, NULL); + + GuiDrawRectangle(bounds, GuiGetStyle(DROPDOWNBOX, BORDER_WIDTH), GetColor(GuiGetStyle(DROPDOWNBOX, BORDER + state*3)), GetColor(GuiGetStyle(DROPDOWNBOX, BASE + state*3))); + GuiDrawText(items[itemSelected], GetTextBounds(DROPDOWNBOX, bounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + state*3))); + + if (editMode) + { + // Draw visible items + for (int i = 0; i < itemCount; i++) + { + // Update item rectangle y position for next item + if (direction == 0) itemBounds.y += (bounds.height + GuiGetStyle(DROPDOWNBOX, DROPDOWN_ITEMS_SPACING)); + else itemBounds.y -= (bounds.height + GuiGetStyle(DROPDOWNBOX, DROPDOWN_ITEMS_SPACING)); + + if (i == itemSelected) + { + GuiDrawRectangle(itemBounds, GuiGetStyle(DROPDOWNBOX, BORDER_WIDTH), GetColor(GuiGetStyle(DROPDOWNBOX, BORDER_COLOR_PRESSED)), GetColor(GuiGetStyle(DROPDOWNBOX, BASE_COLOR_PRESSED))); + GuiDrawText(items[i], GetTextBounds(DROPDOWNBOX, itemBounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), GetColor(GuiGetStyle(DROPDOWNBOX, TEXT_COLOR_PRESSED))); + } + else if (i == itemFocused) + { + GuiDrawRectangle(itemBounds, GuiGetStyle(DROPDOWNBOX, BORDER_WIDTH), GetColor(GuiGetStyle(DROPDOWNBOX, BORDER_COLOR_FOCUSED)), GetColor(GuiGetStyle(DROPDOWNBOX, BASE_COLOR_FOCUSED))); + GuiDrawText(items[i], GetTextBounds(DROPDOWNBOX, itemBounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), GetColor(GuiGetStyle(DROPDOWNBOX, TEXT_COLOR_FOCUSED))); + } + else GuiDrawText(items[i], GetTextBounds(DROPDOWNBOX, itemBounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), GetColor(GuiGetStyle(DROPDOWNBOX, TEXT_COLOR_NORMAL))); + } + } + + if (!GuiGetStyle(DROPDOWNBOX, DROPDOWN_ARROW_HIDDEN)) + { + // Draw arrows (using icon if available) +#if defined(RAYGUI_NO_ICONS) + GuiDrawText("v", RAYGUI_CLITERAL(Rectangle){ bounds.x + bounds.width - GuiGetStyle(DROPDOWNBOX, ARROW_PADDING), bounds.y + bounds.height/2 - 2, 10, 10 }, + TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3)))); +#else + GuiDrawText(direction? "#121#" : "#120#", RAYGUI_CLITERAL(Rectangle){ bounds.x + bounds.width - GuiGetStyle(DROPDOWNBOX, ARROW_PADDING), bounds.y + bounds.height/2 - 6, 10, 10 }, + TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3)))); // ICON_ARROW_DOWN_FILL +#endif + } + //-------------------------------------------------------------------- + + *active = itemSelected; + + // TODO: Use result to return more internal states: mouse-press out-of-bounds, mouse-press over selected-item... + return result; // Mouse click: result = 1 +} + +// Text Box control +// NOTE: Returns true on ENTER pressed (useful for data validation) +int GuiTextBox(Rectangle bounds, char *text, int textSize, bool editMode) +{ + #if !defined(RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN) + #define RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN 20 // Frames to wait for autocursor movement + #endif + #if !defined(RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY) + #define RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY 1 // Frames delay for autocursor movement + #endif + + int result = 0; + GuiState state = guiState; + + bool multiline = false; // TODO: Consider multiline text input + int wrapMode = GuiGetStyle(DEFAULT, TEXT_WRAP_MODE); + + Rectangle textBounds = GetTextBounds(TEXTBOX, bounds); + int textLength = (text != NULL)? (int)strlen(text) : 0; // Get current text length + int thisCursorIndex = textBoxCursorIndex; + if (thisCursorIndex > textLength) thisCursorIndex = textLength; + int textWidth = GuiGetTextWidth(text) - GuiGetTextWidth(text + thisCursorIndex); + int textIndexOffset = 0; // Text index offset to start drawing in the box + + // Cursor rectangle + // NOTE: Position X value should be updated + Rectangle cursor = { + textBounds.x + textWidth + GuiGetStyle(DEFAULT, TEXT_SPACING), + textBounds.y + textBounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE), + 2, + (float)GuiGetStyle(DEFAULT, TEXT_SIZE)*2 + }; + + if (cursor.height >= bounds.height) cursor.height = bounds.height - GuiGetStyle(TEXTBOX, BORDER_WIDTH)*2; + if (cursor.y < (bounds.y + GuiGetStyle(TEXTBOX, BORDER_WIDTH))) cursor.y = bounds.y + GuiGetStyle(TEXTBOX, BORDER_WIDTH); + + // Mouse cursor rectangle + // NOTE: Initialized outside of screen + Rectangle mouseCursor = cursor; + mouseCursor.x = -1; + mouseCursor.width = 1; + + // Blink-cursor frame counter + //if (!autoCursorMode) blinkCursorFrameCounter++; + //else blinkCursorFrameCounter = 0; + + // Update control + //-------------------------------------------------------------------- + // WARNING: Text editing is only supported under certain conditions: + if ((state != STATE_DISABLED) && // Control not disabled + !GuiGetStyle(TEXTBOX, TEXT_READONLY) && // TextBox not on read-only mode + !guiLocked && // Gui not locked + !guiControlExclusiveMode && // No gui slider on dragging + (wrapMode == TEXT_WRAP_NONE)) // No wrap mode + { + Vector2 mousePosition = GUI_POINTER_POSITION; + + if (editMode) + { + // GLOBAL: Auto-cursor movement logic + // NOTE: Keystrokes are handled repeatedly when button is held down for some time + if (GUI_KEY_DOWN(KEY_LEFT) || GUI_KEY_DOWN(KEY_RIGHT) || GUI_KEY_DOWN(KEY_UP) || GUI_KEY_DOWN(KEY_DOWN) || GUI_KEY_DOWN(KEY_BACKSPACE) || GUI_KEY_DOWN(KEY_DELETE)) autoCursorCounter++; + else autoCursorCounter = 0; + + bool autoCursorShouldTrigger = (autoCursorCounter > RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN) && ((autoCursorCounter % RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY) == 0); + + state = STATE_PRESSED; + + if (textBoxCursorIndex > textLength) textBoxCursorIndex = textLength; + + // If text does not fit in the textbox and current cursor position is out of bounds, + // adding an index offset to text for drawing only what requires depending on cursor + while (textWidth >= textBounds.width) + { + int nextCodepointSize = 0; + GetCodepointNext(text + textIndexOffset, &nextCodepointSize); + + textIndexOffset += nextCodepointSize; + + textWidth = GuiGetTextWidth(text + textIndexOffset) - GuiGetTextWidth(text + textBoxCursorIndex); + } + + int codepoint = GUI_INPUT_KEY; // Get Unicode codepoint + if (multiline && GUI_KEY_PRESSED(KEY_ENTER)) codepoint = (int)'\n'; + + // Encode codepoint as UTF-8 + int codepointSize = 0; + const char *charEncoded = CodepointToUTF8(codepoint, &codepointSize); + + // Handle text paste action + if (GUI_KEY_PRESSED(KEY_V) && (GUI_KEY_DOWN(KEY_LEFT_CONTROL) || GUI_KEY_DOWN(KEY_RIGHT_CONTROL))) + { + const char *pasteText = GetClipboardText(); + if (pasteText != NULL) + { + int pasteLength = 0; + int pasteCodepoint; + int pasteCodepointSize; + + // Count how many codepoints to copy, stopping at the first unwanted control character + while (true) + { + pasteCodepoint = GetCodepointNext(pasteText + pasteLength, &pasteCodepointSize); + if (textLength + pasteLength + pasteCodepointSize >= textSize) break; + if (!(multiline && (pasteCodepoint == (int)'\n')) && !(pasteCodepoint >= 32)) break; + pasteLength += pasteCodepointSize; + } + + if (pasteLength > 0) + { + // Move forward data from cursor position + for (int i = textLength + pasteLength; i > textBoxCursorIndex; i--) text[i] = text[i - pasteLength]; + + // Paste data in at cursor + for (int i = 0; i < pasteLength; i++) text[textBoxCursorIndex + i] = pasteText[i]; + + textBoxCursorIndex += pasteLength; + textLength += pasteLength; + text[textLength] = '\0'; + } + } + } + else if (((multiline && (codepoint == (int)'\n')) || (codepoint >= 32)) && ((textLength + codepointSize) < textSize)) + { + // Adding codepoint to text, at current cursor position + + // Move forward data from cursor position + for (int i = (textLength + codepointSize); i > textBoxCursorIndex; i--) text[i] = text[i - codepointSize]; + + // Add new codepoint in current cursor position + for (int i = 0; i < codepointSize; i++) text[textBoxCursorIndex + i] = charEncoded[i]; + + textBoxCursorIndex += codepointSize; + textLength += codepointSize; + + // Make sure text last character is EOL + text[textLength] = '\0'; + } + + // Move cursor to start + if ((textLength > 0) && GUI_KEY_PRESSED(KEY_HOME)) textBoxCursorIndex = 0; + + // Move cursor to end + if ((textLength > textBoxCursorIndex) && GUI_KEY_PRESSED(KEY_END)) textBoxCursorIndex = textLength; + + // Delete related codepoints from text, after current cursor position + if ((textLength > textBoxCursorIndex) && GUI_KEY_PRESSED(KEY_DELETE) && (GUI_KEY_DOWN(KEY_LEFT_CONTROL) || GUI_KEY_DOWN(KEY_RIGHT_CONTROL))) + { + int offset = textBoxCursorIndex; + int accCodepointSize = 0; + int nextCodepointSize; + int nextCodepoint; + + // Check characters of the same type to delete (either ASCII punctuation or anything non-whitespace) + // Not using isalnum() since it only works on ASCII characters + nextCodepoint = GetCodepointNext(text + offset, &nextCodepointSize); + bool puctuation = ispunct(nextCodepoint & 0xff); + while (offset < textLength) + { + if ((puctuation && !ispunct(nextCodepoint & 0xff)) || (!puctuation && (isspace(nextCodepoint & 0xff) || ispunct(nextCodepoint & 0xff)))) + break; + offset += nextCodepointSize; + accCodepointSize += nextCodepointSize; + nextCodepoint = GetCodepointNext(text + offset, &nextCodepointSize); + } + + // Check whitespace to delete (ASCII only) + while (offset < textLength) + { + if (!isspace(nextCodepoint & 0xff)) break; + + offset += nextCodepointSize; + accCodepointSize += nextCodepointSize; + nextCodepoint = GetCodepointNext(text + offset, &nextCodepointSize); + } + + // Move text after cursor forward (including final null terminator) + for (int i = offset; i <= textLength; i++) text[i - accCodepointSize] = text[i]; + + textLength -= accCodepointSize; + } + else if ((textLength > textBoxCursorIndex) && (GUI_KEY_PRESSED(KEY_DELETE) || (GUI_KEY_DOWN(KEY_DELETE) && autoCursorShouldTrigger))) + { + // Delete single codepoint from text, after current cursor position + + int nextCodepointSize = 0; + GetCodepointNext(text + textBoxCursorIndex, &nextCodepointSize); + + // Move text after cursor forward (including final null terminator) + for (int i = textBoxCursorIndex + nextCodepointSize; i <= textLength; i++) text[i - nextCodepointSize] = text[i]; + + textLength -= nextCodepointSize; + } + + // Delete related codepoints from text, before current cursor position + if ((textBoxCursorIndex > 0) && GUI_KEY_PRESSED(KEY_BACKSPACE) && (GUI_KEY_DOWN(KEY_LEFT_CONTROL) || GUI_KEY_DOWN(KEY_RIGHT_CONTROL))) + { + int offset = textBoxCursorIndex; + int accCodepointSize = 0; + int prevCodepointSize = 0; + int prevCodepoint = 0; + + // Check whitespace to delete (ASCII only) + while (offset > 0) + { + prevCodepoint = GetCodepointPrevious(text + offset, &prevCodepointSize); + if (!isspace(prevCodepoint & 0xff)) break; + + offset -= prevCodepointSize; + accCodepointSize += prevCodepointSize; + } + + // Check characters of the same type to delete (either ASCII punctuation or anything non-whitespace) + // Not using isalnum() since it only works on ASCII characters + bool puctuation = ispunct(prevCodepoint & 0xff); + while (offset > 0) + { + prevCodepoint = GetCodepointPrevious(text + offset, &prevCodepointSize); + if ((puctuation && !ispunct(prevCodepoint & 0xff)) || (!puctuation && (isspace(prevCodepoint & 0xff) || ispunct(prevCodepoint & 0xff)))) break; + + offset -= prevCodepointSize; + accCodepointSize += prevCodepointSize; + } + + // Move text after cursor forward (including final null terminator) + for (int i = textBoxCursorIndex; i <= textLength; i++) text[i - accCodepointSize] = text[i]; + + textLength -= accCodepointSize; + textBoxCursorIndex -= accCodepointSize; + } + else if ((textBoxCursorIndex > 0) && (GUI_KEY_PRESSED(KEY_BACKSPACE) || (GUI_KEY_DOWN(KEY_BACKSPACE) && autoCursorShouldTrigger))) + { + // Delete single codepoint from text, before current cursor position + + int prevCodepointSize = 0; + + GetCodepointPrevious(text + textBoxCursorIndex, &prevCodepointSize); + + // Move text after cursor forward (including final null terminator) + for (int i = textBoxCursorIndex; i <= textLength; i++) text[i - prevCodepointSize] = text[i]; + + textLength -= prevCodepointSize; + textBoxCursorIndex -= prevCodepointSize; + } + + // Move cursor position with keys + if ((textBoxCursorIndex > 0) && GUI_KEY_PRESSED(KEY_LEFT) && (GUI_KEY_DOWN(KEY_LEFT_CONTROL) || GUI_KEY_DOWN(KEY_RIGHT_CONTROL))) + { + int offset = textBoxCursorIndex; + //int accCodepointSize = 0; + int prevCodepointSize = 0; + int prevCodepoint = 0; + + // Check whitespace to skip (ASCII only) + while (offset > 0) + { + prevCodepoint = GetCodepointPrevious(text + offset, &prevCodepointSize); + if (!isspace(prevCodepoint & 0xff)) break; + + offset -= prevCodepointSize; + //accCodepointSize += prevCodepointSize; + } + + // Check characters of the same type to skip (either ASCII punctuation or anything non-whitespace) + // Not using isalnum() since it only works on ASCII characters + bool puctuation = ispunct(prevCodepoint & 0xff); + while (offset > 0) + { + prevCodepoint = GetCodepointPrevious(text + offset, &prevCodepointSize); + if ((puctuation && !ispunct(prevCodepoint & 0xff)) || (!puctuation && (isspace(prevCodepoint & 0xff) || ispunct(prevCodepoint & 0xff)))) break; + + offset -= prevCodepointSize; + //accCodepointSize += prevCodepointSize; + } + + textBoxCursorIndex = offset; + } + else if ((textBoxCursorIndex > 0) && (GUI_KEY_PRESSED(KEY_LEFT) || (GUI_KEY_DOWN(KEY_LEFT) && autoCursorShouldTrigger))) + { + int prevCodepointSize = 0; + GetCodepointPrevious(text + textBoxCursorIndex, &prevCodepointSize); + + textBoxCursorIndex -= prevCodepointSize; + } + else if ((textLength > textBoxCursorIndex) && GUI_KEY_PRESSED(KEY_RIGHT) && (GUI_KEY_DOWN(KEY_LEFT_CONTROL) || GUI_KEY_DOWN(KEY_RIGHT_CONTROL))) + { + int offset = textBoxCursorIndex; + //int accCodepointSize = 0; + int nextCodepointSize; + int nextCodepoint; + + // Check characters of the same type to skip (either ASCII punctuation or anything non-whitespace) + // Not using isalnum() since it only works on ASCII characters + nextCodepoint = GetCodepointNext(text + offset, &nextCodepointSize); + bool puctuation = ispunct(nextCodepoint & 0xff); + while (offset < textLength) + { + if ((puctuation && !ispunct(nextCodepoint & 0xff)) || (!puctuation && (isspace(nextCodepoint & 0xff) || ispunct(nextCodepoint & 0xff)))) break; + + offset += nextCodepointSize; + //accCodepointSize += nextCodepointSize; + nextCodepoint = GetCodepointNext(text + offset, &nextCodepointSize); + } + + // Check whitespace to skip (ASCII only) + while (offset < textLength) + { + if (!isspace(nextCodepoint & 0xff)) break; + + offset += nextCodepointSize; + //accCodepointSize += nextCodepointSize; + nextCodepoint = GetCodepointNext(text + offset, &nextCodepointSize); + } + + textBoxCursorIndex = offset; + } + else if ((textLength > textBoxCursorIndex) && (GUI_KEY_PRESSED(KEY_RIGHT) || (GUI_KEY_DOWN(KEY_RIGHT) && autoCursorShouldTrigger))) + { + int nextCodepointSize = 0; + GetCodepointNext(text + textBoxCursorIndex, &nextCodepointSize); + + textBoxCursorIndex += nextCodepointSize; + } + + // Move cursor position with mouse + if (CheckCollisionPointRec(mousePosition, textBounds)) // Mouse hover text + { + float scaleFactor = (float)GuiGetStyle(DEFAULT, TEXT_SIZE)/(float)guiFont.baseSize; + int codepointIndex = 0; + float glyphWidth = 0.0f; + float widthToMouseX = 0; + int mouseCursorIndex = 0; + + for (int i = textIndexOffset; i < textLength; i += codepointSize) + { + codepoint = GetCodepointNext(&text[i], &codepointSize); + codepointIndex = GetGlyphIndex(guiFont, codepoint); + + if (guiFont.glyphs[codepointIndex].advanceX == 0) glyphWidth = ((float)guiFont.recs[codepointIndex].width*scaleFactor); + else glyphWidth = ((float)guiFont.glyphs[codepointIndex].advanceX*scaleFactor); + + if (mousePosition.x <= (textBounds.x + (widthToMouseX + glyphWidth/2))) + { + mouseCursor.x = textBounds.x + widthToMouseX; + mouseCursorIndex = i; + break; + } + + widthToMouseX += (glyphWidth + (float)GuiGetStyle(DEFAULT, TEXT_SPACING)); + } + + // Check if mouse cursor is at the last position + int textEndWidth = GuiGetTextWidth(text + textIndexOffset); + if (GUI_POINTER_POSITION.x >= (textBounds.x + textEndWidth - glyphWidth/2)) + { + mouseCursor.x = textBounds.x + textEndWidth; + mouseCursorIndex = textLength; + } + + // Place cursor at required index on mouse click + if ((mouseCursor.x >= 0) && GUI_BUTTON_PRESSED) + { + cursor.x = mouseCursor.x; + textBoxCursorIndex = mouseCursorIndex; + } + } + else mouseCursor.x = -1; + + // Recalculate cursor position.y depending on textBoxCursorIndex + cursor.x = bounds.x + GuiGetStyle(TEXTBOX, TEXT_PADDING) + GuiGetTextWidth(text + textIndexOffset) - GuiGetTextWidth(text + textBoxCursorIndex) + GuiGetStyle(DEFAULT, TEXT_SPACING); + //if (multiline) cursor.y = GetTextLines() + + // Finish text editing on ENTER or mouse click outside bounds + if ((!multiline && GUI_KEY_PRESSED(KEY_ENTER)) || + (!CheckCollisionPointRec(mousePosition, bounds) && GUI_BUTTON_PRESSED)) + { + textBoxCursorIndex = 0; // GLOBAL: Reset the shared cursor index + autoCursorCounter = 0; // GLOBAL: Reset counter for repeated keystrokes + result = 1; + } + } + else + { + if (CheckCollisionPointRec(mousePosition, bounds)) + { + state = STATE_FOCUSED; + + if (GUI_BUTTON_PRESSED) + { + textBoxCursorIndex = textLength; // GLOBAL: Place cursor index to the end of current text + autoCursorCounter = 0; // GLOBAL: Reset counter for repeated keystrokes + result = 1; + } + } + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + if (state == STATE_PRESSED) + { + GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), GetColor(GuiGetStyle(TEXTBOX, BORDER + (state*3))), GetColor(GuiGetStyle(TEXTBOX, BASE_COLOR_PRESSED))); + } + else if (state == STATE_DISABLED) + { + GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), GetColor(GuiGetStyle(TEXTBOX, BORDER + (state*3))), GetColor(GuiGetStyle(TEXTBOX, BASE_COLOR_DISABLED))); + } + else GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), GetColor(GuiGetStyle(TEXTBOX, BORDER + (state*3))), BLANK); + + // Draw text considering index offset if required + // NOTE: Text index offset depends on cursor position + GuiDrawText(text + textIndexOffset, textBounds, GuiGetStyle(TEXTBOX, TEXT_ALIGNMENT), GetColor(GuiGetStyle(TEXTBOX, TEXT + (state*3)))); + + // Draw cursor + if (editMode && !GuiGetStyle(TEXTBOX, TEXT_READONLY)) + { + //if (autoCursorMode || ((blinkCursorFrameCounter/40)%2 == 0)) + GuiDrawRectangle(cursor, 0, BLANK, GetColor(GuiGetStyle(TEXTBOX, BORDER_COLOR_PRESSED))); + + // Draw mouse position cursor (if required) + if (mouseCursor.x >= 0) GuiDrawRectangle(mouseCursor, 0, BLANK, GetColor(GuiGetStyle(TEXTBOX, BORDER_COLOR_PRESSED))); + } + else if (state == STATE_FOCUSED) GuiTooltip(bounds); + //-------------------------------------------------------------------- + + return result; // Mouse button pressed: result = 1 +} + +/* +// Text Box control with multiple lines and word-wrap +// NOTE: This text-box is readonly, no editing supported by default +bool GuiTextBoxMulti(Rectangle bounds, char *text, int textSize, bool editMode) +{ + bool pressed = false; + + GuiSetStyle(TEXTBOX, TEXT_READONLY, 1); + GuiSetStyle(DEFAULT, TEXT_WRAP_MODE, TEXT_WRAP_WORD); // WARNING: If wrap mode enabled, text editing is not supported + GuiSetStyle(DEFAULT, TEXT_ALIGNMENT_VERTICAL, TEXT_ALIGN_TOP); + + // TODO: Implement methods to calculate cursor position properly + pressed = GuiTextBox(bounds, text, textSize, editMode); + + GuiSetStyle(DEFAULT, TEXT_ALIGNMENT_VERTICAL, TEXT_ALIGN_MIDDLE); + GuiSetStyle(DEFAULT, TEXT_WRAP_MODE, TEXT_WRAP_NONE); + GuiSetStyle(TEXTBOX, TEXT_READONLY, 0); + + return pressed; +} +*/ + +// Spinner control, returns selected value +int GuiSpinner(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode) +{ + int result = 1; + GuiState state = guiState; + + int tempValue = *value; + + Rectangle valueBoxBounds = { + bounds.x + GuiGetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH) + GuiGetStyle(VALUEBOX, SPINNER_BUTTON_SPACING), + bounds.y, + bounds.width - 2*(GuiGetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH) + GuiGetStyle(VALUEBOX, SPINNER_BUTTON_SPACING)), bounds.height }; + Rectangle leftButtonBound = { (float)bounds.x, (float)bounds.y, (float)GuiGetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH), (float)bounds.height }; + Rectangle rightButtonBound = { (float)bounds.x + bounds.width - GuiGetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH), (float)bounds.y, + (float)GuiGetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH), (float)bounds.height }; + + Rectangle textBounds = { 0 }; + if (text != NULL) + { + textBounds.width = (float)GuiGetTextWidth(text) + 2; + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = bounds.x + bounds.width + GuiGetStyle(VALUEBOX, TEXT_PADDING); + textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; + if (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_LEFT) textBounds.x = bounds.x - textBounds.width - GuiGetStyle(VALUEBOX, TEXT_PADDING); + } + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked && !guiControlExclusiveMode) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + // Check spinner state + if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (GUI_BUTTON_DOWN) state = STATE_PRESSED; + else state = STATE_FOCUSED; + } + } + +#if defined(RAYGUI_NO_ICONS) + if (GuiButton(leftButtonBound, "<")) tempValue--; + if (GuiButton(rightButtonBound, ">")) tempValue++; +#else + if (GuiButton(leftButtonBound, GuiIconText(ICON_ARROW_LEFT_FILL, NULL))) tempValue--; + if (GuiButton(rightButtonBound, GuiIconText(ICON_ARROW_RIGHT_FILL, NULL))) tempValue++; +#endif + + if (!editMode) + { + if (tempValue < minValue) tempValue = minValue; + if (tempValue > maxValue) tempValue = maxValue; + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + result = GuiValueBox(valueBoxBounds, NULL, &tempValue, minValue, maxValue, editMode); + + // Draw value selector custom buttons + // NOTE: BORDER_WIDTH and TEXT_ALIGNMENT forced values + int tempBorderWidth = GuiGetStyle(BUTTON, BORDER_WIDTH); + int tempTextAlign = GuiGetStyle(BUTTON, TEXT_ALIGNMENT); + GuiSetStyle(BUTTON, BORDER_WIDTH, GuiGetStyle(VALUEBOX, BORDER_WIDTH)); + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, tempTextAlign); + GuiSetStyle(BUTTON, BORDER_WIDTH, tempBorderWidth); + + // Draw text label if provided + GuiDrawText(text, textBounds, (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT)? TEXT_ALIGN_LEFT : TEXT_ALIGN_RIGHT, GetColor(GuiGetStyle(LABEL, TEXT + (state*3)))); + //-------------------------------------------------------------------- + + *value = tempValue; + return result; +} + +// Value Box control, updates input text with numbers +// NOTE: Requires static variables: frameCounter +int GuiValueBox(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode) +{ + #if !defined(RAYGUI_VALUEBOX_MAX_CHARS) + #define RAYGUI_VALUEBOX_MAX_CHARS 32 + #endif + + int result = 0; + GuiState state = guiState; + + char textValue[RAYGUI_VALUEBOX_MAX_CHARS + 1] = { 0 }; + snprintf(textValue, RAYGUI_VALUEBOX_MAX_CHARS + 1, "%i", *value); + + Rectangle textBounds = { 0 }; + if (text != NULL) + { + textBounds.width = (float)GuiGetTextWidth(text) + 2; + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = bounds.x + bounds.width + GuiGetStyle(VALUEBOX, TEXT_PADDING); + textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; + if (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_LEFT) textBounds.x = bounds.x - textBounds.width - GuiGetStyle(VALUEBOX, TEXT_PADDING); + } + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked && !guiControlExclusiveMode) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + bool valueHasChanged = false; + + if (editMode) + { + state = STATE_PRESSED; + + int keyCount = (int)strlen(textValue); + + // Add or remove minus symbol + if (GUI_KEY_PRESSED(KEY_MINUS)) + { + if (textValue[0] == '-') + { + for (int i = 0 ; i < keyCount; i++) textValue[i] = textValue[i + 1]; + + keyCount--; + valueHasChanged = true; + } + else if (keyCount < RAYGUI_VALUEBOX_MAX_CHARS) + { + if (keyCount == 0) + { + textValue[0] = '0'; + textValue[1] = '\0'; + keyCount++; + } + + for (int i = keyCount ; i > -1; i--) textValue[i + 1] = textValue[i]; + + textValue[0] = '-'; + keyCount++; + valueHasChanged = true; + } + } + + // Add new digit to text value + if ((keyCount >= 0) && (keyCount < RAYGUI_VALUEBOX_MAX_CHARS) && (GuiGetTextWidth(textValue) < bounds.width)) + { + int key = GUI_INPUT_KEY; + + // Only allow keys in range [48..57] + if ((key >= 48) && (key <= 57)) + { + textValue[keyCount] = (char)key; + keyCount++; + valueHasChanged = true; + } + } + + // Delete text + if ((keyCount > 0) && GUI_KEY_PRESSED(KEY_BACKSPACE)) + { + keyCount--; + textValue[keyCount] = '\0'; + valueHasChanged = true; + } + + if (valueHasChanged) *value = TextToInteger(textValue); + + // NOTE: Values are not clamped until user input finishes + //if (*value > maxValue) *value = maxValue; + //else if (*value < minValue) *value = minValue; + + if ((GUI_KEY_PRESSED(KEY_ENTER) || GUI_KEY_PRESSED(KEY_KP_ENTER)) || (!CheckCollisionPointRec(mousePoint, bounds) && GUI_BUTTON_PRESSED)) + { + if (*value > maxValue) *value = maxValue; + else if (*value < minValue) *value = minValue; + + result = 1; + } + } + else + { + if (*value > maxValue) *value = maxValue; + else if (*value < minValue) *value = minValue; + + if (CheckCollisionPointRec(mousePoint, bounds)) + { + state = STATE_FOCUSED; + if (GUI_BUTTON_PRESSED) result = 1; + } + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + Color baseColor = BLANK; + if (state == STATE_PRESSED) baseColor = GetColor(GuiGetStyle(VALUEBOX, BASE_COLOR_PRESSED)); + else if (state == STATE_DISABLED) baseColor = GetColor(GuiGetStyle(VALUEBOX, BASE_COLOR_DISABLED)); + + GuiDrawRectangle(bounds, GuiGetStyle(VALUEBOX, BORDER_WIDTH), GetColor(GuiGetStyle(VALUEBOX, BORDER + (state*3))), baseColor); + GuiDrawText(textValue, GetTextBounds(VALUEBOX, bounds), TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(VALUEBOX, TEXT + (state*3)))); + + // Draw cursor rectangle + if (editMode) + { + // NOTE: ValueBox internal text is always centered + Rectangle cursor = { bounds.x + GuiGetTextWidth(textValue)/2 + bounds.width/2 + 1, + bounds.y + GuiGetStyle(TEXTBOX, BORDER_WIDTH) + 2, + 2, bounds.height - GuiGetStyle(TEXTBOX, BORDER_WIDTH)*2 - 4 }; + if (cursor.height > bounds.height) cursor.height = bounds.height - GuiGetStyle(TEXTBOX, BORDER_WIDTH)*2; + GuiDrawRectangle(cursor, 0, BLANK, GetColor(GuiGetStyle(VALUEBOX, BORDER_COLOR_PRESSED))); + } + + // Draw text label if provided + GuiDrawText(text, textBounds, (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT)? TEXT_ALIGN_LEFT : TEXT_ALIGN_RIGHT, GetColor(GuiGetStyle(LABEL, TEXT + (state*3)))); + //-------------------------------------------------------------------- + + return result; +} + +// Floating point Value Box control, updates input val_str with numbers +// NOTE: Requires static variables: frameCounter +int GuiValueBoxFloat(Rectangle bounds, const char *text, char *textValue, float *value, bool editMode) +{ + #if !defined(RAYGUI_VALUEBOX_MAX_CHARS) + #define RAYGUI_VALUEBOX_MAX_CHARS 32 + #endif + + int result = 0; + GuiState state = guiState; + + //char textValue[RAYGUI_VALUEBOX_MAX_CHARS + 1] = "\0"; + //snprintf(textValue, sizeof(textValue), "%2.2f", *value); + + Rectangle textBounds = { 0 }; + if (text != NULL) + { + textBounds.width = (float)GuiGetTextWidth(text) + 2; + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = bounds.x + bounds.width + GuiGetStyle(VALUEBOX, TEXT_PADDING); + textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; + if (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_LEFT) textBounds.x = bounds.x - textBounds.width - GuiGetStyle(VALUEBOX, TEXT_PADDING); + } + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked && !guiControlExclusiveMode) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + bool valueHasChanged = false; + + if (editMode) + { + state = STATE_PRESSED; + + int keyCount = (int)strlen(textValue); + + // Add or remove minus symbol + if (GUI_KEY_PRESSED(KEY_MINUS)) + { + if (textValue[0] == '-') + { + for (int i = 0; i < keyCount; i++) textValue[i] = textValue[i + 1]; + + keyCount--; + valueHasChanged = true; + } + else if (keyCount < (RAYGUI_VALUEBOX_MAX_CHARS - 1)) + { + if (keyCount == 0) + { + textValue[0] = '0'; + textValue[1] = '\0'; + keyCount++; + } + + for (int i = keyCount; i > -1; i--) textValue[i + 1] = textValue[i]; + + textValue[0] = '-'; + keyCount++; + valueHasChanged = true; + } + } + + // Only allow keys in range [48..57] + if (keyCount < RAYGUI_VALUEBOX_MAX_CHARS) + { + if (GuiGetTextWidth(textValue) < bounds.width) + { + int key = GUI_INPUT_KEY; + if (((key >= 48) && (key <= 57)) || + (key == '.') || + ((keyCount == 0) && (key == '+')) || // NOTE: Sign can only be in first position + ((keyCount == 0) && (key == '-'))) + { + textValue[keyCount] = (char)key; + keyCount++; + + valueHasChanged = true; + } + } + } + + // Pressed backspace + if (GUI_KEY_PRESSED(KEY_BACKSPACE)) + { + if (keyCount > 0) + { + keyCount--; + textValue[keyCount] = '\0'; + valueHasChanged = true; + } + } + + if (valueHasChanged) *value = TextToFloat(textValue); + + if ((GUI_KEY_PRESSED(KEY_ENTER) || GUI_KEY_PRESSED(KEY_KP_ENTER)) || (!CheckCollisionPointRec(mousePoint, bounds) && GUI_BUTTON_PRESSED)) result = 1; + } + else + { + if (CheckCollisionPointRec(mousePoint, bounds)) + { + state = STATE_FOCUSED; + if (GUI_BUTTON_PRESSED) result = 1; + } + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + Color baseColor = BLANK; + if (state == STATE_PRESSED) baseColor = GetColor(GuiGetStyle(VALUEBOX, BASE_COLOR_PRESSED)); + else if (state == STATE_DISABLED) baseColor = GetColor(GuiGetStyle(VALUEBOX, BASE_COLOR_DISABLED)); + + GuiDrawRectangle(bounds, GuiGetStyle(VALUEBOX, BORDER_WIDTH), GetColor(GuiGetStyle(VALUEBOX, BORDER + (state*3))), baseColor); + GuiDrawText(textValue, GetTextBounds(VALUEBOX, bounds), TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(VALUEBOX, TEXT + (state*3)))); + + // Draw cursor + if (editMode) + { + // NOTE: ValueBox internal text is always centered + Rectangle cursor = {bounds.x + GuiGetTextWidth(textValue)/2 + bounds.width/2 + 1, + bounds.y + 2*GuiGetStyle(VALUEBOX, BORDER_WIDTH), 4, + bounds.height - 4*GuiGetStyle(VALUEBOX, BORDER_WIDTH)}; + GuiDrawRectangle(cursor, 0, BLANK, GetColor(GuiGetStyle(VALUEBOX, BORDER_COLOR_PRESSED))); + } + + // Draw text label if provided + GuiDrawText(text, textBounds, + (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT)? TEXT_ALIGN_LEFT : TEXT_ALIGN_RIGHT, + GetColor(GuiGetStyle(LABEL, TEXT + (state*3)))); + //-------------------------------------------------------------------- + + return result; +} + +// Slider control with pro parameters +// NOTE: Other GuiSlider*() controls use this one +int GuiSlider(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue) +{ + int result = 0; + GuiState state = guiState; + + float temp = (maxValue - minValue)/2.0f; + if (value == NULL) value = &temp; + float oldValue = *value; + + int sliderWidth = GuiGetStyle(SLIDER, SLIDER_WIDTH); + + Rectangle slider = { bounds.x, bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH) + GuiGetStyle(SLIDER, SLIDER_PADDING), + 0, bounds.height - 2*GuiGetStyle(SLIDER, BORDER_WIDTH) - 2*GuiGetStyle(SLIDER, SLIDER_PADDING) }; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + if (guiControlExclusiveMode) // Allows to keep dragging outside of bounds + { + if (GUI_BUTTON_DOWN) + { + if (CHECK_BOUNDS_ID(bounds, guiControlExclusiveRec)) + { + state = STATE_PRESSED; + // Get equivalent value and slider position from mousePosition.x + *value = (maxValue - minValue)*((mousePoint.x - bounds.x - sliderWidth/2)/(bounds.width - sliderWidth)) + minValue; + } + } + else + { + guiControlExclusiveMode = false; + guiControlExclusiveRec = RAYGUI_CLITERAL(Rectangle){ 0, 0, 0, 0 }; + } + } + else if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (GUI_BUTTON_DOWN) + { + state = STATE_PRESSED; + guiControlExclusiveMode = true; + guiControlExclusiveRec = bounds; // Store bounds as an identifier when dragging starts + + if (!CheckCollisionPointRec(mousePoint, slider)) + { + // Get equivalent value and slider position from mousePosition.x + *value = (maxValue - minValue)*((mousePoint.x - bounds.x - sliderWidth/2)/(bounds.width - sliderWidth)) + minValue; + } + } + else state = STATE_FOCUSED; + } + + if (*value > maxValue) *value = maxValue; + else if (*value < minValue) *value = minValue; + } + + // Control value change check + if (oldValue == *value) result = 0; + else result = 1; + + // Slider bar limits check + float sliderValue = (((*value - minValue)/(maxValue - minValue))*(bounds.width - sliderWidth - 2*GuiGetStyle(SLIDER, BORDER_WIDTH))); + if (sliderWidth > 0) // Slider + { + slider.x += sliderValue; + slider.width = (float)sliderWidth; + if (slider.x <= (bounds.x + GuiGetStyle(SLIDER, BORDER_WIDTH))) slider.x = bounds.x + GuiGetStyle(SLIDER, BORDER_WIDTH); + else if ((slider.x + slider.width) >= (bounds.x + bounds.width)) slider.x = bounds.x + bounds.width - slider.width - GuiGetStyle(SLIDER, BORDER_WIDTH); + } + else if (sliderWidth == 0) // SliderBar + { + slider.x += GuiGetStyle(SLIDER, BORDER_WIDTH); + slider.width = sliderValue; + if (slider.width > bounds.width) slider.width = bounds.width - 2*GuiGetStyle(SLIDER, BORDER_WIDTH); + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + GuiDrawRectangle(bounds, GuiGetStyle(SLIDER, BORDER_WIDTH), GetColor(GuiGetStyle(SLIDER, BORDER + (state*3))), GetColor(GuiGetStyle(SLIDER, (state != STATE_DISABLED)? BASE_COLOR_NORMAL : BASE_COLOR_DISABLED))); + + // Draw slider internal bar (depends on state) + if (state == STATE_NORMAL) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, BASE_COLOR_PRESSED))); + else if (state == STATE_FOCUSED) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, TEXT_COLOR_FOCUSED))); + else if (state == STATE_PRESSED) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, TEXT_COLOR_PRESSED))); + else if (state == STATE_DISABLED) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, TEXT_COLOR_DISABLED))); + + // Draw left/right text if provided + if (textLeft != NULL) + { + Rectangle textBounds = { 0 }; + textBounds.width = (float)GuiGetTextWidth(textLeft); + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = bounds.x - textBounds.width - GuiGetStyle(SLIDER, TEXT_PADDING); + textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; + + GuiDrawText(textLeft, textBounds, TEXT_ALIGN_RIGHT, GetColor(GuiGetStyle(LABEL, TEXT + (state*3)))); + } + + if (textRight != NULL) + { + Rectangle textBounds = { 0 }; + textBounds.width = (float)GuiGetTextWidth(textRight); + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = bounds.x + bounds.width + GuiGetStyle(SLIDER, TEXT_PADDING); + textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; + + GuiDrawText(textRight, textBounds, TEXT_ALIGN_LEFT, GetColor(GuiGetStyle(LABEL, TEXT + (state*3)))); + } + //-------------------------------------------------------------------- + + return result; +} + +// Slider Bar control extended, returns selected value +int GuiSliderBar(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue) +{ + int result = 0; + int preSliderWidth = GuiGetStyle(SLIDER, SLIDER_WIDTH); + GuiSetStyle(SLIDER, SLIDER_WIDTH, 0); + result = GuiSlider(bounds, textLeft, textRight, value, minValue, maxValue); + GuiSetStyle(SLIDER, SLIDER_WIDTH, preSliderWidth); + + return result; +} + +// Progress Bar control extended, shows current progress value +int GuiProgressBar(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue) +{ + int result = 0; + GuiState state = guiState; + + float temp = (maxValue - minValue)/2.0f; + if (value == NULL) value = &temp; + + // Progress bar + Rectangle progress = { bounds.x + GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), + bounds.y + GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) + GuiGetStyle(PROGRESSBAR, PROGRESS_PADDING), 0, + bounds.height - GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) - 2*GuiGetStyle(PROGRESSBAR, PROGRESS_PADDING) -1 }; + + // Update control + //-------------------------------------------------------------------- + if (*value > maxValue) *value = maxValue; + + // WARNING: Working with floats could lead to rounding issues + if ((state != STATE_DISABLED)) progress.width = ((float)*value/(maxValue - minValue))*(bounds.width - 2*GuiGetStyle(PROGRESSBAR, BORDER_WIDTH)); + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + if (state == STATE_DISABLED) + { + GuiDrawRectangle(bounds, GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), GetColor(GuiGetStyle(PROGRESSBAR, BORDER + (state*3))), BLANK); + } + else + { + if (*value > minValue) + { + // Draw progress bar with colored border, more visual + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y, (int)progress.width + (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_FOCUSED))); + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y + 1, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.height - 2 }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_FOCUSED))); + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y + bounds.height - 1, (int)progress.width + (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_FOCUSED))); + } + else GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.height+GuiGetStyle(PROGRESSBAR, BORDER_WIDTH)-1 }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_NORMAL))); + + if (*value >= maxValue) GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + progress.width + (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.y, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.height+GuiGetStyle(PROGRESSBAR, BORDER_WIDTH)-1}, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_FOCUSED))); + else + { + // Draw borders not yet reached by value + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + (int)progress.width + (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.y, bounds.width - (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) - (int)progress.width - 1, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_NORMAL))); + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + (int)progress.width + (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.y + bounds.height - 1, bounds.width - (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) - (int)progress.width - 1, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_NORMAL))); + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + bounds.width - (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.y, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.height+GuiGetStyle(PROGRESSBAR, BORDER_WIDTH)-1 }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_NORMAL))); + } + + // Draw slider internal progress bar (depends on state) + if (GuiGetStyle(PROGRESSBAR, PROGRESS_SIDE) == 0) // Left-->Right + { + GuiDrawRectangle(progress, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BASE_COLOR_PRESSED))); + } + else // Right-->Left + { + progress.x = bounds.x + bounds.width - progress.width - GuiGetStyle(PROGRESSBAR, BORDER_WIDTH); + GuiDrawRectangle(progress, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BASE_COLOR_PRESSED))); + } + } + + // Draw left/right text if provided + if (textLeft != NULL) + { + Rectangle textBounds = { 0 }; + textBounds.width = (float)GuiGetTextWidth(textLeft); + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = bounds.x - textBounds.width - GuiGetStyle(PROGRESSBAR, TEXT_PADDING); + textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; + + GuiDrawText(textLeft, textBounds, TEXT_ALIGN_RIGHT, GetColor(GuiGetStyle(LABEL, TEXT + (state*3)))); + } + + if (textRight != NULL) + { + Rectangle textBounds = { 0 }; + textBounds.width = (float)GuiGetTextWidth(textRight); + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = bounds.x + bounds.width + GuiGetStyle(PROGRESSBAR, TEXT_PADDING); + textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; + + GuiDrawText(textRight, textBounds, TEXT_ALIGN_LEFT, GetColor(GuiGetStyle(LABEL, TEXT + (state*3)))); + } + //-------------------------------------------------------------------- + + return result; +} + +// Status Bar control +int GuiStatusBar(Rectangle bounds, const char *text) +{ + int result = 0; + GuiState state = guiState; + + // Draw control + //-------------------------------------------------------------------- + GuiDrawRectangle(bounds, GuiGetStyle(STATUSBAR, BORDER_WIDTH), GetColor(GuiGetStyle(STATUSBAR, BORDER + (state*3))), GetColor(GuiGetStyle(STATUSBAR, BASE + (state*3)))); + GuiDrawText(text, GetTextBounds(STATUSBAR, bounds), GuiGetStyle(STATUSBAR, TEXT_ALIGNMENT), GetColor(GuiGetStyle(STATUSBAR, TEXT + (state*3)))); + //-------------------------------------------------------------------- + + return result; +} + +// Dummy rectangle control, intended for placeholding +int GuiDummyRec(Rectangle bounds, const char *text) +{ + int result = 0; + GuiState state = guiState; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked && !guiControlExclusiveMode) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + // Check button state + if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (GUI_BUTTON_DOWN) state = STATE_PRESSED; + else state = STATE_FOCUSED; + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + GuiDrawRectangle(bounds, 0, BLANK, GetColor(GuiGetStyle(DEFAULT, (state != STATE_DISABLED)? BASE_COLOR_NORMAL : BASE_COLOR_DISABLED))); + GuiDrawText(text, GetTextBounds(DEFAULT, bounds), TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(BUTTON, (state != STATE_DISABLED)? TEXT_COLOR_NORMAL : TEXT_COLOR_DISABLED))); + //------------------------------------------------------------------ + + return result; +} + +// List View control +int GuiListView(Rectangle bounds, const char *text, int *scrollIndex, int *active) +{ + int result = 0; + int itemCount = 0; + char **items = NULL; + + if (text != NULL) items = GuiTextSplit(text, ';', &itemCount, NULL); + + result = GuiListViewEx(bounds, items, itemCount, scrollIndex, active, NULL); + + return result; +} + +// List View control with extended parameters +int GuiListViewEx(Rectangle bounds, char **text, int count, int *scrollIndex, int *active, int *focus) +{ + int result = 0; + GuiState state = guiState; + + int itemFocused = (focus == NULL)? -1 : *focus; + int itemSelected = (active == NULL)? -1 : *active; + + // Check if scroll bar is needed + bool useScrollBar = false; + if ((GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) + GuiGetStyle(LISTVIEW, LIST_ITEMS_SPACING))*count > bounds.height) useScrollBar = true; + + // Define base item rectangle [0] + Rectangle itemBounds = { 0 }; + itemBounds.x = bounds.x + GuiGetStyle(LISTVIEW, LIST_ITEMS_SPACING); + itemBounds.y = bounds.y + GuiGetStyle(LISTVIEW, LIST_ITEMS_SPACING) + GuiGetStyle(DEFAULT, BORDER_WIDTH); + itemBounds.width = bounds.width - 2*GuiGetStyle(LISTVIEW, LIST_ITEMS_SPACING) - GuiGetStyle(DEFAULT, BORDER_WIDTH); + itemBounds.height = (float)GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT); + if (useScrollBar) itemBounds.width -= GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH); + + // Get items on the list + int visibleItems = (int)bounds.height/(GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) + GuiGetStyle(LISTVIEW, LIST_ITEMS_SPACING)); + if (visibleItems > count) visibleItems = count; + + int startIndex = (scrollIndex == NULL)? 0 : *scrollIndex; + if ((startIndex < 0) || (startIndex > (count - visibleItems))) startIndex = 0; + int endIndex = startIndex + visibleItems; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked && !guiControlExclusiveMode) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + // Check mouse inside list view + if (CheckCollisionPointRec(mousePoint, bounds)) + { + state = STATE_FOCUSED; + + // Check focused and selected item + for (int i = 0; i < visibleItems; i++) + { + if (CheckCollisionPointRec(mousePoint, itemBounds)) + { + itemFocused = startIndex + i; + if (GUI_BUTTON_PRESSED) + { + if (itemSelected == (startIndex + i)) itemSelected = -1; + else itemSelected = startIndex + i; + } + break; + } + + // Update item rectangle y position for next item + itemBounds.y += (GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) + GuiGetStyle(LISTVIEW, LIST_ITEMS_SPACING)); + } + + if (useScrollBar) + { + float scrollDelta = GUI_SCROLL_DELTA; + startIndex -= (int)scrollDelta; + + if (startIndex < 0) startIndex = 0; + else if (startIndex > (count - visibleItems)) startIndex = count - visibleItems; + + endIndex = startIndex + visibleItems; + if (endIndex > count) endIndex = count; + } + } + else itemFocused = -1; + + // Reset item rectangle y to [0] + itemBounds.y = bounds.y + GuiGetStyle(LISTVIEW, LIST_ITEMS_SPACING) + GuiGetStyle(DEFAULT, BORDER_WIDTH); + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + GuiDrawRectangle(bounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER + state*3)), GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); // Draw background + + // Draw visible items + for (int i = 0; ((i < visibleItems) && (text != NULL)); i++) + { + if (GuiGetStyle(LISTVIEW, LIST_ITEMS_BORDER_NORMAL)) GuiDrawRectangle(itemBounds, GuiGetStyle(LISTVIEW, LIST_ITEMS_BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_NORMAL)), BLANK); + + if (state == STATE_DISABLED) + { + if ((startIndex + i) == itemSelected) GuiDrawRectangle(itemBounds, GuiGetStyle(LISTVIEW, LIST_ITEMS_BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_DISABLED)), GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_DISABLED))); + + GuiDrawText(text[startIndex + i], GetTextBounds(LISTVIEW, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_DISABLED))); + } + else + { + if (((startIndex + i) == itemSelected) && (active != NULL)) + { + // Draw item selected + GuiDrawRectangle(itemBounds, GuiGetStyle(LISTVIEW, LIST_ITEMS_BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_PRESSED)), GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_PRESSED))); + GuiDrawText(text[startIndex + i], GetTextBounds(LISTVIEW, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_PRESSED))); + } + else if (((startIndex + i) == itemFocused)) // && (focus != NULL)) // NOTE: Items focused, despite not returned + { + // Draw item focused + GuiDrawRectangle(itemBounds, GuiGetStyle(LISTVIEW, LIST_ITEMS_BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_FOCUSED)), GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_FOCUSED))); + GuiDrawText(text[startIndex + i], GetTextBounds(LISTVIEW, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_FOCUSED))); + } + else + { + // Draw item normal (no rectangle) + GuiDrawText(text[startIndex + i], GetTextBounds(LISTVIEW, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_NORMAL))); + } + } + + // Update item rectangle y position for next item + itemBounds.y += (GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) + GuiGetStyle(LISTVIEW, LIST_ITEMS_SPACING)); + } + + if (useScrollBar) + { + Rectangle scrollBarBounds = { + bounds.x + bounds.width - GuiGetStyle(LISTVIEW, BORDER_WIDTH) - GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH), + bounds.y + GuiGetStyle(LISTVIEW, BORDER_WIDTH), (float)GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH), + bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) + }; + + // Calculate percentage of visible items and apply same percentage to scrollbar + float percentVisible = (float)(endIndex - startIndex)/count; + float sliderSize = bounds.height*percentVisible; + + int prevSliderSize = GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE); // Save default slider size + int prevScrollSpeed = GuiGetStyle(SCROLLBAR, SCROLL_SPEED); // Save default scroll speed + GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE, (int)sliderSize); // Change slider size + GuiSetStyle(SCROLLBAR, SCROLL_SPEED, count - visibleItems); // Change scroll speed + + startIndex = GuiScrollBar(scrollBarBounds, startIndex, 0, count - visibleItems); + + GuiSetStyle(SCROLLBAR, SCROLL_SPEED, prevScrollSpeed); // Reset scroll speed to default + GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE, prevSliderSize); // Reset slider size to default + } + //-------------------------------------------------------------------- + + if (active != NULL) *active = itemSelected; + if (focus != NULL) *focus = itemFocused; + if (scrollIndex != NULL) *scrollIndex = startIndex; + + return result; +} + +// Color Panel control - Color (RGBA) variant +int GuiColorPanel(Rectangle bounds, const char *text, Color *color) +{ + int result = 0; + + Vector3 vcolor = { (float)color->r/255.0f, (float)color->g/255.0f, (float)color->b/255.0f }; + Vector3 hsv = ConvertRGBtoHSV(vcolor); + Vector3 prevHsv = hsv; // workaround to see if GuiColorPanelHSV modifies the hsv + + GuiColorPanelHSV(bounds, text, &hsv); + + // Check if the hsv was changed, only then change the color + // This is required, because the Color->HSV->Color conversion has precision errors + // Thus the assignment from HSV to Color should only be made, if the HSV has a new user-entered value + // Otherwise GuiColorPanel would often modify it's color without user input + // TODO: GuiColorPanelHSV could return 1 if the slider was dragged, to simplify this check + if (hsv.x != prevHsv.x || hsv.y != prevHsv.y || hsv.z != prevHsv.z) + { + Vector3 rgb = ConvertHSVtoRGB(hsv); + + // NOTE: Vector3ToColor() only available on raylib 1.8.1 + *color = RAYGUI_CLITERAL(Color){ (unsigned char)(255.0f*rgb.x), + (unsigned char)(255.0f*rgb.y), + (unsigned char)(255.0f*rgb.z), + color->a }; + } + return result; +} + +// Color Bar Alpha control +// NOTE: Returns alpha value normalized [0..1] +int GuiColorBarAlpha(Rectangle bounds, const char *text, float *alpha) +{ + #if !defined(RAYGUI_COLORBARALPHA_CHECKED_SIZE) + #define RAYGUI_COLORBARALPHA_CHECKED_SIZE 10 + #endif + + int result = 0; + GuiState state = guiState; + Rectangle selector = { (float)bounds.x + (*alpha)*bounds.width - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT)/2, + (float)bounds.y - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW), + (float)GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT), + (float)bounds.height + GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)*2 }; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + if (guiControlExclusiveMode) // Allows to keep dragging outside of bounds + { + if (GUI_BUTTON_DOWN) + { + if (CHECK_BOUNDS_ID(bounds, guiControlExclusiveRec)) + { + state = STATE_PRESSED; + + *alpha = (mousePoint.x - bounds.x)/bounds.width; + if (*alpha <= 0.0f) *alpha = 0.0f; + if (*alpha >= 1.0f) *alpha = 1.0f; + } + } + else + { + guiControlExclusiveMode = false; + guiControlExclusiveRec = RAYGUI_CLITERAL(Rectangle){ 0, 0, 0, 0 }; + } + } + else if (CheckCollisionPointRec(mousePoint, bounds) || CheckCollisionPointRec(mousePoint, selector)) + { + if (GUI_BUTTON_DOWN) + { + state = STATE_PRESSED; + guiControlExclusiveMode = true; + guiControlExclusiveRec = bounds; // Store bounds as an identifier when dragging starts + + *alpha = (mousePoint.x - bounds.x)/bounds.width; + if (*alpha <= 0.0f) *alpha = 0.0f; + if (*alpha >= 1.0f) *alpha = 1.0f; + //selector.x = bounds.x + (int)(((alpha - 0)/(100 - 0))*(bounds.width - 2*GuiGetStyle(SLIDER, BORDER_WIDTH))) - selector.width/2; + } + else state = STATE_FOCUSED; + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + // Draw alpha bar: checked background + if (state != STATE_DISABLED) + { + int checksX = (int)bounds.width/RAYGUI_COLORBARALPHA_CHECKED_SIZE; + int checksY = (int)bounds.height/RAYGUI_COLORBARALPHA_CHECKED_SIZE; + + for (int x = 0; x < checksX; x++) + { + for (int y = 0; y < checksY; y++) + { + Rectangle check = { bounds.x + x*RAYGUI_COLORBARALPHA_CHECKED_SIZE, bounds.y + y*RAYGUI_COLORBARALPHA_CHECKED_SIZE, RAYGUI_COLORBARALPHA_CHECKED_SIZE, RAYGUI_COLORBARALPHA_CHECKED_SIZE }; + GuiDrawRectangle(check, 0, BLANK, ((x + y)%2)? Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED)), 0.4f) : Fade(GetColor(GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED)), 0.4f)); + } + } + + DrawRectangleGradientEx(bounds, RAYGUI_CLITERAL(Color){ 255, 255, 255, 0 }, RAYGUI_CLITERAL(Color){ 255, 255, 255, 0 }, Fade(RAYGUI_CLITERAL(Color){ 0, 0, 0, 255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 0, 0, 0, 255 }, guiAlpha)); + } + else DrawRectangleGradientEx(bounds, Fade(GetColor(GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED)), 0.1f), Fade(GetColor(GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED)), 0.1f), Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED)), guiAlpha), Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED)), guiAlpha)); + + GuiDrawRectangle(bounds, GuiGetStyle(COLORPICKER, BORDER_WIDTH), GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), BLANK); + + // Draw alpha bar: selector + GuiDrawRectangle(selector, 0, BLANK, GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3))); + //-------------------------------------------------------------------- + + return result; +} + +// Color Bar Hue control +// Returns hue value normalized [0..1] +// NOTE: Other similar bars (for reference): +// Color GuiColorBarSat() [WHITE->color] +// Color GuiColorBarValue() [BLACK->color], HSV/HSL +// float GuiColorBarLuminance() [BLACK->WHITE] +int GuiColorBarHue(Rectangle bounds, const char *text, float *hue) +{ + int result = 0; + GuiState state = guiState; + Rectangle selector = { (float)bounds.x - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW), (float)bounds.y + (*hue)/360.0f*bounds.height - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT)/2, (float)bounds.width + GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)*2, (float)GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT) }; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + if (guiControlExclusiveMode) // Allows to keep dragging outside of bounds + { + if (GUI_BUTTON_DOWN) + { + if (CHECK_BOUNDS_ID(bounds, guiControlExclusiveRec)) + { + state = STATE_PRESSED; + + *hue = (mousePoint.y - bounds.y)*360/bounds.height; + if (*hue <= 0.0f) *hue = 0.0f; + if (*hue >= 359.0f) *hue = 359.0f; + } + } + else + { + guiControlExclusiveMode = false; + guiControlExclusiveRec = RAYGUI_CLITERAL(Rectangle){ 0, 0, 0, 0 }; + } + } + else if (CheckCollisionPointRec(mousePoint, bounds) || CheckCollisionPointRec(mousePoint, selector)) + { + if (GUI_BUTTON_DOWN) + { + state = STATE_PRESSED; + guiControlExclusiveMode = true; + guiControlExclusiveRec = bounds; // Store bounds as an identifier when dragging starts + + *hue = (mousePoint.y - bounds.y)*360/bounds.height; + if (*hue <= 0.0f) *hue = 0.0f; + if (*hue >= 359.0f) *hue = 359.0f; + + } + else state = STATE_FOCUSED; + + /*if (GUI_KEY_DOWN(KEY_UP)) + { + hue -= 2.0f; + if (hue <= 0.0f) hue = 0.0f; + } + else if (GUI_KEY_DOWN(KEY_DOWN)) + { + hue += 2.0f; + if (hue >= 360.0f) hue = 360.0f; + }*/ + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + if (state != STATE_DISABLED) + { + // Draw hue bar:color bars + // TODO: Use directly DrawRectangleGradientEx(bounds, color1, color2, color2, color1); + DrawRectangleGradientV((int)bounds.x, (int)(bounds.y), (int)bounds.width, (int)ceilf(bounds.height/6), Fade(RAYGUI_CLITERAL(Color){ 255, 0, 0, 255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 255, 255, 0, 255 }, guiAlpha)); + DrawRectangleGradientV((int)bounds.x, (int)(bounds.y + bounds.height/6), (int)bounds.width, (int)ceilf(bounds.height/6), Fade(RAYGUI_CLITERAL(Color){ 255, 255, 0, 255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 0, 255, 0, 255 }, guiAlpha)); + DrawRectangleGradientV((int)bounds.x, (int)(bounds.y + 2*(bounds.height/6)), (int)bounds.width, (int)ceilf(bounds.height/6), Fade(RAYGUI_CLITERAL(Color){ 0, 255, 0, 255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 0, 255, 255, 255 }, guiAlpha)); + DrawRectangleGradientV((int)bounds.x, (int)(bounds.y + 3*(bounds.height/6)), (int)bounds.width, (int)ceilf(bounds.height/6), Fade(RAYGUI_CLITERAL(Color){ 0, 255, 255, 255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 0, 0, 255, 255 }, guiAlpha)); + DrawRectangleGradientV((int)bounds.x, (int)(bounds.y + 4*(bounds.height/6)), (int)bounds.width, (int)ceilf(bounds.height/6), Fade(RAYGUI_CLITERAL(Color){ 0, 0, 255, 255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 255, 0, 255, 255 }, guiAlpha)); + DrawRectangleGradientV((int)bounds.x, (int)(bounds.y + 5*(bounds.height/6)), (int)bounds.width, (int)(bounds.height/6), Fade(RAYGUI_CLITERAL(Color){ 255, 0, 255, 255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 255, 0, 0, 255 }, guiAlpha)); + } + else DrawRectangleGradientV((int)bounds.x, (int)bounds.y, (int)bounds.width, (int)bounds.height, Fade(Fade(GetColor(GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED)), 0.1f), guiAlpha), Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED)), guiAlpha)); + + GuiDrawRectangle(bounds, GuiGetStyle(COLORPICKER, BORDER_WIDTH), GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), BLANK); + + // Draw hue bar: selector + GuiDrawRectangle(selector, 0, BLANK, GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3))); + //-------------------------------------------------------------------- + + return result; +} + +// Color Picker control +// NOTE: It's divided in multiple controls: +// Color GuiColorPanel(Rectangle bounds, Color color) +// float GuiColorBarAlpha(Rectangle bounds, float alpha) +// float GuiColorBarHue(Rectangle bounds, float value) +// NOTE: bounds define GuiColorPanel() size +// NOTE: this picker converts RGB to HSV, which can cause the Hue control to jump. If you have this problem, consider using the HSV variant instead +int GuiColorPicker(Rectangle bounds, const char *text, Color *color) +{ + int result = 0; + + Color temp = { 200, 0, 0, 255 }; + if (color == NULL) color = &temp; + + GuiColorPanel(bounds, NULL, color); + + Rectangle boundsHue = { (float)bounds.x + bounds.width + GuiGetStyle(COLORPICKER, HUEBAR_PADDING), (float)bounds.y, (float)GuiGetStyle(COLORPICKER, HUEBAR_WIDTH), (float)bounds.height }; + //Rectangle boundsAlpha = { bounds.x, bounds.y + bounds.height + GuiGetStyle(COLORPICKER, BARS_PADDING), bounds.width, GuiGetStyle(COLORPICKER, BARS_THICK) }; + + // NOTE: this conversion can cause low hue-resolution, if the r, g and b value are very similar, which causes the hue bar to shift around when only the GuiColorPanel is used + Vector3 hsv = ConvertRGBtoHSV(RAYGUI_CLITERAL(Vector3){ (*color).r/255.0f, (*color).g/255.0f, (*color).b/255.0f }); + + GuiColorBarHue(boundsHue, NULL, &hsv.x); + + //color.a = (unsigned char)(GuiColorBarAlpha(boundsAlpha, (float)color.a/255.0f)*255.0f); + Vector3 rgb = ConvertHSVtoRGB(hsv); + + *color = RAYGUI_CLITERAL(Color){ (unsigned char)roundf(rgb.x*255.0f), (unsigned char)roundf(rgb.y*255.0f), (unsigned char)roundf(rgb.z*255.0f), (*color).a }; + + return result; +} + +// Color Picker control that avoids conversion to RGB and back to HSV on each call, thus avoiding jittering +// The user can call ConvertHSVtoRGB() to convert *colorHsv value to RGB +// NOTE: It's divided in multiple controls: +// int GuiColorPanelHSV(Rectangle bounds, const char *text, Vector3 *colorHsv) +// int GuiColorBarAlpha(Rectangle bounds, const char *text, float *alpha) +// float GuiColorBarHue(Rectangle bounds, float value) +// NOTE: bounds define GuiColorPanelHSV() size +int GuiColorPickerHSV(Rectangle bounds, const char *text, Vector3 *colorHsv) +{ + int result = 0; + + Vector3 tempHsv = { 0 }; + + if (colorHsv == NULL) + { + const Vector3 tempColor = { 200.0f/255.0f, 0.0f, 0.0f }; + tempHsv = ConvertRGBtoHSV(tempColor); + colorHsv = &tempHsv; + } + + GuiColorPanelHSV(bounds, NULL, colorHsv); + + const Rectangle boundsHue = { (float)bounds.x + bounds.width + GuiGetStyle(COLORPICKER, HUEBAR_PADDING), (float)bounds.y, (float)GuiGetStyle(COLORPICKER, HUEBAR_WIDTH), (float)bounds.height }; + + GuiColorBarHue(boundsHue, NULL, &colorHsv->x); + + return result; +} + +// Color Panel control - HSV variant +int GuiColorPanelHSV(Rectangle bounds, const char *text, Vector3 *colorHsv) +{ + int result = 0; + GuiState state = guiState; + Vector2 pickerSelector = { 0 }; + + const Color colWhite = { 255, 255, 255, 255 }; + const Color colBlack = { 0, 0, 0, 255 }; + + pickerSelector.x = bounds.x + (float)colorHsv->y*bounds.width; // HSV: Saturation + pickerSelector.y = bounds.y + (1.0f - (float)colorHsv->z)*bounds.height; // HSV: Value + + Vector3 maxHue = { colorHsv->x, 1.0f, 1.0f }; + Vector3 rgbHue = ConvertHSVtoRGB(maxHue); + Color maxHueCol = { (unsigned char)(255.0f*rgbHue.x), + (unsigned char)(255.0f*rgbHue.y), + (unsigned char)(255.0f*rgbHue.z), 255 }; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + if (guiControlExclusiveMode) // Allows to keep dragging outside of bounds + { + if (GUI_BUTTON_DOWN) + { + if (CHECK_BOUNDS_ID(bounds, guiControlExclusiveRec)) + { + pickerSelector = mousePoint; + + if (pickerSelector.x < bounds.x) pickerSelector.x = bounds.x; + if (pickerSelector.x > bounds.x + bounds.width) pickerSelector.x = bounds.x + bounds.width; + if (pickerSelector.y < bounds.y) pickerSelector.y = bounds.y; + if (pickerSelector.y > bounds.y + bounds.height) pickerSelector.y = bounds.y + bounds.height; + + // Calculate color from picker + Vector2 colorPick = { pickerSelector.x - bounds.x, pickerSelector.y - bounds.y }; + + colorPick.x /= (float)bounds.width; // Get normalized value on x + colorPick.y /= (float)bounds.height; // Get normalized value on y + + colorHsv->y = colorPick.x; + colorHsv->z = 1.0f - colorPick.y; + + } + } + else + { + guiControlExclusiveMode = false; + guiControlExclusiveRec = RAYGUI_CLITERAL(Rectangle){ 0, 0, 0, 0 }; + } + } + else if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (GUI_BUTTON_DOWN) + { + state = STATE_PRESSED; + guiControlExclusiveMode = true; + guiControlExclusiveRec = bounds; + pickerSelector = mousePoint; + + // Calculate color from picker + Vector2 colorPick = { pickerSelector.x - bounds.x, pickerSelector.y - bounds.y }; + + colorPick.x /= (float)bounds.width; // Get normalized value on x + colorPick.y /= (float)bounds.height; // Get normalized value on y + + colorHsv->y = colorPick.x; + colorHsv->z = 1.0f - colorPick.y; + } + else state = STATE_FOCUSED; + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + if (state != STATE_DISABLED) + { + DrawRectangleGradientEx(bounds, Fade(colWhite, guiAlpha), Fade(colWhite, guiAlpha), Fade(maxHueCol, guiAlpha), Fade(maxHueCol, guiAlpha)); + DrawRectangleGradientEx(bounds, Fade(colBlack, 0), Fade(colBlack, guiAlpha), Fade(colBlack, guiAlpha), Fade(colBlack, 0)); + + // Draw color picker: selector + Rectangle selector = { pickerSelector.x - GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE)/2, pickerSelector.y - GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE)/2, (float)GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE), (float)GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE) }; + GuiDrawRectangle(selector, 0, BLANK, colWhite); + } + else + { + DrawRectangleGradientEx(bounds, Fade(Fade(GetColor(GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED)), 0.1f), guiAlpha), Fade(Fade(colBlack, 0.6f), guiAlpha), Fade(Fade(colBlack, 0.6f), guiAlpha), Fade(Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED)), 0.6f), guiAlpha)); + } + + GuiDrawRectangle(bounds, GuiGetStyle(COLORPICKER, BORDER_WIDTH), GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), BLANK); + //-------------------------------------------------------------------- + + return result; +} + +// Message Box control +int GuiMessageBox(Rectangle bounds, const char *title, const char *message, const char *buttons) +{ + #if !defined(RAYGUI_MESSAGEBOX_BUTTON_HEIGHT) + #define RAYGUI_MESSAGEBOX_BUTTON_HEIGHT 24 + #endif + #if !defined(RAYGUI_MESSAGEBOX_BUTTON_PADDING) + #define RAYGUI_MESSAGEBOX_BUTTON_PADDING 12 + #endif + + int result = -1; // Returns clicked button from buttons list, 0 refers to closed window button + + int buttonCount = 0; + char **buttonsText = GuiTextSplit(buttons, ';', &buttonCount, NULL); + Rectangle buttonBounds = { 0 }; + buttonBounds.x = bounds.x + RAYGUI_MESSAGEBOX_BUTTON_PADDING; + buttonBounds.y = bounds.y + bounds.height - RAYGUI_MESSAGEBOX_BUTTON_HEIGHT - RAYGUI_MESSAGEBOX_BUTTON_PADDING; + buttonBounds.width = (bounds.width - RAYGUI_MESSAGEBOX_BUTTON_PADDING*(buttonCount + 1))/buttonCount; + buttonBounds.height = RAYGUI_MESSAGEBOX_BUTTON_HEIGHT; + + //int textWidth = GuiGetTextWidth(message) + 2; + + Rectangle textBounds = { 0 }; + textBounds.x = bounds.x + RAYGUI_MESSAGEBOX_BUTTON_PADDING; + textBounds.y = bounds.y + RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT + RAYGUI_MESSAGEBOX_BUTTON_PADDING; + textBounds.width = bounds.width - RAYGUI_MESSAGEBOX_BUTTON_PADDING*2; + textBounds.height = bounds.height - RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT - 3*RAYGUI_MESSAGEBOX_BUTTON_PADDING - RAYGUI_MESSAGEBOX_BUTTON_HEIGHT; + + // Draw control + //-------------------------------------------------------------------- + if (GuiWindowBox(bounds, title)) result = 0; + + int prevTextAlignment = GuiGetStyle(LABEL, TEXT_ALIGNMENT); + GuiSetStyle(LABEL, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + GuiLabel(textBounds, message); + GuiSetStyle(LABEL, TEXT_ALIGNMENT, prevTextAlignment); + + prevTextAlignment = GuiGetStyle(BUTTON, TEXT_ALIGNMENT); + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + + for (int i = 0; i < buttonCount; i++) + { + if (GuiButton(buttonBounds, buttonsText[i])) result = i + 1; + buttonBounds.x += (buttonBounds.width + RAYGUI_MESSAGEBOX_BUTTON_PADDING); + } + + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, prevTextAlignment); + //-------------------------------------------------------------------- + + return result; +} + +// Text Input Box control, ask for text +int GuiTextInputBox(Rectangle bounds, const char *title, const char *message, const char *buttons, char *text, int textMaxSize, bool *secretViewActive) +{ + #if !defined(RAYGUI_TEXTINPUTBOX_BUTTON_HEIGHT) + #define RAYGUI_TEXTINPUTBOX_BUTTON_HEIGHT 24 + #endif + #if !defined(RAYGUI_TEXTINPUTBOX_BUTTON_PADDING) + #define RAYGUI_TEXTINPUTBOX_BUTTON_PADDING 12 + #endif + #if !defined(RAYGUI_TEXTINPUTBOX_HEIGHT) + #define RAYGUI_TEXTINPUTBOX_HEIGHT 26 + #endif + + // Used to enable text edit mode + // WARNING: No more than one GuiTextInputBox() should be open at the same time + static bool textEditMode = false; + + int result = -1; + + int buttonCount = 0; + char **buttonsText = GuiTextSplit(buttons, ';', &buttonCount, NULL); + Rectangle buttonBounds = { 0 }; + buttonBounds.x = bounds.x + RAYGUI_TEXTINPUTBOX_BUTTON_PADDING; + buttonBounds.y = bounds.y + bounds.height - RAYGUI_TEXTINPUTBOX_BUTTON_HEIGHT - RAYGUI_TEXTINPUTBOX_BUTTON_PADDING; + buttonBounds.width = (bounds.width - RAYGUI_TEXTINPUTBOX_BUTTON_PADDING*(buttonCount + 1))/buttonCount; + buttonBounds.height = RAYGUI_TEXTINPUTBOX_BUTTON_HEIGHT; + + int messageInputHeight = (int)bounds.height - RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT - GuiGetStyle(STATUSBAR, BORDER_WIDTH) - RAYGUI_TEXTINPUTBOX_BUTTON_HEIGHT - 2*RAYGUI_TEXTINPUTBOX_BUTTON_PADDING; + + Rectangle textBounds = { 0 }; + if (message != NULL) + { + int textSize = GuiGetTextWidth(message) + 2; + + textBounds.x = bounds.x + bounds.width/2 - textSize/2; + textBounds.y = bounds.y + RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT + messageInputHeight/4 - (float)GuiGetStyle(DEFAULT, TEXT_SIZE)/2; + textBounds.width = (float)textSize; + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + } + + Rectangle textBoxBounds = { 0 }; + textBoxBounds.x = bounds.x + RAYGUI_TEXTINPUTBOX_BUTTON_PADDING; + textBoxBounds.y = bounds.y + RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT - RAYGUI_TEXTINPUTBOX_HEIGHT/2; + if (message == NULL) textBoxBounds.y = bounds.y + 24 + RAYGUI_TEXTINPUTBOX_BUTTON_PADDING; + else textBoxBounds.y += (messageInputHeight/2 + messageInputHeight/4); + textBoxBounds.width = bounds.width - RAYGUI_TEXTINPUTBOX_BUTTON_PADDING*2; + textBoxBounds.height = RAYGUI_TEXTINPUTBOX_HEIGHT; + + // Draw control + //-------------------------------------------------------------------- + if (GuiWindowBox(bounds, title)) result = 0; + + // Draw message if available + if (message != NULL) + { + int prevTextAlignment = GuiGetStyle(LABEL, TEXT_ALIGNMENT); + GuiSetStyle(LABEL, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + GuiLabel(textBounds, message); + GuiSetStyle(LABEL, TEXT_ALIGNMENT, prevTextAlignment); + } + + int prevTextBoxAlignment = GuiGetStyle(TEXTBOX, TEXT_ALIGNMENT); + GuiSetStyle(TEXTBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); + + if (secretViewActive != NULL) + { + static char stars[] = "****************"; + if (GuiTextBox(RAYGUI_CLITERAL(Rectangle){ textBoxBounds.x, textBoxBounds.y, textBoxBounds.width - 4 - RAYGUI_TEXTINPUTBOX_HEIGHT, textBoxBounds.height }, + ((*secretViewActive == 1) || textEditMode)? text : stars, textMaxSize, textEditMode)) textEditMode = !textEditMode; + + GuiToggle(RAYGUI_CLITERAL(Rectangle){ textBoxBounds.x + textBoxBounds.width - RAYGUI_TEXTINPUTBOX_HEIGHT, textBoxBounds.y, RAYGUI_TEXTINPUTBOX_HEIGHT, RAYGUI_TEXTINPUTBOX_HEIGHT }, (*secretViewActive == 1)? "#44#" : "#45#", secretViewActive); + } + else + { + if (GuiTextBox(textBoxBounds, text, textMaxSize, textEditMode)) textEditMode = !textEditMode; + } + + GuiSetStyle(TEXTBOX, TEXT_ALIGNMENT, prevTextBoxAlignment); + + int prevBtnTextAlignment = GuiGetStyle(BUTTON, TEXT_ALIGNMENT); + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + + for (int i = 0; i < buttonCount; i++) + { + if (GuiButton(buttonBounds, buttonsText[i])) result = i + 1; + buttonBounds.x += (buttonBounds.width + RAYGUI_MESSAGEBOX_BUTTON_PADDING); + } + + if (result >= 0) textEditMode = false; + + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, prevBtnTextAlignment); + //-------------------------------------------------------------------- + + return result; // Result is the pressed button index +} + +// Grid control +// NOTE: Returns grid mouse-hover selected cell +// About drawing lines at subpixel spacing, simple put, not easy solution: +// REF: https://stackoverflow.com/questions/4435450/2d-opengl-drawing-lines-that-dont-exactly-fit-pixel-raster +int GuiGrid(Rectangle bounds, const char *text, float spacing, int subdivs, Vector2 *mouseCell) +{ + // Grid lines alpha amount + #if !defined(RAYGUI_GRID_ALPHA) + #define RAYGUI_GRID_ALPHA 0.15f + #endif + + int result = 0; + GuiState state = guiState; + + Vector2 mousePoint = GUI_POINTER_POSITION; + Vector2 currentMouseCell = { -1, -1 }; + + float spaceWidth = spacing/(float)subdivs; + int linesV = (int)(bounds.width/spaceWidth) + 1; + int linesH = (int)(bounds.height/spaceWidth) + 1; + + int color = GuiGetStyle(DEFAULT, LINE_COLOR); + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked && !guiControlExclusiveMode) + { + if (CheckCollisionPointRec(mousePoint, bounds)) + { + // NOTE: Cell values must be the upper left of the cell the mouse is in + currentMouseCell.x = floorf((mousePoint.x - bounds.x)/spacing); + currentMouseCell.y = floorf((mousePoint.y - bounds.y)/spacing); + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + if (state == STATE_DISABLED) color = GuiGetStyle(DEFAULT, BORDER_COLOR_DISABLED); + + if (subdivs > 0) + { + // Draw vertical grid lines + for (int i = 0; i < linesV; i++) + { + Rectangle lineV = { bounds.x + spacing*i/subdivs, bounds.y, 1, bounds.height + 1 }; + GuiDrawRectangle(lineV, 0, BLANK, ((i%subdivs) == 0)? GuiFade(GetColor(color), RAYGUI_GRID_ALPHA*4) : GuiFade(GetColor(color), RAYGUI_GRID_ALPHA)); + } + + // Draw horizontal grid lines + for (int i = 0; i < linesH; i++) + { + Rectangle lineH = { bounds.x, bounds.y + spacing*i/subdivs, bounds.width + 1, 1 }; + GuiDrawRectangle(lineH, 0, BLANK, ((i%subdivs) == 0)? GuiFade(GetColor(color), RAYGUI_GRID_ALPHA*4) : GuiFade(GetColor(color), RAYGUI_GRID_ALPHA)); + } + } + + if (mouseCell != NULL) *mouseCell = currentMouseCell; + return result; +} + +//---------------------------------------------------------------------------------- +// Tooltip management functions +// NOTE: Tooltips requires some global variables: tooltipPtr +//---------------------------------------------------------------------------------- +// Enable gui tooltips (global state) +void GuiEnableTooltip(void) { guiTooltip = true; } + +// Disable gui tooltips (global state) +void GuiDisableTooltip(void) { guiTooltip = false; } + +// Set tooltip string +void GuiSetTooltip(const char *tooltip) { guiTooltipPtr = tooltip; } + +//---------------------------------------------------------------------------------- +// Styles loading functions +//---------------------------------------------------------------------------------- + +// Load raygui style file (.rgs) +// NOTE: By default a binary file is expected, that file could contain a custom font, +// in that case, custom font image atlas is GRAY+ALPHA and pixel data can be compressed (DEFLATE) +void GuiLoadStyle(const char *fileName) +{ + #define MAX_LINE_BUFFER_SIZE 256 + + bool tryBinary = false; + if (!guiStyleLoaded) GuiLoadStyleDefault(); + + // Try reading the files as text file first + FILE *rgsFile = fopen(fileName, "rt"); + + if (rgsFile != NULL) + { + char buffer[MAX_LINE_BUFFER_SIZE] = { 0 }; + fgets(buffer, MAX_LINE_BUFFER_SIZE, rgsFile); + + if (buffer[0] == '#') + { + int controlId = 0; + int propertyId = 0; + unsigned int propertyValue = 0; + + while (!feof(rgsFile)) + { + switch (buffer[0]) + { + case 'p': + { + // Style property: p + + sscanf(buffer, "p %d %d 0x%x", &controlId, &propertyId, &propertyValue); + GuiSetStyle(controlId, propertyId, (int)propertyValue); + + } break; + case 'f': + { + // Style font: f + + int fontSize = 0; + char charmapFileName[256] = { 0 }; + char fontFileName[256] = { 0 }; + sscanf(buffer, "f %d %s %[^\r\n]s", &fontSize, charmapFileName, fontFileName); + + Font font = { 0 }; + int *codepoints = NULL; + int codepointCount = 0; + + if (charmapFileName[0] != '0') + { + // Load text data from file + // NOTE: Expected an UTF-8 array of codepoints, no separation + char *textData = LoadFileText(TextFormat("%s/%s", GetDirectoryPath(fileName), charmapFileName)); + codepoints = LoadCodepoints(textData, &codepointCount); + UnloadFileText(textData); + } + + if (fontFileName[0] != '\0') + { + // In case a font is already loaded and it is not default internal font, unload it + if (font.texture.id != GetFontDefault().texture.id) UnloadTexture(font.texture); + + if (codepointCount > 0) font = LoadFontEx(TextFormat("%s/%s", GetDirectoryPath(fileName), fontFileName), fontSize, codepoints, codepointCount); + else font = LoadFontEx(TextFormat("%s/%s", GetDirectoryPath(fileName), fontFileName), fontSize, NULL, 0); // Default to 95 standard codepoints + } + + // If font texture not properly loaded, revert to default font and size/spacing + if (font.texture.id == 0) + { + font = GetFontDefault(); + GuiSetStyle(DEFAULT, TEXT_SIZE, 10); + GuiSetStyle(DEFAULT, TEXT_SPACING, 1); + } + + UnloadCodepoints(codepoints); + + if ((font.texture.id > 0) && (font.glyphCount > 0)) GuiSetFont(font); + + } break; + default: break; + } + + fgets(buffer, MAX_LINE_BUFFER_SIZE, rgsFile); + } + } + else tryBinary = true; + + fclose(rgsFile); + } + + if (tryBinary) + { + rgsFile = fopen(fileName, "rb"); + + if (rgsFile != NULL) + { + fseek(rgsFile, 0, SEEK_END); + int fileDataSize = ftell(rgsFile); + fseek(rgsFile, 0, SEEK_SET); + + if (fileDataSize > 0) + { + unsigned char *fileData = (unsigned char *)RAYGUI_CALLOC(fileDataSize, sizeof(unsigned char)); + if (fileData != NULL) + { + fread(fileData, sizeof(unsigned char), fileDataSize, rgsFile); + + GuiLoadStyleFromMemory(fileData, fileDataSize); + + RAYGUI_FREE(fileData); + } + } + + fclose(rgsFile); + } + } +} + +// Load style default over global style +void GuiLoadStyleDefault(void) +{ + // Setting this flag first to avoid cyclic function calls + // when calling GuiSetStyle() and GuiGetStyle() + guiStyleLoaded = true; + + // Initialize default LIGHT style property values + // WARNING: Default value are applied to all controls on set but + // they can be overwritten later on for every custom control + GuiSetStyle(DEFAULT, BORDER_COLOR_NORMAL, 0x838383ff); + GuiSetStyle(DEFAULT, BASE_COLOR_NORMAL, 0xc9c9c9ff); + GuiSetStyle(DEFAULT, TEXT_COLOR_NORMAL, 0x686868ff); + GuiSetStyle(DEFAULT, BORDER_COLOR_FOCUSED, 0x5bb2d9ff); + GuiSetStyle(DEFAULT, BASE_COLOR_FOCUSED, 0xc9effeff); + GuiSetStyle(DEFAULT, TEXT_COLOR_FOCUSED, 0x6c9bbcff); + GuiSetStyle(DEFAULT, BORDER_COLOR_PRESSED, 0x0492c7ff); + GuiSetStyle(DEFAULT, BASE_COLOR_PRESSED, 0x97e8ffff); + GuiSetStyle(DEFAULT, TEXT_COLOR_PRESSED, 0x368bafff); + GuiSetStyle(DEFAULT, BORDER_COLOR_DISABLED, 0xb5c1c2ff); + GuiSetStyle(DEFAULT, BASE_COLOR_DISABLED, 0xe6e9e9ff); + GuiSetStyle(DEFAULT, TEXT_COLOR_DISABLED, 0xaeb7b8ff); + GuiSetStyle(DEFAULT, BORDER_WIDTH, 1); + GuiSetStyle(DEFAULT, TEXT_PADDING, 0); + GuiSetStyle(DEFAULT, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + + // Initialize default extended property values + // NOTE: By default, extended property values are initialized to 0 + GuiSetStyle(DEFAULT, TEXT_SIZE, 10); // DEFAULT, shared by all controls + GuiSetStyle(DEFAULT, TEXT_SPACING, 1); // DEFAULT, shared by all controls + GuiSetStyle(DEFAULT, LINE_COLOR, 0x90abb5ff); // DEFAULT specific property + GuiSetStyle(DEFAULT, BACKGROUND_COLOR, 0xf5f5f5ff); // DEFAULT specific property + GuiSetStyle(DEFAULT, TEXT_LINE_SPACING, 5); // DEFAULT, pixels between lines, from bottom of first line to top of second + GuiSetStyle(DEFAULT, TEXT_ALIGNMENT_VERTICAL, TEXT_ALIGN_MIDDLE); // DEFAULT, text aligned vertically to middle of text-bounds + + // Initialize control-specific property values + // NOTE: Those properties are in default list but require specific values by control type + GuiSetStyle(LABEL, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); + GuiSetStyle(BUTTON, BORDER_WIDTH, 2); + GuiSetStyle(SLIDER, TEXT_PADDING, 4); + GuiSetStyle(PROGRESSBAR, TEXT_PADDING, 4); + GuiSetStyle(CHECKBOX, TEXT_PADDING, 4); + GuiSetStyle(CHECKBOX, TEXT_ALIGNMENT, TEXT_ALIGN_RIGHT); + GuiSetStyle(DROPDOWNBOX, TEXT_PADDING, 0); + GuiSetStyle(DROPDOWNBOX, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + GuiSetStyle(TEXTBOX, TEXT_PADDING, 4); + GuiSetStyle(TEXTBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); + GuiSetStyle(VALUEBOX, TEXT_PADDING, 0); + GuiSetStyle(VALUEBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); + GuiSetStyle(STATUSBAR, TEXT_PADDING, 8); + GuiSetStyle(STATUSBAR, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); + + // Initialize extended property values + // NOTE: By default, extended property values are initialized to 0 + GuiSetStyle(TOGGLE, GROUP_PADDING, 2); + GuiSetStyle(SLIDER, SLIDER_WIDTH, 16); + GuiSetStyle(SLIDER, SLIDER_PADDING, 1); + GuiSetStyle(PROGRESSBAR, PROGRESS_PADDING, 1); + GuiSetStyle(CHECKBOX, CHECK_PADDING, 1); + GuiSetStyle(COMBOBOX, COMBO_BUTTON_WIDTH, 32); + GuiSetStyle(COMBOBOX, COMBO_BUTTON_SPACING, 2); + GuiSetStyle(DROPDOWNBOX, ARROW_PADDING, 16); + GuiSetStyle(DROPDOWNBOX, DROPDOWN_ITEMS_SPACING, 2); + GuiSetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH, 24); + GuiSetStyle(VALUEBOX, SPINNER_BUTTON_SPACING, 2); + GuiSetStyle(SCROLLBAR, BORDER_WIDTH, 0); + GuiSetStyle(SCROLLBAR, ARROWS_VISIBLE, 0); + GuiSetStyle(SCROLLBAR, ARROWS_SIZE, 6); + GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING, 0); + GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE, 16); + GuiSetStyle(SCROLLBAR, SCROLL_PADDING, 0); + GuiSetStyle(SCROLLBAR, SCROLL_SPEED, 12); + GuiSetStyle(LISTVIEW, LIST_ITEMS_HEIGHT, 28); + GuiSetStyle(LISTVIEW, LIST_ITEMS_SPACING, 2); + GuiSetStyle(LISTVIEW, LIST_ITEMS_BORDER_WIDTH, 1); + GuiSetStyle(LISTVIEW, SCROLLBAR_WIDTH, 12); + GuiSetStyle(LISTVIEW, SCROLLBAR_SIDE, SCROLLBAR_RIGHT_SIDE); + GuiSetStyle(COLORPICKER, COLOR_SELECTOR_SIZE, 8); + GuiSetStyle(COLORPICKER, HUEBAR_WIDTH, 16); + GuiSetStyle(COLORPICKER, HUEBAR_PADDING, 8); + GuiSetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT, 8); + GuiSetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW, 2); + + if (guiFont.texture.id != GetFontDefault().texture.id) + { + // Unload previous font texture + UnloadTexture(guiFont.texture); + RAYGUI_FREE(guiFont.recs); + RAYGUI_FREE(guiFont.glyphs); + guiFont.recs = NULL; + guiFont.glyphs = NULL; + + // Setup default raylib font + guiFont = GetFontDefault(); + + // NOTE: Default raylib font character 95 is a white square + Rectangle whiteChar = guiFont.recs[95]; + + // NOTE: Setting up a 1px padding on char rectangle to avoid pixel bleeding on MSAA filtering + SetShapesTexture(guiFont.texture, RAYGUI_CLITERAL(Rectangle){ whiteChar.x + 1, whiteChar.y + 1, whiteChar.width - 2, whiteChar.height - 2 }); + } +} + +// Get text with icon id prepended +// NOTE: Useful to add icons by name id (enum) instead of +// a number that can change between ricon versions +const char *GuiIconText(int iconId, const char *text) +{ +#if defined(RAYGUI_NO_ICONS) + return NULL; +#else + static char buffer[1024] = { 0 }; + static char iconBuffer[16] = { 0 }; + + if (text != NULL) + { + memset(buffer, 0, 1024); + snprintf(buffer, 1024, "#%03i#", iconId); + + for (int i = 5; i < 1024; i++) + { + buffer[i] = text[i - 5]; + if (text[i - 5] == '\0') break; + } + + return buffer; + } + else + { + snprintf(iconBuffer, 16, "#%03i#", iconId); + + return iconBuffer; + } +#endif +} + +#if !defined(RAYGUI_NO_ICONS) +// Get full icons data pointer +unsigned int *GuiGetIcons(void) { return guiIconsPtr; } + +// Load raygui icons file (.rgi) +// NOTE: In case nameIds are required, they can be requested with loadIconsName, +// they are returned as a guiIconsName[iconCount][RAYGUI_ICON_MAX_NAME_LENGTH], +// WARNING: guiIconsName[]][] memory should be manually freed! +char **GuiLoadIcons(const char *fileName, bool loadIconsName) +{ + // Style File Structure (.rgi) + // ------------------------------------------------------ + // Offset | Size | Type | Description + // ------------------------------------------------------ + // 0 | 4 | char | Signature: "rGI " + // 4 | 2 | short | Version: 100 + // 6 | 2 | short | reserved + + // 8 | 2 | short | Num icons (N) + // 10 | 2 | short | Icons size (Options: 16, 32, 64) (S) + + // Icons name id (32 bytes per name id) + // foreach (icon) + // { + // 12+32*i | 32 | char | Icon NameId + // } + + // Icons data: One bit per pixel, stored as unsigned int array (depends on icon size) + // S*S pixels/32bit per unsigned int = K unsigned int per icon + // foreach (icon) + // { + // ... | K | unsigned int | Icon Data + // } + + FILE *rgiFile = fopen(fileName, "rb"); + + char **guiIconsName = NULL; + + if (rgiFile != NULL) + { + char signature[5] = { 0 }; + short version = 0; + short reserved = 0; + short iconCount = 0; + short iconSize = 0; + + fread(signature, 1, 4, rgiFile); + fread(&version, sizeof(short), 1, rgiFile); + fread(&reserved, sizeof(short), 1, rgiFile); + fread(&iconCount, sizeof(short), 1, rgiFile); + fread(&iconSize, sizeof(short), 1, rgiFile); + + if ((signature[0] == 'r') && + (signature[1] == 'G') && + (signature[2] == 'I') && + (signature[3] == ' ')) + { + if (loadIconsName) + { + guiIconsName = (char **)RAYGUI_CALLOC(iconCount, sizeof(char *)); + for (int i = 0; i < iconCount; i++) + { + guiIconsName[i] = (char *)RAYGUI_CALLOC(RAYGUI_ICON_MAX_NAME_LENGTH, sizeof(char)); + fread(guiIconsName[i], 1, RAYGUI_ICON_MAX_NAME_LENGTH, rgiFile); + } + } + else fseek(rgiFile, iconCount*RAYGUI_ICON_MAX_NAME_LENGTH, SEEK_CUR); + + // Read icons data directly over internal icons array + fread(guiIconsPtr, sizeof(unsigned int), (int)iconCount*((int)iconSize*(int)iconSize/32), rgiFile); + } + + fclose(rgiFile); + } + + return guiIconsName; +} + +// Load icons from memory +// WARNING: Binary files only +char **GuiLoadIconsFromMemory(const unsigned char *fileData, int dataSize, bool loadIconsName) +{ + unsigned char *fileDataPtr = (unsigned char *)fileData; + char **guiIconsName = NULL; + + char signature[5] = { 0 }; + short version = 0; + short reserved = 0; + short iconCount = 0; + short iconSize = 0; + + memcpy(signature, fileDataPtr, 4); + memcpy(&version, fileDataPtr + 4, sizeof(short)); + memcpy(&reserved, fileDataPtr + 4 + 2, sizeof(short)); + memcpy(&iconCount, fileDataPtr + 4 + 2 + 2, sizeof(short)); + memcpy(&iconSize, fileDataPtr + 4 + 2 + 2 + 2, sizeof(short)); + fileDataPtr += 12; + + if ((signature[0] == 'r') && + (signature[1] == 'G') && + (signature[2] == 'I') && + (signature[3] == ' ')) + { + if (loadIconsName) + { + guiIconsName = (char **)RAYGUI_CALLOC(iconCount, sizeof(char *)); + for (int i = 0; i < iconCount; i++) + { + guiIconsName[i] = (char *)RAYGUI_CALLOC(RAYGUI_ICON_MAX_NAME_LENGTH, sizeof(char)); + memcpy(guiIconsName[i], fileDataPtr, RAYGUI_ICON_MAX_NAME_LENGTH); + fileDataPtr += RAYGUI_ICON_MAX_NAME_LENGTH; + } + } + else + { + // Skip icon name data if not required + fileDataPtr += iconCount*RAYGUI_ICON_MAX_NAME_LENGTH; + } + + int iconDataSize = iconCount*((int)iconSize*(int)iconSize/32)*(int)sizeof(unsigned int); + guiIconsPtr = (unsigned int *)RAYGUI_CALLOC(iconDataSize, 1); + + memcpy(guiIconsPtr, fileDataPtr, iconDataSize); + } + + return guiIconsName; +} + +// Draw selected icon using rectangles pixel-by-pixel +void GuiDrawIcon(int iconId, int posX, int posY, int pixelSize, Color color) +{ + #define BIT_CHECK(a,b) ((a) & (1u<<(b))) + + for (int i = 0, y = 0; i < RAYGUI_ICON_SIZE*RAYGUI_ICON_SIZE/32; i++) + { + for (int k = 0; k < 32; k++) + { + if (BIT_CHECK(guiIconsPtr[iconId*RAYGUI_ICON_DATA_ELEMENTS + i], k)) + { + #if !defined(RAYGUI_STANDALONE) + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ (float)posX + (k%RAYGUI_ICON_SIZE)*pixelSize, (float)posY + y*pixelSize, (float)pixelSize, (float)pixelSize }, 0, BLANK, color); + #endif + } + + if ((k == 15) || (k == 31)) y++; + } + } +} + +// Set icon drawing size +void GuiSetIconScale(int scale) +{ + if (scale >= 1) guiIconScale = scale; +} + +// Get text width considering gui style and icon size (if required) +int GuiGetTextWidth(const char *text) +{ + #if !defined(ICON_TEXT_PADDING) + #define ICON_TEXT_PADDING 4 + #endif + + Vector2 textSize = { 0 }; + int textIconOffset = 0; + + if ((text != NULL) && (text[0] != '\0')) + { + if (text[0] == '#') + { + for (int i = 1; (i < 5) && (text[i] != '\0'); i++) + { + if (text[i] == '#') + { + textIconOffset = i; + break; + } + } + } + + text += textIconOffset; + + // Make sure guiFont is set, GuiGetStyle() initializes it lazynessly + float fontSize = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + + // Custom MeasureText() implementation + if ((guiFont.texture.id > 0) && (text != NULL)) + { + // Get size in bytes of text, considering end of line and line break + int size = 0; + for (int i = 0; i < MAX_LINE_BUFFER_SIZE; i++) + { + if ((text[i] != '\0') && (text[i] != '\n')) size++; + else break; + } + + float scaleFactor = fontSize/(float)guiFont.baseSize; + textSize.y = (float)guiFont.baseSize*scaleFactor; + float glyphWidth = 0.0f; + + for (int i = 0, codepointSize = 0; i < size; i += codepointSize) + { + int codepoint = GetCodepointNext(&text[i], &codepointSize); + int codepointIndex = GetGlyphIndex(guiFont, codepoint); + + if (guiFont.glyphs[codepointIndex].advanceX == 0) glyphWidth = ((float)guiFont.recs[codepointIndex].width*scaleFactor); + else glyphWidth = ((float)guiFont.glyphs[codepointIndex].advanceX*scaleFactor); + + textSize.x += (glyphWidth + (float)GuiGetStyle(DEFAULT, TEXT_SPACING)); + } + } + + if (textIconOffset > 0) textSize.x += (RAYGUI_ICON_SIZE + ICON_TEXT_PADDING); + } + + return (int)textSize.x; +} + +#endif // !RAYGUI_NO_ICONS + +//---------------------------------------------------------------------------------- +// Module Internal Functions Definition +//---------------------------------------------------------------------------------- +// Load style from memory +// WARNING: Binary files only +static void GuiLoadStyleFromMemory(const unsigned char *fileData, int dataSize) +{ + unsigned char *fileDataPtr = (unsigned char *)fileData; + + char signature[5] = { 0 }; + short version = 0; + short reserved = 0; + int propertyCount = 0; + + memcpy(signature, fileDataPtr, 4); + memcpy(&version, fileDataPtr + 4, sizeof(short)); + memcpy(&reserved, fileDataPtr + 4 + 2, sizeof(short)); + memcpy(&propertyCount, fileDataPtr + 4 + 2 + 2, sizeof(int)); + fileDataPtr += 12; + + if ((signature[0] == 'r') && + (signature[1] == 'G') && + (signature[2] == 'S') && + (signature[3] == ' ')) + { + short controlId = 0; + short propertyId = 0; + unsigned int propertyValue = 0; + + for (int i = 0; i < propertyCount; i++) + { + memcpy(&controlId, fileDataPtr, sizeof(short)); + memcpy(&propertyId, fileDataPtr + 2, sizeof(short)); + memcpy(&propertyValue, fileDataPtr + 2 + 2, sizeof(unsigned int)); + fileDataPtr += 8; + + if (controlId == 0) // DEFAULT control + { + // If a DEFAULT property is loaded, it is propagated to all controls + // NOTE: All DEFAULT properties should be defined first in the file + GuiSetStyle(0, (int)propertyId, propertyValue); + + if (propertyId < RAYGUI_MAX_PROPS_BASE) for (int j = 1; j < RAYGUI_MAX_CONTROLS; j++) GuiSetStyle(j, (int)propertyId, propertyValue); + } + else GuiSetStyle((int)controlId, (int)propertyId, propertyValue); + } + + // Font loading is highly dependant on raylib API to load font data and image + +#if !defined(RAYGUI_STANDALONE) + // Load custom font if available + int fontDataSize = 0; + memcpy(&fontDataSize, fileDataPtr, sizeof(int)); + fileDataPtr += 4; + + if (fontDataSize > 0) + { + Font font = { 0 }; + int fontType = 0; // 0-Normal, 1-SDF + + memcpy(&font.baseSize, fileDataPtr, sizeof(int)); + memcpy(&font.glyphCount, fileDataPtr + 4, sizeof(int)); + memcpy(&fontType, fileDataPtr + 4 + 4, sizeof(int)); + fileDataPtr += 12; + + // Load font white rectangle + Rectangle fontWhiteRec = { 0 }; + memcpy(&fontWhiteRec, fileDataPtr, sizeof(Rectangle)); + fileDataPtr += 16; + + // Load font image parameters + int fontImageUncompSize = 0; + int fontImageCompSize = 0; + memcpy(&fontImageUncompSize, fileDataPtr, sizeof(int)); + memcpy(&fontImageCompSize, fileDataPtr + 4, sizeof(int)); + fileDataPtr += 8; + + Image imFont = { 0 }; + imFont.mipmaps = 1; + memcpy(&imFont.width, fileDataPtr, sizeof(int)); + memcpy(&imFont.height, fileDataPtr + 4, sizeof(int)); + memcpy(&imFont.format, fileDataPtr + 4 + 4, sizeof(int)); + fileDataPtr += 12; + + if ((fontImageCompSize > 0) && (fontImageCompSize != fontImageUncompSize)) + { + // Compressed font atlas image data (DEFLATE), it requires DecompressData() + int dataUncompSize = 0; + unsigned char *compData = (unsigned char *)RAYGUI_CALLOC(fontImageCompSize, sizeof(unsigned char)); + memcpy(compData, fileDataPtr, fontImageCompSize); + fileDataPtr += fontImageCompSize; + + imFont.data = DecompressData(compData, fontImageCompSize, &dataUncompSize); + + // Security check, dataUncompSize must match the provided fontImageUncompSize + if (dataUncompSize != fontImageUncompSize) RAYGUI_LOG("WARNING: Uncompressed font atlas image data could be corrupted"); + + RAYGUI_FREE(compData); + } + else + { + // Font atlas image data is not compressed + imFont.data = (unsigned char *)RAYGUI_CALLOC(fontImageUncompSize, sizeof(unsigned char)); + memcpy(imFont.data, fileDataPtr, fontImageUncompSize); + fileDataPtr += fontImageUncompSize; + } + + if (font.texture.id != GetFontDefault().texture.id) UnloadTexture(font.texture); + font.texture = LoadTextureFromImage(imFont); + + RAYGUI_FREE(imFont.data); + + // Validate font atlas texture was loaded correctly + if (font.texture.id != 0) + { + // Load font recs data + int recsDataSize = font.glyphCount*sizeof(Rectangle); + int recsDataCompressedSize = 0; + + // WARNING: Version 400 adds the compression size parameter + if (version >= 400) + { + // RGS files version 400 support compressed recs data + memcpy(&recsDataCompressedSize, fileDataPtr, sizeof(int)); + fileDataPtr += sizeof(int); + } + + if ((recsDataCompressedSize > 0) && (recsDataCompressedSize != recsDataSize)) + { + // Recs data is compressed, uncompress it + unsigned char *recsDataCompressed = (unsigned char *)RAYGUI_CALLOC(recsDataCompressedSize, sizeof(unsigned char)); + + memcpy(recsDataCompressed, fileDataPtr, recsDataCompressedSize); + fileDataPtr += recsDataCompressedSize; + + int recsDataUncompSize = 0; + font.recs = (Rectangle *)DecompressData(recsDataCompressed, recsDataCompressedSize, &recsDataUncompSize); + + // Security check, data uncompressed size must match the expected original data size + if (recsDataUncompSize != recsDataSize) RAYGUI_LOG("WARNING: Uncompressed font recs data could be corrupted"); + + RAYGUI_FREE(recsDataCompressed); + } + else + { + // Recs data is uncompressed + font.recs = (Rectangle *)RAYGUI_CALLOC(font.glyphCount, sizeof(Rectangle)); + for (int i = 0; i < font.glyphCount; i++) + { + memcpy(&font.recs[i], fileDataPtr, sizeof(Rectangle)); + fileDataPtr += sizeof(Rectangle); + } + } + + // Load font glyphs info data + int glyphsDataSize = font.glyphCount*16; // 16 bytes data per glyph + int glyphsDataCompressedSize = 0; + + // WARNING: Version 400 adds the compression size parameter + if (version >= 400) + { + // RGS files version 400 support compressed glyphs data + memcpy(&glyphsDataCompressedSize, fileDataPtr, sizeof(int)); + fileDataPtr += sizeof(int); + } + + // Allocate required glyphs space to fill with data + font.glyphs = (GlyphInfo *)RAYGUI_CALLOC(font.glyphCount, sizeof(GlyphInfo)); + + if ((glyphsDataCompressedSize > 0) && (glyphsDataCompressedSize != glyphsDataSize)) + { + // Glyphs data is compressed, uncompress it + unsigned char *glypsDataCompressed = (unsigned char *)RAYGUI_CALLOC(glyphsDataCompressedSize, sizeof(unsigned char)); + + memcpy(glypsDataCompressed, fileDataPtr, glyphsDataCompressedSize); + fileDataPtr += glyphsDataCompressedSize; + + int glyphsDataUncompSize = 0; + unsigned char *glyphsDataUncomp = DecompressData(glypsDataCompressed, glyphsDataCompressedSize, &glyphsDataUncompSize); + + // Security check, data uncompressed size must match the expected original data size + if (glyphsDataUncompSize != glyphsDataSize) RAYGUI_LOG("WARNING: Uncompressed font glyphs data could be corrupted"); + + unsigned char *glyphsDataUncompPtr = glyphsDataUncomp; + + for (int i = 0; i < font.glyphCount; i++) + { + memcpy(&font.glyphs[i].value, glyphsDataUncompPtr, sizeof(int)); + memcpy(&font.glyphs[i].offsetX, glyphsDataUncompPtr + 4, sizeof(int)); + memcpy(&font.glyphs[i].offsetY, glyphsDataUncompPtr + 8, sizeof(int)); + memcpy(&font.glyphs[i].advanceX, glyphsDataUncompPtr + 12, sizeof(int)); + glyphsDataUncompPtr += 16; + } + + RAYGUI_FREE(glypsDataCompressed); + RAYGUI_FREE(glyphsDataUncomp); + } + else + { + // Glyphs data is uncompressed + for (int i = 0; i < font.glyphCount; i++) + { + memcpy(&font.glyphs[i].value, fileDataPtr, sizeof(int)); + memcpy(&font.glyphs[i].offsetX, fileDataPtr + 4, sizeof(int)); + memcpy(&font.glyphs[i].offsetY, fileDataPtr + 8, sizeof(int)); + memcpy(&font.glyphs[i].advanceX, fileDataPtr + 12, sizeof(int)); + fileDataPtr += 16; + } + } + } + else font = GetFontDefault(); // Fallback in case of errors loading font atlas texture + + GuiSetFont(font); + + // Set font texture source rectangle to be used as white texture to draw shapes + // NOTE: It makes possible to draw shapes and text (full UI) in a single draw call + if ((fontWhiteRec.x > 0) && + (fontWhiteRec.y > 0) && + (fontWhiteRec.width > 0) && + (fontWhiteRec.height > 0)) SetShapesTexture(font.texture, fontWhiteRec); + } +#endif + } +} + +// Get text bounds considering control bounds +static Rectangle GetTextBounds(int control, Rectangle bounds) +{ + Rectangle textBounds = bounds; + + textBounds.x = bounds.x + GuiGetStyle(control, BORDER_WIDTH); + textBounds.y = bounds.y + GuiGetStyle(control, BORDER_WIDTH) + GuiGetStyle(control, TEXT_PADDING); + textBounds.width = bounds.width - 2*GuiGetStyle(control, BORDER_WIDTH) - 2*GuiGetStyle(control, TEXT_PADDING); + textBounds.height = bounds.height - 2*GuiGetStyle(control, BORDER_WIDTH) - 2*GuiGetStyle(control, TEXT_PADDING); // NOTE: Text is processed line per line! + + // Depending on control, TEXT_PADDING and TEXT_ALIGNMENT properties could affect the text-bounds + switch (control) + { + case COMBOBOX: + case DROPDOWNBOX: + case LISTVIEW: + // TODO: Special cases (no label): COMBOBOX, DROPDOWNBOX, LISTVIEW + case SLIDER: + case CHECKBOX: + case VALUEBOX: + case CONTROL11: + // TODO: More special cases (label on side): SLIDER, CHECKBOX, VALUEBOX, SPINNER + default: + { + // TODO: WARNING: TEXT_ALIGNMENT is already considered in GuiDrawText() + if (GuiGetStyle(control, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT) textBounds.x -= GuiGetStyle(control, TEXT_PADDING); + else textBounds.x += GuiGetStyle(control, TEXT_PADDING); + } + break; + } + + return textBounds; +} + +// Get text icon if provided and move text cursor +// NOTE: Up to #999# values supported for iconId +static const char *GetTextIcon(const char *text, int *iconId) +{ +#if !defined(RAYGUI_NO_ICONS) + *iconId = -1; + if (text[0] == '#') // Maybe it is stars with an icon, ending # must be found + { + char iconValue[4] = { 0 }; // Maximum length for icon value: 3 digits + '\0' + + int pos = 1; + while ((pos < 4) && (text[pos] >= '0') && (text[pos] <= '9')) + { + iconValue[pos - 1] = text[pos]; + pos++; + } + + if (text[pos] == '#') + { + *iconId = TextToInteger(iconValue); + + // Move text pointer after icon + // WARNING: If only icon provided, it could point to EOL character: '\0' + if (*iconId >= 0) text += (pos + 1); + } + } +#endif + + return text; +} + +// Get text divided into lines (by line-breaks '\n') +// WARNING: It returns pointers to new lines but it does not add NULL ('\0') terminator! +static const char **GetTextLines(const char *text, int *count) +{ + #define RAYGUI_MAX_TEXT_LINES 128 + + static const char *lines[RAYGUI_MAX_TEXT_LINES] = { 0 }; + for (int i = 0; i < RAYGUI_MAX_TEXT_LINES; i++) lines[i] = NULL; // Init NULL pointers to substrings + + int textLength = (int)strlen(text); + + lines[0] = text; + *count = 1; + + for (int i = 0; (i < textLength) && (*count < RAYGUI_MAX_TEXT_LINES); i++) + { + if ((text[i] == '\n') && ((i + 1) < textLength)) + { + lines[*count] = &text[i + 1]; + *count += 1; + } + } + + return lines; +} + +// Get text width to next space for provided string +static float GetNextSpaceWidth(const char *text, int *nextSpaceIndex) +{ + float width = 0; + int codepointByteCount = 0; + int codepoint = 0; + int index = 0; + float glyphWidth = 0; + float scaleFactor = (float)GuiGetStyle(DEFAULT, TEXT_SIZE)/guiFont.baseSize; + + for (int i = 0; text[i] != '\0'; i++) + { + if (text[i] != ' ') + { + codepoint = GetCodepoint(&text[i], &codepointByteCount); + index = GetGlyphIndex(guiFont, codepoint); + glyphWidth = (guiFont.glyphs[index].advanceX == 0)? guiFont.recs[index].width*scaleFactor : guiFont.glyphs[index].advanceX*scaleFactor; + width += (glyphWidth + (float)GuiGetStyle(DEFAULT, TEXT_SPACING)); + } + else + { + *nextSpaceIndex = i; + break; + } + } + + return width; +} + +// Gui draw text using default font +static void GuiDrawText(const char *text, Rectangle textBounds, int alignment, Color tint) +{ + #define TEXT_VALIGN_PIXEL_OFFSET(h) ((int)h%2) // Vertical alignment for pixel perfect + + #if !defined(ICON_TEXT_PADDING) + #define ICON_TEXT_PADDING 4 + #endif + + if ((text == NULL) || (text[0] == '\0')) return; // Security check + + // PROCEDURE: + // - Text is processed line per line + // - For every line, horizontal alignment is defined + // - For all text, vertical alignment is defined (multiline text only) + // - For every line, wordwrap mode is checked (useful for GuitextBox(), read-only) + + // Get text lines (using '\n' as delimiter) to be processed individually + // WARNING: GuiTextSplit() function can't be used now because it can have already been used + // before the GuiDrawText() call and its buffer is static, it would be overriden :( + int lineCount = 0; + const char **lines = GetTextLines(text, &lineCount); + + // Text style variables + //int alignment = GuiGetStyle(DEFAULT, TEXT_ALIGNMENT); + int alignmentVertical = GuiGetStyle(DEFAULT, TEXT_ALIGNMENT_VERTICAL); + int wrapMode = GuiGetStyle(DEFAULT, TEXT_WRAP_MODE); // Wrap-mode only available in read-only mode, no for text editing + + // TODO: WARNING: This totalHeight is not valid for vertical alignment in case of word-wrap + float totalHeight = (float)(lineCount*GuiGetStyle(DEFAULT, TEXT_SIZE) + (lineCount - 1)*GuiGetStyle(DEFAULT, TEXT_LINE_SPACING)); + float posOffsetY = 0.0f; + + for (int i = 0; i < lineCount; i++) + { + int iconId = 0; + lines[i] = GetTextIcon(lines[i], &iconId); // Check text for icon and move cursor + + // Get text position depending on alignment and iconId + //--------------------------------------------------------------------------------- + Vector2 textBoundsPosition = { textBounds.x, textBounds.y }; + float textBoundsWidthOffset = 0.0f; + + // NOTE: Get text size after icon has been processed + // WARNING: GuiGetTextWidth() also processes text icon to get width! -> Really needed? + int textSizeX = GuiGetTextWidth(lines[i]); + + // If text requires an icon, add size to measure + if (iconId >= 0) + { + textSizeX += RAYGUI_ICON_SIZE*guiIconScale; + + // WARNING: If only icon provided, text could be pointing to EOF character: '\0' +#if !defined(RAYGUI_NO_ICONS) + if ((lines[i] != NULL) && (lines[i][0] != '\0')) textSizeX += ICON_TEXT_PADDING; +#endif + } + + // Check guiTextAlign global variables + switch (alignment) + { + case TEXT_ALIGN_LEFT: textBoundsPosition.x = textBounds.x; break; + case TEXT_ALIGN_CENTER: textBoundsPosition.x = textBounds.x + textBounds.width/2 - textSizeX/2; break; + case TEXT_ALIGN_RIGHT: textBoundsPosition.x = textBounds.x + textBounds.width - textSizeX; break; + default: break; + } + + if (textSizeX > textBounds.width && (lines[i] != NULL) && (lines[i][0] != '\0')) textBoundsPosition.x = textBounds.x; + + switch (alignmentVertical) + { + // Only valid in case of wordWrap = 0; + case TEXT_ALIGN_TOP: textBoundsPosition.y = textBounds.y + posOffsetY; break; + case TEXT_ALIGN_MIDDLE: textBoundsPosition.y = textBounds.y + posOffsetY + textBounds.height/2 - totalHeight/2 + TEXT_VALIGN_PIXEL_OFFSET(textBounds.height); break; + case TEXT_ALIGN_BOTTOM: textBoundsPosition.y = textBounds.y + posOffsetY + textBounds.height - totalHeight + TEXT_VALIGN_PIXEL_OFFSET(textBounds.height); break; + default: break; + } + + // NOTE: Make sure getting pixel-perfect coordinates, + // In case of decimals, it could result in text positioning artifacts + textBoundsPosition.x = (float)((int)textBoundsPosition.x); + textBoundsPosition.y = (float)((int)textBoundsPosition.y); + //--------------------------------------------------------------------------------- + + // Draw text (with icon if available) + //--------------------------------------------------------------------------------- +#if !defined(RAYGUI_NO_ICONS) + if (iconId >= 0) + { + // NOTE: Considering icon height, probably different than text size + GuiDrawIcon(iconId, (int)textBoundsPosition.x, (int)(textBounds.y + textBounds.height/2 - RAYGUI_ICON_SIZE*guiIconScale/2 + TEXT_VALIGN_PIXEL_OFFSET(textBounds.height)), guiIconScale, tint); + textBoundsPosition.x += (float)(RAYGUI_ICON_SIZE*guiIconScale + ICON_TEXT_PADDING); + textBoundsWidthOffset = (float)(RAYGUI_ICON_SIZE*guiIconScale + ICON_TEXT_PADDING); + } +#endif + // Get size in bytes of text, + // considering end of line and line break + int lineSize = 0; + for (int c = 0; (lines[i][c] != '\0') && (lines[i][c] != '\n') && (lines[i][c] != '\r'); c++, lineSize++){ } + float scaleFactor = (float)GuiGetStyle(DEFAULT, TEXT_SIZE)/guiFont.baseSize; + + int lastSpaceIndex = 0; + bool tempWrapCharMode = false; + + int textOffsetY = 0; + float textOffsetX = 0.0f; + float glyphWidth = 0; + + int ellipsisWidth = GuiGetTextWidth("..."); + bool textOverflow = false; + for (int c = 0, codepointSize = 0; c < lineSize; c += codepointSize) + { + int codepoint = GetCodepointNext(&lines[i][c], &codepointSize); + int index = GetGlyphIndex(guiFont, codepoint); + + // NOTE: Normally, exiting the decoding sequence as soon as a bad byte is found (and return 0x3f) + // but all of the bad bytes need to be drawn using the '?' symbol, moving one byte + if (codepoint == 0x3f) codepointSize = 1; // TODO: Review not recognized codepoints size + + // Get glyph width to check if it goes out of bounds + if (guiFont.glyphs[index].advanceX == 0) glyphWidth = ((float)guiFont.recs[index].width*scaleFactor); + else glyphWidth = (float)guiFont.glyphs[index].advanceX*scaleFactor; + + // Wrap mode text measuring, to validate if + // it can be drawn or a new line is required + if (wrapMode == TEXT_WRAP_CHAR) + { + // Jump to next line if current character reach end of the box limits + if ((textOffsetX + glyphWidth) > textBounds.width - textBoundsWidthOffset) + { + textOffsetX = 0.0f; + textOffsetY += (GuiGetStyle(DEFAULT, TEXT_SIZE) + GuiGetStyle(DEFAULT, TEXT_LINE_SPACING)); + + if (tempWrapCharMode) // Wrap at char level when too long words + { + wrapMode = TEXT_WRAP_WORD; + tempWrapCharMode = false; + } + } + } + else if (wrapMode == TEXT_WRAP_WORD) + { + if (codepoint == 32) lastSpaceIndex = c; + + // Get width to next space in line + int nextSpaceIndex = 0; + float nextSpaceWidth = GetNextSpaceWidth(lines[i] + c, &nextSpaceIndex); + + int nextSpaceIndex2 = 0; + float nextWordSize = GetNextSpaceWidth(lines[i] + lastSpaceIndex + 1, &nextSpaceIndex2); + + if (nextWordSize > textBounds.width - textBoundsWidthOffset) + { + // Considering the case the next word is longer than bounds + tempWrapCharMode = true; + wrapMode = TEXT_WRAP_CHAR; + } + else if ((textOffsetX + nextSpaceWidth) > textBounds.width - textBoundsWidthOffset) + { + textOffsetX = 0.0f; + textOffsetY += (GuiGetStyle(DEFAULT, TEXT_SIZE) + GuiGetStyle(DEFAULT, TEXT_LINE_SPACING)); + } + } + + if (codepoint == '\n') break; // WARNING: Lines are already processed manually, no need to keep drawing after this codepoint + else + { + // TODO: There are multiple types of spaces in Unicode, + // maybe it's a good idea to add support for more: http://jkorpela.fi/chars/spaces.html + if ((codepoint != ' ') && (codepoint != '\t')) // Do not draw codepoints with no glyph + { + if (wrapMode == TEXT_WRAP_NONE) + { + // Draw only required text glyphs fitting the textBounds.width + if (textSizeX > textBounds.width) + { + if (textOffsetX <= (textBounds.width - glyphWidth - textBoundsWidthOffset - ellipsisWidth)) + { + DrawTextCodepoint(guiFont, codepoint, RAYGUI_CLITERAL(Vector2){ textBoundsPosition.x + textOffsetX, textBoundsPosition.y + textOffsetY }, (float)GuiGetStyle(DEFAULT, TEXT_SIZE), GuiFade(tint, guiAlpha)); + } + else if (!textOverflow) + { + textOverflow = true; + + for (int j = 0; j < ellipsisWidth; j += ellipsisWidth/3) + { + DrawTextCodepoint(guiFont, '.', RAYGUI_CLITERAL(Vector2){ textBoundsPosition.x + textOffsetX + j, textBoundsPosition.y + textOffsetY }, (float)GuiGetStyle(DEFAULT, TEXT_SIZE), GuiFade(tint, guiAlpha)); + } + } + } + else + { + DrawTextCodepoint(guiFont, codepoint, RAYGUI_CLITERAL(Vector2){ textBoundsPosition.x + textOffsetX, textBoundsPosition.y + textOffsetY }, (float)GuiGetStyle(DEFAULT, TEXT_SIZE), GuiFade(tint, guiAlpha)); + } + } + else if ((wrapMode == TEXT_WRAP_CHAR) || (wrapMode == TEXT_WRAP_WORD)) + { + // Draw only glyphs inside the bounds + if ((textBoundsPosition.y + textOffsetY) <= (textBounds.y + textBounds.height - GuiGetStyle(DEFAULT, TEXT_SIZE))) + { + DrawTextCodepoint(guiFont, codepoint, RAYGUI_CLITERAL(Vector2){ textBoundsPosition.x + textOffsetX, textBoundsPosition.y + textOffsetY }, (float)GuiGetStyle(DEFAULT, TEXT_SIZE), GuiFade(tint, guiAlpha)); + } + } + } + + if (guiFont.glyphs[index].advanceX == 0) textOffsetX += ((float)guiFont.recs[index].width*scaleFactor + (float)GuiGetStyle(DEFAULT, TEXT_SPACING)); + else textOffsetX += ((float)guiFont.glyphs[index].advanceX*scaleFactor + (float)GuiGetStyle(DEFAULT, TEXT_SPACING)); + } + } + + if (wrapMode == TEXT_WRAP_NONE) posOffsetY += (float)(GuiGetStyle(DEFAULT, TEXT_SIZE) + GuiGetStyle(DEFAULT, TEXT_LINE_SPACING)); + else if ((wrapMode == TEXT_WRAP_CHAR) || (wrapMode == TEXT_WRAP_WORD)) + posOffsetY += (textOffsetY + GuiGetStyle(DEFAULT, TEXT_SIZE)); + //--------------------------------------------------------------------------------- + } + +#if defined(RAYGUI_DEBUG_TEXT_BOUNDS) + GuiDrawRectangle(textBounds, 0, WHITE, Fade(BLUE, 0.4f)); +#endif +} + +// Gui draw rectangle using default raygui plain style with borders +static void GuiDrawRectangle(Rectangle rec, int borderWidth, Color borderColor, Color color) +{ + if (color.a > 0) + { + // Draw rectangle filled with color + DrawRectangle((int)rec.x, (int)rec.y, (int)rec.width, (int)rec.height, GuiFade(color, guiAlpha)); + } + + if (borderWidth > 0) + { + // Draw rectangle border lines with color + DrawRectangle((int)rec.x, (int)rec.y, (int)rec.width, borderWidth, GuiFade(borderColor, guiAlpha)); + DrawRectangle((int)rec.x, (int)rec.y + borderWidth, borderWidth, (int)rec.height - 2*borderWidth, GuiFade(borderColor, guiAlpha)); + DrawRectangle((int)rec.x + (int)rec.width - borderWidth, (int)rec.y + borderWidth, borderWidth, (int)rec.height - 2*borderWidth, GuiFade(borderColor, guiAlpha)); + DrawRectangle((int)rec.x, (int)rec.y + (int)rec.height - borderWidth, (int)rec.width, borderWidth, GuiFade(borderColor, guiAlpha)); + } + +#if defined(RAYGUI_DEBUG_RECS_BOUNDS) + DrawRectangle((int)rec.x, (int)rec.y, (int)rec.width, (int)rec.height, Fade(RED, 0.4f)); +#endif +} + +// Draw tooltip using control bounds +static void GuiTooltip(Rectangle controlRec) +{ + if (!guiLocked && guiTooltip && (guiTooltipPtr != NULL) && !guiControlExclusiveMode) + { + Vector2 textSize = MeasureTextEx(GuiGetFont(), guiTooltipPtr, (float)GuiGetStyle(DEFAULT, TEXT_SIZE), (float)GuiGetStyle(DEFAULT, TEXT_SPACING)); + + if ((controlRec.x + textSize.x + 16) > GetScreenWidth()) controlRec.x -= (textSize.x + 16 - controlRec.width); + + int lineCount = 0; + GetTextLines(guiTooltipPtr, &lineCount); // Only using the line count + if ((controlRec.y + controlRec.height + textSize.y + 4 + 8*lineCount) > GetScreenHeight()) + controlRec.y -= (controlRec.height + textSize.y + 4 + 8*lineCount); + + // TODO: Probably TEXT_LINE_SPACING should be considered on panel size instead of hardcoding 8.0f + GuiPanel(RAYGUI_CLITERAL(Rectangle){ controlRec.x, controlRec.y + controlRec.height + 4, textSize.x + 16, textSize.y + 8.0f*lineCount }, NULL); + + int textPadding = GuiGetStyle(LABEL, TEXT_PADDING); + int textAlignment = GuiGetStyle(LABEL, TEXT_ALIGNMENT); + GuiSetStyle(LABEL, TEXT_PADDING, 0); + GuiSetStyle(LABEL, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + GuiLabel(RAYGUI_CLITERAL(Rectangle){ controlRec.x, controlRec.y + controlRec.height + 4, textSize.x + 16, textSize.y + 8.0f*lineCount }, guiTooltipPtr); + GuiSetStyle(LABEL, TEXT_ALIGNMENT, textAlignment); + GuiSetStyle(LABEL, TEXT_PADDING, textPadding); + } +} + +// Split controls text into multiple strings +// Also check for multiple columns (required by GuiToggleGroup()) +static char **GuiTextSplit(const char *text, char delimiter, int *count, int *textRow) +{ + // NOTE: Current implementation returns a copy of the provided string with '\0' (string end delimiter) + // inserted between strings defined by "delimiter" parameter. No memory is dynamically allocated, + // all used memory is static... it has some limitations: + // 1. Maximum number of possible split strings is set by RAYGUI_TEXTSPLIT_MAX_ITEMS + // 2. Maximum size of text to split is RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE + // NOTE: Those definitions could be externally provided if required + + // TODO: HACK: GuiTextSplit() - Review how textRows are returned to user + // textRow is an externally provided array of integers that stores row number for every splitted string + + #if !defined(RAYGUI_TEXTSPLIT_MAX_ITEMS) + #define RAYGUI_TEXTSPLIT_MAX_ITEMS 128 + #endif + #if !defined(RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE) + #define RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE 1024 + #endif + + static char *result[RAYGUI_TEXTSPLIT_MAX_ITEMS] = { NULL }; // String pointers array (points to buffer data) + static char buffer[RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE] = { 0 }; // Buffer data (text input copy with '\0' added) + memset(buffer, 0, RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE); + + result[0] = buffer; + int counter = 1; + + if (textRow != NULL) textRow[0] = 0; + + // Count how many substrings text contains and point to every one of them + for (int i = 0; i < RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE; i++) + { + buffer[i] = text[i]; + if (buffer[i] == '\0') break; + else if ((buffer[i] == delimiter) || (buffer[i] == '\n')) + { + result[counter] = buffer + i + 1; + + if (textRow != NULL) + { + if (buffer[i] == '\n') textRow[counter] = textRow[counter - 1] + 1; + else textRow[counter] = textRow[counter - 1]; + } + + buffer[i] = '\0'; // Set an end of string at this point + + counter++; + if (counter >= RAYGUI_TEXTSPLIT_MAX_ITEMS) break; + } + } + + *count = counter; + + return result; +} + +// Convert color data from RGB to HSV +// NOTE: Color data should be passed normalized +static Vector3 ConvertRGBtoHSV(Vector3 rgb) +{ + Vector3 hsv = { 0 }; + float min = 0.0f; + float max = 0.0f; + float delta = 0.0f; + + min = (rgb.x < rgb.y)? rgb.x : rgb.y; + min = (min < rgb.z)? min : rgb.z; + + max = (rgb.x > rgb.y)? rgb.x : rgb.y; + max = (max > rgb.z)? max : rgb.z; + + hsv.z = max; // Value + delta = max - min; + + if (delta < 0.00001f) + { + hsv.y = 0.0f; + hsv.x = 0.0f; // Undefined, maybe NAN? + return hsv; + } + + if (max > 0.0f) + { + // NOTE: If max is 0, this divide would cause a crash + hsv.y = (delta/max); // Saturation + } + else + { + // NOTE: If max is 0, then r = g = b = 0, s = 0, h is undefined + hsv.y = 0.0f; + hsv.x = 0.0f; // Undefined, maybe NAN? + return hsv; + } + + // NOTE: Comparing float values could not work properly + if (rgb.x >= max) hsv.x = (rgb.y - rgb.z)/delta; // Between yellow & magenta + else + { + if (rgb.y >= max) hsv.x = 2.0f + (rgb.z - rgb.x)/delta; // Between cyan & yellow + else hsv.x = 4.0f + (rgb.x - rgb.y)/delta; // Between magenta & cyan + } + + hsv.x *= 60.0f; // Convert to degrees + + if (hsv.x < 0.0f) hsv.x += 360.0f; + + return hsv; +} + +// Convert color data from HSV to RGB +// NOTE: Color data should be passed normalized +static Vector3 ConvertHSVtoRGB(Vector3 hsv) +{ + Vector3 rgb = { 0 }; + float hh = 0.0f, p = 0.0f, q = 0.0f, t = 0.0f, ff = 0.0f; + long i = 0; + + // NOTE: Comparing float values could not work properly + if (hsv.y <= 0.0f) + { + rgb.x = hsv.z; + rgb.y = hsv.z; + rgb.z = hsv.z; + return rgb; + } + + hh = hsv.x; + if (hh >= 360.0f) hh = 0.0f; + hh /= 60.0f; + + i = (long)hh; + ff = hh - i; + p = hsv.z*(1.0f - hsv.y); + q = hsv.z*(1.0f - (hsv.y*ff)); + t = hsv.z*(1.0f - (hsv.y*(1.0f - ff))); + + switch (i) + { + case 0: + { + rgb.x = hsv.z; + rgb.y = t; + rgb.z = p; + } break; + case 1: + { + rgb.x = q; + rgb.y = hsv.z; + rgb.z = p; + } break; + case 2: + { + rgb.x = p; + rgb.y = hsv.z; + rgb.z = t; + } break; + case 3: + { + rgb.x = p; + rgb.y = q; + rgb.z = hsv.z; + } break; + case 4: + { + rgb.x = t; + rgb.y = p; + rgb.z = hsv.z; + } break; + case 5: + default: + { + rgb.x = hsv.z; + rgb.y = p; + rgb.z = q; + } break; + } + + return rgb; +} + +// Scroll bar control (used by GuiScrollPanel()) +static int GuiScrollBar(Rectangle bounds, int value, int minValue, int maxValue) +{ + GuiState state = guiState; + + // Is the scrollbar horizontal or vertical? + bool isVertical = (bounds.width > bounds.height)? false : true; + + // The size (width or height depending on scrollbar type) of the spinner buttons + const int spinnerSize = GuiGetStyle(SCROLLBAR, ARROWS_VISIBLE)? + (isVertical? (int)bounds.width - 2*GuiGetStyle(SCROLLBAR, BORDER_WIDTH) : + (int)bounds.height - 2*GuiGetStyle(SCROLLBAR, BORDER_WIDTH)) : 0; + + // Arrow buttons [<] [>] [∧] [∨] + Rectangle arrowUpLeft = { 0 }; + Rectangle arrowDownRight = { 0 }; + + // Actual area of the scrollbar excluding the arrow buttons + Rectangle scrollbar = { 0 }; + + // Slider bar that moves --[///]----- + Rectangle slider = { 0 }; + + // Normalize value + if (value > maxValue) value = maxValue; + if (value < minValue) value = minValue; + + int valueRange = maxValue - minValue; + if (valueRange <= 0) valueRange = 1; + + int sliderSize = GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE); + if (sliderSize < 1) sliderSize = 1; // TODO: Consider a minimum slider size + + // Calculate rectangles for all of the components + arrowUpLeft = RAYGUI_CLITERAL(Rectangle){ + (float)bounds.x + GuiGetStyle(SCROLLBAR, BORDER_WIDTH), + (float)bounds.y + GuiGetStyle(SCROLLBAR, BORDER_WIDTH), + (float)spinnerSize, (float)spinnerSize }; + + if (isVertical) + { + arrowDownRight = RAYGUI_CLITERAL(Rectangle){ (float)bounds.x + GuiGetStyle(SCROLLBAR, BORDER_WIDTH), (float)bounds.y + bounds.height - spinnerSize - GuiGetStyle(SCROLLBAR, BORDER_WIDTH), (float)spinnerSize, (float)spinnerSize }; + scrollbar = RAYGUI_CLITERAL(Rectangle){ bounds.x + GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_PADDING), arrowUpLeft.y + arrowUpLeft.height, bounds.width - 2*(GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_PADDING)), bounds.height - arrowUpLeft.height - arrowDownRight.height - 2*GuiGetStyle(SCROLLBAR, BORDER_WIDTH) }; + + // Make sure the slider won't get outside of the scrollbar + sliderSize = (sliderSize >= scrollbar.height)? ((int)scrollbar.height - 2) : sliderSize; + slider = RAYGUI_CLITERAL(Rectangle){ + bounds.x + GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING), + scrollbar.y + (int)(((float)(value - minValue)/valueRange)*(scrollbar.height - sliderSize)), + bounds.width - 2*(GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING)), + (float)sliderSize }; + } + else // horizontal + { + arrowDownRight = RAYGUI_CLITERAL(Rectangle){ (float)bounds.x + bounds.width - spinnerSize - GuiGetStyle(SCROLLBAR, BORDER_WIDTH), (float)bounds.y + GuiGetStyle(SCROLLBAR, BORDER_WIDTH), (float)spinnerSize, (float)spinnerSize }; + scrollbar = RAYGUI_CLITERAL(Rectangle){ arrowUpLeft.x + arrowUpLeft.width, bounds.y + GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_PADDING), bounds.width - arrowUpLeft.width - arrowDownRight.width - 2*GuiGetStyle(SCROLLBAR, BORDER_WIDTH), bounds.height - 2*(GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_PADDING)) }; + + // Make sure the slider won't get outside of the scrollbar + sliderSize = (sliderSize >= scrollbar.width)? ((int)scrollbar.width - 2) : sliderSize; + slider = RAYGUI_CLITERAL(Rectangle){ + scrollbar.x + (int)(((float)(value - minValue)/valueRange)*(scrollbar.width - sliderSize)), + bounds.y + GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING), + (float)sliderSize, + bounds.height - 2*(GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING)) }; + } + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked) + { + Vector2 mousePoint = GUI_POINTER_POSITION; + + if (guiControlExclusiveMode) // Allows to keep dragging outside of bounds + { + if (GUI_BUTTON_DOWN && + !CheckCollisionPointRec(mousePoint, arrowUpLeft) && + !CheckCollisionPointRec(mousePoint, arrowDownRight)) + { + if (CHECK_BOUNDS_ID(bounds, guiControlExclusiveRec)) + { + state = STATE_PRESSED; + + if (isVertical) value = (int)(((float)(mousePoint.y - scrollbar.y - slider.height/2)*valueRange)/(scrollbar.height - slider.height) + minValue); + else value = (int)(((float)(mousePoint.x - scrollbar.x - slider.width/2)*valueRange)/(scrollbar.width - slider.width) + minValue); + } + } + else + { + guiControlExclusiveMode = false; + guiControlExclusiveRec = RAYGUI_CLITERAL(Rectangle){ 0, 0, 0, 0 }; + } + } + else if (CheckCollisionPointRec(mousePoint, bounds)) + { + state = STATE_FOCUSED; + + // Handle mouse wheel + float scrollDelta = GUI_SCROLL_DELTA; + if (scrollDelta != 0) value += (int)scrollDelta; + + // Handle mouse button down + if (GUI_BUTTON_PRESSED) + { + guiControlExclusiveMode = true; + guiControlExclusiveRec = bounds; // Store bounds as an identifier when dragging starts + + // Check arrows click + if (CheckCollisionPointRec(mousePoint, arrowUpLeft)) value -= valueRange/GuiGetStyle(SCROLLBAR, SCROLL_SPEED); + else if (CheckCollisionPointRec(mousePoint, arrowDownRight)) value += valueRange/GuiGetStyle(SCROLLBAR, SCROLL_SPEED); + else if (!CheckCollisionPointRec(mousePoint, slider)) + { + // If click on scrollbar position but not on slider, place slider directly on that position + if (isVertical) value = (int)(((float)(mousePoint.y - scrollbar.y - slider.height/2)*valueRange)/(scrollbar.height - slider.height) + minValue); + else value = (int)(((float)(mousePoint.x - scrollbar.x - slider.width/2)*valueRange)/(scrollbar.width - slider.width) + minValue); + } + + state = STATE_PRESSED; + } + + // Keyboard control on mouse hover scrollbar + /* + if (isVertical) + { + if (GUI_KEY_DOWN(KEY_DOWN)) value += 5; + else if (GUI_KEY_DOWN(KEY_UP)) value -= 5; + } + else + { + if (GUI_KEY_DOWN(KEY_RIGHT)) value += 5; + else if (GUI_KEY_DOWN(KEY_LEFT)) value -= 5; + } + */ + } + + // Normalize value + if (value > maxValue) value = maxValue; + if (value < minValue) value = minValue; + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + GuiDrawRectangle(bounds, GuiGetStyle(SCROLLBAR, BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER + state*3)), GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_DISABLED))); // Draw the background + + GuiDrawRectangle(scrollbar, 0, BLANK, GetColor(GuiGetStyle(BUTTON, BASE_COLOR_NORMAL))); // Draw the scrollbar active area background + GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, BORDER + state*3))); // Draw the slider bar + + // Draw arrows (using icon if available) + if (GuiGetStyle(SCROLLBAR, ARROWS_VISIBLE)) + { +#if defined(RAYGUI_NO_ICONS) + GuiDrawText(isVertical? "^" : "<", + RAYGUI_CLITERAL(Rectangle){ arrowUpLeft.x, arrowUpLeft.y, isVertical? bounds.width : bounds.height, isVertical? bounds.width : bounds.height }, + TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3)))); + GuiDrawText(isVertical? "v" : ">", + RAYGUI_CLITERAL(Rectangle){ arrowDownRight.x, arrowDownRight.y, isVertical? bounds.width : bounds.height, isVertical? bounds.width : bounds.height }, + TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3)))); +#else + GuiDrawText(isVertical? "#121#" : "#118#", + RAYGUI_CLITERAL(Rectangle){ arrowUpLeft.x, arrowUpLeft.y, isVertical? bounds.width : bounds.height, isVertical? bounds.width : bounds.height }, + TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(SCROLLBAR, TEXT + state*3))); // ICON_ARROW_UP_FILL / ICON_ARROW_LEFT_FILL + GuiDrawText(isVertical? "#120#" : "#119#", + RAYGUI_CLITERAL(Rectangle){ arrowDownRight.x, arrowDownRight.y, isVertical? bounds.width : bounds.height, isVertical? bounds.width : bounds.height }, + TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(SCROLLBAR, TEXT + state*3))); // ICON_ARROW_DOWN_FILL / ICON_ARROW_RIGHT_FILL +#endif + } + //-------------------------------------------------------------------- + + return value; +} + +// Color fade-in or fade-out, alpha goes from 0.0f to 1.0f +// WARNING: It multiplies current alpha by alpha scale factor +static Color GuiFade(Color color, float alpha) +{ + if (alpha < 0.0f) alpha = 0.0f; + else if (alpha > 1.0f) alpha = 1.0f; + + Color result = { color.r, color.g, color.b, (unsigned char)(color.a*alpha) }; + + return result; +} + +#if defined(RAYGUI_STANDALONE) +// Returns a Color struct from hexadecimal value +static Color GetColor(int hexValue) +{ + Color color; + + color.r = (unsigned char)(hexValue >> 24) & 0xff; + color.g = (unsigned char)(hexValue >> 16) & 0xff; + color.b = (unsigned char)(hexValue >> 8) & 0xff; + color.a = (unsigned char)hexValue & 0xff; + + return color; +} + +// Returns hexadecimal value for a Color +static int ColorToInt(Color color) +{ + return (((int)color.r << 24) | ((int)color.g << 16) | ((int)color.b << 8) | (int)color.a); +} + +// Check if point is inside rectangle +static bool CheckCollisionPointRec(Vector2 point, Rectangle rec) +{ + bool collision = false; + + if ((point.x >= rec.x) && (point.x <= (rec.x + rec.width)) && + (point.y >= rec.y) && (point.y <= (rec.y + rec.height))) collision = true; + + return collision; +} + +// Formatting of text with variables to 'embed' +static const char *TextFormat(const char *text, ...) +{ + #if !defined(RAYGUI_TEXTFORMAT_MAX_SIZE) + #define RAYGUI_TEXTFORMAT_MAX_SIZE 256 + #endif + + static char buffer[RAYGUI_TEXTFORMAT_MAX_SIZE]; + + va_list args; + va_start(args, text); + vsnprintf(buffer, RAYGUI_TEXTFORMAT_MAX_SIZE, text, args); + va_end(args); + + return buffer; +} + +// Draw rectangle with vertical gradient fill color +// NOTE: This function is only used by GuiColorPicker() +static void DrawRectangleGradientV(int posX, int posY, int width, int height, Color color1, Color color2) +{ + Rectangle bounds = { (float)posX, (float)posY, (float)width, (float)height }; + DrawRectangleGradientEx(bounds, color1, color2, color2, color1); +} + +// Split string into multiple strings +char **TextSplit(const char *text, char delimiter, int *count) +{ + // NOTE: Current implementation returns a copy of the provided string with '\0' (string end delimiter) + // inserted between strings defined by "delimiter" parameter. No memory is dynamically allocated, + // all used memory is static... it has some limitations: + // 1. Maximum number of possible split strings is set by RAYGUI_TEXTSPLIT_MAX_ITEMS + // 2. Maximum size of text to split is RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE + + #if !defined(RAYGUI_TEXTSPLIT_MAX_ITEMS) + #define RAYGUI_TEXTSPLIT_MAX_ITEMS 128 + #endif + #if !defined(RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE) + #define RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE 1024 + #endif + + static const char *result[RAYGUI_TEXTSPLIT_MAX_ITEMS] = { NULL }; + static char buffer[RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE] = { 0 }; + memset(buffer, 0, RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE); + + result[0] = buffer; + int counter = 0; + + if (text != NULL) + { + counter = 1; + + // Count how many substrings text contains and point to every one of them + for (int i = 0; i < RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE; i++) + { + buffer[i] = text[i]; + if (buffer[i] == '\0') break; + else if (buffer[i] == delimiter) + { + buffer[i] = '\0'; // Set an end of string at this point + result[counter] = buffer + i + 1; + counter++; + + if (counter == RAYGUI_TEXTSPLIT_MAX_ITEMS) break; + } + } + } + + *count = counter; + return result; +} + +// Get integer value from text +// NOTE: This function replaces atoi() [stdlib.h] +static int TextToInteger(const char *text) +{ + int value = 0; + int sign = 1; + + if ((text[0] == '+') || (text[0] == '-')) + { + if (text[0] == '-') sign = -1; + text++; + } + + for (int i = 0; ((text[i] >= '0') && (text[i] <= '9')); i++) value = value*10 + (int)(text[i] - '0'); + + return value*sign; +} + +// Get float value from text +// NOTE: This function replaces atof() [stdlib.h] +// WARNING: Only '.' character is understood as decimal point +static float TextToFloat(const char *text) +{ + float value = 0.0f; + float sign = 1.0f; + + if ((text[0] == '+') || (text[0] == '-')) + { + if (text[0] == '-') sign = -1.0f; + text++; + } + + int i = 0; + for (; ((text[i] >= '0') && (text[i] <= '9')); i++) value = value*10.0f + (float)(text[i] - '0'); + + if (text[i++] != '.') value *= sign; + else + { + float divisor = 10.0f; + for (; ((text[i] >= '0') && (text[i] <= '9')); i++) + { + value += ((float)(text[i] - '0'))/divisor; + divisor = divisor*10.0f; + } + } + + return value; +} + +// Encode codepoint into UTF-8 text (char array size returned as parameter) +static const char *CodepointToUTF8(int codepoint, int *byteSize) +{ + static char utf8[6] = { 0 }; + int size = 0; + + if (codepoint <= 0x7f) + { + utf8[0] = (char)codepoint; + size = 1; + } + else if (codepoint <= 0x7ff) + { + utf8[0] = (char)(((codepoint >> 6) & 0x1f) | 0xc0); + utf8[1] = (char)((codepoint & 0x3f) | 0x80); + size = 2; + } + else if (codepoint <= 0xffff) + { + utf8[0] = (char)(((codepoint >> 12) & 0x0f) | 0xe0); + utf8[1] = (char)(((codepoint >> 6) & 0x3f) | 0x80); + utf8[2] = (char)((codepoint & 0x3f) | 0x80); + size = 3; + } + else if (codepoint <= 0x10ffff) + { + utf8[0] = (char)(((codepoint >> 18) & 0x07) | 0xf0); + utf8[1] = (char)(((codepoint >> 12) & 0x3f) | 0x80); + utf8[2] = (char)(((codepoint >> 6) & 0x3f) | 0x80); + utf8[3] = (char)((codepoint & 0x3f) | 0x80); + size = 4; + } + + *byteSize = size; + + return utf8; +} + +// Get next codepoint in a UTF-8 encoded text, scanning until '\0' is found +// When a invalid UTF-8 byte is encountered, exiting as soon as possible and returning a '?'(0x3f) codepoint +// Total number of bytes processed are returned as a parameter +// NOTE: The standard says U+FFFD should be returned in case of errors +// but that character is not supported by the default font in raylib +static int GetCodepointNext(const char *text, int *codepointSize) +{ + const char *ptr = text; + int codepoint = 0x3f; // Codepoint (defaults to '?') + *codepointSize = 1; + + // Get current codepoint and bytes processed + if (0xf0 == (0xf8 & ptr[0])) + { + // 4 byte UTF-8 codepoint + if (((ptr[1] & 0xC0) ^ 0x80) || ((ptr[2] & 0xC0) ^ 0x80) || ((ptr[3] & 0xC0) ^ 0x80)) { return codepoint; } //10xxxxxx checks + codepoint = ((0x07 & ptr[0]) << 18) | ((0x3f & ptr[1]) << 12) | ((0x3f & ptr[2]) << 6) | (0x3f & ptr[3]); + *codepointSize = 4; + } + else if (0xe0 == (0xf0 & ptr[0])) + { + // 3 byte UTF-8 codepoint + if (((ptr[1] & 0xC0) ^ 0x80) || ((ptr[2] & 0xC0) ^ 0x80)) { return codepoint; } //10xxxxxx checks + codepoint = ((0x0f & ptr[0]) << 12) | ((0x3f & ptr[1]) << 6) | (0x3f & ptr[2]); + *codepointSize = 3; + } + else if (0xc0 == (0xe0 & ptr[0])) + { + // 2 byte UTF-8 codepoint + if ((ptr[1] & 0xC0) ^ 0x80) { return codepoint; } //10xxxxxx checks + codepoint = ((0x1f & ptr[0]) << 6) | (0x3f & ptr[1]); + *codepointSize = 2; + } + else if (0x00 == (0x80 & ptr[0])) + { + // 1 byte UTF-8 codepoint + codepoint = ptr[0]; + *codepointSize = 1; + } + + return codepoint; +} +#endif // RAYGUI_STANDALONE + +#endif // RAYGUI_IMPLEMENTATION diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/README.md b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/README.md new file mode 100644 index 0000000..d20b82e --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/README.md @@ -0,0 +1,53 @@ +# raygui styles + +`raygui` comes with **several custom UI styles** carefully designed for the best visual experience. Those styles have been created using [rGuiStyler](https://raylibtech.itch.io/rguistyler) tool and they complement internal [default style](default), always available by `raygui`. + +## styles usage + +To use those styles with your `raygui` development, you need to call `GuiLoadStyle()` function at initialization, passing the `.rgs` file to load. Note that `.rgs` is by default a binary file containing the style required font data (glyphs data + glyph atlas image data). + +Styles can also be embedded in the code if desired, `.h` files are provided with every style containing all the required style data, including the font data. To embed those fonts just add the `.h` to your project and call the required function as specified in the header info. + +Here it is a quick overview of those styles, you can navigate to each directory for additional information. + +#### 1. style: [default](default) +![default style](default/style_default.png) + +#### 2. style: [dark](dark) +![dark style](dark/style_dark.png) + +#### 3. style: [bluish](bluish) +![bluish style](bluish/style_bluish.png) + +#### 4. style: [candy](candy) +![candy style](candy/style_candy.png) + +#### 5. style: [cherry](cherry) +![cherry style](cherry/style_cherry.png) + +#### 6. style: [cyber](cyber) +![cyber style](cyber/style_cyber.png) + +#### 7. style: [jungle](jungle) +![jungle style](jungle/style_jungle.png) + +#### 8. style: [lavanda](lavanda) +![lavanda style](lavanda/style_lavanda.png) + +#### 9. style: [terminal](terminal) +![terminal style](terminal/style_terminal.png) + +#### 10. style: [sunny](sunny) +![sunny style](sunny/style_sunny.png) + +#### 11. style: [ashes](ashes) +![ashes style](ashes/style_ashes.png) + +#### 12. enefete: [enefete](enefete) +![enefete style](enefete/style_enefete.png) + +#### 13. amber: [amber](amber) +![amber style](amber/style_amber.png) + + +*NOTE: Those styles require raylib 5.5 and raygui 4.5* diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/amber/README.md b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/amber/README.md new file mode 100644 index 0000000..6c60ed2 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/amber/README.md @@ -0,0 +1,33 @@ +## style: amber + +Amber accenture and charcoal tones with a light font for nice visuals. + +![amber style table](style_amber.png) + +## style: provided files + +Several options are provided to add the style to a `raygui` application, choose the one that better fits the project. + +| file name | description | +| :-------- | :---------- | +| `style_amber.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) | +| `style_amber.h` | Embeddable style as code file, self-contained, includes font data | +| `style_amber.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data | + +## screenshot + +![amber style screen](screenshot.png) + +## about font + +"Hello World" font by Anthony Gross +``` +CATEGORY: Monospace +LANGUAGE SUPPORT: Latin Extended +FORMAT: TTF +LICENSE: Free for personal and commercial use, SIL Open Font License +``` + +This font is licensed under the Open Font License. More info: https://www.dafont.com/es/hello-world.font + +_The style font is optimized to look best at 16px, if you require different sizing please open the style in rGuiStyler and edit it._ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/amber/hello-world.ttf b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/amber/hello-world.ttf new file mode 100644 index 0000000..7d190b8 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/amber/hello-world.ttf differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/amber/screenshot.old.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/amber/screenshot.old.png new file mode 100644 index 0000000..80a38df Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/amber/screenshot.old.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/amber/screenshot.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/amber/screenshot.png new file mode 100644 index 0000000..3c682e9 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/amber/screenshot.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/amber/style_amber.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/amber/style_amber.h new file mode 100644 index 0000000..abec1e3 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/amber/style_amber.h @@ -0,0 +1,608 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleAmber(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define AMBER_STYLE_PROPS_COUNT 18 + +// Custom style name: Amber +static const GuiStyleProp amberStyleProps[AMBER_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0x898988ff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0x292929ff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0xd4d4d4ff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0xeb891dff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0x292929ff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0xffffffff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0xf1cf9dff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0xf39333ff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0x191410ff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0x6a6a6aff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0x818181ff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0x606060ff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE + { 0, 18, (int)0xef922aff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0x333333ff }, // DEFAULT_BACKGROUND_COLOR + { 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING + { 1, 8, (int)0xe7e0d4ff }, // LABEL_TEXT_COLOR_PRESSED + { 4, 8, (int)0xf1cf9dff }, // SLIDER_TEXT_COLOR_PRESSED +}; + +// WARNING: This style uses a custom font: "hello-world.ttf" (size: 16, spacing: 1) + +#define AMBER_STYLE_FONT_ATLAS_COMP_SIZE 2605 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char amberFontData[AMBER_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0xdd, 0x8b, 0x8e, 0x9c, 0xb8, 0x12, 0x00, 0x50, 0xf8, 0xff, 0x7f, 0x76, 0x5d, 0xe9, 0x66, 0xb3, 0xd2, 0xee, 0x8e, 0x6d, + 0xaa, 0x30, 0x8f, 0xee, 0x9c, 0x1c, 0x45, 0x91, 0x9a, 0x34, 0x18, 0xdb, 0x85, 0x0d, 0x33, 0x94, 0x63, 0x03, 0x00, 0x00, + 0x00, 0x88, 0x2d, 0x5a, 0xe7, 0xb3, 0xcc, 0xe7, 0x5b, 0xf7, 0xf3, 0xf6, 0xd7, 0xe7, 0x6d, 0xb0, 0xed, 0xe8, 0xbe, 0xfa, + 0x65, 0xda, 0x92, 0xfb, 0x89, 0xee, 0x37, 0xe2, 0x87, 0x4f, 0x7e, 0xff, 0xc9, 0xec, 0xa7, 0x77, 0xbe, 0xf9, 0xda, 0xcb, + 0x6e, 0x19, 0x1f, 0xbd, 0x25, 0x4b, 0x56, 0xff, 0xce, 0xd1, 0x7a, 0xcf, 0xd4, 0xe1, 0xef, 0x3f, 0x2d, 0xb1, 0x97, 0x71, + 0x79, 0x7e, 0xde, 0xdb, 0x36, 0x39, 0xeb, 0xdc, 0x79, 0xb7, 0xe9, 0x96, 0xda, 0xb7, 0xd6, 0xc4, 0x7f, 0xaf, 0x4d, 0x32, + 0x9f, 0x6f, 0xdd, 0x7a, 0xfc, 0x15, 0x37, 0xbd, 0xb8, 0xdd, 0x13, 0xfd, 0xa4, 0x17, 0x23, 0xfb, 0x20, 0xca, 0x23, 0xb5, + 0xff, 0x71, 0x2f, 0x5a, 0x71, 0x4d, 0xed, 0x95, 0xf6, 0xe7, 0xab, 0x4b, 0xff, 0x1b, 0x6d, 0x78, 0xe6, 0xb5, 0x6b, 0x55, + 0xbf, 0x1e, 0xf7, 0x1f, 0xbe, 0x5b, 0x2b, 0xdb, 0xf1, 0x72, 0x45, 0xba, 0x2d, 0x62, 0xd8, 0x6b, 0xf6, 0xee, 0x35, 0x23, + 0x77, 0x76, 0x51, 0x38, 0xef, 0x98, 0x6c, 0xd9, 0x52, 0xa3, 0x5a, 0x5b, 0x3c, 0xfe, 0xaf, 0x88, 0xff, 0xf8, 0x7f, 0x2d, + 0xee, 0xa9, 0xf1, 0x36, 0x92, 0x65, 0xca, 0x47, 0xed, 0xde, 0x39, 0x6e, 0x7f, 0x3c, 0xbf, 0xba, 0x4e, 0x7b, 0xdb, 0xf6, + 0x42, 0x6d, 0xf4, 0xb6, 0xb4, 0xee, 0x79, 0x6f, 0xe5, 0xab, 0x5e, 0x24, 0xce, 0x26, 0x4e, 0x5f, 0x4b, 0x63, 0xd0, 0xd2, + 0xe3, 0xb6, 0x8b, 0x74, 0x49, 0xa3, 0xf0, 0x9d, 0xf1, 0x96, 0x6d, 0xe9, 0x77, 0xae, 0x1b, 0xa3, 0xf2, 0xfb, 0x1b, 0xcf, + 0xbe, 0xa2, 0x18, 0x0f, 0xe7, 0xcb, 0xb9, 0xa7, 0xaf, 0x89, 0x71, 0xf1, 0x3d, 0x55, 0x36, 0xfe, 0xb7, 0x85, 0xf1, 0x1f, + 0xe9, 0xfa, 0xbe, 0x2f, 0xfe, 0x9f, 0x18, 0xff, 0xb7, 0x49, 0xfc, 0x6f, 0xe2, 0x3f, 0xf5, 0x7f, 0x73, 0xf7, 0x05, 0xe3, + 0x71, 0x3b, 0x12, 0xf3, 0x99, 0x58, 0x18, 0xcf, 0x71, 0x7b, 0xf4, 0x8f, 0x7a, 0x5b, 0x65, 0x26, 0xd8, 0xbf, 0xdf, 0xea, + 0xc7, 0xd9, 0xe8, 0x1e, 0x2d, 0xd2, 0x33, 0xce, 0xd1, 0xdd, 0x55, 0xe6, 0x79, 0x49, 0x2c, 0xeb, 0x99, 0x5b, 0x29, 0xfe, + 0x23, 0xf5, 0xcc, 0x27, 0x26, 0x35, 0x9f, 0x8d, 0xff, 0x18, 0x5c, 0xff, 0x46, 0xfd, 0x28, 0x2e, 0xbd, 0xff, 0xcf, 0xc6, + 0xff, 0x36, 0x99, 0x95, 0x6d, 0xa9, 0x9e, 0x5a, 0x29, 0x65, 0x7b, 0xd1, 0x13, 0xd5, 0x95, 0xf1, 0x1f, 0xc9, 0xb3, 0x8e, + 0x03, 0x4f, 0xc3, 0x7a, 0xc7, 0xa8, 0xdc, 0xbd, 0xb5, 0x93, 0xfd, 0x2a, 0x1e, 0x6c, 0x93, 0x33, 0x23, 0x76, 0x7b, 0x7c, + 0xfc, 0x8f, 0xc7, 0xe6, 0xff, 0x91, 0x9e, 0x1b, 0x5c, 0x1f, 0xff, 0xf1, 0xf2, 0xe8, 0xaf, 0xcd, 0xff, 0xa3, 0x38, 0x2f, + 0x8f, 0x45, 0x73, 0xf9, 0xea, 0xdd, 0xcc, 0xbb, 0x5a, 0x64, 0x9b, 0x3e, 0x4f, 0xf8, 0xc4, 0xf9, 0x7f, 0x3c, 0x54, 0x8f, + 0x51, 0xb8, 0x37, 0x10, 0xff, 0x95, 0xf8, 0xaf, 0xcd, 0x69, 0x67, 0x4f, 0x37, 0x63, 0xe9, 0x95, 0xe9, 0xb3, 0xe3, 0xbf, + 0x1e, 0xb1, 0xe2, 0xff, 0xe8, 0xdc, 0x36, 0x86, 0xcf, 0x65, 0x63, 0x49, 0x1b, 0x7e, 0xc6, 0x58, 0xb3, 0x2e, 0xfe, 0xe3, + 0xc4, 0x5d, 0xc3, 0x9f, 0x18, 0xff, 0xdb, 0x8d, 0xf1, 0x1f, 0x5f, 0x3b, 0xff, 0xaf, 0xdc, 0xff, 0xc7, 0xf0, 0x27, 0xd2, + 0xb1, 0x68, 0x06, 0xf0, 0xfe, 0xd1, 0xbf, 0xf2, 0xb4, 0x67, 0xfc, 0x9b, 0x47, 0x91, 0xfe, 0xb9, 0x40, 0xe5, 0x69, 0xd3, + 0x6c, 0xee, 0xbc, 0xa5, 0xcb, 0xf6, 0xe9, 0xe3, 0x7f, 0xfe, 0xbc, 0x63, 0xba, 0x25, 0x0a, 0xfd, 0xe8, 0x6d, 0xd7, 0xd7, + 0x78, 0x7c, 0x64, 0x05, 0xbe, 0x97, 0xf8, 0x07, 0x57, 0x00, 0xd1, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x77, 0x6a, 0xff, 0xfa, 0xf7, 0x9f, 0xdb, 0xda, 0x8f, 0xd9, 0x8c, 0x5b, 0x77, 0x4b, 0x6f, 0x5f, 0xad, + 0x70, 0xfc, 0x7c, 0xc9, 0x56, 0xe7, 0x60, 0xdf, 0x06, 0x67, 0x5a, 0xaf, 0x83, 0xeb, 0xb7, 0x8c, 0x4b, 0x9d, 0x69, 0x9b, + 0x7e, 0xbd, 0x6c, 0xa9, 0x77, 0x92, 0x73, 0x79, 0x02, 0xdb, 0xe4, 0x0d, 0xd7, 0xec, 0xba, 0x0e, 0xb3, 0x1c, 0x86, 0x99, + 0xcc, 0x87, 0xed, 0x50, 0x34, 0xcd, 0x3f, 0xcf, 0x96, 0x67, 0x1b, 0x66, 0xc5, 0x8c, 0x72, 0xde, 0xbf, 0x5a, 0xee, 0xe9, + 0x3d, 0x99, 0xf9, 0x69, 0xf4, 0x3e, 0x7a, 0x4b, 0x67, 0x67, 0xbe, 0x2b, 0x07, 0xfb, 0xa8, 0x3e, 0xf7, 0x74, 0xf6, 0x8b, + 0xca, 0x96, 0xbd, 0xbb, 0xae, 0xca, 0x2c, 0xd7, 0xc3, 0x7e, 0xb8, 0x15, 0x46, 0x39, 0x92, 0xf7, 0x6e, 0x1e, 0xf1, 0x5c, + 0x5f, 0x5b, 0x95, 0xfb, 0x3e, 0xa6, 0x25, 0x8e, 0xe4, 0x77, 0xda, 0xf0, 0x38, 0x71, 0xd9, 0x3b, 0x65, 0x91, 0xac, 0xad, + 0xed, 0xef, 0x1c, 0x1b, 0xb9, 0xba, 0x3c, 0x13, 0xff, 0x95, 0xfc, 0xd2, 0x5b, 0x3a, 0x03, 0xea, 0xde, 0xc9, 0x4b, 0xff, + 0xfb, 0x7a, 0x76, 0x57, 0xa6, 0x95, 0x6c, 0x5b, 0xdf, 0x11, 0xff, 0xf3, 0xdc, 0x69, 0x91, 0x1a, 0x07, 0xf3, 0x7d, 0xf1, + 0x89, 0xdc, 0x0d, 0x77, 0xe5, 0x23, 0x3f, 0xd3, 0x8a, 0x57, 0xc6, 0x7f, 0x3e, 0x4f, 0x6c, 0x3d, 0xf3, 0xcf, 0xfa, 0xf8, + 0xcf, 0xe7, 0xab, 0x8a, 0x6e, 0x3e, 0x15, 0xf1, 0x5f, 0x8d, 0xff, 0xf8, 0x80, 0xf8, 0x5f, 0x99, 0x49, 0x7b, 0xb6, 0xb7, + 0x48, 0x65, 0x3e, 0x9f, 0x65, 0xf9, 0x69, 0x83, 0xb9, 0xec, 0xb1, 0xbb, 0x8f, 0x38, 0x30, 0xff, 0xb8, 0x27, 0xfe, 0x67, + 0x99, 0x7b, 0x73, 0xfd, 0xab, 0xba, 0x9f, 0x55, 0x6b, 0x30, 0xcc, 0x7a, 0x4e, 0xb6, 0x45, 0x23, 0xb9, 0x52, 0xe0, 0xea, + 0xf8, 0x1f, 0x47, 0x6d, 0xad, 0x6c, 0xdb, 0xd2, 0x11, 0xf7, 0xec, 0x08, 0x18, 0x4b, 0xef, 0x0c, 0xee, 0xb9, 0x8a, 0xef, + 0xa7, 0x57, 0x8f, 0x8b, 0xe1, 0x1d, 0xe6, 0xba, 0xbe, 0x75, 0xef, 0xf8, 0x1f, 0x8b, 0xf3, 0xa9, 0xc7, 0x8d, 0x99, 0x56, + 0xf3, 0xab, 0x5c, 0x64, 0xeb, 0xb3, 0x92, 0x23, 0x35, 0x9f, 0x55, 0xf9, 0x5b, 0xe2, 0xff, 0xfa, 0x2d, 0xeb, 0x23, 0x2d, + 0x17, 0xff, 0x71, 0xc3, 0xdc, 0xf2, 0x13, 0xe6, 0xff, 0xdb, 0x30, 0x5f, 0xfd, 0x5d, 0xf1, 0x5f, 0x6d, 0x8d, 0x6b, 0xe3, + 0x3f, 0x0a, 0xf3, 0xf6, 0x95, 0xf3, 0xfc, 0x67, 0xe6, 0xff, 0xe3, 0x31, 0x26, 0xd2, 0xf5, 0x5e, 0xcd, 0x61, 0x7a, 0x65, + 0xfc, 0xc7, 0x2d, 0xf7, 0x96, 0xf7, 0xc7, 0xff, 0xda, 0xb8, 0x5c, 0x1b, 0xff, 0x2b, 0xd7, 0xab, 0x10, 0xff, 0xf7, 0xcf, + 0x0c, 0xd6, 0x7e, 0xa7, 0x72, 0x77, 0xf0, 0xe4, 0xf8, 0x7f, 0x7f, 0x5d, 0x3f, 0x1f, 0xff, 0x2b, 0xe7, 0xff, 0xf1, 0x70, + 0xfc, 0x57, 0xd6, 0xff, 0xba, 0x67, 0x96, 0x2f, 0xfe, 0x9f, 0x88, 0xff, 0x37, 0xd4, 0x7a, 0x7e, 0xde, 0x34, 0x7f, 0x5a, + 0x98, 0x5b, 0x35, 0xb1, 0xf6, 0x54, 0x3c, 0x8a, 0x2b, 0x87, 0x47, 0xa1, 0xd4, 0x95, 0x99, 0xe3, 0xb6, 0xe4, 0x5e, 0xbe, + 0x76, 0x35, 0xa9, 0x64, 0x8e, 0xaf, 0xae, 0x33, 0x76, 0xe7, 0x7d, 0xc1, 0x35, 0xdf, 0xca, 0xb5, 0x62, 0x4c, 0xeb, 0x7e, + 0xc5, 0x75, 0x64, 0x7b, 0x61, 0x16, 0x7f, 0x3e, 0x5d, 0xdc, 0xf4, 0x1d, 0xd4, 0x22, 0xe2, 0x1f, 0xb5, 0xc8, 0x9b, 0x7a, + 0x61, 0x24, 0xef, 0xa9, 0xcd, 0x42, 0xd7, 0xd4, 0xba, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x56, 0xfd, 0x7e, 0x72, 0x36, 0xa7, 0xf8, 0x28, 0x6f, 0x62, 0x7e, 0x7f, 0xb3, 0x2c, 0x68, 0xed, 0xc1, 0x2d, 0xa3, + 0x5a, 0x68, 0x07, 0xcf, 0xa6, 0x25, 0xf3, 0xbc, 0xf5, 0xeb, 0xa4, 0x9f, 0x5f, 0xbe, 0x25, 0xb7, 0xb5, 0xc9, 0x1e, 0x8f, + 0xee, 0xfd, 0x78, 0x1b, 0xf7, 0xb3, 0xa8, 0xe5, 0xea, 0xbd, 0x9f, 0x99, 0xbf, 0x25, 0x57, 0x2c, 0x98, 0xd5, 0xe8, 0x96, + 0x68, 0xc9, 0x23, 0xbd, 0x69, 0xb4, 0xd6, 0xc4, 0xd1, 0x76, 0x38, 0x7a, 0x0e, 0x71, 0xf0, 0xad, 0xa3, 0x59, 0xae, 0xc5, + 0xd1, 0x96, 0x4c, 0x56, 0xa3, 0x33, 0xb9, 0x27, 0x56, 0xe6, 0xd2, 0x5d, 0x95, 0x4b, 0x3f, 0x97, 0xbb, 0x71, 0x1f, 0xb6, + 0x51, 0x9c, 0xbc, 0x52, 0xb7, 0xc1, 0x31, 0x5a, 0x21, 0xef, 0xc3, 0xf1, 0xbd, 0x1f, 0x6f, 0xe3, 0x3d, 0x9d, 0xdd, 0x64, + 0x65, 0xfe, 0xfd, 0x96, 0xce, 0xd8, 0xb9, 0x27, 0x57, 0xc4, 0x38, 0x9e, 0x4f, 0x62, 0x4f, 0x67, 0xae, 0x98, 0xf5, 0xc3, + 0xfd, 0xc4, 0x15, 0xe0, 0xce, 0xfc, 0x3b, 0x6f, 0x88, 0xff, 0x55, 0xb9, 0xb4, 0xaf, 0xce, 0xca, 0xd3, 0xba, 0xa5, 0x6f, + 0x17, 0xd7, 0x6d, 0x3d, 0xe2, 0x62, 0x98, 0x01, 0x23, 0xca, 0x63, 0xd4, 0xd1, 0x63, 0x8c, 0x22, 0x67, 0xb4, 0x62, 0xd1, + 0xf1, 0xeb, 0x66, 0x2c, 0x88, 0xff, 0x33, 0x6f, 0x03, 0x1f, 0x1f, 0x5b, 0x8e, 0xd6, 0xef, 0x7d, 0x19, 0xf3, 0xc7, 0x39, + 0xd8, 0x73, 0x59, 0xd8, 0x57, 0x67, 0xcc, 0x59, 0x17, 0xe7, 0xab, 0xf2, 0xe8, 0xe4, 0xa2, 0x25, 0xd2, 0xf3, 0xf1, 0x4c, + 0xfc, 0xc7, 0xe1, 0xd9, 0x7f, 0x36, 0x9f, 0x4d, 0x3e, 0x1a, 0x62, 0xf1, 0x1b, 0xb5, 0xfd, 0xf2, 0xb6, 0x8b, 0xc6, 0xff, + 0xd5, 0xf1, 0xbf, 0x9d, 0x88, 0xfe, 0x7b, 0x57, 0xcc, 0xd8, 0x8a, 0xeb, 0x52, 0x5c, 0x9d, 0x4b, 0x33, 0x0a, 0x65, 0x7b, + 0x2e, 0xfe, 0xb3, 0x2b, 0x18, 0x8c, 0x8e, 0xd0, 0x0e, 0x97, 0xa4, 0x5d, 0x14, 0x9b, 0x51, 0xec, 0xd5, 0xf1, 0x48, 0x66, + 0x8e, 0x73, 0xe3, 0xff, 0x76, 0x3a, 0xfe, 0xd7, 0xd7, 0xab, 0xf8, 0xaf, 0xcf, 0x67, 0xee, 0x8d, 0xff, 0xad, 0xb0, 0x4e, + 0x4b, 0x14, 0x66, 0x5d, 0xf5, 0x2b, 0xc0, 0x5d, 0xfd, 0xfa, 0xed, 0xcf, 0xd3, 0x67, 0xfd, 0xe0, 0x5d, 0xe7, 0x30, 0xeb, + 0x21, 0x99, 0x7e, 0x15, 0x93, 0xa3, 0xe4, 0xef, 0x8d, 0x2b, 0x7d, 0x7e, 0x2b, 0x66, 0x88, 0xaf, 0xe4, 0x2d, 0x3d, 0x7f, + 0xbf, 0x70, 0xfe, 0x2a, 0x52, 0x5d, 0xbf, 0x2b, 0x4e, 0xf7, 0x91, 0x4c, 0x7b, 0xad, 0xed, 0xaf, 0xef, 0xbd, 0x0e, 0xcc, + 0xb3, 0xc6, 0x7e, 0x46, 0x3e, 0xa0, 0xb8, 0xed, 0x5a, 0xfc, 0x96, 0xfa, 0x88, 0x45, 0x77, 0x8e, 0x57, 0x8d, 0xff, 0x6b, + 0x9f, 0xad, 0x66, 0xe3, 0xe8, 0xfb, 0xb2, 0x58, 0xc5, 0x25, 0xd7, 0x92, 0x58, 0x7a, 0xbf, 0x23, 0xfe, 0xc5, 0xff, 0x15, + 0xf1, 0x7f, 0xfc, 0x18, 0xf1, 0xb5, 0xf1, 0xff, 0x44, 0x2f, 0x12, 0xff, 0x67, 0xe6, 0x97, 0x6f, 0x9a, 0x51, 0x5e, 0x1b, + 0xff, 0xeb, 0xc6, 0xb1, 0xca, 0x7d, 0xd7, 0x9b, 0x5a, 0x47, 0xfc, 0xf3, 0x49, 0xed, 0xfc, 0x9e, 0x75, 0x34, 0x00, 0xf1, + 0x0f, 0x5c, 0x33, 0xef, 0x3e, 0xf6, 0x93, 0x7b, 0xd1, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x59, 0xad, 0x9b, 0x59, 0x3c, 0xba, 0x59, 0xcc, 0xff, 0xf9, 0xef, 0xcf, 0x5b, 0x9f, 0x3d, 0x9f, 0x2d, 0x55, 0xb6, + 0x36, 0xcc, 0xf8, 0xde, 0x1e, 0x2e, 0xf5, 0x95, 0x47, 0x68, 0xb7, 0x9d, 0xe1, 0xda, 0x5a, 0xe9, 0xbd, 0x47, 0xdb, 0x6e, + 0xa8, 0xc9, 0x5a, 0x7b, 0xb5, 0xe1, 0xb6, 0x96, 0xee, 0xb3, 0xb5, 0x2d, 0xff, 0xfd, 0x9f, 0xfb, 0xb0, 0x86, 0xf7, 0x64, + 0x5e, 0xde, 0xda, 0x9b, 0xd1, 0xb5, 0x6c, 0x5a, 0x3f, 0x6f, 0xdb, 0xff, 0xfa, 0xdb, 0xdb, 0x96, 0xa9, 0x83, 0x71, 0xee, + 0xfb, 0x95, 0xe7, 0x33, 0x2a, 0xf5, 0x9a, 0x0c, 0xc4, 0x3f, 0x1f, 0x21, 0x06, 0x67, 0x18, 0xa5, 0x6c, 0x66, 0x77, 0xb5, + 0x65, 0x6f, 0x4d, 0x86, 0xbd, 0xb0, 0xda, 0xca, 0x1d, 0xed, 0x15, 0xa5, 0xf5, 0x1b, 0xb6, 0x49, 0xdf, 0xcc, 0xf5, 0xe7, + 0x4c, 0xdd, 0x8f, 0xf2, 0xcd, 0x8e, 0xce, 0xb3, 0x7f, 0xe4, 0xfe, 0x99, 0xec, 0xc9, 0x33, 0xf9, 0xf5, 0xf9, 0x9e, 0xbc, + 0x96, 0xb6, 0xc1, 0x3c, 0xa7, 0xf2, 0xd6, 0xee, 0xca, 0xf3, 0x19, 0x8d, 0xc3, 0xfd, 0x3a, 0xc8, 0x1f, 0xe3, 0x78, 0x5b, + 0x8e, 0xea, 0xf8, 0xf9, 0xb6, 0x1c, 0xf5, 0xcc, 0x48, 0x47, 0x52, 0xbe, 0xcc, 0xfd, 0xbe, 0xde, 0xdb, 0xdb, 0x6c, 0x3d, + 0x9d, 0x67, 0xde, 0x11, 0x9f, 0xc5, 0x7f, 0xa4, 0xe3, 0x7f, 0xbc, 0x0a, 0xcc, 0xf1, 0x4f, 0x47, 0x57, 0xd9, 0x7d, 0x30, + 0x96, 0xf7, 0x6a, 0xb9, 0x0d, 0xeb, 0xbf, 0xf6, 0xd6, 0xfe, 0xaa, 0xf3, 0xa9, 0x1c, 0x67, 0x4f, 0xd7, 0x59, 0x2e, 0x2b, + 0xea, 0x3e, 0x3c, 0x93, 0x67, 0xdb, 0x72, 0xd4, 0x9b, 0xdb, 0x20, 0x4b, 0xff, 0xea, 0xf6, 0x8a, 0xc4, 0xde, 0xaa, 0x6b, + 0xd6, 0x8c, 0xd6, 0xe0, 0xcb, 0x6e, 0xe9, 0x45, 0x79, 0x65, 0xf6, 0x97, 0x9d, 0x13, 0xe7, 0xc7, 0xe5, 0xea, 0x58, 0xbe, + 0xa5, 0xb3, 0x96, 0xcf, 0x56, 0xc9, 0xc8, 0x8c, 0xd8, 0x95, 0x2d, 0x51, 0xb8, 0x37, 0x6c, 0xe9, 0x27, 0x16, 0xa3, 0x9c, + 0xe2, 0x91, 0x1c, 0xe3, 0x9e, 0x6d, 0xcb, 0xd9, 0x68, 0x96, 0x39, 0x9b, 0xca, 0x96, 0xd1, 0xac, 0xa9, 0xff, 0x9d, 0xfc, + 0xca, 0x98, 0x67, 0x56, 0xe7, 0x6b, 0x97, 0xcd, 0xff, 0xe7, 0x39, 0xb6, 0xd7, 0x8c, 0xcb, 0xd5, 0xb1, 0x7c, 0x2b, 0xac, + 0x5a, 0x10, 0x97, 0xdf, 0x31, 0x56, 0x57, 0x47, 0xdb, 0xbb, 0xf7, 0xc6, 0xb9, 0xcf, 0xab, 0x6b, 0x1f, 0xc4, 0x0b, 0xdb, + 0x32, 0x1f, 0xff, 0xd7, 0xac, 0x73, 0xb1, 0x76, 0x6d, 0xbc, 0x76, 0x5b, 0x9f, 0x3a, 0x3e, 0xca, 0xaf, 0x5e, 0xe5, 0xee, + 0xfa, 0x5a, 0xae, 0xe5, 0xf2, 0x7f, 0x3a, 0xfe, 0x63, 0xe1, 0x8a, 0x02, 0xab, 0xe2, 0xbf, 0xbd, 0x24, 0x62, 0xfe, 0x94, + 0xf8, 0xcf, 0xad, 0xc2, 0x11, 0xa5, 0x95, 0x3b, 0x32, 0x31, 0x9e, 0x7f, 0x96, 0xff, 0x9e, 0x5a, 0xfe, 0x9e, 0xf1, 0xff, + 0xb9, 0xf8, 0x8f, 0x0f, 0x8c, 0xff, 0xf7, 0x96, 0xf9, 0xf9, 0xb1, 0xf1, 0xd9, 0xf8, 0xaf, 0x8c, 0xcb, 0xf5, 0x75, 0x79, + 0xd6, 0xc6, 0x7f, 0x24, 0x46, 0xec, 0xf5, 0x99, 0xb8, 0x9f, 0x8a, 0xff, 0xf7, 0x8e, 0xa5, 0xb3, 0xba, 0x7a, 0xb2, 0x64, + 0xb3, 0x55, 0xe6, 0xdf, 0x15, 0xff, 0xd5, 0x15, 0x55, 0x23, 0x39, 0x93, 0x7d, 0xff, 0xf8, 0x1f, 0xa9, 0x35, 0xf7, 0xbe, + 0x67, 0xfc, 0x8f, 0xc9, 0xda, 0xbc, 0x9f, 0x37, 0xff, 0x8f, 0x47, 0x63, 0x2c, 0x4a, 0x2b, 0xc9, 0x66, 0x57, 0xda, 0x5b, + 0x35, 0xff, 0xbf, 0xf3, 0xe7, 0x8c, 0x9f, 0x36, 0x9b, 0x3c, 0xf7, 0xa4, 0xe3, 0x33, 0xe2, 0x7f, 0x3e, 0x92, 0x7e, 0x5e, + 0x8b, 0x3d, 0x3d, 0xc6, 0xca, 0xf6, 0xfc, 0x4d, 0xf1, 0xbf, 0xdd, 0x32, 0xfe, 0x57, 0x57, 0x3a, 0xcd, 0xfe, 0xfe, 0xd9, + 0x27, 0xc5, 0xff, 0xca, 0x95, 0x87, 0xee, 0x2c, 0x99, 0xf8, 0x7f, 0xdb, 0x3d, 0xce, 0x8a, 0x92, 0xdf, 0xf5, 0x13, 0x99, + 0xbb, 0xc7, 0xf9, 0xf7, 0x5e, 0xb1, 0xdf, 0xdb, 0xff, 0xaa, 0xbf, 0xe7, 0x2e, 0xfe, 0x3f, 0x2f, 0xfe, 0xb3, 0x23, 0x76, + 0x65, 0xcb, 0xfc, 0x48, 0xe7, 0x3f, 0x5f, 0xd7, 0x62, 0xeb, 0x9f, 0x7e, 0xde, 0x71, 0xb7, 0x7a, 0x5f, 0xc9, 0xc4, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xad, 0x36, 0xcc, 0xe4, 0x9f, 0xcd, 0x4a, 0x3e, 0xca, 0x0c, + 0x18, 0xb7, 0xe4, 0x38, 0xaf, 0xe6, 0xff, 0x3f, 0xfe, 0x79, 0xbe, 0xc6, 0x2a, 0x65, 0x5a, 0x7b, 0xee, 0x6d, 0xd2, 0x66, + 0x3f, 0x7f, 0xde, 0x0a, 0xab, 0x3c, 0xdc, 0xd1, 0x62, 0xad, 0xd4, 0x9f, 0xf9, 0xa9, 0xb6, 0xf6, 0x85, 0xb5, 0x35, 0x5b, + 0x33, 0xe0, 0x99, 0x1c, 0xe7, 0xb3, 0xe3, 0xb4, 0x45, 0xc7, 0x18, 0x67, 0xb8, 0xce, 0x95, 0xa9, 0x72, 0xee, 0xeb, 0xdb, + 0xb2, 0x5f, 0x8a, 0x7b, 0x5a, 0xac, 0xf9, 0x0d, 0xfb, 0x47, 0xdf, 0xd9, 0xa9, 0x64, 0x18, 0x8e, 0x64, 0xf6, 0xa3, 0xfb, + 0x4a, 0xbd, 0xee, 0x08, 0xfd, 0xab, 0xd8, 0xfe, 0xd2, 0xb1, 0x67, 0x9c, 0x7b, 0x76, 0x94, 0x15, 0xb1, 0xdd, 0xf4, 0x66, + 0x58, 0x4b, 0xbf, 0xcb, 0xd3, 0x16, 0xed, 0x4d, 0x94, 0xaf, 0xca, 0x3d, 0xbc, 0x4d, 0xf3, 0x72, 0xad, 0xba, 0xce, 0xe4, + 0x4b, 0xbd, 0x0d, 0xf6, 0x95, 0xfb, 0x7c, 0x4b, 0xe6, 0x6a, 0x89, 0xc5, 0x59, 0xdc, 0xd7, 0xd6, 0xca, 0x36, 0xb9, 0x8e, + 0x47, 0x22, 0xc6, 0xce, 0x6c, 0xc9, 0x1f, 0xe7, 0x6d, 0x6b, 0x69, 0x7c, 0xee, 0x7b, 0xb9, 0xfb, 0xa2, 0xdc, 0xc3, 0xf5, + 0x4c, 0x9a, 0xab, 0x72, 0x9c, 0xd7, 0x32, 0xb3, 0xac, 0xcb, 0xa4, 0xb7, 0x77, 0xfb, 0xf1, 0xda, 0x33, 0xbc, 0xbe, 0x56, + 0x3e, 0x21, 0x97, 0xee, 0x1b, 0xdf, 0x0c, 0xff, 0xec, 0xf7, 0xf3, 0x8f, 0x8c, 0x67, 0xdb, 0x74, 0xce, 0xf8, 0x64, 0xfb, + 0x5f, 0x9f, 0x49, 0x67, 0xfb, 0xc8, 0x0c, 0x87, 0x5b, 0x39, 0x03, 0x98, 0xf8, 0xff, 0xf6, 0xf9, 0x7f, 0xdc, 0x90, 0x17, + 0x69, 0x76, 0x2d, 0x59, 0x9b, 0xff, 0x77, 0x13, 0xff, 0x27, 0xa3, 0xe2, 0xf9, 0x5c, 0x9a, 0xf3, 0xab, 0xfc, 0x26, 0xfe, + 0x17, 0x8d, 0xfb, 0xdf, 0x96, 0x49, 0xd3, 0xf8, 0x7f, 0x5d, 0x54, 0x7c, 0xea, 0x5a, 0x1a, 0x6c, 0x85, 0xb1, 0x7c, 0x65, + 0x86, 0xe1, 0xb8, 0xe1, 0x0a, 0x54, 0xc9, 0xcc, 0x98, 0xff, 0xfc, 0xd3, 0xa2, 0x7c, 0x65, 0x8e, 0xad, 0x6b, 0xca, 0xb6, + 0x26, 0xfe, 0xdf, 0x99, 0xfd, 0xfa, 0x13, 0xe7, 0xff, 0xf7, 0x3c, 0x63, 0xd8, 0x6e, 0xce, 0xcc, 0x16, 0x4b, 0x3e, 0xdf, + 0x92, 0x77, 0x38, 0x2b, 0xef, 0x97, 0x9e, 0xcf, 0xa4, 0x77, 0x5f, 0x56, 0xfa, 0xda, 0x5d, 0x9e, 0xf1, 0x1f, 0xbe, 0xfb, + 0xd9, 0xb4, 0xf8, 0x07, 0xf1, 0x6f, 0xf6, 0x0f, 0xee, 0x4c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xc7, 0xaf, 0x3f, 0xea, 0x01, 0xc4, 0x3f, 0xf0, 0xc7, + 0xc5, 0xff, 0xff, 0x00 }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle amberFontRecs[189] = { + { 4, 4, 5 , 16 }, + { 17, 4, 2 , 10 }, + { 27, 4, 4 , 4 }, + { 39, 4, 5 , 10 }, + { 52, 4, 5 , 11 }, + { 65, 4, 5 , 10 }, + { 78, 4, 5 , 10 }, + { 91, 4, 2 , 4 }, + { 101, 4, 4 , 13 }, + { 113, 4, 5 , 13 }, + { 126, 4, 4 , 4 }, + { 138, 4, 5 , 6 }, + { 151, 4, 3 , 2 }, + { 162, 4, 5 , 2 }, + { 175, 4, 2 , 1 }, + { 185, 4, 5 , 10 }, + { 198, 4, 5 , 10 }, + { 211, 4, 4 , 10 }, + { 223, 4, 5 , 10 }, + { 236, 4, 5 , 10 }, + { 249, 4, 5 , 10 }, + { 262, 4, 5 , 10 }, + { 275, 4, 5 , 10 }, + { 288, 4, 5 , 10 }, + { 301, 4, 5 , 10 }, + { 314, 4, 5 , 10 }, + { 327, 4, 2 , 6 }, + { 337, 4, 2 , 6 }, + { 347, 4, 5 , 6 }, + { 360, 4, 5 , 4 }, + { 373, 4, 5 , 6 }, + { 386, 4, 5 , 10 }, + { 399, 4, 5 , 7 }, + { 412, 4, 5 , 10 }, + { 425, 4, 5 , 10 }, + { 438, 4, 5 , 10 }, + { 451, 4, 5 , 10 }, + { 464, 4, 5 , 10 }, + { 477, 4, 5 , 10 }, + { 490, 4, 5 , 10 }, + { 4, 28, 5 , 10 }, + { 17, 28, 4 , 10 }, + { 29, 28, 5 , 10 }, + { 42, 28, 5 , 10 }, + { 55, 28, 5 , 10 }, + { 68, 28, 5 , 10 }, + { 81, 28, 5 , 10 }, + { 94, 28, 5 , 10 }, + { 107, 28, 5 , 10 }, + { 120, 28, 5 , 10 }, + { 133, 28, 5 , 10 }, + { 146, 28, 5 , 10 }, + { 159, 28, 5 , 10 }, + { 172, 28, 5 , 10 }, + { 185, 28, 5 , 10 }, + { 198, 28, 5 , 10 }, + { 211, 28, 5 , 10 }, + { 224, 28, 5 , 10 }, + { 237, 28, 5 , 10 }, + { 250, 28, 3 , 13 }, + { 261, 28, 5 , 10 }, + { 274, 28, 3 , 13 }, + { 285, 28, 4 , 3 }, + { 297, 28, 5 , 1 }, + { 310, 28, 3 , 3 }, + { 321, 28, 5 , 7 }, + { 334, 28, 5 , 10 }, + { 347, 28, 5 , 7 }, + { 360, 28, 5 , 10 }, + { 373, 28, 5 , 7 }, + { 386, 28, 5 , 10 }, + { 399, 28, 5 , 10 }, + { 412, 28, 5 , 10 }, + { 425, 28, 4 , 10 }, + { 437, 28, 3 , 13 }, + { 448, 28, 5 , 10 }, + { 461, 28, 5 , 10 }, + { 474, 28, 5 , 7 }, + { 487, 28, 5 , 7 }, + { 4, 52, 5 , 7 }, + { 17, 52, 5 , 10 }, + { 30, 52, 5 , 10 }, + { 43, 52, 5 , 7 }, + { 56, 52, 5 , 7 }, + { 69, 52, 5 , 10 }, + { 82, 52, 5 , 7 }, + { 95, 52, 5 , 7 }, + { 108, 52, 5 , 7 }, + { 121, 52, 5 , 7 }, + { 134, 52, 5 , 10 }, + { 147, 52, 5 , 7 }, + { 160, 52, 4 , 13 }, + { 172, 52, 2 , 13 }, + { 182, 52, 4 , 13 }, + { 194, 52, 5 , 4 }, + { 207, 52, 2 , 9 }, + { 217, 52, 5 , 7 }, + { 230, 52, 5 , 10 }, + { 243, 52, 5 , 10 }, + { 256, 52, 5 , 10 }, + { 269, 52, 0 , 0 }, + { 277, 52, 5 , 10 }, + { 290, 52, 0 , 0 }, + { 298, 52, 5 , 7 }, + { 311, 52, 3 , 5 }, + { 322, 52, 5 , 5 }, + { 335, 52, 5 , 3 }, + { 348, 52, 5 , 7 }, + { 361, 52, 5 , 2 }, + { 374, 52, 4 , 4 }, + { 386, 52, 5 , 8 }, + { 399, 52, 3 , 5 }, + { 410, 52, 3 , 6 }, + { 421, 52, 0 , 0 }, + { 429, 52, 5 , 10 }, + { 442, 52, 5 , 10 }, + { 455, 52, 2 , 3 }, + { 465, 52, 0 , 0 }, + { 473, 52, 3 , 5 }, + { 484, 52, 4 , 4 }, + { 496, 52, 5 , 5 }, + { 4, 76, 5 , 10 }, + { 17, 76, 5 , 7 }, + { 30, 76, 5 , 10 }, + { 43, 76, 5 , 10 }, + { 56, 76, 5 , 14 }, + { 69, 76, 5 , 14 }, + { 82, 76, 5 , 14 }, + { 95, 76, 5 , 14 }, + { 108, 76, 5 , 12 }, + { 121, 76, 5 , 12 }, + { 134, 76, 5 , 10 }, + { 147, 76, 5 , 13 }, + { 160, 76, 5 , 14 }, + { 173, 76, 5 , 14 }, + { 186, 76, 5 , 14 }, + { 199, 76, 5 , 12 }, + { 212, 76, 4 , 14 }, + { 224, 76, 4 , 14 }, + { 236, 76, 4 , 14 }, + { 248, 76, 4 , 12 }, + { 260, 76, 5 , 10 }, + { 273, 76, 5 , 14 }, + { 286, 76, 5 , 14 }, + { 299, 76, 5 , 14 }, + { 312, 76, 5 , 14 }, + { 325, 76, 5 , 14 }, + { 338, 76, 5 , 12 }, + { 351, 76, 4 , 3 }, + { 363, 76, 5 , 10 }, + { 376, 76, 5 , 14 }, + { 389, 76, 5 , 14 }, + { 402, 76, 5 , 14 }, + { 415, 76, 5 , 12 }, + { 428, 76, 5 , 14 }, + { 441, 76, 5 , 10 }, + { 454, 76, 5 , 10 }, + { 467, 76, 5 , 10 }, + { 480, 76, 5 , 10 }, + { 493, 76, 5 , 10 }, + { 4, 100, 5 , 10 }, + { 17, 100, 5 , 9 }, + { 30, 100, 5 , 9 }, + { 43, 100, 5 , 7 }, + { 56, 100, 5 , 10 }, + { 69, 100, 5 , 10 }, + { 82, 100, 5 , 10 }, + { 95, 100, 5 , 10 }, + { 108, 100, 5 , 9 }, + { 121, 100, 4 , 10 }, + { 133, 100, 4 , 10 }, + { 145, 100, 4 , 10 }, + { 157, 100, 4 , 9 }, + { 169, 100, 5 , 10 }, + { 182, 100, 5 , 10 }, + { 195, 100, 5 , 10 }, + { 208, 100, 5 , 10 }, + { 221, 100, 5 , 10 }, + { 234, 100, 5 , 10 }, + { 247, 100, 5 , 9 }, + { 260, 100, 5 , 6 }, + { 273, 100, 5 , 7 }, + { 286, 100, 5 , 10 }, + { 299, 100, 5 , 10 }, + { 312, 100, 5 , 10 }, + { 325, 100, 5 , 9 }, + { 338, 100, 5 , 13 }, + { 351, 100, 5 , 10 }, + { 364, 100, 5 , 12 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo amberFontGlyphs[189] = { + { 32, 0, 0, 5, { 0 }}, + { 33, 1, 3, 5, { 0 }}, + { 34, 0, 3, 5, { 0 }}, + { 35, 0, 3, 5, { 0 }}, + { 36, 0, 3, 5, { 0 }}, + { 37, 0, 3, 5, { 0 }}, + { 38, 0, 3, 5, { 0 }}, + { 39, 1, 4, 5, { 0 }}, + { 40, 0, 3, 5, { 0 }}, + { 41, 0, 3, 5, { 0 }}, + { 42, 0, 3, 5, { 0 }}, + { 43, 0, 7, 5, { 0 }}, + { 44, 0, 12, 5, { 0 }}, + { 45, 0, 9, 5, { 0 }}, + { 46, 1, 12, 5, { 0 }}, + { 47, 0, 3, 5, { 0 }}, + { 48, 0, 3, 5, { 0 }}, + { 49, 0, 3, 5, { 0 }}, + { 50, 0, 3, 5, { 0 }}, + { 51, 0, 3, 5, { 0 }}, + { 52, 0, 3, 5, { 0 }}, + { 53, 0, 3, 5, { 0 }}, + { 54, 0, 3, 5, { 0 }}, + { 55, 0, 3, 5, { 0 }}, + { 56, 0, 3, 5, { 0 }}, + { 57, 0, 3, 5, { 0 }}, + { 58, 0, 7, 5, { 0 }}, + { 59, 0, 7, 5, { 0 }}, + { 60, 0, 7, 5, { 0 }}, + { 61, 0, 8, 5, { 0 }}, + { 62, 0, 7, 5, { 0 }}, + { 63, 0, 3, 5, { 0 }}, + { 64, 0, 6, 5, { 0 }}, + { 65, 0, 3, 5, { 0 }}, + { 66, 0, 3, 5, { 0 }}, + { 67, 0, 3, 5, { 0 }}, + { 68, 0, 3, 5, { 0 }}, + { 69, 0, 3, 5, { 0 }}, + { 70, 0, 3, 5, { 0 }}, + { 71, 0, 3, 5, { 0 }}, + { 72, 0, 3, 5, { 0 }}, + { 73, 0, 3, 5, { 0 }}, + { 74, 0, 3, 5, { 0 }}, + { 75, 0, 3, 5, { 0 }}, + { 76, 0, 3, 5, { 0 }}, + { 77, 0, 3, 5, { 0 }}, + { 78, 0, 3, 5, { 0 }}, + { 79, 0, 3, 5, { 0 }}, + { 80, 0, 3, 5, { 0 }}, + { 81, 0, 3, 5, { 0 }}, + { 82, 0, 3, 5, { 0 }}, + { 83, 0, 3, 5, { 0 }}, + { 84, 0, 3, 5, { 0 }}, + { 85, 0, 3, 5, { 0 }}, + { 86, 0, 3, 5, { 0 }}, + { 87, 0, 3, 5, { 0 }}, + { 88, 0, 3, 5, { 0 }}, + { 89, 0, 3, 5, { 0 }}, + { 90, 0, 3, 5, { 0 }}, + { 91, 0, 3, 5, { 0 }}, + { 92, 0, 3, 5, { 0 }}, + { 93, 0, 3, 5, { 0 }}, + { 94, 0, 3, 5, { 0 }}, + { 95, 0, 12, 5, { 0 }}, + { 96, 1, 4, 5, { 0 }}, + { 97, 0, 6, 5, { 0 }}, + { 98, 0, 3, 5, { 0 }}, + { 99, 0, 6, 5, { 0 }}, + { 100, 0, 3, 5, { 0 }}, + { 101, 0, 6, 5, { 0 }}, + { 102, 0, 3, 5, { 0 }}, + { 103, 0, 6, 5, { 0 }}, + { 104, 0, 3, 5, { 0 }}, + { 105, 0, 3, 5, { 0 }}, + { 106, 0, 3, 5, { 0 }}, + { 107, 0, 3, 5, { 0 }}, + { 108, 0, 3, 5, { 0 }}, + { 109, 0, 6, 5, { 0 }}, + { 110, 0, 6, 5, { 0 }}, + { 111, 0, 6, 5, { 0 }}, + { 112, 0, 6, 5, { 0 }}, + { 113, 0, 6, 5, { 0 }}, + { 114, 0, 6, 5, { 0 }}, + { 115, 0, 6, 5, { 0 }}, + { 116, 0, 3, 5, { 0 }}, + { 117, 0, 6, 5, { 0 }}, + { 118, 0, 6, 5, { 0 }}, + { 119, 0, 6, 5, { 0 }}, + { 120, 0, 6, 5, { 0 }}, + { 121, 0, 6, 5, { 0 }}, + { 122, 0, 6, 5, { 0 }}, + { 123, 0, 3, 5, { 0 }}, + { 124, 1, 3, 5, { 0 }}, + { 125, 0, 3, 5, { 0 }}, + { 126, 0, 8, 5, { 0 }}, + { 161, 1, 4, 5, { 0 }}, + { 162, 0, 6, 5, { 0 }}, + { 163, 0, 3, 5, { 0 }}, + { 8364, 0, 3, 5, { 0 }}, + { 165, 0, 3, 5, { 0 }}, + { 352, 0, 0, 0, { 0 }}, + { 167, 0, 3, 5, { 0 }}, + { 353, 0, 0, 0, { 0 }}, + { 169, 0, 6, 5, { 0 }}, + { 170, 2, 3, 5, { 0 }}, + { 171, 0, 8, 5, { 0 }}, + { 172, 0, 6, 5, { 0 }}, + { 174, 0, 6, 5, { 0 }}, + { 175, 0, 3, 5, { 0 }}, + { 176, 1, 3, 5, { 0 }}, + { 177, 0, 5, 5, { 0 }}, + { 178, 2, 3, 5, { 0 }}, + { 179, 2, 3, 5, { 0 }}, + { 381, 0, 0, 0, { 0 }}, + { 181, 0, 6, 5, { 0 }}, + { 182, 0, 3, 5, { 0 }}, + { 183, 1, 6, 5, { 0 }}, + { 382, 0, 0, 0, { 0 }}, + { 185, 0, 3, 5, { 0 }}, + { 186, 0, 3, 5, { 0 }}, + { 187, 0, 8, 5, { 0 }}, + { 338, 0, 3, 5, { 0 }}, + { 339, 0, 6, 5, { 0 }}, + { 376, 0, 3, 5, { 0 }}, + { 191, 0, 3, 5, { 0 }}, + { 192, 0, -1, 5, { 0 }}, + { 193, 0, -1, 5, { 0 }}, + { 194, 0, -1, 5, { 0 }}, + { 195, 0, -1, 5, { 0 }}, + { 196, 0, 1, 5, { 0 }}, + { 197, 0, 1, 5, { 0 }}, + { 198, 0, 3, 5, { 0 }}, + { 199, 0, 3, 5, { 0 }}, + { 200, 0, -1, 5, { 0 }}, + { 201, 0, -1, 5, { 0 }}, + { 202, 0, -1, 5, { 0 }}, + { 203, 0, 1, 5, { 0 }}, + { 204, 0, -1, 5, { 0 }}, + { 205, 0, -1, 5, { 0 }}, + { 206, 0, -1, 5, { 0 }}, + { 207, 0, 1, 5, { 0 }}, + { 208, 0, 3, 5, { 0 }}, + { 209, 0, -1, 5, { 0 }}, + { 210, 0, -1, 5, { 0 }}, + { 211, 0, -1, 5, { 0 }}, + { 212, 0, -1, 5, { 0 }}, + { 213, 0, -1, 5, { 0 }}, + { 214, 0, 1, 5, { 0 }}, + { 215, 0, 10, 5, { 0 }}, + { 216, 0, 3, 5, { 0 }}, + { 217, 0, -1, 5, { 0 }}, + { 218, 0, -1, 5, { 0 }}, + { 219, 0, -1, 5, { 0 }}, + { 220, 0, 1, 5, { 0 }}, + { 221, 0, -1, 5, { 0 }}, + { 222, 0, 3, 5, { 0 }}, + { 223, 0, 3, 5, { 0 }}, + { 224, 0, 3, 5, { 0 }}, + { 225, 0, 3, 5, { 0 }}, + { 226, 0, 3, 5, { 0 }}, + { 227, 0, 3, 5, { 0 }}, + { 228, 0, 4, 5, { 0 }}, + { 229, 0, 4, 5, { 0 }}, + { 230, 0, 6, 5, { 0 }}, + { 231, 0, 6, 5, { 0 }}, + { 232, 0, 3, 5, { 0 }}, + { 233, 0, 3, 5, { 0 }}, + { 234, 0, 3, 5, { 0 }}, + { 235, 0, 4, 5, { 0 }}, + { 236, 0, 3, 5, { 0 }}, + { 237, 0, 3, 5, { 0 }}, + { 238, 0, 3, 5, { 0 }}, + { 239, 0, 4, 5, { 0 }}, + { 240, 0, 3, 5, { 0 }}, + { 241, 0, 3, 5, { 0 }}, + { 242, 0, 3, 5, { 0 }}, + { 243, 0, 3, 5, { 0 }}, + { 244, 0, 3, 5, { 0 }}, + { 245, 0, 3, 5, { 0 }}, + { 246, 0, 4, 5, { 0 }}, + { 247, 0, 7, 5, { 0 }}, + { 248, 0, 6, 5, { 0 }}, + { 249, 0, 3, 5, { 0 }}, + { 250, 0, 3, 5, { 0 }}, + { 251, 0, 3, 5, { 0 }}, + { 252, 0, 4, 5, { 0 }}, + { 253, 0, 3, 5, { 0 }}, + { 254, 0, 3, 5, { 0 }}, + { 255, 0, 4, 5, { 0 }}, +}; + +// Style loading function: Amber +static void GuiLoadStyleAmber(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < AMBER_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(amberStyleProps[i].controlId, amberStyleProps[i].propertyId, amberStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int amberFontDataSize = 0; + unsigned char *data = DecompressData(amberFontData, AMBER_STYLE_FONT_ATLAS_COMP_SIZE, &amberFontDataSize); + Image imFont = { data, 512, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 16; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, amberFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, amberFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 510, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/amber/style_amber.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/amber/style_amber.png new file mode 100644 index 0000000..c428155 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/amber/style_amber.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/amber/style_amber.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/amber/style_amber.rgs new file mode 100644 index 0000000..44d806e Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/amber/style_amber.rgs differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/README.md b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/README.md new file mode 100644 index 0000000..b1d4de5 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/README.md @@ -0,0 +1,27 @@ +## style: ashes + +What once was life now is ashes, just as slight reminiscense covers the ground, a gray sequence of tones that reminds to a distant past. + +![ashes style table](style_ashes.png) + +## style: provided files + +Several options are provided to add the style to a `raygui` application, choose the one that better fits the project. + +| file name | description | +| :-------- | :---------- | +| `style_ashes.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) | +| `style_ashes.txt.rgs` | Text style file, no font data, requires external font provided | +| `style_ashes.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) | +| `style_ashes.h` | Embeddable style as code file, self-contained, includes font data | +| `style_ashes.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data | + +## screenshot + +![ashes style screen](screenshot.png) + +## about font + +"V5 Loxica Lixera" font by vFive Digital (Roberto Christen). + +100% free font, downloaded from dafont.com: [v5loxica-lixera](https://www.dafont.com/v5loxica-lixera.font) diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/charset.txt b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/charset.txt new file mode 100644 index 0000000..611a673 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/charset.txt @@ -0,0 +1 @@ + !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/font_readme.txt b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/font_readme.txt new file mode 100644 index 0000000..1a6b338 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/font_readme.txt @@ -0,0 +1,51 @@ + +V5 Loxica +--------------- +Instructions: + + +++ Loxica (LIXERA) ++ + +For screen use, set at 16pt. Turn +antialiasing off. Set tracking to zero +for best results. + +++ Loxica (ROBUSTA) ++ + +For screen use, set at 18pt. Turn +antialiasing off. Set tracking to zero +for best results. + + +Notes: + +1. These faces do not contain any hinting +information since they were built for use +at the sizes listed above. Naturally, for +print use you are free to experiment. + +2. Although the intended size for _lixera_ +is 16pt (vs. 18pt for _robusta_), they share +the same optical size (where lixera is the +regular weight, and robusta is the bold). + +3. Pronounciation: "lo-hee-ka lee-he-ra", and +"lo-hee-ka ro-bus-ta." + + + +--------------- +Usage: This is a free font--you may use +this and other V5 fonts at will. It may not +be sold, altered, or improperly credited, +however. All I ask is that you kindly inform +me if you find this font useful, and where +you've used it. + +Enjoy, + +2000 +Roberto Christen +rob@vfive.com + + diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/screenshot.old.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/screenshot.old.png new file mode 100644 index 0000000..fb20893 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/screenshot.old.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/screenshot.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/screenshot.png new file mode 100644 index 0000000..d7bb693 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/screenshot.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/style_ashes.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/style_ashes.h new file mode 100644 index 0000000..9774760 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/style_ashes.h @@ -0,0 +1,565 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleAshes(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define ASHES_STYLE_PROPS_COUNT 16 + +// Custom style name: Ashes +static const GuiStyleProp ashesStyleProps[ASHES_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0xf0f0f0ff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0x868686ff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0xe6e6e6ff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0x929999ff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0xeaeaeaff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0x98a1a8ff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0x3f3f3fff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0xf6f6f6ff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0x414141ff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0x8b8b8bff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0x777777ff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0x959595ff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE + { 0, 18, (int)0x9dadb1ff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0x6b6b6bff }, // DEFAULT_BACKGROUND_COLOR + { 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING +}; + +// WARNING: This style uses a custom font: "v5loxical.ttf" (size: 16, spacing: 1) + +#define ASHES_STYLE_FONT_ATLAS_COMP_SIZE 1800 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char ashesFontData[ASHES_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0x9d, 0x51, 0xb6, 0xa4, 0x36, 0x0c, 0x44, 0xbd, 0xff, 0x4d, 0x57, 0xbe, 0x72, 0x32, 0xc9, 0x49, 0x83, 0x25, 0x97, 0xb0, + 0x0c, 0x77, 0xee, 0x5f, 0xbf, 0x1e, 0x1a, 0x5c, 0xc8, 0x06, 0xbb, 0x24, 0x6b, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0xfd, + 0xef, 0x27, 0xfa, 0xf9, 0x4d, 0x4d, 0x1f, 0xe7, 0xdf, 0x9f, 0xeb, 0xc7, 0x5f, 0x63, 0xc7, 0xd3, 0xf4, 0xef, 0x66, 0xfe, + 0xa2, 0xff, 0x3d, 0x3f, 0x2d, 0xff, 0xaa, 0xa6, 0xaf, 0xe6, 0xea, 0xbb, 0x57, 0xbf, 0xa9, 0xa6, 0xfa, 0xeb, 0xe2, 0x78, + 0xd7, 0x47, 0xd4, 0xc2, 0x3d, 0x31, 0xf7, 0xbb, 0xf3, 0x9a, 0xae, 0xb7, 0xe7, 0xaf, 0x7b, 0x6b, 0xfe, 0xbb, 0xf7, 0x6d, + 0x5c, 0xab, 0xff, 0x9f, 0xff, 0xc6, 0x8f, 0xbf, 0xe6, 0x34, 0xae, 0x89, 0xf4, 0xeb, 0x33, 0x95, 0x49, 0xed, 0xf9, 0xbb, + 0x56, 0x4b, 0xfd, 0x50, 0xe6, 0xe8, 0xf9, 0x33, 0x1e, 0x41, 0xb5, 0x74, 0x73, 0x17, 0x2a, 0x7c, 0xc4, 0xd5, 0xfe, 0x3c, + 0x13, 0xff, 0x5d, 0xf4, 0xcf, 0xdd, 0xcd, 0x6a, 0xa0, 0x7f, 0x46, 0x39, 0x19, 0xce, 0x54, 0xa6, 0xf1, 0xbf, 0x42, 0xfd, + 0xa8, 0xfe, 0x32, 0xb6, 0x80, 0x53, 0xff, 0x6c, 0xff, 0x9f, 0xe9, 0xff, 0x46, 0x13, 0x3d, 0x9f, 0xd7, 0x5f, 0x8f, 0xb7, + 0x80, 0x23, 0xfe, 0xc7, 0x6d, 0x6f, 0xab, 0x9b, 0xa7, 0x1a, 0xbd, 0x40, 0x7f, 0xc7, 0xfd, 0x9f, 0x1d, 0x29, 0xfb, 0x8e, + 0xff, 0x9a, 0xe8, 0xeb, 0xf4, 0x8a, 0xf8, 0x8f, 0x8f, 0x72, 0xf3, 0xef, 0x9b, 0x77, 0x23, 0xa5, 0xb6, 0x5f, 0x7b, 0xee, + 0x09, 0xe4, 0xef, 0xff, 0x77, 0x7e, 0xfc, 0x77, 0x19, 0x83, 0x76, 0x9d, 0xb7, 0xb6, 0xc6, 0x17, 0xfa, 0x7f, 0xe1, 0xfa, + 0x45, 0xcb, 0x73, 0x97, 0xa1, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xca, 0x59, + 0x10, 0x77, 0x22, 0x68, 0xd9, 0xe3, 0xe6, 0xf1, 0xdf, 0x2b, 0xdc, 0x02, 0x19, 0xdf, 0xfd, 0xaf, 0xf3, 0x8a, 0x7d, 0x7f, + 0x84, 0x3d, 0x75, 0x4a, 0xae, 0x83, 0x29, 0xed, 0xea, 0x5a, 0x77, 0xa8, 0x57, 0xac, 0x20, 0xe7, 0xbd, 0x76, 0x11, 0x8f, + 0xae, 0x4c, 0x3e, 0x2d, 0x99, 0x73, 0x54, 0xdc, 0xfa, 0x8f, 0xed, 0xfa, 0xab, 0xd4, 0x0f, 0xa2, 0x1b, 0xbf, 0xd9, 0x17, + 0xf4, 0xcf, 0x3a, 0x77, 0x23, 0xfd, 0xbc, 0xec, 0xde, 0xc9, 0xf8, 0xf9, 0xdd, 0xe7, 0x03, 0x7c, 0x51, 0xff, 0x11, 0x8e, + 0xdb, 0x78, 0x0f, 0x3b, 0x3b, 0x52, 0x6b, 0x63, 0xfc, 0x5f, 0x8d, 0xdb, 0x0a, 0x44, 0x4d, 0x54, 0x9d, 0xd8, 0xef, 0xfe, + 0x73, 0xae, 0xeb, 0x4f, 0x44, 0x4f, 0xe9, 0x3f, 0x16, 0x7d, 0x9c, 0xb2, 0xf5, 0x18, 0xd9, 0x71, 0xae, 0x5f, 0xfc, 0xbb, + 0x9f, 0xff, 0xea, 0xf4, 0x97, 0xc1, 0x8d, 0xa5, 0x52, 0x2f, 0x68, 0x26, 0x47, 0xe5, 0x3d, 0xfa, 0x67, 0xde, 0x70, 0x3c, + 0xc7, 0x39, 0xc1, 0x87, 0xfa, 0x05, 0xfd, 0x01, 0xfd, 0xf1, 0xa1, 0x67, 0x9e, 0xdb, 0xea, 0xe6, 0x7f, 0x14, 0xee, 0xaf, + 0xd1, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0xeb, 0xdb, 0xd9, 0x2a, + 0xe0, 0x8e, 0xef, 0x67, 0x7f, 0x41, 0x36, 0xc7, 0xa7, 0xcf, 0x3f, 0xfa, 0x7b, 0xfd, 0xd8, 0x91, 0xeb, 0x50, 0xa7, 0xff, + 0xb0, 0xbb, 0x68, 0xe3, 0x9e, 0xb4, 0x78, 0x7d, 0xfc, 0xd1, 0x4c, 0xff, 0x11, 0x68, 0x77, 0x15, 0xe6, 0x4c, 0xa0, 0x7f, + 0x7f, 0xfd, 0x7d, 0x95, 0x2f, 0xdf, 0xae, 0xff, 0x38, 0x4a, 0xff, 0xb5, 0x1d, 0x01, 0x5c, 0xfa, 0xe7, 0xfd, 0xed, 0xae, + 0x51, 0x70, 0x3d, 0xc7, 0x60, 0xa4, 0x77, 0x12, 0x72, 0xe9, 0x3f, 0x12, 0x79, 0x7f, 0x0e, 0x6f, 0xfc, 0x1b, 0xe2, 0x7f, + 0x18, 0xe2, 0x7f, 0x34, 0xed, 0xff, 0x87, 0xc9, 0x0f, 0x8a, 0xfe, 0xdf, 0xd6, 0xdf, 0x53, 0xfb, 0xf8, 0xbd, 0xfa, 0x77, + 0x7d, 0xfe, 0x43, 0xff, 0x13, 0xf5, 0x97, 0xed, 0xca, 0x7d, 0xfa, 0xaf, 0x66, 0x4d, 0x7a, 0x9e, 0xb4, 0x94, 0x7e, 0x6e, + 0x57, 0x38, 0x57, 0x2b, 0x9e, 0x7d, 0xea, 0xc8, 0x14, 0xbc, 0xab, 0x10, 0x11, 0x9b, 0x4d, 0x8a, 0x56, 0xd7, 0xa8, 0xd3, + 0xff, 0xcc, 0x8a, 0x25, 0xcc, 0xd0, 0x56, 0x64, 0xbb, 0xc0, 0x3b, 0xee, 0xf9, 0x2f, 0x46, 0x08, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xad, 0x84, 0xc7, 0x56, 0x23, 0x5d, 0x6b, 0xb9, 0xc3, 0xb2, 0xbb, 0x80, + 0x0c, 0xeb, 0xeb, 0x6b, 0xff, 0x5f, 0x7f, 0xac, 0x0c, 0xbb, 0x72, 0x1c, 0x1c, 0x9f, 0xcf, 0x3a, 0x1b, 0x32, 0xeb, 0x8b, + 0x55, 0x8e, 0x06, 0x25, 0x7c, 0xd1, 0x15, 0xeb, 0xe2, 0x0a, 0xaf, 0xc1, 0xef, 0xf2, 0x44, 0x2b, 0x78, 0x45, 0xb2, 0xac, + 0x51, 0x3a, 0x9c, 0xc4, 0x5a, 0x76, 0x0a, 0xc7, 0x7d, 0xc2, 0x2a, 0xb8, 0x0f, 0xcf, 0xd0, 0xdf, 0x3b, 0x86, 0x54, 0x45, + 0xae, 0x37, 0xfe, 0xb5, 0xa0, 0x7f, 0x74, 0x37, 0x1b, 0xf4, 0xf7, 0xe8, 0x1f, 0x7b, 0x12, 0xa9, 0xd3, 0x9f, 0xf8, 0xdf, + 0x17, 0xff, 0xab, 0x1e, 0x3e, 0xf4, 0xff, 0x86, 0xfe, 0x32, 0xd5, 0xe1, 0x46, 0xff, 0x75, 0x8f, 0x5a, 0xcc, 0x01, 0xeb, + 0x72, 0x0a, 0xf7, 0x89, 0xff, 0x61, 0xf3, 0x44, 0xfb, 0x2a, 0x88, 0x77, 0xe8, 0x17, 0x1c, 0xdf, 0xee, 0x3d, 0xfe, 0x3f, + 0xe9, 0x00, 0xee, 0xec, 0xf7, 0xac, 0xf4, 0xae, 0x76, 0xd1, 0xbf, 0x5e, 0x81, 0x73, 0xf5, 0x3f, 0x37, 0x47, 0xa0, 0x53, + 0xab, 0xa2, 0x7f, 0xff, 0xac, 0x0b, 0xa0, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, + 0x3c, 0xd3, 0x9d, 0xf3, 0x4f, 0xc8, 0xe4, 0x82, 0x88, 0xfa, 0x00, 0xc7, 0x74, 0x8d, 0x7c, 0xa5, 0x9c, 0xc7, 0xab, 0xbe, + 0x93, 0xbb, 0x56, 0x96, 0x71, 0x45, 0x42, 0x97, 0xad, 0x54, 0xeb, 0xcf, 0xda, 0x55, 0x1f, 0x3d, 0x53, 0xe3, 0x71, 0x25, + 0x0b, 0xc2, 0xed, 0x3b, 0x90, 0xcd, 0x19, 0xa3, 0xe0, 0xfa, 0xa5, 0xcb, 0x87, 0x9f, 0xd3, 0x3f, 0xee, 0x1a, 0xab, 0xfb, + 0xd4, 0x91, 0x8b, 0x94, 0xcd, 0x1b, 0x91, 0x6d, 0x2d, 0x5a, 0x97, 0xf9, 0x4f, 0xbb, 0xfa, 0xff, 0xea, 0xfa, 0xf8, 0x4f, + 0xea, 0x1f, 0xf7, 0x00, 0x5d, 0x8f, 0x5a, 0x6b, 0x3a, 0x5d, 0x1d, 0x4f, 0xcb, 0x57, 0xd9, 0x4f, 0x7f, 0x5f, 0x8d, 0x6f, + 0x6f, 0xcb, 0xdc, 0xab, 0xbc, 0x16, 0xd9, 0x91, 0xfe, 0x5f, 0xe1, 0xfe, 0xdf, 0x93, 0x59, 0x51, 0xef, 0x82, 0x7e, 0x7e, + 0x7f, 0x04, 0x19, 0x7a, 0xf9, 0xbb, 0x2c, 0x58, 0xa1, 0x7f, 0x59, 0x1e, 0x48, 0x07, 0xfd, 0xaf, 0x9f, 0xc7, 0x65, 0x75, + 0x24, 0xd5, 0x8e, 0xff, 0xf9, 0x7a, 0xda, 0xae, 0x3a, 0xe3, 0x8e, 0x7d, 0x53, 0x6a, 0xfa, 0xff, 0xda, 0xf8, 0x1f, 0x45, + 0xcf, 0xff, 0x9d, 0xbd, 0x8f, 0x2e, 0x27, 0xf8, 0xb3, 0xcf, 0x7f, 0x9e, 0xf7, 0x99, 0x7c, 0x66, 0x44, 0xec, 0xfd, 0xbf, + 0xb3, 0x03, 0xb2, 0xa7, 0xfe, 0xf1, 0x3d, 0x25, 0x73, 0xfd, 0xe6, 0xb7, 0x1d, 0xa9, 0xeb, 0x7b, 0x58, 0x56, 0xf6, 0x6d, + 0x78, 0x83, 0x4f, 0xbd, 0x63, 0xde, 0x97, 0x19, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x10, 0xf3, 0xc8, 0xac, 0xae, 0x38, 0x2b, 0x51, 0x01, 0xdc, 0xb7, 0x6e, 0x73, 0xe7, 0x2f, 0xd1, 0x42, 0x2d, 0xb7, 0x4c, + 0x1d, 0xe8, 0x2b, 0x77, 0x8c, 0x82, 0xde, 0x19, 0xdf, 0xba, 0x94, 0x16, 0xd5, 0xcf, 0xfa, 0xaa, 0x64, 0x73, 0xd1, 0x64, + 0xdc, 0x6d, 0x0a, 0xd6, 0x88, 0x9f, 0xcb, 0x36, 0xf1, 0xf9, 0x42, 0xee, 0xbd, 0xf3, 0x75, 0xeb, 0xa6, 0x0a, 0xc6, 0x81, + 0x42, 0x8e, 0xb3, 0xdf, 0x6d, 0xb5, 0x1e, 0x95, 0xeb, 0xfa, 0xe7, 0xe3, 0x5f, 0xb6, 0xba, 0xf6, 0x59, 0xfd, 0x73, 0x11, + 0xb2, 0x1e, 0xff, 0x4a, 0x65, 0xd0, 0x54, 0x79, 0x76, 0x56, 0xf5, 0x1f, 0x66, 0xfd, 0x9f, 0x8b, 0x7f, 0x6d, 0x18, 0xff, + 0xff, 0x1c, 0xa1, 0x64, 0xfb, 0xdd, 0x35, 0x9f, 0xe4, 0x1e, 0xfd, 0xb3, 0xde, 0x3f, 0xdd, 0xb8, 0x63, 0xf5, 0xa8, 0xb7, + 0x25, 0xdb, 0x83, 0xa8, 0xa1, 0x2f, 0xe6, 0x2e, 0xef, 0xac, 0x87, 0xc3, 0x71, 0xfd, 0x09, 0x7c, 0xa5, 0x87, 0x5c, 0xbd, + 0x6b, 0x9c, 0xfa, 0xbb, 0xbc, 0xab, 0xb3, 0xb1, 0x87, 0xfe, 0xde, 0xf7, 0xc7, 0x7e, 0xf1, 0x7f, 0xed, 0xbb, 0xed, 0xad, + 0x7f, 0xec, 0xfd, 0x4f, 0x9b, 0x5b, 0xb9, 0xa3, 0x3f, 0x59, 0xa9, 0x27, 0xd0, 0x3e, 0xfa, 0xef, 0x3a, 0xd6, 0xdb, 0xe7, + 0xb6, 0xba, 0xe8, 0x7f, 0x37, 0xff, 0x73, 0x5a, 0xc6, 0xc6, 0x49, 0xfa, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x71, 0x8d, 0x74, 0x76, 0x95, 0x51, 0x41, 0x27, 0xf1, 0x75, 0xa5, 0xb4, 0xeb, 0x7c, + 0x82, 0xaa, 0xab, 0x58, 0xdd, 0x1f, 0x3e, 0x5a, 0x1b, 0x55, 0x41, 0xb7, 0xa3, 0x4b, 0xab, 0xbc, 0x13, 0x53, 0x26, 0xef, + 0xab, 0xaf, 0xf2, 0xbf, 0xfb, 0x2a, 0x66, 0x75, 0x55, 0xc0, 0xd5, 0xee, 0x69, 0x4b, 0xd7, 0x55, 0xf6, 0xf1, 0x66, 0x0d, + 0xa3, 0xfe, 0xa7, 0xf6, 0xbc, 0xfb, 0x3d, 0x48, 0x6a, 0xf4, 0x79, 0x56, 0xff, 0xf8, 0x78, 0xb1, 0x3a, 0xbe, 0xac, 0xef, + 0x38, 0xa2, 0xcb, 0x2c, 0x98, 0xca, 0xb6, 0xf7, 0xf7, 0xcf, 0xbe, 0xcf, 0x65, 0xcb, 0x19, 0x74, 0xd6, 0x05, 0xf7, 0xeb, + 0xbf, 0xaf, 0x8d, 0x7b, 0xeb, 0xbf, 0x53, 0x67, 0xf4, 0x47, 0xff, 0xaf, 0xe9, 0x1f, 0xab, 0xb4, 0x5f, 0xff, 0x79, 0x4e, + 0xb7, 0xda, 0xd1, 0x9f, 0xf8, 0x27, 0xfe, 0xd1, 0xff, 0xc9, 0xcf, 0x63, 0x11, 0x7a, 0xaa, 0xfe, 0x2a, 0x9d, 0x33, 0x39, + 0x51, 0x7f, 0x5f, 0xde, 0x6d, 0x7f, 0xfd, 0x77, 0x69, 0x72, 0xb6, 0xfe, 0xe3, 0x35, 0xf1, 0x8f, 0xfe, 0xbe, 0x7a, 0x05, + 0xe7, 0xcd, 0xff, 0xe4, 0xb3, 0xd6, 0x9d, 0xf3, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x5e, 0xff, 0xbf, 0xc2, 0xf3, 0xf6, 0x19, 0x27, 0x7a, 0xa5, 0x3f, 0x7f, 0x7e, 0x96, 0x5d, 0xa9, 0x19, 0xfa, 0xbd, 0x79, + 0x10, 0xb3, 0xd7, 0x91, 0x5d, 0x4d, 0x89, 0xd7, 0xac, 0x8e, 0xfa, 0x70, 0xea, 0xfd, 0xf9, 0x91, 0xbd, 0x0a, 0x1c, 0xfb, + 0x0e, 0x54, 0xe7, 0x41, 0x64, 0xf2, 0x51, 0x9e, 0xf2, 0x92, 0x5f, 0x57, 0x54, 0xed, 0xbc, 0xe2, 0x94, 0xe9, 0x3f, 0xb4, + 0xd1, 0x7f, 0x1f, 0xd5, 0x3f, 0xb7, 0x03, 0x80, 0xc2, 0x3d, 0xa5, 0xc2, 0xeb, 0x96, 0x3d, 0x56, 0x93, 0xcf, 0xa9, 0x91, + 0xaa, 0x54, 0xfc, 0xfb, 0x22, 0x22, 0x33, 0xfe, 0x9f, 0xa1, 0xbf, 0x8e, 0xca, 0x83, 0x89, 0xfa, 0xdd, 0x54, 0xac, 0x7f, + 0xd6, 0xb7, 0x70, 0x46, 0xfc, 0xf7, 0xf1, 0x9d, 0xe6, 0x47, 0x2a, 0xa1, 0xff, 0xad, 0xbe, 0xda, 0xe2, 0x20, 0x8a, 0x3b, + 0x5a, 0xd1, 0x3f, 0xf2, 0x16, 0xb5, 0xa2, 0x7f, 0x3f, 0x1f, 0x5c, 0xf6, 0xfd, 0xef, 0x9b, 0xfa, 0xaf, 0xc6, 0xff, 0x69, + 0x3e, 0xc8, 0xd8, 0x5e, 0x8b, 0x4f, 0xe9, 0xaf, 0x03, 0xf4, 0x57, 0xab, 0x11, 0xca, 0xe9, 0x83, 0xd5, 0x03, 0xcf, 0xff, + 0xf1, 0x99, 0xc4, 0x8e, 0xf1, 0x7f, 0xbe, 0xfe, 0x4f, 0xec, 0x90, 0xe8, 0xd9, 0xcf, 0xed, 0x0c, 0xfd, 0xbb, 0xbd, 0xff, + 0x79, 0xe7, 0x92, 0x9c, 0xf3, 0x3f, 0x67, 0x55, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x72, 0x0e, 0xc0, 0xaa, 0x03, 0x5f, 0xcb, 0x2b, 0x55, 0x0a, 0x38, 0xf8, 0xd5, 0xc8, 0xbf, 0x3f, 0x26, 0x6b, 0x2c, + 0x57, 0x9c, 0xad, 0xa7, 0x5a, 0x7a, 0x55, 0x85, 0xfc, 0x61, 0xa9, 0x92, 0x1f, 0x73, 0x1f, 0x3f, 0xed, 0xdf, 0x5f, 0x5b, + 0x11, 0xdf, 0x9d, 0x0f, 0x51, 0xe1, 0x25, 0x7e, 0x3e, 0x1f, 0x61, 0xa7, 0x7f, 0xff, 0xae, 0x5a, 0xb9, 0x36, 0x65, 0x1b, + 0xb0, 0x1a, 0xda, 0x3d, 0xdb, 0xa4, 0x53, 0xfe, 0x9f, 0x67, 0xa5, 0x7d, 0x35, 0x4f, 0x49, 0x8b, 0x3d, 0xea, 0x2e, 0x87, + 0x81, 0x8e, 0xf5, 0x43, 0x7b, 0x8f, 0xfc, 0x8c, 0xfe, 0xe7, 0xf8, 0xb4, 0xd0, 0x1f, 0xfd, 0xd1, 0xff, 0xcb, 0xfa, 0xeb, + 0x00, 0xfd, 0x3d, 0xfb, 0x36, 0xa0, 0x7f, 0x27, 0x3f, 0x74, 0x34, 0xfe, 0x87, 0x25, 0xc3, 0x1c, 0xfd, 0xbb, 0xf8, 0xa1, + 0xd1, 0xbf, 0x4f, 0x9e, 0x46, 0x6f, 0xfd, 0xcf, 0x7b, 0xff, 0x1b, 0xc5, 0xb5, 0xd1, 0xdf, 0xe3, 0x87, 0x67, 0x0e, 0x88, + 0xf9, 0x27, 0x40, 0x7f, 0xf8, 0xa2, 0xf6, 0xa8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x7a, 0x16, + 0x01, 0xfd, 0x01, 0x00, 0x80, 0xfe, 0x1f, 0xd0, 0x1f, 0xd0, 0x1f, 0xd0, 0x1f, 0xd0, 0x1f, 0xd0, 0x1f, 0xd0, 0x1f, 0xb2, + 0x15, 0x0d, 0x68, 0x07, 0x7a, 0x01, 0x40, 0x7f, 0xc0, 0x39, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xbb, 0x01, 0xfd, 0x61, 0xab, 0xfe, 0x7f, 0x01 }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle ashesFontRecs[189] = { + { 4, 4, 4 , 16 }, + { 16, 4, 1 , 10 }, + { 25, 4, 3 , 3 }, + { 36, 4, 6 , 8 }, + { 50, 4, 5 , 11 }, + { 63, 4, 7 , 8 }, + { 78, 4, 6 , 9 }, + { 92, 4, 1 , 3 }, + { 101, 4, 3 , 12 }, + { 112, 4, 3 , 12 }, + { 123, 4, 5 , 5 }, + { 136, 4, 5 , 5 }, + { 149, 4, 2 , 2 }, + { 159, 4, 4 , 1 }, + { 171, 4, 1 , 1 }, + { 180, 4, 5 , 10 }, + { 193, 4, 4 , 8 }, + { 205, 4, 2 , 8 }, + { 215, 4, 4 , 8 }, + { 227, 4, 4 , 8 }, + { 239, 4, 6 , 8 }, + { 4, 28, 4 , 8 }, + { 16, 28, 4 , 8 }, + { 28, 28, 4 , 8 }, + { 40, 28, 4 , 8 }, + { 52, 28, 4 , 8 }, + { 64, 28, 1 , 5 }, + { 73, 28, 2 , 6 }, + { 83, 28, 4 , 7 }, + { 95, 28, 4 , 4 }, + { 107, 28, 4 , 7 }, + { 119, 28, 4 , 10 }, + { 131, 28, 8 , 7 }, + { 147, 28, 4 , 10 }, + { 159, 28, 4 , 10 }, + { 171, 28, 4 , 10 }, + { 183, 28, 4 , 10 }, + { 195, 28, 4 , 10 }, + { 207, 28, 5 , 10 }, + { 220, 28, 4 , 10 }, + { 232, 28, 4 , 10 }, + { 244, 28, 1 , 10 }, + { 4, 52, 3 , 10 }, + { 15, 52, 4 , 10 }, + { 27, 52, 4 , 10 }, + { 39, 52, 7 , 10 }, + { 54, 52, 4 , 10 }, + { 66, 52, 4 , 10 }, + { 78, 52, 4 , 10 }, + { 90, 52, 5 , 11 }, + { 103, 52, 4 , 10 }, + { 115, 52, 4 , 10 }, + { 127, 52, 5 , 10 }, + { 140, 52, 4 , 10 }, + { 152, 52, 4 , 10 }, + { 164, 52, 7 , 10 }, + { 179, 52, 4 , 10 }, + { 191, 52, 4 , 10 }, + { 203, 52, 4 , 10 }, + { 215, 52, 2 , 12 }, + { 225, 52, 5 , 10 }, + { 238, 52, 2 , 12 }, + { 4, 76, 5 , 3 }, + { 17, 76, 5 , 1 }, + { 30, 76, 2 , 2 }, + { 40, 76, 4 , 8 }, + { 52, 76, 4 , 10 }, + { 64, 76, 3 , 8 }, + { 75, 76, 4 , 10 }, + { 87, 76, 4 , 8 }, + { 99, 76, 3 , 10 }, + { 110, 76, 5 , 11 }, + { 123, 76, 4 , 10 }, + { 135, 76, 1 , 10 }, + { 144, 76, 3 , 13 }, + { 155, 76, 4 , 10 }, + { 167, 76, 2 , 10 }, + { 177, 76, 7 , 8 }, + { 192, 76, 4 , 8 }, + { 204, 76, 4 , 8 }, + { 216, 76, 4 , 11 }, + { 228, 76, 4 , 11 }, + { 240, 76, 3 , 8 }, + { 4, 100, 4 , 8 }, + { 16, 100, 3 , 10 }, + { 27, 100, 4 , 8 }, + { 39, 100, 5 , 8 }, + { 52, 100, 7 , 8 }, + { 67, 100, 4 , 8 }, + { 79, 100, 4 , 11 }, + { 91, 100, 4 , 8 }, + { 103, 100, 4 , 12 }, + { 115, 100, 1 , 10 }, + { 124, 100, 4 , 12 }, + { 136, 100, 4 , 2 }, + { 148, 100, 1 , 10 }, + { 157, 100, 4 , 12 }, + { 169, 100, 5 , 10 }, + { 182, 100, 5 , 10 }, + { 195, 100, 5 , 10 }, + { 208, 100, 0 , 0 }, + { 216, 100, 4 , 10 }, + { 228, 100, 0 , 0 }, + { 236, 100, 7 , 9 }, + { 4, 124, 3 , 7 }, + { 15, 124, 6 , 5 }, + { 29, 124, 0 , 0 }, + { 37, 124, 7 , 9 }, + { 52, 124, 4 , 1 }, + { 64, 124, 3 , 5 }, + { 75, 124, 5 , 7 }, + { 88, 124, 3 , 5 }, + { 99, 124, 0 , 0 }, + { 107, 124, 0 , 0 }, + { 115, 124, 4 , 11 }, + { 127, 124, 6 , 10 }, + { 141, 124, 3 , 3 }, + { 152, 124, 0 , 0 }, + { 160, 124, 2 , 5 }, + { 170, 124, 3 , 5 }, + { 181, 124, 6 , 5 }, + { 195, 124, 7 , 10 }, + { 210, 124, 7 , 8 }, + { 225, 124, 0 , 0 }, + { 233, 124, 4 , 10 }, + { 4, 148, 4 , 13 }, + { 16, 148, 4 , 13 }, + { 28, 148, 4 , 13 }, + { 40, 148, 4 , 13 }, + { 52, 148, 4 , 13 }, + { 64, 148, 4 , 13 }, + { 76, 148, 7 , 10 }, + { 91, 148, 4 , 13 }, + { 103, 148, 4 , 13 }, + { 115, 148, 4 , 13 }, + { 127, 148, 4 , 13 }, + { 139, 148, 4 , 13 }, + { 151, 148, 2 , 13 }, + { 161, 148, 2 , 13 }, + { 171, 148, 3 , 13 }, + { 182, 148, 3 , 13 }, + { 193, 148, 5 , 10 }, + { 206, 148, 4 , 13 }, + { 218, 148, 4 , 13 }, + { 230, 148, 4 , 13 }, + { 242, 148, 4 , 13 }, + { 4, 172, 4 , 13 }, + { 16, 172, 4 , 13 }, + { 28, 172, 5 , 5 }, + { 41, 172, 6 , 12 }, + { 55, 172, 4 , 13 }, + { 67, 172, 4 , 13 }, + { 79, 172, 4 , 13 }, + { 91, 172, 4 , 13 }, + { 103, 172, 4 , 13 }, + { 115, 172, 0 , 0 }, + { 123, 172, 5 , 12 }, + { 136, 172, 4 , 12 }, + { 148, 172, 4 , 12 }, + { 160, 172, 4 , 12 }, + { 172, 172, 4 , 12 }, + { 184, 172, 4 , 12 }, + { 196, 172, 4 , 12 }, + { 208, 172, 7 , 8 }, + { 223, 172, 3 , 11 }, + { 234, 172, 4 , 12 }, + { 4, 196, 4 , 12 }, + { 16, 196, 4 , 12 }, + { 28, 196, 4 , 12 }, + { 40, 196, 3 , 12 }, + { 51, 196, 3 , 12 }, + { 62, 196, 3 , 12 }, + { 73, 196, 3 , 12 }, + { 84, 196, 0 , 0 }, + { 92, 196, 4 , 12 }, + { 104, 196, 4 , 12 }, + { 116, 196, 4 , 12 }, + { 128, 196, 4 , 12 }, + { 140, 196, 4 , 12 }, + { 152, 196, 4 , 12 }, + { 164, 196, 5 , 5 }, + { 177, 196, 6 , 10 }, + { 191, 196, 4 , 12 }, + { 203, 196, 4 , 12 }, + { 215, 196, 4 , 12 }, + { 227, 196, 4 , 12 }, + { 239, 196, 4 , 15 }, + { 4, 220, 0 , 0 }, + { 12, 220, 4 , 15 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo ashesFontGlyphs[189] = { + { 32, 0, 0, 4, { 0 }}, + { 33, 0, 3, 4, { 0 }}, + { 34, 0, 1, 5, { 0 }}, + { 35, 0, 4, 8, { 0 }}, + { 36, 0, 2, 7, { 0 }}, + { 37, 0, 5, 9, { 0 }}, + { 38, 0, 4, 8, { 0 }}, + { 39, 0, 1, 3, { 0 }}, + { 40, 0, 2, 5, { 0 }}, + { 41, 0, 2, 5, { 0 }}, + { 42, 0, 3, 7, { 0 }}, + { 43, 0, 6, 7, { 0 }}, + { 44, 0, 12, 4, { 0 }}, + { 45, 0, 9, 5, { 0 }}, + { 46, 0, 12, 3, { 0 }}, + { 47, 0, 3, 7, { 0 }}, + { 48, 0, 5, 6, { 0 }}, + { 49, 0, 5, 4, { 0 }}, + { 50, 0, 5, 6, { 0 }}, + { 51, 0, 5, 6, { 0 }}, + { 52, 0, 5, 8, { 0 }}, + { 53, 0, 5, 6, { 0 }}, + { 54, 0, 5, 6, { 0 }}, + { 55, 0, 5, 6, { 0 }}, + { 56, 0, 5, 6, { 0 }}, + { 57, 0, 5, 6, { 0 }}, + { 58, 0, 8, 3, { 0 }}, + { 59, 0, 8, 4, { 0 }}, + { 60, 0, 5, 6, { 0 }}, + { 61, 0, 7, 7, { 0 }}, + { 62, 0, 5, 6, { 0 }}, + { 63, 1, 3, 7, { 0 }}, + { 64, 0, 5, 10, { 0 }}, + { 65, 0, 3, 6, { 0 }}, + { 66, 0, 3, 6, { 0 }}, + { 67, 0, 3, 6, { 0 }}, + { 68, 0, 3, 6, { 0 }}, + { 69, 0, 3, 6, { 0 }}, + { 70, 0, 3, 6, { 0 }}, + { 71, 0, 3, 6, { 0 }}, + { 72, 0, 3, 6, { 0 }}, + { 73, 0, 3, 3, { 0 }}, + { 74, 0, 3, 5, { 0 }}, + { 75, 0, 3, 6, { 0 }}, + { 76, 0, 3, 6, { 0 }}, + { 77, 0, 3, 9, { 0 }}, + { 78, 0, 3, 6, { 0 }}, + { 79, 0, 3, 6, { 0 }}, + { 80, 0, 3, 6, { 0 }}, + { 81, 0, 3, 7, { 0 }}, + { 82, 0, 3, 6, { 0 }}, + { 83, 0, 3, 6, { 0 }}, + { 84, 0, 3, 6, { 0 }}, + { 85, 0, 3, 6, { 0 }}, + { 86, 0, 3, 6, { 0 }}, + { 87, 0, 3, 9, { 0 }}, + { 88, 0, 3, 6, { 0 }}, + { 89, 0, 3, 6, { 0 }}, + { 90, 0, 3, 6, { 0 }}, + { 91, 0, 2, 4, { 0 }}, + { 92, 0, 3, 7, { 0 }}, + { 93, 0, 2, 4, { 0 }}, + { 94, 0, 3, 7, { 0 }}, + { 95, 0, 12, 7, { 0 }}, + { 96, 0, 1, 4, { 0 }}, + { 97, 0, 5, 6, { 0 }}, + { 98, 0, 3, 6, { 0 }}, + { 99, 0, 5, 5, { 0 }}, + { 100, 0, 3, 6, { 0 }}, + { 101, 0, 5, 6, { 0 }}, + { 102, 0, 3, 5, { 0 }}, + { 103, 0, 5, 6, { 0 }}, + { 104, 0, 3, 6, { 0 }}, + { 105, 0, 3, 3, { 0 }}, + { 106, 0, 3, 5, { 0 }}, + { 107, 0, 3, 6, { 0 }}, + { 108, 0, 3, 4, { 0 }}, + { 109, 0, 5, 9, { 0 }}, + { 110, 0, 5, 6, { 0 }}, + { 111, 0, 5, 6, { 0 }}, + { 112, 0, 5, 6, { 0 }}, + { 113, 0, 5, 6, { 0 }}, + { 114, 0, 5, 5, { 0 }}, + { 115, 0, 5, 6, { 0 }}, + { 116, 0, 3, 5, { 0 }}, + { 117, 0, 5, 6, { 0 }}, + { 118, 0, 5, 7, { 0 }}, + { 119, 0, 5, 9, { 0 }}, + { 120, 0, 5, 6, { 0 }}, + { 121, 0, 5, 6, { 0 }}, + { 122, 0, 5, 6, { 0 }}, + { 123, 0, 2, 6, { 0 }}, + { 124, 0, 3, 3, { 0 }}, + { 125, 0, 2, 6, { 0 }}, + { 126, 0, 1, 6, { 0 }}, + { 161, 0, 4, 4, { 0 }}, + { 162, 0, 3, 6, { 0 }}, + { 163, 0, 3, 7, { 0 }}, + { 8364, 0, 3, 7, { 0 }}, + { 165, 0, 3, 7, { 0 }}, + { 352, 0, 0, 0, { 0 }}, + { 167, 0, 3, 6, { 0 }}, + { 353, 0, 0, 0, { 0 }}, + { 169, 0, 1, 9, { 0 }}, + { 170, 0, 1, 5, { 0 }}, + { 171, 0, 6, 8, { 0 }}, + { 172, 0, 0, 0, { 0 }}, + { 174, 0, 1, 9, { 0 }}, + { 175, 0, 0, 6, { 0 }}, + { 176, 0, 1, 5, { 0 }}, + { 177, 0, 5, 7, { 0 }}, + { 178, 0, 1, 5, { 0 }}, + { 179, 0, 0, 0, { 0 }}, + { 381, 0, 0, 0, { 0 }}, + { 181, 0, 5, 6, { 0 }}, + { 182, 0, 3, 8, { 0 }}, + { 183, 0, 7, 5, { 0 }}, + { 382, 0, 0, 0, { 0 }}, + { 185, 0, 1, 4, { 0 }}, + { 186, 0, 1, 5, { 0 }}, + { 187, 0, 6, 8, { 0 }}, + { 338, 0, 3, 9, { 0 }}, + { 339, 0, 5, 9, { 0 }}, + { 376, 0, 0, 0, { 0 }}, + { 191, 0, 4, 6, { 0 }}, + { 192, 0, 0, 6, { 0 }}, + { 193, 0, 0, 6, { 0 }}, + { 194, 0, 0, 6, { 0 }}, + { 195, 0, 0, 6, { 0 }}, + { 196, 0, 0, 6, { 0 }}, + { 197, 0, 0, 6, { 0 }}, + { 198, 0, 3, 9, { 0 }}, + { 199, 0, 3, 6, { 0 }}, + { 200, 0, 0, 6, { 0 }}, + { 201, 0, 0, 6, { 0 }}, + { 202, 0, 0, 6, { 0 }}, + { 203, 0, 0, 6, { 0 }}, + { 204, 0, 0, 4, { 0 }}, + { 205, 0, 0, 4, { 0 }}, + { 206, 0, 0, 5, { 0 }}, + { 207, 0, 0, 5, { 0 }}, + { 208, 0, 3, 7, { 0 }}, + { 209, 0, 0, 6, { 0 }}, + { 210, 0, 0, 6, { 0 }}, + { 211, 0, 0, 6, { 0 }}, + { 212, 0, 0, 6, { 0 }}, + { 213, 0, 0, 6, { 0 }}, + { 214, 0, 0, 6, { 0 }}, + { 215, 0, 7, 7, { 0 }}, + { 216, 0, 2, 8, { 0 }}, + { 217, 0, 0, 6, { 0 }}, + { 218, 0, 0, 6, { 0 }}, + { 219, 0, 0, 6, { 0 }}, + { 220, 0, 0, 6, { 0 }}, + { 221, 0, 0, 6, { 0 }}, + { 222, 0, 0, 0, { 0 }}, + { 223, 0, 3, 7, { 0 }}, + { 224, 0, 1, 6, { 0 }}, + { 225, 0, 1, 6, { 0 }}, + { 226, 0, 1, 6, { 0 }}, + { 227, 0, 1, 6, { 0 }}, + { 228, 0, 1, 6, { 0 }}, + { 229, 0, 1, 6, { 0 }}, + { 230, 0, 5, 9, { 0 }}, + { 231, 0, 5, 5, { 0 }}, + { 232, 0, 1, 6, { 0 }}, + { 233, 0, 1, 6, { 0 }}, + { 234, 0, 1, 6, { 0 }}, + { 235, 0, 1, 6, { 0 }}, + { 236, 0, 1, 5, { 0 }}, + { 237, 0, 1, 5, { 0 }}, + { 238, 0, 1, 5, { 0 }}, + { 239, 0, 1, 5, { 0 }}, + { 240, 0, 0, 0, { 0 }}, + { 241, 0, 1, 6, { 0 }}, + { 242, 0, 1, 6, { 0 }}, + { 243, 0, 1, 6, { 0 }}, + { 244, 0, 1, 6, { 0 }}, + { 245, 0, 1, 6, { 0 }}, + { 246, 0, 1, 6, { 0 }}, + { 247, 0, 7, 7, { 0 }}, + { 248, 0, 4, 8, { 0 }}, + { 249, 0, 1, 6, { 0 }}, + { 250, 0, 1, 6, { 0 }}, + { 251, 0, 1, 6, { 0 }}, + { 252, 0, 1, 6, { 0 }}, + { 253, 0, 1, 6, { 0 }}, + { 254, 0, 0, 0, { 0 }}, + { 255, 0, 1, 6, { 0 }}, +}; + +// Style loading function: Ashes +static void GuiLoadStyleAshes(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < ASHES_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(ashesStyleProps[i].controlId, ashesStyleProps[i].propertyId, ashesStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int ashesFontDataSize = 0; + unsigned char *data = DecompressData(ashesFontData, ASHES_STYLE_FONT_ATLAS_COMP_SIZE, &ashesFontDataSize); + Image imFont = { data, 256, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 16; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, ashesFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, ashesFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 254, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/style_ashes.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/style_ashes.png new file mode 100644 index 0000000..2094965 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/style_ashes.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/style_ashes.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/style_ashes.rgs new file mode 100644 index 0000000..56fb93b Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/style_ashes.rgs differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/style_ashes.txt.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/style_ashes.txt.rgs new file mode 100644 index 0000000..c66a8b4 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/style_ashes.txt.rgs @@ -0,0 +1,26 @@ +# +# rgs style text file (v4.0) - raygui style file generated using rGuiStyler +# +# Provided info: +# f fontGenSize charsetFileName fontFileName +# p Property description +# +# WARNING: This style uses a custom font, must be provided with style file +# +f 16 charset.txt v5loxical.ttf +p 00 00 0xf0f0f0ff DEFAULT_BORDER_COLOR_NORMAL +p 00 01 0x868686ff DEFAULT_BASE_COLOR_NORMAL +p 00 02 0xe6e6e6ff DEFAULT_TEXT_COLOR_NORMAL +p 00 03 0x929999ff DEFAULT_BORDER_COLOR_FOCUSED +p 00 04 0xeaeaeaff DEFAULT_BASE_COLOR_FOCUSED +p 00 05 0x98a1a8ff DEFAULT_TEXT_COLOR_FOCUSED +p 00 06 0x3f3f3fff DEFAULT_BORDER_COLOR_PRESSED +p 00 07 0xf6f6f6ff DEFAULT_BASE_COLOR_PRESSED +p 00 08 0x414141ff DEFAULT_TEXT_COLOR_PRESSED +p 00 09 0x8b8b8bff DEFAULT_BORDER_COLOR_DISABLED +p 00 10 0x777777ff DEFAULT_BASE_COLOR_DISABLED +p 00 11 0x959595ff DEFAULT_TEXT_COLOR_DISABLED +p 00 16 0x00000010 TEXT_SIZE +p 00 18 0x9dadb1ff LINE_COLOR +p 00 19 0x6b6b6bff BACKGROUND_COLOR +p 00 20 0x00000018 TEXT_LINE_SPACING diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/v5loxical.ttf b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/v5loxical.ttf new file mode 100644 index 0000000..61501cb Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/ashes/v5loxical.ttf differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/README.md b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/README.md new file mode 100644 index 0000000..c8390b3 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/README.md @@ -0,0 +1,27 @@ +## style: bluish + +Like a breeze, a slight touch of color cover the clear sky, a spacious and relaxing feeling. + +![bluish style table](style_bluish.png) + +## style: provided files + +Several options are provided to add the style to a `raygui` application, choose the one that better fits the project. + +| file name | description | +| :-------- | :---------- | +| `style_bluish.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) | +| `style_bluish.txt.rgs` | Text style file, no font data, requires external font provided | +| `style_bluish.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) | +| `style_bluish.h` | Embeddable style as code file, self-contained, includes font data | +| `style_bluish.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data | + +## screenshot + +![bluish style screen](screenshot.png) + +## about font + +"Homespun BRK" font by AEnigma (Brian Kent). + +100% free font, downloaded from dafont.com: [homespun-brk](https://www.dafont.com/homespun-brk.font) diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/charset.txt b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/charset.txt new file mode 100644 index 0000000..611a673 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/charset.txt @@ -0,0 +1 @@ + !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/font_readme.txt b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/font_readme.txt new file mode 100644 index 0000000..8dd9bdc --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/font_readme.txt @@ -0,0 +1,76 @@ +_______________________________ +Homespun Created by Brian Kent + +Thanks for Downloading Homespun. + +Homespun TT [.ttf] +Homespun [8pt] [.fon] + + + 'homespun.fon' is a Windows Bitmap Font (.fon). This font is best +used at 8pt. To use it at larger point sizes (for images), try using +a graphics program like Photoshop, Paint Shop Pro, or the Paint +program that comes with Windows. Type out your text at the recommended +point size [8pt], then resize the image. Set the color mode to 256 +or 2 colors so the edges don't get blured when resizing, then after you +have the text to the size that you want, then change back to a higher +color mode and edit the image. + + For programs that don't show Bitmap Fonts in the Font Selector, you +may be able to get the font to work by typing in: +homespun brk + + When using the TTF version, try using it with anti-aliasing off. + + +If you have any questions or comments, you can e-mail me at +kentpw@norwich.net + +You can visit my Webpage at +http://www.aenigmafonts.com/ + +________________ +INSTALLING FONTS + + There's a couple of ways to install Fonts. The 'easy' way to +install fonts is to just Unzip/place the font file [.ttf] into your +Windows\Fonts directory (I always use this method). If you're unable +to do it the 'easy' way, then try to do it this way (for Windows +95/98/NT): + +1] Unzip the Font(s) to a folder (or somewhere, just remember where +you unzipped it) on your Computer. + +2] Next, click on the START button, then select SETTINGS then +CONTROL PANEL. + +3] When the Control Panel Window pops up, Double Click on FONTS. + +4] When the FONTS window pops up, select File then Install New Font... + +5] A Add Fonts window will pop up, just go to the folder that you +unzipped the Font(s) to, select the Font(s) and then click on OK. +Now the Font(s) are installed. + + Now you can use the Font(s) in programs that utilize Fonts. Make +sure that you install the font(s) first, then open up your apps +(so the app will recognize the font). Sometimes you'll have to +wait until your computer 'auto-refreshes' for programs to recognize +fonts (Windows is sometimes slow to do that). You can refresh your +computer quicker by going into Windows Explorer -or- My Computer and +press F5 (or in the menubar select VIEW then REFRESH). + + +__________ +DISCLAIMER + +-The font(s) in this zip file were created by me (Brian Kent). All +of my Fonts are Freeware, you can use them any way you want to +(Personal use, Commercial use, or whatever). + +-If you have a Font related site and would like to offer my fonts on +your site, go right ahead. All I ask is that you keep this text file +intact with the Font. + +-You may not Sell or Distribute my Fonts for profit or alter them in +any way without asking me first. [e-mail - kentpw@norwich.net] diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/homespun.ttf b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/homespun.ttf new file mode 100644 index 0000000..45c23e0 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/homespun.ttf differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/screenshot.old.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/screenshot.old.png new file mode 100644 index 0000000..ac09b88 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/screenshot.old.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/screenshot.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/screenshot.png new file mode 100644 index 0000000..0623192 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/screenshot.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/style_bluish.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/style_bluish.h new file mode 100644 index 0000000..d95ab8c --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/style_bluish.h @@ -0,0 +1,610 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleBluish(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define BLUISH_STYLE_PROPS_COUNT 14 + +// Custom style name: Bluish +static const GuiStyleProp bluishStyleProps[BLUISH_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0x5ca6a6ff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0xb4e8f3ff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0x447e77ff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0x5f8792ff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0xcdeff7ff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0x4c6c74ff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0x3b5b5fff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0xeaffffff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0x275057ff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0x96aaacff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0xc8d7d9ff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0x8c9c9eff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 18, (int)0x84adb7ff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0xe8eef1ff }, // DEFAULT_BACKGROUND_COLOR +}; + +// WARNING: This style uses a custom font: "homespun.ttf" (size: 10, spacing: 1) + +#define BLUISH_STYLE_FONT_ATLAS_COMP_SIZE 2730 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char bluishFontData[BLUISH_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0x9d, 0xdb, 0x92, 0xdb, 0x38, 0x0c, 0x44, 0x45, 0xee, 0xff, 0xff, 0xf1, 0x90, 0xdc, 0xca, 0xc8, 0x33, 0xa9, 0x4d, 0xd4, + 0x10, 0x01, 0x41, 0x17, 0xef, 0x9c, 0x9c, 0x4a, 0x1e, 0x44, 0x8b, 0x26, 0x09, 0x4a, 0x76, 0x84, 0x76, 0x63, 0x2c, 0x00, + 0x00, 0x00, 0x00, 0x7f, 0x51, 0xc5, 0xb1, 0x2a, 0x5f, 0x5d, 0x1d, 0x3d, 0xad, 0xc7, 0xab, 0xd1, 0xee, 0xeb, 0xad, 0x3a, + 0x7a, 0xb0, 0x5a, 0xec, 0xb6, 0x3f, 0x29, 0x2f, 0x32, 0x56, 0xb6, 0x7e, 0xaf, 0xc7, 0xf6, 0x2a, 0x79, 0x5e, 0x5f, 0x5d, + 0xb3, 0xd8, 0x66, 0x88, 0x63, 0x7d, 0x73, 0xbe, 0x63, 0x14, 0xd1, 0x52, 0xc7, 0x10, 0xe3, 0x19, 0x9f, 0x67, 0x6d, 0xf7, + 0x68, 0x9d, 0xb5, 0xf5, 0x1e, 0x6d, 0xa3, 0x8f, 0x26, 0x77, 0xc5, 0xaf, 0x77, 0x54, 0x2b, 0xd4, 0x45, 0x3c, 0xc7, 0xe6, + 0x6b, 0x57, 0xca, 0xd4, 0xab, 0xad, 0x77, 0x18, 0xa3, 0x8d, 0xf6, 0x5a, 0x8f, 0x3f, 0x67, 0x31, 0x5c, 0xaf, 0xd7, 0x2d, + 0xc7, 0xe3, 0xdf, 0x3f, 0xc7, 0x53, 0x36, 0xae, 0x83, 0x5f, 0xd1, 0xea, 0x22, 0x5e, 0x6a, 0x3c, 0xeb, 0xca, 0x95, 0xcd, + 0x1e, 0xad, 0xb3, 0x96, 0xe9, 0xd5, 0xde, 0x3e, 0x7f, 0x1d, 0xe9, 0xf6, 0x3c, 0xca, 0x67, 0xdb, 0xd6, 0xda, 0xb5, 0xa4, + 0xfb, 0xaa, 0x9a, 0xef, 0x62, 0x5e, 0x5b, 0xdb, 0xab, 0xd0, 0x5d, 0x2d, 0xc7, 0xe3, 0xaf, 0x77, 0xf4, 0x78, 0xfd, 0x55, + 0x33, 0x6b, 0x62, 0x3c, 0x45, 0xb4, 0xd8, 0x67, 0x1d, 0x89, 0x7f, 0x79, 0x8d, 0xb4, 0x8a, 0xeb, 0x79, 0x88, 0x2b, 0xfa, + 0xcc, 0xe8, 0xfb, 0xe3, 0x5f, 0x5e, 0x7b, 0xb5, 0x88, 0x4f, 0xa5, 0x6b, 0xe3, 0x5f, 0x5e, 0xf7, 0xff, 0x2a, 0x46, 0x5f, + 0x64, 0xf4, 0xf5, 0xdd, 0xd6, 0xf3, 0xb9, 0xea, 0xbb, 0xfe, 0xd7, 0x75, 0x56, 0x7b, 0xeb, 0xbc, 0xd8, 0xdb, 0xf3, 0xf5, + 0xc5, 0x7f, 0xc8, 0x4f, 0x9e, 0xaf, 0x5d, 0x7c, 0x74, 0x16, 0x3d, 0xe9, 0xfa, 0xef, 0x72, 0x3c, 0xe5, 0x75, 0xff, 0xdf, + 0x9e, 0xb3, 0xe7, 0x2a, 0xf4, 0xc4, 0x7f, 0x2f, 0xc6, 0x67, 0x5e, 0xfb, 0xba, 0x6f, 0x7f, 0xfc, 0xd7, 0x1e, 0xb7, 0xde, + 0xe5, 0xec, 0x5d, 0xbc, 0xb8, 0xbe, 0xff, 0x15, 0xe3, 0x3b, 0xcf, 0xd7, 0xde, 0xf1, 0xcc, 0x2f, 0x2b, 0xce, 0xd7, 0x33, + 0x76, 0x67, 0xe0, 0x89, 0x7f, 0x91, 0xab, 0x5a, 0x2e, 0xff, 0xfc, 0xb7, 0xe2, 0x6f, 0x8d, 0xd4, 0x8a, 0xbf, 0x6f, 0x16, + 0xc3, 0xf9, 0x1d, 0xfc, 0x79, 0xf1, 0x1f, 0xdf, 0xff, 0x1f, 0x9a, 0x9b, 0x9b, 0x7a, 0xbd, 0xd5, 0xd3, 0x3d, 0xb3, 0x8e, + 0x8c, 0xe7, 0x69, 0xb3, 0x80, 0x23, 0x7c, 0x04, 0xe2, 0xf8, 0x41, 0xec, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xd2, 0x54, 0x3e, 0x59, 0x0a, 0x93, 0xec, 0x96, 0x63, 0xaa, 0x20, 0xad, 0xce, 0xb1, 0x14, 0x49, 0xf6, 0x28, 0xaf, 0x5a, + 0x8f, 0xe5, 0x22, 0xcd, 0xcf, 0x08, 0x28, 0x52, 0xae, 0x6a, 0x69, 0xd3, 0x2a, 0x8c, 0xed, 0x6c, 0xae, 0x56, 0xe7, 0x74, + 0xb1, 0x56, 0x7b, 0xa3, 0xbc, 0x6e, 0x3d, 0x6a, 0x60, 0x74, 0x91, 0xa7, 0xe5, 0x63, 0x27, 0x3b, 0xd7, 0x5c, 0x2d, 0x7d, + 0x37, 0xd7, 0xe7, 0x53, 0xbe, 0x1c, 0xcb, 0xab, 0x5a, 0xea, 0x3c, 0xa5, 0xff, 0xb0, 0x46, 0xa9, 0x74, 0x15, 0x23, 0x3c, + 0xeb, 0x96, 0x7a, 0x4e, 0x0b, 0xc5, 0x5f, 0xcf, 0x4a, 0xe7, 0xe6, 0x6d, 0xd5, 0xa3, 0xee, 0xcd, 0xd7, 0x32, 0xaf, 0x3e, + 0x50, 0x31, 0xd6, 0x1a, 0x09, 0xaf, 0x76, 0x66, 0x18, 0xba, 0x8a, 0xbd, 0xb9, 0x35, 0x57, 0x6e, 0x72, 0xec, 0xac, 0xe1, + 0x71, 0xb5, 0xcc, 0x9c, 0x3a, 0xa3, 0x1b, 0xf3, 0xb5, 0x15, 0x26, 0xdd, 0x75, 0x4e, 0x4f, 0xd0, 0xab, 0x78, 0x77, 0x8f, + 0xa5, 0xc3, 0xe9, 0x46, 0xfc, 0xab, 0x73, 0x6e, 0x6b, 0x4b, 0x75, 0xe5, 0x82, 0xc7, 0xce, 0x1a, 0x1e, 0x57, 0xcb, 0xcc, + 0xad, 0x5f, 0x09, 0xdf, 0xb1, 0xb3, 0xce, 0x39, 0x6f, 0x07, 0x0c, 0x77, 0x3f, 0xe3, 0x7b, 0xa7, 0x66, 0xde, 0xff, 0x4b, + 0xe0, 0x13, 0xb9, 0x1c, 0xd6, 0x6a, 0xcc, 0xdf, 0xb1, 0x63, 0x0a, 0x93, 0xac, 0x73, 0x9e, 0xa5, 0xdd, 0x28, 0xc1, 0x3b, + 0xf6, 0x35, 0x2d, 0x67, 0xc4, 0x3f, 0xaa, 0x30, 0xe9, 0x69, 0xe7, 0x2c, 0x97, 0x6b, 0x7a, 0x86, 0xbc, 0xfe, 0xad, 0xf5, + 0xc8, 0x5c, 0x43, 0x4b, 0x07, 0x64, 0x8f, 0xe0, 0x27, 0xd0, 0x78, 0x66, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xd0, 0xff, 0xd8, 0xea, 0x1b, 0x9f, 0x42, 0xc5, 0x56, 0xed, 0x78, 0x3d, 0x7a, 0xea, 0xe5, 0xaa, 0x9b, 0xec, + 0x96, 0xc8, 0x5a, 0xec, 0xb5, 0xf8, 0xce, 0xdc, 0x7f, 0xde, 0xad, 0x35, 0x25, 0xea, 0xa9, 0x76, 0xfb, 0x3c, 0x2b, 0x27, + 0xfb, 0x37, 0x76, 0x47, 0xb6, 0xfe, 0x5b, 0x1f, 0xa8, 0x4f, 0xb2, 0x94, 0x4b, 0x5f, 0x23, 0xcf, 0xcc, 0x16, 0xae, 0x2d, + 0x6d, 0x73, 0x2d, 0xa2, 0x39, 0xb4, 0x88, 0x0e, 0xc5, 0xce, 0x86, 0xe5, 0xc5, 0x3f, 0x3a, 0xe7, 0x6b, 0x5b, 0xbc, 0x3e, + 0x22, 0xcf, 0x8b, 0xbf, 0xa5, 0xf2, 0xc9, 0x8a, 0xff, 0x31, 0x1d, 0x4c, 0x5e, 0xfc, 0x23, 0x1a, 0x2e, 0x3d, 0x76, 0x4b, + 0x07, 0x75, 0x65, 0xfc, 0xb5, 0x8f, 0xd6, 0x4c, 0xfc, 0xfd, 0x2a, 0x1f, 0x7f, 0xfc, 0x8f, 0xe9, 0x60, 0xf2, 0xe2, 0x1f, + 0xd1, 0x70, 0x74, 0xc3, 0x2d, 0xaa, 0xbb, 0xbd, 0x47, 0xc6, 0x8e, 0xc6, 0xb0, 0x05, 0xe2, 0x5f, 0xe4, 0x18, 0x8f, 0xea, + 0x3f, 0x3d, 0xd7, 0x7f, 0x39, 0x4d, 0x07, 0x93, 0x7b, 0xff, 0xcf, 0x5a, 0x87, 0xb2, 0xa3, 0x3e, 0x2c, 0x01, 0xb5, 0x48, + 0x4f, 0x5e, 0x8b, 0x39, 0xbd, 0x43, 0x4e, 0xfc, 0x23, 0x7d, 0xcd, 0x9d, 0xe3, 0x8d, 0x7f, 0x09, 0xc4, 0x3f, 0x73, 0xec, + 0x76, 0xfc, 0x8b, 0xa1, 0x16, 0xd9, 0x3f, 0x27, 0x3b, 0xfe, 0x51, 0x55, 0x4b, 0x49, 0xec, 0x6b, 0x24, 0xc7, 0xdf, 0xaf, + 0x93, 0xc9, 0x1d, 0xbb, 0x1d, 0xff, 0xf8, 0xe8, 0xd6, 0x3f, 0xf5, 0x04, 0x0d, 0x3d, 0xe0, 0x38, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x2c, 0x46, 0x45, 0x2a, 0x5b, 0x65, 0x34, 0xaf, 0x16, 0xfa, 0x52, 0x50, 0x6c, + 0xeb, 0x27, 0x72, 0x9c, 0x7e, 0xf6, 0x6b, 0x77, 0x79, 0xdf, 0x47, 0xad, 0x56, 0x64, 0x6c, 0x67, 0xd7, 0x38, 0x9b, 0x53, + 0xf9, 0x58, 0xba, 0x17, 0xdf, 0x6f, 0x50, 0x95, 0x37, 0x4d, 0x15, 0x4e, 0x37, 0xde, 0xdf, 0xee, 0x5b, 0x5e, 0x15, 0xba, + 0x9f, 0x4c, 0x17, 0x8b, 0x21, 0xf7, 0xeb, 0x08, 0x8c, 0xad, 0x89, 0xa3, 0xaa, 0x8f, 0x1a, 0xfe, 0xa5, 0x74, 0xdc, 0xcb, + 0x61, 0xd6, 0x53, 0x49, 0x67, 0x0c, 0xd7, 0x5c, 0xb7, 0x77, 0x07, 0x74, 0x79, 0x8d, 0x6d, 0x8f, 0xb5, 0x4a, 0x7d, 0xcb, + 0x22, 0xab, 0x99, 0xf9, 0xbd, 0x6a, 0x86, 0xa8, 0x1a, 0x66, 0xe7, 0x8f, 0xd4, 0xd8, 0x54, 0xb5, 0xa4, 0x45, 0xf4, 0xd1, + 0xc2, 0xbf, 0x09, 0x1f, 0x3b, 0x75, 0xa4, 0x3c, 0x3d, 0x5b, 0x3b, 0xc0, 0xaa, 0xe4, 0xd6, 0x12, 0x6a, 0x95, 0xf8, 0xbd, + 0x6a, 0x2c, 0xe5, 0x81, 0xdd, 0x9b, 0xd7, 0x9b, 0x45, 0xef, 0x19, 0xdf, 0x9d, 0x21, 0xcb, 0x61, 0x66, 0xee, 0xce, 0x59, + 0x8c, 0x19, 0x2d, 0xee, 0x1d, 0x70, 0x6e, 0x25, 0x8f, 0xf3, 0x94, 0x07, 0xb3, 0xb3, 0xc8, 0xce, 0x2c, 0xcf, 0xc7, 0x7f, + 0x39, 0xe4, 0x09, 0x52, 0xc2, 0x5a, 0x19, 0xdf, 0x0e, 0x38, 0x3b, 0xfe, 0x67, 0x29, 0x0f, 0xb2, 0x1c, 0x38, 0xfa, 0x43, + 0xe3, 0xbf, 0xe7, 0x36, 0xe3, 0x8f, 0xa5, 0x5f, 0x31, 0xba, 0xdc, 0x72, 0x67, 0xc8, 0x3e, 0x67, 0x71, 0xff, 0x4f, 0xe6, + 0x19, 0xf1, 0x8f, 0x39, 0xd4, 0x14, 0xb7, 0x97, 0xd0, 0x5d, 0xf1, 0xf7, 0xd7, 0x91, 0x8a, 0x9d, 0x93, 0xaf, 0xbd, 0xbc, + 0x22, 0xfe, 0xf0, 0x3e, 0xce, 0x47, 0x0d, 0x7d, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x29, 0xff, + 0xc1, 0xa3, 0x5e, 0xb9, 0xbf, 0xa5, 0xee, 0x64, 0xb5, 0x4a, 0xb8, 0xa5, 0xa4, 0xf5, 0x69, 0x69, 0x8c, 0x8e, 0xd6, 0x3c, + 0xfb, 0xea, 0xbb, 0x84, 0xd5, 0x3f, 0xbf, 0x73, 0xd0, 0xeb, 0xbf, 0x35, 0x29, 0xb3, 0x9e, 0xdf, 0x72, 0xfe, 0xaf, 0xf9, + 0xcf, 0xf0, 0x1b, 0xb0, 0x1c, 0x22, 0xea, 0xb4, 0xb6, 0xa2, 0xc9, 0x9c, 0x6a, 0x97, 0x9e, 0x01, 0x2d, 0x90, 0x83, 0xb8, + 0xdf, 0x65, 0xa7, 0x39, 0xeb, 0x50, 0xd5, 0x0b, 0x3d, 0x36, 0xfa, 0x8e, 0x1e, 0xc6, 0xa7, 0xa1, 0xd1, 0x1e, 0x0a, 0x8b, + 0xeb, 0xb5, 0xaa, 0x26, 0x51, 0x79, 0xcb, 0xf8, 0x2f, 0x4e, 0x6d, 0x5f, 0x9f, 0xf0, 0xcb, 0xc8, 0xf2, 0xd8, 0x28, 0x01, + 0x85, 0x4f, 0x31, 0xea, 0x8f, 0xf9, 0xe2, 0xaf, 0xaa, 0xd5, 0xf9, 0xef, 0x8d, 0x57, 0xb8, 0x6c, 0xe4, 0x57, 0xb0, 0xc9, + 0x73, 0xf3, 0xc8, 0xf7, 0xd8, 0xb0, 0x32, 0xe5, 0x5a, 0x57, 0xe9, 0x8b, 0xbf, 0xd7, 0xdb, 0xe1, 0x8a, 0xf8, 0x47, 0x6b, + 0xdb, 0xe4, 0x3a, 0x73, 0x94, 0x87, 0x78, 0x6c, 0x78, 0x1d, 0x42, 0x8e, 0xdf, 0xff, 0xb3, 0xf5, 0x08, 0x79, 0x99, 0xea, + 0x6b, 0x7c, 0x36, 0x22, 0x3a, 0x9d, 0xb3, 0x32, 0xf3, 0xfe, 0xec, 0xbc, 0x47, 0x5b, 0xd9, 0xdf, 0x2a, 0xfe, 0x4f, 0xd6, + 0xf6, 0x3c, 0x89, 0x33, 0x6b, 0x9e, 0xa1, 0xfe, 0x79, 0xd7, 0x3d, 0xcd, 0x1a, 0xfc, 0x6c, 0x95, 0x17, 0x6b, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x38, 0x00, 0x2d, 0xd2, 0xd3, 0x66, 0xbe, 0x87, 0x9a, 0xe6, 0x2f, 0xb4, 0x77, + 0x4e, 0x75, 0xd6, 0x25, 0x2b, 0x6e, 0x7d, 0xce, 0xb1, 0xda, 0x63, 0xbe, 0x95, 0x8e, 0xf4, 0x35, 0xb7, 0x5e, 0x33, 0xfa, + 0x2f, 0x4b, 0x45, 0xd1, 0xa6, 0x9e, 0xae, 0x0f, 0xe3, 0x79, 0x76, 0xfb, 0x9c, 0xc3, 0x87, 0xb3, 0x7a, 0x96, 0x7d, 0x8e, + 0xaa, 0x08, 0xa6, 0xfa, 0x2b, 0x9f, 0x2a, 0x89, 0xe6, 0xd2, 0xe7, 0xec, 0xbf, 0x93, 0xfa, 0x4d, 0x77, 0x73, 0x57, 0x04, + 0xb0, 0xab, 0x88, 0x95, 0xc3, 0x1e, 0x3e, 0x31, 0xe7, 0x94, 0x35, 0xbf, 0xd6, 0xa6, 0xde, 0xbf, 0x1a, 0x2e, 0x32, 0x4d, + 0xea, 0x5f, 0xb4, 0xf7, 0x8b, 0x75, 0x4e, 0x79, 0x65, 0xfd, 0xea, 0xe6, 0xf5, 0xb2, 0xad, 0xc2, 0x2a, 0xa6, 0x37, 0x8d, + 0xd6, 0x09, 0x95, 0x5d, 0x5f, 0xa3, 0xad, 0xb5, 0xe8, 0xc2, 0x53, 0xa8, 0x8b, 0x2b, 0x4d, 0x8d, 0x5b, 0x1d, 0xcf, 0x8d, + 0xbf, 0x76, 0x41, 0x1a, 0x93, 0x33, 0xff, 0xad, 0x20, 0x2c, 0x8e, 0x3b, 0xa5, 0xe5, 0x7e, 0x54, 0x0c, 0xcf, 0xa6, 0x2e, + 0xe3, 0xa9, 0xaf, 0xbd, 0x2e, 0x77, 0xa7, 0xb5, 0x2e, 0x7d, 0x77, 0xe7, 0xa8, 0x5c, 0x70, 0x71, 0xad, 0x91, 0xaa, 0x14, + 0x78, 0xcd, 0xf5, 0xaf, 0x34, 0x14, 0x7d, 0x5a, 0x75, 0x62, 0xed, 0xed, 0x3d, 0xc7, 0x24, 0xbf, 0xe2, 0x73, 0x8d, 0xc7, + 0x76, 0xfc, 0x6b, 0x9a, 0x1a, 0x60, 0x7c, 0xaf, 0x68, 0x0f, 0x7e, 0xb2, 0xce, 0xdf, 0xff, 0xd5, 0x27, 0x70, 0x99, 0xdc, + 0xb5, 0xc7, 0xe2, 0x5f, 0x4c, 0xcf, 0x96, 0x72, 0xf0, 0xfa, 0xb7, 0xd4, 0x9b, 0xb6, 0xcb, 0x9a, 0xff, 0xfa, 0xef, 0x52, + 0x6d, 0xf7, 0xec, 0xf8, 0xab, 0x71, 0xcf, 0xce, 0xe7, 0x58, 0xfc, 0x6d, 0x85, 0xd2, 0x6c, 0xaf, 0xf6, 0xdc, 0x86, 0xeb, + 0xbb, 0x97, 0xf5, 0xad, 0xac, 0x7c, 0xbf, 0xa6, 0x5e, 0xe0, 0x1b, 0x74, 0xc5, 0x3b, 0xdd, 0xad, 0x83, 0xfa, 0x70, 0xd7, + 0xa9, 0xd2, 0xca, 0x39, 0x6f, 0x8d, 0xbc, 0xa8, 0x9e, 0x6e, 0x4c, 0x7f, 0x37, 0x39, 0xaa, 0x2d, 0xca, 0x7a, 0xa7, 0x71, + 0xa2, 0x5a, 0xe9, 0xc9, 0x3a, 0xa8, 0x98, 0xcb, 0xde, 0x7b, 0xeb, 0xba, 0xd0, 0x8c, 0xcc, 0xc4, 0x32, 0xa6, 0x9a, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0xfa, 0xc7, 0xaa, 0x5c, 0x35, 0x77, 0xfe, 0xbc, 0x72, 0xa5, 0xc8, + 0x5e, 0xeb, 0x44, 0x05, 0xad, 0xe2, 0xd6, 0xbe, 0x54, 0xb7, 0xe6, 0xc9, 0x56, 0xe9, 0xe8, 0xe3, 0x79, 0xda, 0xa7, 0x88, + 0xea, 0x68, 0x09, 0x3f, 0xa3, 0x5e, 0xff, 0x34, 0xb3, 0x3e, 0x8f, 0xfd, 0xec, 0x71, 0x38, 0x54, 0x30, 0x5d, 0xd6, 0x7b, + 0x5a, 0xcf, 0x68, 0x32, 0x1f, 0x3c, 0x44, 0x46, 0xa8, 0x99, 0x39, 0x8c, 0x26, 0x8f, 0xff, 0x23, 0xa3, 0xfc, 0x21, 0xdd, + 0x7a, 0xb6, 0xcf, 0x1a, 0x9f, 0xc7, 0xbb, 0x6b, 0x6c, 0xc3, 0xac, 0xad, 0x36, 0x8c, 0x36, 0xa5, 0x08, 0xd0, 0x33, 0x9a, + 0x89, 0x7f, 0x39, 0x90, 0x37, 0x1d, 0x32, 0x4f, 0xbf, 0xad, 0xc4, 0xd2, 0x1e, 0x3a, 0x76, 0x9b, 0xd2, 0xc8, 0x2c, 0xa6, + 0x43, 0x96, 0xde, 0xb7, 0xde, 0x1d, 0xa3, 0x62, 0xd9, 0xa4, 0x5e, 0xc9, 0xd6, 0xbe, 0x54, 0x43, 0xe1, 0x60, 0xf9, 0x0c, + 0x79, 0x47, 0xfe, 0xa4, 0xf8, 0x77, 0xd3, 0xf7, 0x40, 0x6b, 0x48, 0xf6, 0x7c, 0x6e, 0xb4, 0xe2, 0xaa, 0x84, 0xee, 0xbe, + 0x39, 0x2d, 0xf6, 0x55, 0xde, 0x64, 0x86, 0xdb, 0x5a, 0x07, 0xfb, 0x53, 0x3c, 0xa2, 0x49, 0xe8, 0xa7, 0xc4, 0xbf, 0x06, + 0xf5, 0x56, 0x3e, 0xcf, 0x26, 0x3b, 0x8b, 0xa8, 0xfd, 0x9a, 0xae, 0x72, 0xae, 0x5b, 0x02, 0xb9, 0x4f, 0x4b, 0x4b, 0xb3, + 0x98, 0x15, 0xeb, 0xa2, 0x31, 0xec, 0x87, 0xe2, 0x7f, 0x44, 0xb9, 0xf2, 0xf7, 0x1d, 0xa3, 0x38, 0x73, 0xe7, 0x96, 0x8a, + 0x48, 0xaf, 0x56, 0xa4, 0xbe, 0xe3, 0x55, 0x2d, 0xd6, 0x3a, 0xd8, 0xfd, 0x1d, 0xd1, 0x25, 0xdd, 0xed, 0xa2, 0xf3, 0x75, + 0x8d, 0x77, 0xb7, 0x8b, 0x8e, 0xad, 0x15, 0xea, 0xb7, 0x3b, 0x57, 0xfa, 0xef, 0x19, 0x5d, 0x46, 0x59, 0x5f, 0x05, 0xfd, + 0xe0, 0x15, 0x7c, 0x7f, 0xfc, 0x63, 0xaa, 0x8f, 0x12, 0x50, 0x91, 0x5c, 0xeb, 0x69, 0xe8, 0x6f, 0xe9, 0xc6, 0x3a, 0x58, + 0xae, 0x51, 0x3f, 0x51, 0x49, 0x11, 0xaf, 0xd5, 0xf7, 0xcc, 0xf8, 0xef, 0x69, 0xf5, 0x2c, 0x2f, 0xd1, 0xfb, 0x9d, 0xd0, + 0x9e, 0xa4, 0x2f, 0xfa, 0x3f, 0xc6, 0xff, 0x1d, 0x15, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x64, 0x07, + 0x20, 0x5b, 0x6b, 0x52, 0x53, 0x74, 0x35, 0xfa, 0x68, 0x75, 0x7a, 0x12, 0x55, 0xf3, 0xac, 0x7b, 0xf5, 0x3e, 0xc5, 0x7c, + 0x3a, 0x7b, 0xfe, 0x98, 0xed, 0xe8, 0x7b, 0x15, 0x2f, 0x96, 0x16, 0xa2, 0xba, 0xde, 0xa5, 0x1a, 0xef, 0xf0, 0x21, 0x9e, + 0x74, 0xfa, 0x75, 0x38, 0xf7, 0xeb, 0x7d, 0x94, 0xa2, 0xa3, 0x1a, 0x1e, 0x2f, 0x99, 0x63, 0xb6, 0x15, 0x5c, 0x5e, 0xc5, + 0x8b, 0xa5, 0x36, 0xf0, 0xa9, 0x53, 0x9a, 0x68, 0xd1, 0xfd, 0xeb, 0x27, 0xdd, 0xcd, 0xf0, 0x0d, 0xba, 0x5b, 0xef, 0xa3, + 0x6b, 0x4e, 0x29, 0x1d, 0x48, 0x95, 0x3b, 0x60, 0x75, 0xb2, 0xaa, 0xae, 0x31, 0x2f, 0x01, 0xe5, 0x48, 0x44, 0xd7, 0xe2, + 0x75, 0x32, 0x53, 0xc7, 0x57, 0x0d, 0x9c, 0xf6, 0x24, 0xf2, 0x39, 0x0d, 0xdd, 0xaf, 0xf7, 0xe9, 0xa6, 0xcb, 0x54, 0x56, + 0xee, 0x20, 0xe2, 0x03, 0xb7, 0xe7, 0xcf, 0xe3, 0xab, 0xd5, 0xa7, 0x3c, 0x83, 0xbc, 0xc7, 0x17, 0xe9, 0xe3, 0x34, 0x8c, + 0xec, 0xf8, 0x13, 0x72, 0xf7, 0xbe, 0xac, 0xce, 0xaa, 0x7a, 0x18, 0x37, 0x66, 0x95, 0xb4, 0x72, 0x24, 0xd2, 0xb2, 0xec, + 0x54, 0x57, 0xcb, 0x3a, 0xfe, 0xdc, 0xdc, 0xbd, 0x37, 0xfe, 0xe3, 0xf6, 0xf8, 0xdb, 0x2a, 0x39, 0x5f, 0x0b, 0xf1, 0xf7, + 0xc6, 0xbf, 0x27, 0xde, 0xff, 0x63, 0xf1, 0xd7, 0x2a, 0x39, 0x7f, 0xcb, 0x15, 0xf1, 0x1f, 0x66, 0xe5, 0xbc, 0x77, 0x8b, + 0x7f, 0xb9, 0x59, 0x55, 0x90, 0x5b, 0xc5, 0xf3, 0xfc, 0xf8, 0xc7, 0x54, 0x1d, 0xe5, 0xe6, 0x16, 0xbf, 0x6e, 0xe3, 0x9a, + 0xf7, 0xcf, 0xaf, 0xe2, 0x79, 0xee, 0xf1, 0x68, 0xfc, 0xf3, 0xe7, 0x38, 0x52, 0x7c, 0xab, 0xda, 0x45, 0x71, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x3f, 0x35, 0x49, 0x99, 0x12, 0x75, 0xa8, 0xb9, 0xd7, 0x73, 0xc7, 0xf2, 0x17, + 0xd2, 0x2d, 0xd9, 0x33, 0xf2, 0x6a, 0xaa, 0x72, 0x7c, 0x80, 0x2c, 0xcd, 0x40, 0x95, 0x1a, 0x1c, 0x7f, 0x06, 0xdc, 0xd6, + 0x06, 0xb5, 0x80, 0x06, 0xa7, 0x1a, 0x1a, 0x9c, 0xe6, 0xf2, 0xdc, 0xe8, 0x86, 0xbf, 0x90, 0xe5, 0xac, 0x90, 0x39, 0x23, + 0x3d, 0xee, 0x26, 0x76, 0x45, 0x13, 0x7a, 0xaa, 0x9a, 0x74, 0xfd, 0x6b, 0x9d, 0x49, 0x34, 0x03, 0x1e, 0xd3, 0xe0, 0x34, + 0x97, 0x06, 0xc7, 0xaa, 0x1d, 0x55, 0x77, 0x6a, 0x73, 0xe9, 0x9c, 0x4a, 0xae, 0x8b, 0x90, 0x6f, 0xdc, 0x7a, 0x05, 0xe6, + 0xf5, 0x54, 0xd7, 0xfd, 0x16, 0xb6, 0x08, 0xa5, 0x5b, 0xe4, 0x0e, 0x1b, 0x69, 0xd1, 0x7e, 0x10, 0x56, 0xcd, 0xbe, 0x48, + 0xfd, 0xa2, 0xdc, 0x71, 0x5b, 0x75, 0xf8, 0x8a, 0xc3, 0xd9, 0x2a, 0x33, 0x6b, 0x16, 0x73, 0xaf, 0xd9, 0xae, 0x97, 0x93, + 0x5b, 0x07, 0x48, 0xb7, 0x14, 0xe9, 0x91, 0x52, 0xcc, 0x4a, 0x54, 0xdd, 0x5d, 0x05, 0x27, 0x5b, 0x3b, 0x54, 0x0c, 0x95, + 0xe0, 0xfc, 0x7d, 0x29, 0x33, 0x6b, 0x16, 0x73, 0xaf, 0x59, 0x8c, 0xd5, 0x3f, 0xbf, 0x65, 0x84, 0xaa, 0x4a, 0xd9, 0x99, + 0xb3, 0x7e, 0x89, 0x8b, 0x50, 0x37, 0xf4, 0x36, 0x77, 0xc4, 0x7f, 0x7f, 0xbd, 0xfc, 0x77, 0x86, 0x6b, 0xae, 0x23, 0xef, + 0x0e, 0x8c, 0x7a, 0x6e, 0x44, 0x94, 0x93, 0x96, 0xc7, 0x99, 0xcf, 0x61, 0xed, 0xec, 0xf8, 0x97, 0x9d, 0xfb, 0xbf, 0x76, + 0xf1, 0x1a, 0xb7, 0x6a, 0x30, 0xfc, 0xf7, 0xeb, 0x3c, 0xdf, 0xbb, 0x23, 0x2d, 0x76, 0x1d, 0xbe, 0xf3, 0xe2, 0x9f, 0xa9, + 0x26, 0xb9, 0x56, 0x67, 0x32, 0x92, 0x94, 0x4e, 0x4f, 0x98, 0x91, 0x77, 0xa7, 0xe5, 0xc5, 0xff, 0xa7, 0xa8, 0x49, 0x50, + 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xcf, 0xd5, 0xff, 0xf8, 0x3c, 0x78, 0x9e, 0xec, 0xb3, 0x93, 0xe7, + 0x40, 0x94, 0xad, 0xe2, 0x89, 0xa9, 0xa9, 0x96, 0x03, 0x95, 0xbd, 0xe6, 0xf5, 0x3f, 0x4d, 0xaa, 0x5b, 0x54, 0xed, 0xaa, + 0x7a, 0x81, 0x22, 0x26, 0xa2, 0xf1, 0x51, 0x47, 0xad, 0xdc, 0xcf, 0x35, 0x2a, 0x1e, 0xdd, 0xdb, 0xd8, 0xd1, 0x66, 0xb5, + 0x93, 0x9f, 0x58, 0x16, 0x63, 0xf6, 0x55, 0xee, 0x98, 0xf6, 0x48, 0x8d, 0x4f, 0x44, 0x5d, 0x91, 0xab, 0xe2, 0xd1, 0x2b, + 0xda, 0xa4, 0xc2, 0xc0, 0xae, 0xbf, 0x58, 0x4e, 0x7f, 0x2e, 0xae, 0xc7, 0xdb, 0x6f, 0x54, 0xf2, 0x44, 0xb4, 0x32, 0xdd, + 0x54, 0xf1, 0x74, 0x57, 0xc4, 0x22, 0x2d, 0x7b, 0xd9, 0xd4, 0x92, 0xa8, 0xa6, 0x3b, 0x37, 0xfe, 0x11, 0x85, 0xc5, 0x13, + 0x7c, 0x76, 0x8a, 0xe1, 0x72, 0xf2, 0x8e, 0xb5, 0x60, 0xee, 0x8a, 0xff, 0x7b, 0xae, 0x98, 0xed, 0x4a, 0xf1, 0x6e, 0x51, + 0x1e, 0x41, 0xc5, 0x4a, 0x4e, 0xfc, 0x9f, 0xbd, 0x2e, 0x79, 0x3e, 0x1b, 0xd7, 0x8c, 0x2c, 0xa6, 0x09, 0xbb, 0x22, 0x63, + 0x3d, 0x12, 0xaf, 0x98, 0xbb, 0x35, 0x3e, 0x11, 0x9f, 0x8d, 0xab, 0xd4, 0x47, 0x51, 0x9d, 0xc5, 0x3d, 0x55, 0x9d, 0x62, + 0x57, 0xcc, 0xdd, 0x1a, 0x9f, 0x27, 0xab, 0x78, 0xfc, 0x6a, 0x3a, 0xad, 0x58, 0x87, 0x77, 0x43, 0xc7, 0xb2, 0xb1, 0x3a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xd6, 0x3f, + 0xac, 0x03, 0xf1, 0x87, 0x1f, 0x1b, 0xff, 0x7f, 0x01 }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle bluishFontRecs[189] = { + { 4, 4, 5 , 10 }, + { 17, 4, 2 , 8 }, + { 27, 4, 4 , 3 }, + { 39, 4, 6 , 8 }, + { 53, 4, 5 , 10 }, + { 66, 4, 6 , 8 }, + { 80, 4, 5 , 10 }, + { 93, 4, 2 , 3 }, + { 103, 4, 3 , 8 }, + { 114, 4, 3 , 8 }, + { 125, 4, 6 , 6 }, + { 139, 4, 6 , 6 }, + { 153, 4, 2 , 3 }, + { 163, 4, 5 , 2 }, + { 176, 4, 2 , 2 }, + { 186, 4, 6 , 8 }, + { 200, 4, 5 , 8 }, + { 213, 4, 3 , 8 }, + { 224, 4, 5 , 8 }, + { 237, 4, 5 , 8 }, + { 4, 22, 5 , 8 }, + { 17, 22, 5 , 8 }, + { 30, 22, 5 , 8 }, + { 43, 22, 5 , 8 }, + { 56, 22, 5 , 8 }, + { 69, 22, 5 , 8 }, + { 82, 22, 2 , 8 }, + { 92, 22, 2 , 9 }, + { 102, 22, 4 , 6 }, + { 114, 22, 5 , 4 }, + { 127, 22, 4 , 6 }, + { 139, 22, 5 , 8 }, + { 152, 22, 6 , 8 }, + { 166, 22, 5 , 8 }, + { 179, 22, 5 , 8 }, + { 192, 22, 5 , 8 }, + { 205, 22, 5 , 8 }, + { 218, 22, 5 , 8 }, + { 231, 22, 5 , 8 }, + { 4, 40, 5 , 8 }, + { 17, 40, 5 , 8 }, + { 30, 40, 4 , 8 }, + { 42, 40, 5 , 8 }, + { 55, 40, 5 , 8 }, + { 68, 40, 5 , 8 }, + { 81, 40, 8 , 8 }, + { 97, 40, 5 , 8 }, + { 110, 40, 5 , 8 }, + { 123, 40, 5 , 8 }, + { 136, 40, 5 , 9 }, + { 149, 40, 5 , 8 }, + { 162, 40, 5 , 8 }, + { 175, 40, 6 , 8 }, + { 189, 40, 5 , 8 }, + { 202, 40, 5 , 8 }, + { 215, 40, 8 , 8 }, + { 231, 40, 5 , 8 }, + { 4, 58, 5 , 8 }, + { 17, 58, 5 , 8 }, + { 30, 58, 3 , 8 }, + { 41, 58, 6 , 8 }, + { 55, 58, 3 , 8 }, + { 66, 58, 6 , 4 }, + { 80, 58, 5 , 1 }, + { 93, 58, 2 , 3 }, + { 103, 58, 5 , 6 }, + { 116, 58, 5 , 8 }, + { 129, 58, 5 , 6 }, + { 142, 58, 5 , 8 }, + { 155, 58, 5 , 6 }, + { 168, 58, 5 , 8 }, + { 181, 58, 5 , 7 }, + { 194, 58, 5 , 8 }, + { 207, 58, 2 , 8 }, + { 217, 58, 3 , 9 }, + { 228, 58, 5 , 8 }, + { 241, 58, 2 , 8 }, + { 4, 76, 8 , 6 }, + { 20, 76, 5 , 6 }, + { 33, 76, 5 , 6 }, + { 46, 76, 5 , 7 }, + { 59, 76, 5 , 7 }, + { 72, 76, 5 , 6 }, + { 85, 76, 5 , 6 }, + { 98, 76, 5 , 8 }, + { 111, 76, 5 , 6 }, + { 124, 76, 5 , 6 }, + { 137, 76, 8 , 6 }, + { 153, 76, 5 , 6 }, + { 166, 76, 5 , 7 }, + { 179, 76, 5 , 6 }, + { 192, 76, 4 , 8 }, + { 204, 76, 2 , 10 }, + { 214, 76, 4 , 8 }, + { 226, 76, 6 , 4 }, + { 240, 76, 2 , 8 }, + { 4, 94, 5 , 8 }, + { 17, 94, 5 , 8 }, + { 30, 94, 0 , 0 }, + { 38, 94, 6 , 8 }, + { 52, 94, 5 , 10 }, + { 65, 94, 5 , 10 }, + { 78, 94, 5 , 9 }, + { 91, 94, 7 , 8 }, + { 106, 94, 4 , 6 }, + { 118, 94, 5 , 4 }, + { 131, 94, 5 , 3 }, + { 144, 94, 7 , 8 }, + { 159, 94, 5 , 2 }, + { 172, 94, 4 , 4 }, + { 184, 94, 6 , 8 }, + { 198, 94, 4 , 6 }, + { 210, 94, 4 , 6 }, + { 222, 94, 0 , 0 }, + { 230, 94, 5 , 9 }, + { 4, 112, 6 , 8 }, + { 18, 112, 2 , 2 }, + { 28, 112, 0 , 0 }, + { 36, 112, 3 , 6 }, + { 47, 112, 4 , 6 }, + { 59, 112, 5 , 4 }, + { 72, 112, 6 , 8 }, + { 86, 112, 6 , 6 }, + { 100, 112, 5 , 10 }, + { 113, 112, 5 , 8 }, + { 126, 112, 5 , 10 }, + { 139, 112, 5 , 10 }, + { 152, 112, 5 , 10 }, + { 165, 112, 5 , 10 }, + { 178, 112, 5 , 10 }, + { 191, 112, 5 , 10 }, + { 204, 112, 6 , 8 }, + { 218, 112, 5 , 9 }, + { 231, 112, 5 , 10 }, + { 4, 130, 5 , 10 }, + { 17, 130, 5 , 10 }, + { 30, 130, 5 , 10 }, + { 43, 130, 4 , 10 }, + { 55, 130, 4 , 10 }, + { 67, 130, 4 , 10 }, + { 79, 130, 4 , 10 }, + { 91, 130, 6 , 8 }, + { 105, 130, 5 , 10 }, + { 118, 130, 5 , 10 }, + { 131, 130, 5 , 10 }, + { 144, 130, 5 , 10 }, + { 157, 130, 5 , 10 }, + { 170, 130, 5 , 10 }, + { 183, 130, 4 , 4 }, + { 195, 130, 5 , 10 }, + { 208, 130, 5 , 10 }, + { 221, 130, 5 , 10 }, + { 234, 130, 5 , 10 }, + { 4, 148, 5 , 10 }, + { 17, 148, 5 , 10 }, + { 30, 148, 5 , 8 }, + { 43, 148, 5 , 8 }, + { 56, 148, 5 , 9 }, + { 69, 148, 5 , 9 }, + { 82, 148, 5 , 9 }, + { 95, 148, 5 , 9 }, + { 108, 148, 5 , 8 }, + { 121, 148, 5 , 10 }, + { 134, 148, 6 , 6 }, + { 148, 148, 5 , 7 }, + { 161, 148, 5 , 9 }, + { 174, 148, 5 , 9 }, + { 187, 148, 5 , 9 }, + { 200, 148, 5 , 8 }, + { 213, 148, 3 , 9 }, + { 224, 148, 3 , 9 }, + { 235, 148, 4 , 9 }, + { 4, 166, 4 , 8 }, + { 16, 166, 5 , 9 }, + { 29, 166, 5 , 9 }, + { 42, 166, 5 , 9 }, + { 55, 166, 5 , 9 }, + { 68, 166, 5 , 9 }, + { 81, 166, 5 , 9 }, + { 94, 166, 5 , 8 }, + { 107, 166, 4 , 6 }, + { 119, 166, 5 , 8 }, + { 132, 166, 5 , 9 }, + { 145, 166, 5 , 9 }, + { 158, 166, 5 , 9 }, + { 171, 166, 5 , 8 }, + { 184, 166, 5 , 10 }, + { 197, 166, 5 , 10 }, + { 210, 166, 5 , 9 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo bluishFontGlyphs[189] = { + { 32, 0, 0, 5, { 0 }}, + { 33, 0, 1, 2, { 0 }}, + { 34, 0, 1, 4, { 0 }}, + { 35, 0, 1, 6, { 0 }}, + { 36, 0, 0, 5, { 0 }}, + { 37, 0, 1, 6, { 0 }}, + { 38, 0, 0, 5, { 0 }}, + { 39, 0, 1, 2, { 0 }}, + { 40, 0, 1, 3, { 0 }}, + { 41, 0, 1, 3, { 0 }}, + { 42, 0, 1, 6, { 0 }}, + { 43, 0, 2, 6, { 0 }}, + { 44, 0, 7, 2, { 0 }}, + { 45, 0, 4, 5, { 0 }}, + { 46, 0, 7, 2, { 0 }}, + { 47, 0, 1, 6, { 0 }}, + { 48, 0, 1, 5, { 0 }}, + { 49, 0, 1, 3, { 0 }}, + { 50, 0, 1, 5, { 0 }}, + { 51, 0, 1, 5, { 0 }}, + { 52, 0, 1, 5, { 0 }}, + { 53, 0, 1, 5, { 0 }}, + { 54, 0, 1, 5, { 0 }}, + { 55, 0, 1, 5, { 0 }}, + { 56, 0, 1, 5, { 0 }}, + { 57, 0, 1, 5, { 0 }}, + { 58, 0, 1, 2, { 0 }}, + { 59, 0, 1, 2, { 0 }}, + { 60, 0, 2, 4, { 0 }}, + { 61, 0, 3, 5, { 0 }}, + { 62, 0, 2, 4, { 0 }}, + { 63, 0, 1, 5, { 0 }}, + { 64, 0, 1, 6, { 0 }}, + { 65, 0, 1, 5, { 0 }}, + { 66, 0, 1, 5, { 0 }}, + { 67, 0, 1, 5, { 0 }}, + { 68, 0, 1, 5, { 0 }}, + { 69, 0, 1, 5, { 0 }}, + { 70, 0, 1, 5, { 0 }}, + { 71, 0, 1, 5, { 0 }}, + { 72, 0, 1, 5, { 0 }}, + { 73, 0, 1, 4, { 0 }}, + { 74, 0, 1, 5, { 0 }}, + { 75, 0, 1, 5, { 0 }}, + { 76, 0, 1, 5, { 0 }}, + { 77, 0, 1, 8, { 0 }}, + { 78, 0, 1, 5, { 0 }}, + { 79, 0, 1, 5, { 0 }}, + { 80, 0, 1, 5, { 0 }}, + { 81, 0, 1, 5, { 0 }}, + { 82, 0, 1, 5, { 0 }}, + { 83, 0, 1, 5, { 0 }}, + { 84, 0, 1, 6, { 0 }}, + { 85, 0, 1, 5, { 0 }}, + { 86, 0, 1, 5, { 0 }}, + { 87, 0, 1, 8, { 0 }}, + { 88, 0, 1, 5, { 0 }}, + { 89, 0, 1, 5, { 0 }}, + { 90, 0, 1, 5, { 0 }}, + { 91, 0, 1, 3, { 0 }}, + { 92, 0, 1, 6, { 0 }}, + { 93, 0, 1, 3, { 0 }}, + { 94, 0, 1, 6, { 0 }}, + { 95, 0, 9, 5, { 0 }}, + { 96, 0, 1, 2, { 0 }}, + { 97, 0, 3, 5, { 0 }}, + { 98, 0, 1, 5, { 0 }}, + { 99, 0, 3, 5, { 0 }}, + { 100, 0, 1, 5, { 0 }}, + { 101, 0, 3, 5, { 0 }}, + { 102, 0, 1, 5, { 0 }}, + { 103, 0, 3, 5, { 0 }}, + { 104, 0, 1, 5, { 0 }}, + { 105, 0, 1, 2, { 0 }}, + { 106, 0, 1, 3, { 0 }}, + { 107, 0, 1, 5, { 0 }}, + { 108, 0, 1, 2, { 0 }}, + { 109, 0, 3, 8, { 0 }}, + { 110, 0, 3, 5, { 0 }}, + { 111, 0, 3, 5, { 0 }}, + { 112, 0, 3, 5, { 0 }}, + { 113, 0, 3, 5, { 0 }}, + { 114, 0, 3, 5, { 0 }}, + { 115, 0, 3, 5, { 0 }}, + { 116, 0, 1, 5, { 0 }}, + { 117, 0, 3, 5, { 0 }}, + { 118, 0, 3, 5, { 0 }}, + { 119, 0, 3, 8, { 0 }}, + { 120, 0, 3, 5, { 0 }}, + { 121, 0, 3, 5, { 0 }}, + { 122, 0, 3, 5, { 0 }}, + { 123, 0, 1, 4, { 0 }}, + { 124, 0, 0, 2, { 0 }}, + { 125, 0, 1, 4, { 0 }}, + { 126, 0, 3, 6, { 0 }}, + { 161, 0, 1, 2, { 0 }}, + { 162, 0, 2, 5, { 0 }}, + { 163, 0, 1, 5, { 0 }}, + { 8364, 0, 0, 0, { 0 }}, + { 165, 0, 1, 6, { 0 }}, + { 352, 0, -1, 5, { 0 }}, + { 167, 0, 0, 5, { 0 }}, + { 353, 0, 0, 5, { 0 }}, + { 169, 0, 1, 7, { 0 }}, + { 170, 0, -1, 4, { 0 }}, + { 171, 0, 3, 5, { 0 }}, + { 172, 0, 4, 5, { 0 }}, + { 174, 0, 1, 7, { 0 }}, + { 175, 0, -1, 5, { 0 }}, + { 176, 0, -1, 4, { 0 }}, + { 177, 0, 1, 6, { 0 }}, + { 178, 0, -1, 4, { 0 }}, + { 179, 0, -1, 4, { 0 }}, + { 381, 0, 0, 0, { 0 }}, + { 181, 0, 1, 5, { 0 }}, + { 182, 0, 1, 6, { 0 }}, + { 183, 0, 4, 2, { 0 }}, + { 382, 0, 0, 0, { 0 }}, + { 185, 0, -1, 3, { 0 }}, + { 186, 0, -1, 4, { 0 }}, + { 187, 0, 3, 5, { 0 }}, + { 338, 0, 1, 6, { 0 }}, + { 339, 0, 3, 6, { 0 }}, + { 376, 0, -1, 5, { 0 }}, + { 191, 0, 1, 5, { 0 }}, + { 192, 0, -1, 5, { 0 }}, + { 193, 0, -1, 5, { 0 }}, + { 194, 0, -1, 5, { 0 }}, + { 195, 0, -1, 5, { 0 }}, + { 196, 0, -1, 5, { 0 }}, + { 197, 0, -1, 5, { 0 }}, + { 198, 0, 1, 6, { 0 }}, + { 199, 0, 1, 5, { 0 }}, + { 200, 0, -1, 5, { 0 }}, + { 201, 0, -1, 5, { 0 }}, + { 202, 0, -1, 5, { 0 }}, + { 203, 0, -1, 5, { 0 }}, + { 204, 0, -1, 4, { 0 }}, + { 205, 0, -1, 4, { 0 }}, + { 206, 0, -1, 4, { 0 }}, + { 207, 0, -1, 4, { 0 }}, + { 208, 0, 1, 6, { 0 }}, + { 209, 0, -1, 5, { 0 }}, + { 210, 0, -1, 5, { 0 }}, + { 211, 0, -1, 5, { 0 }}, + { 212, 0, -1, 5, { 0 }}, + { 213, 0, -1, 5, { 0 }}, + { 214, 0, -1, 5, { 0 }}, + { 215, 0, 3, 4, { 0 }}, + { 216, 0, 0, 5, { 0 }}, + { 217, 0, -1, 5, { 0 }}, + { 218, 0, -1, 5, { 0 }}, + { 219, 0, -1, 5, { 0 }}, + { 220, 0, -1, 5, { 0 }}, + { 221, 0, -1, 5, { 0 }}, + { 222, 0, 1, 5, { 0 }}, + { 223, 0, 1, 5, { 0 }}, + { 224, 0, 0, 5, { 0 }}, + { 225, 0, 0, 5, { 0 }}, + { 226, 0, 0, 5, { 0 }}, + { 227, 0, 0, 5, { 0 }}, + { 228, 0, 1, 5, { 0 }}, + { 229, 0, -1, 5, { 0 }}, + { 230, 0, 3, 6, { 0 }}, + { 231, 0, 3, 5, { 0 }}, + { 232, 0, 0, 5, { 0 }}, + { 233, 0, 0, 5, { 0 }}, + { 234, 0, 0, 5, { 0 }}, + { 235, 0, 1, 5, { 0 }}, + { 236, 0, 0, 3, { 0 }}, + { 237, 0, 0, 2, { 0 }}, + { 238, 0, 0, 3, { 0 }}, + { 239, 0, 1, 3, { 0 }}, + { 240, 0, 0, 5, { 0 }}, + { 241, 0, 0, 5, { 0 }}, + { 242, 0, 0, 5, { 0 }}, + { 243, 0, 0, 5, { 0 }}, + { 244, 0, 0, 5, { 0 }}, + { 245, 0, 0, 5, { 0 }}, + { 246, 0, 1, 5, { 0 }}, + { 247, 0, 2, 4, { 0 }}, + { 248, 0, 2, 5, { 0 }}, + { 249, 0, 0, 5, { 0 }}, + { 250, 0, 0, 5, { 0 }}, + { 251, 0, 0, 5, { 0 }}, + { 252, 0, 1, 5, { 0 }}, + { 253, 0, 0, 5, { 0 }}, + { 254, 0, 0, 5, { 0 }}, + { 255, 0, 1, 5, { 0 }}, +}; + +// Style loading function: Bluish +static void GuiLoadStyleBluish(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < BLUISH_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(bluishStyleProps[i].controlId, bluishStyleProps[i].propertyId, bluishStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int bluishFontDataSize = 0; + unsigned char *data = DecompressData(bluishFontData, BLUISH_STYLE_FONT_ATLAS_COMP_SIZE, &bluishFontDataSize); + Image imFont = { data, 256, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 10; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, bluishFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, bluishFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 254, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/style_bluish.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/style_bluish.png new file mode 100644 index 0000000..fff86b1 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/style_bluish.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/style_bluish.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/style_bluish.rgs new file mode 100644 index 0000000..5a27c6e Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/style_bluish.rgs differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/style_bluish.txt.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/style_bluish.txt.rgs new file mode 100644 index 0000000..f94aefc --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/bluish/style_bluish.txt.rgs @@ -0,0 +1,24 @@ +# +# rgs style text file (v4.0) - raygui style file generated using rGuiStyler +# +# Provided info: +# f fontGenSize charsetFileName fontFileName +# p Property description +# +# WARNING: This style uses a custom font, must be provided with style file +# +f 10 charset.txt homespun.ttf +p 00 00 0x5ca6a6ff DEFAULT_BORDER_COLOR_NORMAL +p 00 01 0xb4e8f3ff DEFAULT_BASE_COLOR_NORMAL +p 00 02 0x447e77ff DEFAULT_TEXT_COLOR_NORMAL +p 00 03 0x5f8792ff DEFAULT_BORDER_COLOR_FOCUSED +p 00 04 0xcdeff7ff DEFAULT_BASE_COLOR_FOCUSED +p 00 05 0x4c6c74ff DEFAULT_TEXT_COLOR_FOCUSED +p 00 06 0x3b5b5fff DEFAULT_BORDER_COLOR_PRESSED +p 00 07 0xeaffffff DEFAULT_BASE_COLOR_PRESSED +p 00 08 0x275057ff DEFAULT_TEXT_COLOR_PRESSED +p 00 09 0x96aaacff DEFAULT_BORDER_COLOR_DISABLED +p 00 10 0xc8d7d9ff DEFAULT_BASE_COLOR_DISABLED +p 00 11 0x8c9c9eff DEFAULT_TEXT_COLOR_DISABLED +p 00 18 0x84adb7ff LINE_COLOR +p 00 19 0xe8eef1ff BACKGROUND_COLOR diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/README.md b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/README.md new file mode 100644 index 0000000..712185d --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/README.md @@ -0,0 +1,27 @@ +## style: candy + +Sweet, colorful, tasty! Enjoy this funfair ride and be careful with the witch of the candy house! + +![candy style table](style_candy.png) + +## style: provided files + +Several options are provided to add the style to a `raygui` application, choose the one that better fits the project. + +| file name | description | +| :-------- | :---------- | +| `style_candy.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) | +| `style_candy.txt.rgs` | Text style file, no font data, requires external font provided | +| `style_candy.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) | +| `style_candy.h` | Embeddable style as code file, self-contained, includes font data | +| `style_candy.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data | + +## screenshot + +![candy style screen](screenshot.png) + +## about font + +"V5 Eastergothic" font by vFive Digital (Roberto Christen). + +100% free font, downloaded from dafont.com: [v5eastergothic](https://www.dafont.com/v5eastergothic.font) diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/charset.txt b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/charset.txt new file mode 100644 index 0000000..611a673 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/charset.txt @@ -0,0 +1 @@ + !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/font_readme.txt b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/font_readme.txt new file mode 100644 index 0000000..cfd8cb2 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/font_readme.txt @@ -0,0 +1,27 @@ + +V5 Easter Gothic +---------------- +Instructions: + + +++ Easter Gothic ++ + +For screen use, set at 15pt or any multiple +of 15 (display). Turn antialiasing off. Set +tracking to 100 for best results. + +--------------- +Usage: This is a free font--you may use +this and other V5 fonts at will. It may not +be sold, altered, or improperly credited, +however. All I ask is that you kindly inform +me if you find this font useful, and where +you've used it. + +Enjoy, + +2000 +Roberto Christen +rob@vfive.com + + diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/screenshot.old.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/screenshot.old.png new file mode 100644 index 0000000..8d71945 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/screenshot.old.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/screenshot.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/screenshot.png new file mode 100644 index 0000000..b68ec52 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/screenshot.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/style_candy.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/style_candy.h new file mode 100644 index 0000000..dc0351e --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/style_candy.h @@ -0,0 +1,582 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleCandy(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define CANDY_STYLE_PROPS_COUNT 17 + +// Custom style name: Candy +static const GuiStyleProp candyStyleProps[CANDY_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0xe58b68ff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0xfeda96ff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0xe59b5fff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0xee813fff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0xfcd85bff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0xfc6955ff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0xb34848ff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0xeb7272ff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0xbd4a4aff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0x94795dff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0xc2a37aff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0x9c8369ff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x0000000f }, // DEFAULT_TEXT_SIZE + { 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING + { 0, 18, (int)0xd77575ff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0xfff5e1ff }, // DEFAULT_BACKGROUND_COLOR + { 0, 20, (int)0x00000007 }, // DEFAULT_TEXT_LINE_SPACING +}; + +// WARNING: This style uses a custom font: "v5easter.ttf" (size: 15, spacing: 0) + +#define CANDY_STYLE_FONT_ATLAS_COMP_SIZE 2110 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char candyFontData[CANDY_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0xdd, 0x5b, 0x76, 0xa4, 0x36, 0x10, 0x00, 0x50, 0xad, 0x2b, 0xfb, 0xdf, 0x97, 0x72, 0x92, 0x7c, 0xe4, 0xcc, 0x8c, 0x1b, + 0x54, 0xa5, 0x12, 0x08, 0xfa, 0xfa, 0xfe, 0x19, 0xbb, 0x1b, 0x10, 0xa5, 0x07, 0xa0, 0x52, 0x6f, 0x00, 0x00, 0x00, 0xc0, + 0x97, 0xfb, 0xe7, 0xe7, 0xcf, 0xdf, 0xb5, 0x1f, 0x7e, 0xfb, 0xff, 0xdf, 0xf6, 0x1f, 0xb7, 0x1e, 0x6d, 0xc9, 0xff, 0xe7, + 0xf1, 0x9e, 0x8c, 0x7d, 0x42, 0x3b, 0xd8, 0x72, 0xbe, 0xcf, 0xbf, 0xff, 0xae, 0x97, 0x7c, 0xfb, 0xa7, 0xcf, 0x39, 0xdb, + 0xa3, 0xcc, 0xb6, 0xa3, 0x4f, 0xed, 0x07, 0xc7, 0xd4, 0x06, 0xb6, 0xf4, 0xd4, 0xd1, 0xf5, 0xe9, 0x52, 0x8d, 0x95, 0xce, + 0xf9, 0xf1, 0xb7, 0xf0, 0x31, 0xb6, 0x05, 0xdb, 0xfa, 0x64, 0x19, 0xaf, 0x8c, 0xff, 0xdf, 0x7f, 0x2a, 0xe3, 0xff, 0xf8, + 0x33, 0x67, 0xae, 0x89, 0xff, 0x8f, 0xa6, 0x17, 0xc4, 0x7f, 0xbc, 0x16, 0x39, 0x3e, 0x82, 0xcf, 0x57, 0x71, 0x0b, 0xff, + 0xcf, 0x79, 0xfd, 0x5a, 0xf9, 0xa9, 0x2b, 0xb7, 0x8d, 0x45, 0xed, 0xfc, 0x75, 0x7e, 0xb6, 0x37, 0x73, 0x65, 0x78, 0xe5, + 0xb6, 0xda, 0xf8, 0x3f, 0xfb, 0xdb, 0x6c, 0xcd, 0x9e, 0xef, 0x1d, 0x8c, 0xb6, 0xe6, 0x3d, 0x74, 0xed, 0x9f, 0xb7, 0x62, + 0x35, 0x67, 0x38, 0x7a, 0xc4, 0xc7, 0x75, 0xc9, 0xd9, 0xd6, 0xf9, 0x36, 0x37, 0x72, 0x6d, 0xdc, 0x71, 0x15, 0x9f, 0x97, + 0x66, 0x45, 0xbb, 0xd4, 0x7f, 0x39, 0xdb, 0xe2, 0x7f, 0xf4, 0xaa, 0xed, 0x8b, 0x5b, 0xda, 0x16, 0x6e, 0x69, 0x73, 0x7d, + 0x96, 0xba, 0x33, 0x5c, 0x15, 0xff, 0x7d, 0x22, 0xfa, 0x5b, 0xa2, 0xc7, 0x79, 0x5c, 0x6b, 0x9f, 0xed, 0x7f, 0xf6, 0x2a, + 0xa9, 0xbd, 0x66, 0x67, 0xe3, 0xff, 0xb8, 0x3f, 0xdc, 0x0e, 0xeb, 0x9b, 0xeb, 0x7a, 0x5c, 0x3b, 0xc5, 0x7f, 0xb6, 0x87, + 0x3c, 0x3e, 0xba, 0xa9, 0x6b, 0xff, 0xd7, 0xc7, 0xff, 0x59, 0x44, 0xf6, 0xe0, 0x48, 0xb5, 0xb6, 0x35, 0x1e, 0x19, 0x4f, + 0x67, 0x6b, 0xf4, 0xf8, 0x18, 0xf7, 0xfa, 0xfe, 0xff, 0xf9, 0xb8, 0xb1, 0x2f, 0x1b, 0x39, 0xd5, 0x47, 0xd8, 0xbe, 0xfd, + 0xff, 0xb1, 0x7e, 0xc1, 0x9a, 0xfe, 0xff, 0xd9, 0xf8, 0xbf, 0x5d, 0xde, 0xfa, 0x9f, 0x45, 0x56, 0xbe, 0xf4, 0x7b, 0xaa, + 0x07, 0x34, 0x77, 0x57, 0x21, 0x57, 0x9e, 0x73, 0xf1, 0xbf, 0xa2, 0x0f, 0x10, 0x1d, 0xfd, 0xbd, 0xa3, 0xff, 0x9f, 0x39, + 0x83, 0xd9, 0xfb, 0xcc, 0x55, 0x47, 0x16, 0xbf, 0xcf, 0x7f, 0xdf, 0x19, 0xab, 0xab, 0xe7, 0x67, 0xcf, 0x60, 0xfd, 0xa7, + 0xe6, 0x7a, 0xd5, 0xd1, 0xab, 0xb8, 0xdf, 0xfa, 0x6c, 0xac, 0x3f, 0xe2, 0xce, 0xe9, 0x15, 0xed, 0xff, 0xd9, 0xfd, 0xff, + 0x99, 0xbb, 0x03, 0xb1, 0x27, 0x1b, 0x7d, 0xc3, 0x6b, 0x45, 0xfc, 0x3f, 0xa5, 0x15, 0xab, 0xea, 0x55, 0xbb, 0xff, 0x97, + 0x79, 0xa6, 0x5d, 0xd1, 0x9f, 0x7b, 0x4a, 0xfc, 0xf7, 0x81, 0xda, 0x74, 0x7c, 0x4b, 0xfe, 0x89, 0xfb, 0xaa, 0xb7, 0x0a, + 0xce, 0x9e, 0x36, 0x5e, 0xf7, 0x14, 0x7b, 0xc7, 0xf8, 0x7f, 0xc6, 0xf3, 0xff, 0x3d, 0xce, 0xe5, 0xda, 0x91, 0xdc, 0x8e, + 0xf1, 0x0f, 0xdf, 0xf1, 0x36, 0xe1, 0x75, 0x6f, 0x2d, 0x8a, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x9e, 0x3e, 0x3b, 0x27, 0x9f, 0x21, 0x32, 0x36, 0xe7, 0xa6, 0x2f, 0xc9, 0x8b, 0x94, 0x9b, 0x1b, 0x7d, + 0x6d, 0x0e, 0xe7, 0x6c, 0xd6, 0xec, 0xb9, 0x79, 0xe1, 0x9f, 0xf3, 0x09, 0xcd, 0x7c, 0xee, 0xf1, 0x5c, 0xe4, 0xc8, 0xbc, + 0xec, 0x6c, 0xae, 0xf3, 0x68, 0x4e, 0xa0, 0x4c, 0xee, 0xa4, 0xd9, 0xdc, 0xe9, 0xf1, 0x23, 0xce, 0xcc, 0x60, 0x9d, 0x9d, + 0xf3, 0x76, 0x55, 0xc6, 0xe6, 0x6c, 0x9c, 0x8e, 0x65, 0xbd, 0xed, 0xe1, 0x4c, 0x75, 0xbb, 0xe5, 0x69, 0xa8, 0xce, 0x9a, + 0xb1, 0x32, 0xfe, 0xdb, 0x50, 0x6e, 0xec, 0xb1, 0xf9, 0xce, 0xbd, 0x70, 0x46, 0xfb, 0x75, 0x39, 0xf7, 0xda, 0x74, 0x99, + 0x44, 0x5b, 0xaa, 0xf7, 0xc7, 0x7f, 0xf6, 0xd8, 0xcf, 0xce, 0x6a, 0xdf, 0x36, 0x8b, 0xfd, 0x9d, 0xf1, 0x9f, 0xed, 0xdb, + 0x1d, 0xb7, 0x7c, 0xf1, 0x8c, 0x07, 0xd7, 0x64, 0xb4, 0xe9, 0x1b, 0xc5, 0x7f, 0xfc, 0xdb, 0x56, 0xce, 0x61, 0x9f, 0x6b, + 0x7b, 0x7b, 0x59, 0xfc, 0xe7, 0xfb, 0x3e, 0xbb, 0xb5, 0xf1, 0xb5, 0x59, 0x73, 0xd6, 0xc5, 0x7f, 0x2b, 0xcf, 0xca, 0xb4, + 0x67, 0xfc, 0x8f, 0xb4, 0x0f, 0x99, 0xb1, 0x41, 0xfc, 0x3f, 0xb3, 0x35, 0x6e, 0xf4, 0xdb, 0x32, 0xed, 0xff, 0xf1, 0x51, + 0x3e, 0xb9, 0xfd, 0xdf, 0x25, 0xfe, 0xdb, 0x56, 0xfd, 0xff, 0xd9, 0xab, 0x31, 0x16, 0xe7, 0xf7, 0xe5, 0x66, 0xdb, 0x7d, + 0x25, 0xa3, 0xc8, 0x19, 0x9f, 0xcd, 0x8e, 0x9c, 0xbd, 0xef, 0x50, 0xb9, 0x62, 0xd3, 0xb3, 0xee, 0x71, 0xb5, 0xaf, 0x1c, + 0xff, 0xe7, 0xef, 0xfb, 0x8a, 0xff, 0xd9, 0xfe, 0x74, 0xbb, 0x21, 0xfe, 0x57, 0x9d, 0xbb, 0x27, 0xc7, 0xff, 0x4c, 0xcf, + 0xef, 0xaa, 0xf8, 0x6f, 0x1f, 0x57, 0xa1, 0x9a, 0x8d, 0xff, 0xfc, 0xda, 0x38, 0xd1, 0x38, 0xef, 0x37, 0x3e, 0xdf, 0x5a, + 0x51, 0x07, 0xe6, 0x9f, 0x37, 0x34, 0xf1, 0xff, 0xa8, 0xf8, 0xbf, 0xbf, 0xfd, 0x1f, 0x5d, 0x5b, 0xf1, 0xbb, 0xe3, 0xbf, + 0x4d, 0xdd, 0xe3, 0x5b, 0xf1, 0x7f, 0xbb, 0xf5, 0xff, 0xab, 0xeb, 0xce, 0x6b, 0xeb, 0xd3, 0x75, 0x7d, 0xdc, 0xdc, 0xfd, + 0xa4, 0xdc, 0x6a, 0x06, 0xb9, 0xac, 0xd9, 0x6b, 0xae, 0xa9, 0x96, 0x5e, 0xc3, 0xab, 0x85, 0x6b, 0x00, 0xf1, 0xff, 0xeb, + 0x96, 0x75, 0xab, 0x23, 0xc3, 0xea, 0x78, 0x7a, 0x56, 0xfc, 0xcf, 0xbd, 0x69, 0x50, 0xbf, 0xda, 0x60, 0xbf, 0xa1, 0xfd, + 0x87, 0xb5, 0x4f, 0xd9, 0xeb, 0xfe, 0x9e, 0x8a, 0x3e, 0x3d, 0xf0, 0xbd, 0xfd, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x8d, 0x73, 0x05, 0x3e, 0xcf, 0xf2, 0x3c, 0xce, 0x82, 0xd1, 0x92, 0x59, 0xb0, 0xdb, 0x40, + 0xe6, 0xe4, 0x9e, 0xfc, 0xbe, 0xc8, 0x2c, 0xe5, 0xdd, 0x72, 0x11, 0x44, 0xf3, 0x23, 0x46, 0x72, 0x63, 0xb7, 0x70, 0x9e, + 0xaf, 0x6c, 0x16, 0x9b, 0x36, 0x99, 0x73, 0x34, 0x3f, 0xff, 0x2e, 0x3b, 0x83, 0x7a, 0x2c, 0xa3, 0xdb, 0xd8, 0xf7, 0xf4, + 0xa1, 0x19, 0x7e, 0xb3, 0xa5, 0x50, 0x3f, 0x27, 0xb1, 0x5d, 0x9e, 0x75, 0xe3, 0xde, 0x6c, 0x4c, 0x4f, 0xca, 0xb7, 0x1d, + 0xc9, 0xc3, 0x7b, 0x9e, 0xcf, 0x63, 0x3e, 0xfe, 0x47, 0x73, 0x0a, 0xf4, 0xc9, 0xac, 0x9f, 0xd1, 0xba, 0xe2, 0xf8, 0xbc, + 0x1c, 0xcd, 0x4d, 0x8e, 0x45, 0x7f, 0x76, 0xfe, 0xcd, 0xf9, 0x3e, 0xac, 0x9b, 0x51, 0xfd, 0x1d, 0xf1, 0x1f, 0xaf, 0x41, + 0x9f, 0x90, 0x6f, 0xbb, 0x15, 0xfc, 0xb6, 0x72, 0xe6, 0x7b, 0x36, 0xa7, 0x48, 0x36, 0xfe, 0x23, 0xb1, 0xf5, 0xb9, 0x96, + 0x6b, 0x03, 0x19, 0xd4, 0xe6, 0xbf, 0x27, 0x13, 0xff, 0x3d, 0x9c, 0x6d, 0x25, 0xdb, 0xfe, 0xc7, 0x5a, 0x97, 0x3d, 0xe3, + 0x3f, 0xd3, 0xe3, 0xec, 0x17, 0xc6, 0xff, 0x5c, 0x8e, 0xaf, 0x76, 0x79, 0xfc, 0xd7, 0xae, 0x53, 0x31, 0x36, 0x92, 0xa9, + 0xe8, 0x69, 0xff, 0x34, 0x3a, 0x3c, 0x1a, 0x19, 0xd5, 0xc5, 0x7f, 0xff, 0xe1, 0x1b, 0x57, 0xb5, 0xff, 0x55, 0x19, 0x55, + 0xfb, 0xc1, 0xfe, 0xbe, 0x21, 0xfe, 0xdb, 0x26, 0xfd, 0xff, 0xfa, 0xb5, 0xd4, 0xf6, 0x8c, 0xff, 0x78, 0x8f, 0x2b, 0xde, + 0x7a, 0xc5, 0xfa, 0x0a, 0xe7, 0x23, 0x80, 0x5e, 0x50, 0x03, 0xf4, 0xdf, 0xd6, 0xa3, 0xaa, 0x1a, 0x85, 0xc7, 0x56, 0x12, + 0xcb, 0xb5, 0xff, 0xfd, 0xb5, 0xed, 0x7f, 0xed, 0xf8, 0x7f, 0x55, 0x2e, 0xc2, 0xda, 0xf5, 0xb6, 0xaa, 0x72, 0x6d, 0xe6, + 0xfa, 0x5a, 0xd9, 0xf6, 0xff, 0xac, 0x77, 0x30, 0x13, 0xff, 0x6d, 0x32, 0x2e, 0x63, 0xf5, 0x4c, 0x7f, 0x54, 0x06, 0x8e, + 0x91, 0x35, 0xf2, 0xea, 0xae, 0xf4, 0xd1, 0x08, 0x8a, 0x6c, 0x9d, 0xcd, 0xaa, 0x36, 0xfe, 0xa4, 0x61, 0xa4, 0xa6, 0xfe, + 0xfc, 0x94, 0x62, 0xe4, 0xac, 0x54, 0x8c, 0x01, 0x77, 0xed, 0xff, 0xdf, 0xd3, 0xfe, 0x8f, 0xb4, 0xfe, 0x35, 0x79, 0xc8, + 0x7a, 0x79, 0xfe, 0x9d, 0x5e, 0xb8, 0x77, 0x75, 0x2d, 0xe4, 0x1d, 0x4f, 0x22, 0x57, 0xec, 0xd1, 0x7e, 0x59, 0xd2, 0x7a, + 0xf2, 0xce, 0xf1, 0x5e, 0xfd, 0xff, 0xfc, 0xd8, 0x2a, 0x32, 0xaa, 0xaf, 0x7b, 0xfe, 0x57, 0xdd, 0x96, 0x3e, 0x2b, 0xfb, + 0x96, 0xf8, 0xdf, 0xbb, 0x0c, 0xf6, 0x8a, 0xff, 0xd1, 0x55, 0xcc, 0x7b, 0xf9, 0x93, 0xf8, 0x67, 0xd4, 0xe0, 0xcf, 0x7d, + 0xff, 0xe7, 0xfa, 0x95, 0x47, 0xef, 0x8e, 0xff, 0xdd, 0x6a, 0x80, 0xaa, 0x15, 0xaf, 0xdb, 0xe2, 0x37, 0x43, 0xee, 0x3f, + 0x6b, 0x2b, 0x56, 0x08, 0x86, 0xb7, 0xbc, 0xbf, 0xd9, 0x5f, 0xdf, 0x6f, 0x7a, 0x62, 0x4f, 0x1b, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xd5, 0xfc, 0xbf, 0x3e, 0x39, 0x37, 0x30, 0x97, 0x59, 0xa8, 0x9d, 0xce, + 0x30, 0xed, 0xe9, 0xbf, 0x89, 0x1c, 0x4b, 0x3e, 0x67, 0x45, 0x26, 0xe7, 0x76, 0x3b, 0xc9, 0x53, 0x53, 0x73, 0x6e, 0xae, + 0x39, 0xce, 0xf3, 0xdc, 0x7a, 0xb1, 0xeb, 0x22, 0x72, 0xa6, 0xce, 0x73, 0xa6, 0x5c, 0x77, 0x1e, 0xb2, 0xe5, 0xdd, 0x4f, + 0x66, 0x73, 0xf7, 0xc3, 0x4c, 0x35, 0x15, 0xb9, 0x54, 0xce, 0x3e, 0x3f, 0x9f, 0x79, 0xaf, 0x25, 0x32, 0xae, 0xf5, 0x3f, + 0x72, 0x39, 0xf5, 0xd4, 0xdf, 0x44, 0x4b, 0x3d, 0xb7, 0x6d, 0x24, 0xa7, 0x63, 0x5d, 0x9e, 0xe8, 0xcc, 0xb9, 0x59, 0x7f, + 0x9c, 0xf1, 0xeb, 0xa2, 0x17, 0x7d, 0xc3, 0x68, 0x1e, 0x92, 0xfd, 0xcb, 0xfb, 0x3c, 0x63, 0xec, 0x5c, 0x36, 0x85, 0xd5, + 0xf1, 0x1f, 0xcb, 0xb9, 0x1a, 0xc9, 0x2b, 0x56, 0x19, 0xff, 0x7b, 0xf5, 0xc7, 0xf2, 0xab, 0x41, 0x54, 0x65, 0xd8, 0x7f, + 0xc6, 0x2c, 0xdd, 0xfc, 0x4a, 0x04, 0xcf, 0x29, 0xef, 0xd5, 0xc7, 0x37, 0x52, 0x53, 0xce, 0xe5, 0x81, 0xb8, 0x2b, 0xfe, + 0xeb, 0xfa, 0xff, 0xd9, 0xfe, 0x74, 0x66, 0x0d, 0xa4, 0xd9, 0xdc, 0x89, 0x33, 0x2b, 0x89, 0x5c, 0x7d, 0x2c, 0x73, 0xa3, + 0x82, 0x91, 0x31, 0xeb, 0x0e, 0xe7, 0x61, 0xe6, 0x1c, 0xb5, 0xc9, 0x95, 0x16, 0xce, 0x23, 0xa0, 0x0f, 0x8c, 0x4f, 0xfa, + 0x64, 0x0d, 0x13, 0x2d, 0xd1, 0xf3, 0x73, 0x55, 0x5b, 0x2f, 0xe6, 0x3e, 0x6f, 0xd7, 0x6d, 0x7d, 0x62, 0x1c, 0x73, 0xef, + 0xca, 0x45, 0x35, 0xf1, 0x3f, 0xde, 0xab, 0xdd, 0xbd, 0x4c, 0xdb, 0xc0, 0x38, 0x79, 0xff, 0xf8, 0x8f, 0xc6, 0x61, 0x65, + 0x1f, 0x77, 0x36, 0x9b, 0xf4, 0x3d, 0xdb, 0xe6, 0x57, 0x26, 0xd9, 0xfd, 0xda, 0xbe, 0x3b, 0xfe, 0xd7, 0xac, 0xfe, 0x52, + 0x7d, 0x8e, 0xce, 0x46, 0x0d, 0x55, 0xed, 0xff, 0xd9, 0x08, 0xa4, 0x6f, 0x31, 0x2e, 0x1c, 0x8b, 0xed, 0xf8, 0xfd, 0xff, + 0xb9, 0x6b, 0x65, 0xc5, 0xb6, 0xf9, 0xeb, 0x76, 0xdf, 0x18, 0xdf, 0x25, 0xfe, 0x9f, 0x50, 0x47, 0xce, 0xb4, 0xda, 0xd1, + 0xf6, 0xbf, 0x5d, 0x18, 0xff, 0x35, 0x77, 0x2a, 0x7a, 0xe1, 0x8a, 0x76, 0x4f, 0xbf, 0x56, 0xe6, 0xef, 0xff, 0xad, 0x78, + 0x02, 0xb2, 0x73, 0xfb, 0x2f, 0xfe, 0x9f, 0x16, 0xff, 0xd9, 0x67, 0xfb, 0x33, 0xfd, 0x91, 0x67, 0x8e, 0xff, 0x6b, 0xef, + 0x43, 0x3d, 0xb5, 0xff, 0xff, 0xf4, 0x32, 0x9d, 0xeb, 0xb5, 0xcb, 0x90, 0xfc, 0x4d, 0x7d, 0x83, 0xd9, 0x3b, 0x9d, 0x6f, + 0x8b, 0xff, 0x77, 0x97, 0x69, 0xf5, 0x0a, 0xe9, 0x7c, 0x4b, 0xfc, 0xb7, 0x0b, 0xdb, 0xc4, 0xf8, 0xfb, 0x86, 0xdf, 0x17, + 0xff, 0xab, 0xde, 0x91, 0x10, 0xff, 0xcf, 0x8c, 0xff, 0xd5, 0x65, 0x7a, 0xed, 0x7b, 0x0e, 0x35, 0xef, 0xff, 0xad, 0x5a, + 0xf5, 0x65, 0x87, 0xe7, 0xff, 0xcf, 0x7d, 0xf7, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, + 0xfb, 0x3d, 0xf7, 0xd8, 0x96, 0xe3, 0xb9, 0x48, 0xb1, 0xec, 0x7b, 0xbb, 0x67, 0x63, 0x6e, 0xb2, 0x6f, 0x87, 0x4a, 0x7f, + 0xf4, 0x7c, 0xef, 0x54, 0xbe, 0x9f, 0x4b, 0xac, 0xdf, 0x5e, 0x66, 0xb1, 0x98, 0x8a, 0x1f, 0x67, 0xc5, 0xe7, 0xe4, 0xa3, + 0xff, 0xca, 0xac, 0xd4, 0xb2, 0x6f, 0xaf, 0xce, 0xbe, 0x1d, 0x39, 0xdf, 0xfb, 0x94, 0x6f, 0x7c, 0xbe, 0xd5, 0xb5, 0x65, + 0xb6, 0xd7, 0x6c, 0xbe, 0xaa, 0x19, 0x86, 0x7b, 0xcd, 0x54, 0xec, 0x13, 0x19, 0xd5, 0xbb, 0xec, 0xdb, 0x8f, 0xe8, 0xe7, + 0x56, 0xac, 0x8c, 0xf1, 0x9e, 0x98, 0xba, 0x7b, 0x86, 0xeb, 0x73, 0xb2, 0x31, 0x8f, 0xf5, 0x61, 0x72, 0xab, 0x25, 0xbd, + 0x27, 0xfb, 0xf6, 0x4f, 0xad, 0xdd, 0xb5, 0x33, 0x6a, 0xab, 0xca, 0xf7, 0x38, 0xc7, 0xee, 0xce, 0xd9, 0x1f, 0x9e, 0x17, + 0xff, 0xbb, 0x64, 0xa5, 0x6a, 0x27, 0x25, 0x9e, 0xbf, 0xae, 0xbe, 0x29, 0xfb, 0xee, 0x3b, 0x32, 0xa8, 0xf4, 0xad, 0xae, + 0xcd, 0x77, 0xc7, 0x7f, 0x26, 0x1e, 0x57, 0x6c, 0xab, 0xc9, 0x0c, 0xff, 0xed, 0xd9, 0x77, 0xdf, 0x13, 0xff, 0x4d, 0xfc, + 0xdf, 0xde, 0xff, 0xbf, 0x6e, 0xdb, 0x7c, 0xdf, 0x60, 0xc5, 0xfd, 0xff, 0xe7, 0x65, 0xdf, 0x7d, 0x53, 0xfb, 0xbf, 0x4b, + 0xc6, 0xc4, 0x68, 0x4c, 0xf5, 0x17, 0xc4, 0xff, 0x8e, 0xed, 0xa9, 0xec, 0x9b, 0xdf, 0x11, 0xff, 0x7d, 0xc3, 0xe3, 0xea, + 0x45, 0x75, 0xd7, 0x35, 0xd7, 0x57, 0xf4, 0x2e, 0xcb, 0x2e, 0x71, 0x51, 0x7d, 0x6f, 0x70, 0xfc, 0x09, 0xfb, 0x1b, 0xb3, + 0x6f, 0xbe, 0x35, 0xdb, 0xe6, 0xca, 0xfd, 0x6b, 0xe1, 0xb5, 0xf8, 0xf3, 0x4f, 0x68, 0x56, 0xd5, 0xa5, 0x15, 0x2b, 0x6f, + 0xef, 0x94, 0x8d, 0x51, 0xf6, 0xcd, 0x15, 0xcf, 0xa2, 0x9e, 0x9c, 0x6d, 0xf3, 0x3c, 0x56, 0xe3, 0xdb, 0xd6, 0xc7, 0xf4, + 0x55, 0x75, 0xe9, 0xfb, 0x72, 0x8f, 0xca, 0xa8, 0xca, 0x33, 0xde, 0xb7, 0xc9, 0xdd, 0xe7, 0xa8, 0xbd, 0xe6, 0x45, 0x0a, + 0xdc, 0xf5, 0x6e, 0x90, 0xb6, 0x8a, 0xdd, 0xfc, 0xe5, 0x1c, 0xe8, 0x7f, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfa, 0xef, 0xc7, + 0x79, 0x00, 0xf1, 0x0f, 0x7c, 0x5d, 0xfc, 0xff, 0x0d }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle candyFontRecs[189] = { + { 4, 4, 3 , 15 }, + { 15, 4, 2 , 9 }, + { 25, 4, 3 , 2 }, + { 36, 4, 8 , 9 }, + { 52, 4, 6 , 11 }, + { 66, 4, 7 , 9 }, + { 81, 4, 7 , 9 }, + { 96, 4, 1 , 2 }, + { 105, 4, 3 , 11 }, + { 116, 4, 3 , 11 }, + { 127, 4, 7 , 7 }, + { 142, 4, 6 , 5 }, + { 156, 4, 2 , 3 }, + { 166, 4, 5 , 1 }, + { 179, 4, 2 , 2 }, + { 189, 4, 5 , 10 }, + { 202, 4, 6 , 9 }, + { 216, 4, 4 , 9 }, + { 228, 4, 6 , 9 }, + { 242, 4, 6 , 9 }, + { 256, 4, 7 , 9 }, + { 271, 4, 6 , 9 }, + { 285, 4, 6 , 9 }, + { 299, 4, 6 , 9 }, + { 313, 4, 6 , 9 }, + { 327, 4, 6 , 9 }, + { 341, 4, 2 , 6 }, + { 351, 4, 2 , 7 }, + { 361, 4, 4 , 6 }, + { 373, 4, 5 , 3 }, + { 386, 4, 4 , 6 }, + { 398, 4, 6 , 9 }, + { 412, 4, 8 , 7 }, + { 428, 4, 6 , 9 }, + { 442, 4, 6 , 9 }, + { 456, 4, 6 , 9 }, + { 470, 4, 6 , 9 }, + { 484, 4, 6 , 9 }, + { 4, 27, 6 , 9 }, + { 18, 27, 6 , 9 }, + { 32, 27, 6 , 9 }, + { 46, 27, 2 , 9 }, + { 56, 27, 6 , 9 }, + { 70, 27, 6 , 9 }, + { 84, 27, 6 , 9 }, + { 98, 27, 8 , 9 }, + { 114, 27, 6 , 9 }, + { 128, 27, 6 , 9 }, + { 142, 27, 6 , 9 }, + { 156, 27, 6 , 9 }, + { 170, 27, 6 , 9 }, + { 184, 27, 6 , 9 }, + { 198, 27, 6 , 9 }, + { 212, 27, 6 , 9 }, + { 226, 27, 6 , 9 }, + { 240, 27, 8 , 9 }, + { 256, 27, 6 , 9 }, + { 270, 27, 6 , 9 }, + { 284, 27, 6 , 9 }, + { 298, 27, 3 , 11 }, + { 309, 27, 5 , 10 }, + { 322, 27, 3 , 11 }, + { 333, 27, 6 , 4 }, + { 347, 27, 6 , 1 }, + { 361, 27, 3 , 2 }, + { 372, 27, 6 , 7 }, + { 386, 27, 6 , 10 }, + { 400, 27, 6 , 7 }, + { 414, 27, 6 , 10 }, + { 428, 27, 6 , 7 }, + { 442, 27, 5 , 10 }, + { 455, 27, 7 , 10 }, + { 470, 27, 6 , 10 }, + { 484, 27, 2 , 10 }, + { 494, 27, 2 , 12 }, + { 4, 50, 6 , 10 }, + { 18, 50, 3 , 10 }, + { 29, 50, 8 , 7 }, + { 45, 50, 6 , 7 }, + { 59, 50, 6 , 7 }, + { 73, 50, 6 , 10 }, + { 87, 50, 6 , 10 }, + { 101, 50, 6 , 7 }, + { 115, 50, 6 , 7 }, + { 129, 50, 3 , 10 }, + { 140, 50, 6 , 7 }, + { 154, 50, 6 , 7 }, + { 168, 50, 8 , 7 }, + { 184, 50, 6 , 7 }, + { 198, 50, 6 , 10 }, + { 212, 50, 6 , 7 }, + { 226, 50, 4 , 11 }, + { 238, 50, 1 , 11 }, + { 247, 50, 4 , 11 }, + { 259, 50, 6 , 2 }, + { 273, 50, 2 , 10 }, + { 283, 50, 6 , 11 }, + { 297, 50, 8 , 9 }, + { 313, 50, 7 , 9 }, + { 328, 50, 6 , 9 }, + { 342, 50, 0 , 0 }, + { 350, 50, 6 , 11 }, + { 364, 50, 0 , 0 }, + { 372, 50, 8 , 8 }, + { 388, 50, 5 , 7 }, + { 401, 50, 7 , 6 }, + { 416, 50, 0 , 0 }, + { 424, 50, 8 , 8 }, + { 440, 50, 6 , 1 }, + { 454, 50, 4 , 5 }, + { 466, 50, 6 , 7 }, + { 480, 50, 3 , 5 }, + { 491, 50, 3 , 5 }, + { 502, 50, 0 , 0 }, + { 4, 73, 6 , 9 }, + { 18, 73, 6 , 9 }, + { 32, 73, 4 , 4 }, + { 44, 73, 0 , 0 }, + { 52, 73, 2 , 5 }, + { 62, 73, 4 , 7 }, + { 74, 73, 7 , 6 }, + { 89, 73, 10 , 9 }, + { 107, 73, 10 , 7 }, + { 125, 73, 0 , 0 }, + { 133, 73, 6 , 9 }, + { 147, 73, 6 , 12 }, + { 161, 73, 6 , 12 }, + { 175, 73, 6 , 12 }, + { 189, 73, 6 , 12 }, + { 203, 73, 6 , 11 }, + { 217, 73, 6 , 12 }, + { 231, 73, 10 , 9 }, + { 249, 73, 6 , 12 }, + { 263, 73, 6 , 12 }, + { 277, 73, 6 , 12 }, + { 291, 73, 6 , 12 }, + { 305, 73, 6 , 11 }, + { 319, 73, 3 , 12 }, + { 330, 73, 3 , 12 }, + { 341, 73, 4 , 12 }, + { 353, 73, 4 , 11 }, + { 365, 73, 8 , 9 }, + { 381, 73, 6 , 12 }, + { 395, 73, 6 , 12 }, + { 409, 73, 6 , 12 }, + { 423, 73, 6 , 12 }, + { 437, 73, 6 , 12 }, + { 451, 73, 6 , 11 }, + { 465, 73, 5 , 5 }, + { 478, 73, 9 , 10 }, + { 495, 73, 6 , 12 }, + { 4, 96, 6 , 12 }, + { 18, 96, 6 , 12 }, + { 32, 96, 6 , 11 }, + { 46, 96, 6 , 12 }, + { 60, 96, 0 , 0 }, + { 68, 96, 6 , 10 }, + { 82, 96, 6 , 10 }, + { 96, 96, 6 , 10 }, + { 110, 96, 6 , 10 }, + { 124, 96, 6 , 10 }, + { 138, 96, 6 , 9 }, + { 152, 96, 6 , 11 }, + { 166, 96, 10 , 7 }, + { 184, 96, 6 , 10 }, + { 198, 96, 6 , 10 }, + { 212, 96, 6 , 10 }, + { 226, 96, 6 , 10 }, + { 240, 96, 6 , 9 }, + { 254, 96, 3 , 10 }, + { 265, 96, 3 , 10 }, + { 276, 96, 4 , 10 }, + { 288, 96, 4 , 9 }, + { 300, 96, 0 , 0 }, + { 308, 96, 6 , 13 }, + { 322, 96, 6 , 10 }, + { 336, 96, 6 , 10 }, + { 350, 96, 6 , 10 }, + { 364, 96, 6 , 10 }, + { 378, 96, 6 , 9 }, + { 392, 96, 0 , 0 }, + { 400, 96, 8 , 8 }, + { 416, 96, 6 , 10 }, + { 430, 96, 6 , 10 }, + { 444, 96, 6 , 10 }, + { 458, 96, 6 , 9 }, + { 472, 96, 6 , 13 }, + { 486, 96, 0 , 0 }, + { 494, 96, 6 , 12 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo candyFontGlyphs[189] = { + { 32, 0, 0, 3, { 0 }}, + { 33, 0, 3, 3, { 0 }}, + { 34, 0, 2, 4, { 0 }}, + { 35, 0, 3, 9, { 0 }}, + { 36, 0, 2, 7, { 0 }}, + { 37, 0, 3, 8, { 0 }}, + { 38, 0, 3, 8, { 0 }}, + { 39, 0, 2, 2, { 0 }}, + { 40, 1, 2, 5, { 0 }}, + { 41, 1, 2, 5, { 0 }}, + { 42, 0, 4, 8, { 0 }}, + { 43, 0, 6, 7, { 0 }}, + { 44, 0, 10, 3, { 0 }}, + { 45, 0, 7, 6, { 0 }}, + { 46, 0, 10, 3, { 0 }}, + { 47, 1, 3, 7, { 0 }}, + { 48, 0, 3, 7, { 0 }}, + { 49, 0, 3, 5, { 0 }}, + { 50, 0, 3, 7, { 0 }}, + { 51, 0, 3, 7, { 0 }}, + { 52, 0, 3, 8, { 0 }}, + { 53, 0, 3, 7, { 0 }}, + { 54, 0, 3, 7, { 0 }}, + { 55, 0, 3, 7, { 0 }}, + { 56, 0, 3, 7, { 0 }}, + { 57, 0, 3, 7, { 0 }}, + { 58, 0, 6, 3, { 0 }}, + { 59, 0, 6, 3, { 0 }}, + { 60, 1, 5, 6, { 0 }}, + { 61, 1, 7, 7, { 0 }}, + { 62, 1, 5, 6, { 0 }}, + { 63, 0, 3, 7, { 0 }}, + { 64, 0, 4, 9, { 0 }}, + { 65, 0, 3, 7, { 0 }}, + { 66, 0, 3, 7, { 0 }}, + { 67, 0, 3, 7, { 0 }}, + { 68, 0, 3, 7, { 0 }}, + { 69, 0, 3, 7, { 0 }}, + { 70, 0, 3, 7, { 0 }}, + { 71, 0, 3, 7, { 0 }}, + { 72, 0, 3, 7, { 0 }}, + { 73, 0, 3, 3, { 0 }}, + { 74, 0, 3, 7, { 0 }}, + { 75, 0, 3, 7, { 0 }}, + { 76, 0, 3, 7, { 0 }}, + { 77, 0, 3, 9, { 0 }}, + { 78, 0, 3, 7, { 0 }}, + { 79, 0, 3, 7, { 0 }}, + { 80, 0, 3, 7, { 0 }}, + { 81, 0, 3, 7, { 0 }}, + { 82, 0, 3, 7, { 0 }}, + { 83, 0, 3, 7, { 0 }}, + { 84, 0, 3, 7, { 0 }}, + { 85, 0, 3, 7, { 0 }}, + { 86, 0, 3, 7, { 0 }}, + { 87, 0, 3, 9, { 0 }}, + { 88, 0, 3, 7, { 0 }}, + { 89, 0, 3, 7, { 0 }}, + { 90, 0, 3, 7, { 0 }}, + { 91, 1, 2, 5, { 0 }}, + { 92, 1, 3, 7, { 0 }}, + { 93, 1, 2, 5, { 0 }}, + { 94, 0, 3, 7, { 0 }}, + { 95, 0, 11, 7, { 0 }}, + { 96, 0, 0, 4, { 0 }}, + { 97, 0, 5, 7, { 0 }}, + { 98, 0, 2, 7, { 0 }}, + { 99, 0, 5, 7, { 0 }}, + { 100, 0, 2, 7, { 0 }}, + { 101, 0, 5, 7, { 0 }}, + { 102, 0, 2, 6, { 0 }}, + { 103, 0, 5, 7, { 0 }}, + { 104, 0, 2, 7, { 0 }}, + { 105, 0, 2, 3, { 0 }}, + { 106, 0, 2, 3, { 0 }}, + { 107, 0, 2, 7, { 0 }}, + { 108, 0, 2, 4, { 0 }}, + { 109, 0, 5, 9, { 0 }}, + { 110, 0, 5, 7, { 0 }}, + { 111, 0, 5, 7, { 0 }}, + { 112, 0, 5, 7, { 0 }}, + { 113, 0, 5, 7, { 0 }}, + { 114, 0, 5, 7, { 0 }}, + { 115, 0, 5, 7, { 0 }}, + { 116, 0, 2, 4, { 0 }}, + { 117, 0, 5, 7, { 0 }}, + { 118, 0, 5, 7, { 0 }}, + { 119, 0, 5, 9, { 0 }}, + { 120, 0, 5, 7, { 0 }}, + { 121, 0, 5, 7, { 0 }}, + { 122, 0, 5, 7, { 0 }}, + { 123, 1, 2, 6, { 0 }}, + { 124, 1, 2, 3, { 0 }}, + { 125, 1, 2, 6, { 0 }}, + { 126, 0, 0, 7, { 0 }}, + { 161, 0, 3, 3, { 0 }}, + { 162, 0, 2, 7, { 0 }}, + { 163, 0, 3, 9, { 0 }}, + { 8364, 0, 3, 8, { 0 }}, + { 165, 0, 3, 7, { 0 }}, + { 352, 0, 0, 0, { 0 }}, + { 167, 0, 2, 7, { 0 }}, + { 353, 0, 0, 0, { 0 }}, + { 169, 0, 0, 9, { 0 }}, + { 170, 0, 0, 6, { 0 }}, + { 171, 1, 5, 9, { 0 }}, + { 172, 0, 0, 0, { 0 }}, + { 174, 0, 0, 9, { 0 }}, + { 175, 0, 0, 7, { 0 }}, + { 176, 0, 0, 5, { 0 }}, + { 177, 0, 4, 7, { 0 }}, + { 178, 0, 0, 4, { 0 }}, + { 179, 0, 0, 4, { 0 }}, + { 381, 0, 0, 0, { 0 }}, + { 181, 0, 5, 7, { 0 }}, + { 182, 0, 3, 7, { 0 }}, + { 183, 0, 6, 5, { 0 }}, + { 382, 0, 0, 0, { 0 }}, + { 185, 0, 0, 3, { 0 }}, + { 186, 0, 0, 5, { 0 }}, + { 187, 1, 5, 9, { 0 }}, + { 338, 0, 3, 11, { 0 }}, + { 339, 0, 5, 11, { 0 }}, + { 376, 0, 0, 0, { 0 }}, + { 191, 0, 4, 7, { 0 }}, + { 192, 0, 0, 7, { 0 }}, + { 193, 0, 0, 7, { 0 }}, + { 194, 0, 0, 7, { 0 }}, + { 195, 0, 0, 7, { 0 }}, + { 196, 0, 1, 7, { 0 }}, + { 197, 0, 0, 7, { 0 }}, + { 198, 0, 3, 11, { 0 }}, + { 199, 0, 3, 7, { 0 }}, + { 200, 0, 0, 7, { 0 }}, + { 201, 0, 0, 7, { 0 }}, + { 202, 0, 0, 7, { 0 }}, + { 203, 0, 1, 7, { 0 }}, + { 204, -1, 0, 3, { 0 }}, + { 205, 0, 0, 3, { 0 }}, + { 206, -1, 0, 3, { 0 }}, + { 207, -1, 1, 3, { 0 }}, + { 208, 0, 3, 9, { 0 }}, + { 209, 0, 0, 7, { 0 }}, + { 210, 0, 0, 7, { 0 }}, + { 211, 0, 0, 7, { 0 }}, + { 212, 0, 0, 7, { 0 }}, + { 213, 0, 0, 7, { 0 }}, + { 214, 0, 1, 7, { 0 }}, + { 215, 0, 7, 6, { 0 }}, + { 216, 0, 3, 10, { 0 }}, + { 217, 0, 0, 7, { 0 }}, + { 218, 0, 0, 7, { 0 }}, + { 219, 0, 0, 7, { 0 }}, + { 220, 0, 1, 7, { 0 }}, + { 221, 0, 0, 7, { 0 }}, + { 222, 0, 0, 0, { 0 }}, + { 223, 0, 3, 7, { 0 }}, + { 224, 0, 2, 7, { 0 }}, + { 225, 0, 2, 7, { 0 }}, + { 226, 0, 2, 7, { 0 }}, + { 227, 0, 2, 7, { 0 }}, + { 228, 0, 3, 7, { 0 }}, + { 229, 0, 1, 7, { 0 }}, + { 230, 0, 5, 11, { 0 }}, + { 231, 0, 5, 7, { 0 }}, + { 232, 0, 2, 7, { 0 }}, + { 233, 0, 2, 7, { 0 }}, + { 234, 0, 2, 7, { 0 }}, + { 235, 0, 3, 7, { 0 }}, + { 236, 0, 2, 4, { 0 }}, + { 237, 0, 2, 4, { 0 }}, + { 238, 0, 2, 4, { 0 }}, + { 239, 0, 3, 4, { 0 }}, + { 240, 0, 0, 0, { 0 }}, + { 241, 0, 2, 7, { 0 }}, + { 242, 0, 2, 7, { 0 }}, + { 243, 0, 2, 7, { 0 }}, + { 244, 0, 2, 7, { 0 }}, + { 245, 0, 2, 7, { 0 }}, + { 246, 0, 3, 7, { 0 }}, + { 247, 0, 0, 0, { 0 }}, + { 248, 0, 5, 9, { 0 }}, + { 249, 0, 2, 7, { 0 }}, + { 250, 0, 2, 7, { 0 }}, + { 251, 0, 2, 7, { 0 }}, + { 252, 0, 3, 7, { 0 }}, + { 253, 0, 2, 7, { 0 }}, + { 254, 0, 0, 0, { 0 }}, + { 255, 0, 3, 7, { 0 }}, +}; + +// Style loading function: Candy +static void GuiLoadStyleCandy(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < CANDY_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(candyStyleProps[i].controlId, candyStyleProps[i].propertyId, candyStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int candyFontDataSize = 0; + unsigned char *data = DecompressData(candyFontData, CANDY_STYLE_FONT_ATLAS_COMP_SIZE, &candyFontDataSize); + Image imFont = { data, 512, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 15; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, candyFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, candyFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 510, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/style_candy.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/style_candy.png new file mode 100644 index 0000000..cf5a770 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/style_candy.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/style_candy.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/style_candy.rgs new file mode 100644 index 0000000..f016522 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/style_candy.rgs differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/style_candy.txt.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/style_candy.txt.rgs new file mode 100644 index 0000000..69b6088 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/style_candy.txt.rgs @@ -0,0 +1,27 @@ +# +# rgs style text file (v4.0) - raygui style file generated using rGuiStyler +# +# Provided info: +# f fontGenSize charsetFileName fontFileName +# p Property description +# +# WARNING: This style uses a custom font, must be provided with style file +# +f 15 charset.txt v5easter.ttf +p 00 00 0xe58b68ff DEFAULT_BORDER_COLOR_NORMAL +p 00 01 0xfeda96ff DEFAULT_BASE_COLOR_NORMAL +p 00 02 0xe59b5fff DEFAULT_TEXT_COLOR_NORMAL +p 00 03 0xee813fff DEFAULT_BORDER_COLOR_FOCUSED +p 00 04 0xfcd85bff DEFAULT_BASE_COLOR_FOCUSED +p 00 05 0xfc6955ff DEFAULT_TEXT_COLOR_FOCUSED +p 00 06 0xb34848ff DEFAULT_BORDER_COLOR_PRESSED +p 00 07 0xeb7272ff DEFAULT_BASE_COLOR_PRESSED +p 00 08 0xbd4a4aff DEFAULT_TEXT_COLOR_PRESSED +p 00 09 0x94795dff DEFAULT_BORDER_COLOR_DISABLED +p 00 10 0xc2a37aff DEFAULT_BASE_COLOR_DISABLED +p 00 11 0x9c8369ff DEFAULT_TEXT_COLOR_DISABLED +p 00 16 0x0000000f TEXT_SIZE +p 00 17 0x00000000 TEXT_SPACING +p 00 18 0xd77575ff LINE_COLOR +p 00 19 0xfff5e1ff BACKGROUND_COLOR +p 00 20 0x00000016 TEXT_LINE_SPACING diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/v5easter.ttf b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/v5easter.ttf new file mode 100644 index 0000000..77a911a Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/candy/v5easter.ttf differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/README.md b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/README.md new file mode 100644 index 0000000..2830c03 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/README.md @@ -0,0 +1,27 @@ +## style: cherry + +Sweet with a touch of liquour, covered in chocolate, just give it a try! Not suitable for every palate, only the most demanding. + +![cherry style table](style_cherry.png) + +## style: provided files + +Several options are provided to add the style to a `raygui` application, choose the one that better fits the project. + +| file name | description | +| :-------- | :---------- | +| `style_cherry.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) | +| `style_cherry.txt.rgs` | Text style file, no font data, requires external font provided | +| `style_cherry.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) | +| `style_cherry.h` | Embeddable style as code file, self-contained, includes font data | +| `style_cherry.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data | + +## screenshot + +![cherry style screen](screenshot.png) + +## about font + +"Westington" font by Hazel Abbiati. + +100% free font, downloaded from dafont.com: [westington](https://www.dafont.com/westington.font) diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/Westington.ttf b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/Westington.ttf new file mode 100644 index 0000000..68efae8 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/Westington.ttf differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/charset.txt b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/charset.txt new file mode 100644 index 0000000..611a673 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/charset.txt @@ -0,0 +1 @@ + !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/screenshot.old.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/screenshot.old.png new file mode 100644 index 0000000..3c139e9 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/screenshot.old.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/screenshot.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/screenshot.png new file mode 100644 index 0000000..5c01e0b Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/screenshot.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/style_cherry.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/style_cherry.h new file mode 100644 index 0000000..dd8bdd7 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/style_cherry.h @@ -0,0 +1,617 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleCherry(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define CHERRY_STYLE_PROPS_COUNT 17 + +// Custom style name: Cherry +static const GuiStyleProp cherryStyleProps[CHERRY_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0xda5757ff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0x753233ff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0xe17373ff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0xfaaa97ff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0xe06262ff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0xfdb4aaff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0xe03c46ff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0x5b1e20ff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0xc2474fff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0xa19292ff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0x706060ff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0x9e8585ff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x0000000f }, // DEFAULT_TEXT_SIZE + { 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING + { 0, 18, (int)0xfb8170ff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0x3a1720ff }, // DEFAULT_BACKGROUND_COLOR + { 0, 20, (int)0x00000007 }, // DEFAULT_TEXT_LINE_SPACING +}; + +// WARNING: This style uses a custom font: "Westington.ttf" (size: 15, spacing: 0) + +#define CHERRY_STYLE_FONT_ATLAS_COMP_SIZE 2821 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char cherryFontData[CHERRY_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0xdd, 0x59, 0x92, 0xdc, 0xba, 0x11, 0x05, 0x50, 0xee, 0x7f, 0xd3, 0xd7, 0xe1, 0x70, 0x84, 0xed, 0x27, 0xa9, 0x09, 0x20, + 0x91, 0x20, 0xab, 0x5b, 0x47, 0xe7, 0xaf, 0xa1, 0x1a, 0x38, 0x24, 0x26, 0x16, 0x12, 0xb9, 0x00, 0x00, 0x00, 0x00, 0xf2, + 0xef, 0x7f, 0x5f, 0xfd, 0xf5, 0xcf, 0x65, 0xff, 0xff, 0xaa, 0xdc, 0xbe, 0x73, 0xfd, 0xb3, 0xb3, 0xf8, 0xae, 0x59, 0xf8, + 0x7f, 0xf9, 0xf2, 0xbb, 0x64, 0xfa, 0x33, 0xd7, 0x8f, 0x7b, 0xfd, 0x58, 0xef, 0xce, 0xfd, 0xfa, 0x31, 0x5c, 0x37, 0x9f, + 0xbf, 0xf6, 0xdd, 0x2a, 0xaf, 0xb9, 0x2f, 0x59, 0xbf, 0x7b, 0x3a, 0xae, 0xc8, 0xdc, 0x35, 0xb8, 0x3f, 0xa7, 0xd7, 0xf0, + 0x95, 0xeb, 0xef, 0x9c, 0xe1, 0x59, 0x1c, 0x7f, 0xab, 0xb5, 0x1a, 0xe0, 0xeb, 0xbf, 0x8e, 0xee, 0xa6, 0x14, 0xee, 0xab, + 0xff, 0xbd, 0x22, 0x8b, 0x65, 0xa3, 0xd7, 0xec, 0xdd, 0x57, 0x59, 0xa8, 0xa5, 0x2a, 0x57, 0x21, 0x8b, 0xe7, 0x61, 0xf5, + 0xdc, 0xa5, 0x54, 0xff, 0x8c, 0xbe, 0x6d, 0x5a, 0x8e, 0xe7, 0xae, 0x24, 0xd3, 0x7f, 0x1d, 0xbf, 0xa2, 0xf2, 0x6e, 0x33, + 0xf7, 0xd5, 0xdd, 0xab, 0xfb, 0xdf, 0x39, 0x53, 0xf7, 0xef, 0xd9, 0xf8, 0x1f, 0xd5, 0x97, 0xf7, 0xe7, 0xfb, 0xee, 0x28, + 0xf2, 0xdf, 0xde, 0x45, 0xed, 0xbe, 0xdb, 0x89, 0xf4, 0xdc, 0xdc, 0x9d, 0x29, 0x9e, 0x8d, 0xfa, 0xff, 0xbb, 0x8f, 0x97, + 0x14, 0x7b, 0x5e, 0x59, 0xb8, 0x4f, 0xb3, 0x54, 0xeb, 0xcd, 0xf4, 0x26, 0x2a, 0x35, 0xdd, 0x6e, 0x2f, 0x6a, 0xbf, 0xa7, + 0xfb, 0xf5, 0x35, 0xb8, 0x3b, 0xdf, 0x99, 0x3c, 0x82, 0x94, 0xe2, 0xff, 0x5a, 0xac, 0xb1, 0x9f, 0x8a, 0xff, 0x71, 0xac, + 0x8c, 0xe2, 0x29, 0xc3, 0x2b, 0x9c, 0x96, 0xef, 0x9f, 0x52, 0x8d, 0x76, 0x6a, 0x9c, 0x55, 0xbf, 0x7f, 0x66, 0xcf, 0x5e, + 0x06, 0xa3, 0xb9, 0xee, 0x5e, 0xe8, 0x7c, 0xaf, 0x2f, 0xc5, 0xda, 0x75, 0xa5, 0x8f, 0x9f, 0xad, 0xde, 0xfa, 0x28, 0x7e, + 0xb3, 0x5c, 0x17, 0x67, 0xa2, 0x3f, 0x74, 0xa2, 0x4f, 0xf2, 0x09, 0xf1, 0x9f, 0xc2, 0x08, 0xae, 0x5a, 0xc7, 0xa7, 0xa9, + 0x6d, 0xce, 0xa1, 0xfa, 0xb5, 0x3b, 0xfe, 0xd7, 0xcb, 0xc6, 0x91, 0x91, 0xd6, 0x71, 0x58, 0x4a, 0x23, 0xe9, 0x7a, 0x1b, + 0xbe, 0xfb, 0xda, 0xbb, 0xb9, 0xa2, 0x4c, 0xd4, 0x9e, 0x59, 0x9e, 0x01, 0xd8, 0x89, 0xff, 0xfe, 0xf1, 0x7f, 0x4a, 0xaf, + 0x98, 0xab, 0x8d, 0x6b, 0x35, 0x71, 0x16, 0xbe, 0x59, 0x9a, 0x6a, 0xb6, 0x1c, 0x9d, 0x65, 0xbd, 0x1a, 0xe3, 0xbf, 0x36, + 0x72, 0x4a, 0xdb, 0xdc, 0x44, 0x7d, 0xec, 0x96, 0xa6, 0xfb, 0x35, 0xad, 0xaf, 0xb8, 0x8f, 0xff, 0xbb, 0xf6, 0x7f, 0xbf, + 0xff, 0xff, 0x7e, 0xfb, 0xdf, 0x3d, 0xfa, 0x9f, 0x9f, 0xc5, 0x18, 0x9f, 0xd3, 0xe7, 0xe2, 0xff, 0x64, 0xdf, 0xbf, 0x36, + 0x96, 0x4f, 0x71, 0x9e, 0x32, 0x4d, 0x23, 0xf6, 0x94, 0x47, 0xe7, 0x69, 0x99, 0xd5, 0xe9, 0xab, 0xab, 0x53, 0xfe, 0x8c, + 0xfa, 0x3c, 0xf6, 0x4f, 0x1d, 0xff, 0x67, 0xe9, 0xd9, 0xc0, 0xb8, 0x6f, 0x75, 0x77, 0x66, 0xd2, 0x3e, 0xff, 0xf7, 0xde, + 0x53, 0xd6, 0xb5, 0x5a, 0x27, 0x85, 0x31, 0x76, 0x65, 0xd6, 0xbc, 0xfa, 0x34, 0xb1, 0xf3, 0xd9, 0xe4, 0xfb, 0xd7, 0xa9, + 0x3a, 0xd7, 0x98, 0x72, 0xed, 0x9e, 0x89, 0x67, 0x3f, 0xeb, 0xb3, 0x0a, 0x4f, 0xf5, 0xa6, 0x66, 0xe6, 0x62, 0xae, 0xe2, + 0xbc, 0x69, 0x0a, 0x3d, 0x9c, 0x4f, 0x8f, 0xff, 0x4f, 0xaa, 0x89, 0x3e, 0xf1, 0xf7, 0x27, 0x69, 0x1e, 0xe9, 0x77, 0x45, + 0x40, 0x26, 0x46, 0xe2, 0x57, 0xa1, 0x9e, 0xfe, 0x0e, 0xcf, 0xff, 0xc7, 0xf1, 0x5f, 0x1d, 0xff, 0x67, 0xea, 0xf7, 0x18, + 0x6b, 0xcf, 0x01, 0xf2, 0xe1, 0xad, 0xbf, 0x1a, 0xa0, 0x67, 0x4e, 0xfe, 0xe9, 0xfa, 0x39, 0x87, 0xc7, 0x85, 0x7f, 0xe3, + 0x75, 0x05, 0xf7, 0x0f, 0x20, 0xfa, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x5e, 0x37, + 0xb8, 0xbe, 0x16, 0xb1, 0x3b, 0x4b, 0x6b, 0xe5, 0xfd, 0x7e, 0x2f, 0x1d, 0xbd, 0x47, 0xf5, 0x68, 0x2b, 0xb9, 0xa0, 0x33, + 0xf5, 0xdd, 0xb3, 0xbc, 0xa2, 0x73, 0x74, 0x34, 0xf9, 0xc7, 0x1a, 0xd5, 0x99, 0x73, 0xba, 0x73, 0x5d, 0xc6, 0x99, 0x77, + 0x57, 0xf2, 0xfb, 0xae, 0xad, 0x06, 0x5e, 0x5d, 0x21, 0xd0, 0x99, 0xed, 0x60, 0xf6, 0xfa, 0x56, 0xee, 0xa8, 0x95, 0x4f, + 0xdb, 0x59, 0x8b, 0x78, 0x9f, 0x81, 0xf9, 0x1a, 0x66, 0x88, 0xee, 0xca, 0x51, 0x97, 0x8d, 0x35, 0xfb, 0xbf, 0xdf, 0xc9, + 0x95, 0x55, 0xdb, 0xe3, 0x7b, 0xaa, 0x92, 0x77, 0xa9, 0x9a, 0xb3, 0x39, 0x2d, 0x9f, 0x3b, 0xf3, 0xcd, 0xe6, 0x32, 0xfa, + 0xd4, 0x33, 0xb6, 0x5f, 0x8b, 0xfb, 0x30, 0xac, 0xad, 0xe5, 0xce, 0xf2, 0x5a, 0xf8, 0xb4, 0xe5, 0x8b, 0x48, 0xf1, 0x3d, + 0x6b, 0xf7, 0xda, 0x99, 0xec, 0x3f, 0xd5, 0x2c, 0x59, 0x67, 0xe2, 0x3f, 0xe5, 0xef, 0x92, 0xdb, 0x7b, 0xe2, 0x1a, 0x66, + 0x28, 0xaa, 0x66, 0x5e, 0xca, 0x46, 0xbd, 0x96, 0x8d, 0xb5, 0xee, 0x5d, 0xf1, 0xbf, 0x13, 0xe1, 0xb3, 0xf9, 0x7b, 0xd3, + 0xb2, 0xba, 0x7f, 0x25, 0x1b, 0x7a, 0xb5, 0x1f, 0xdc, 0x19, 0x21, 0x77, 0xc7, 0x9e, 0x8d, 0x33, 0x73, 0x26, 0xfe, 0xf3, + 0x01, 0xf1, 0xbf, 0x53, 0x17, 0x7d, 0xcf, 0xf8, 0x4f, 0x43, 0xed, 0x9c, 0xd2, 0x15, 0xfa, 0x3d, 0x76, 0x2b, 0x7b, 0x59, + 0x5c, 0xe5, 0x8c, 0xce, 0x69, 0x6e, 0x8f, 0x3a, 0xd6, 0x14, 0x3f, 0x19, 0xff, 0xeb, 0xf5, 0xcd, 0xa9, 0xf8, 0xbf, 0xdb, + 0xad, 0x23, 0xa5, 0xdd, 0x9e, 0xfa, 0xf6, 0xc1, 0x5a, 0xa9, 0x8b, 0x32, 0x9d, 0x5b, 0xb4, 0x12, 0xff, 0x19, 0xee, 0xa0, + 0x51, 0xd9, 0xb7, 0xa0, 0x9a, 0x0d, 0xb9, 0x23, 0xfe, 0xe7, 0xf3, 0x9b, 0x67, 0xb2, 0xee, 0xed, 0x88, 0xf3, 0x77, 0xe2, + 0x7f, 0x74, 0x05, 0x53, 0xcc, 0xd6, 0xb7, 0x9e, 0xe5, 0x7b, 0xfc, 0x69, 0xbd, 0x59, 0xd4, 0x67, 0xf6, 0x9a, 0xc9, 0x37, + 0x68, 0xff, 0xcf, 0xc7, 0x7f, 0xe5, 0x5d, 0x67, 0xe7, 0x66, 0xf2, 0x5a, 0xfc, 0x67, 0xbb, 0x85, 0x4f, 0xf3, 0xe8, 0xf2, + 0x8d, 0xbc, 0x5f, 0x33, 0xf3, 0x05, 0xb5, 0x18, 0x4f, 0xeb, 0x78, 0xa3, 0xf6, 0x69, 0x27, 0x7a, 0x98, 0xeb, 0xf1, 0x9f, + 0xa3, 0xe3, 0xff, 0x95, 0x4f, 0xa8, 0xf7, 0xff, 0xef, 0x3e, 0xbb, 0x77, 0xfe, 0xaf, 0x6b, 0xee, 0x69, 0xa6, 0xed, 0x4e, + 0x43, 0x2f, 0xe2, 0x7c, 0xcd, 0x90, 0xd7, 0x9e, 0x91, 0x55, 0x3e, 0xff, 0x44, 0x44, 0x56, 0x63, 0xab, 0x1a, 0xff, 0xbd, + 0xf3, 0xff, 0x1d, 0xf3, 0xcc, 0x73, 0x47, 0x9f, 0x42, 0xa4, 0xa6, 0x38, 0xbe, 0xca, 0xd6, 0x0c, 0x79, 0x36, 0xe2, 0x3f, + 0x0d, 0xf1, 0x7f, 0xf7, 0xfc, 0x6e, 0x37, 0xfe, 0x33, 0x78, 0xbe, 0x91, 0x6f, 0x13, 0xff, 0x29, 0xc5, 0x7f, 0x9a, 0x23, + 0x32, 0xe5, 0xd8, 0xba, 0x96, 0x9f, 0x4f, 0x9e, 0x79, 0xfe, 0x3f, 0x7e, 0xca, 0xba, 0xf3, 0x24, 0x79, 0xf6, 0x3b, 0xd5, + 0x7f, 0xed, 0x30, 0x3a, 0x4b, 0x59, 0x8e, 0xb0, 0x94, 0x72, 0xf3, 0xcf, 0x8f, 0xf9, 0xb2, 0xd9, 0x4a, 0x8d, 0x6b, 0x88, + 0x6a, 0x4e, 0xea, 0xd5, 0x7d, 0xd5, 0xf3, 0xfa, 0xbe, 0x36, 0xcf, 0xbc, 0x72, 0x67, 0xaf, 0x06, 0x39, 0x89, 0xf9, 0x19, + 0xbf, 0x49, 0x73, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7a, 0xd6, 0x60, + 0xa6, 0x94, 0xd5, 0x6b, 0xf6, 0x7f, 0x55, 0x73, 0x90, 0xe5, 0x36, 0xcb, 0xf4, 0xda, 0x5a, 0xdf, 0x0c, 0x8f, 0xb1, 0x63, + 0xa5, 0xf4, 0xd9, 0x2c, 0xdc, 0xf3, 0xe7, 0xb6, 0x76, 0xf5, 0xb3, 0x98, 0xcf, 0x32, 0xed, 0x2b, 0xd3, 0xc7, 0xeb, 0xad, + 0xef, 0xd7, 0xd0, 0xd7, 0x5f, 0x77, 0x15, 0x56, 0x38, 0xaf, 0x5e, 0xad, 0x99, 0x5c, 0xf1, 0x6f, 0xd4, 0x15, 0xd7, 0x44, + 0x86, 0xbb, 0x9d, 0x1c, 0xfa, 0x77, 0xe7, 0xfe, 0xeb, 0xfb, 0xf5, 0xee, 0x7b, 0xf5, 0xe5, 0x2d, 0xbc, 0xb6, 0x33, 0xe8, + 0x5e, 0x8f, 0x64, 0xe1, 0xce, 0xe2, 0x7d, 0x38, 0xfb, 0x3f, 0x47, 0x59, 0x04, 0x53, 0xc8, 0xf4, 0x71, 0xee, 0x78, 0x67, + 0xf2, 0x3f, 0x8d, 0xf2, 0x3c, 0xfe, 0xf9, 0xef, 0x2b, 0xf7, 0x53, 0x2d, 0x67, 0x72, 0x06, 0xb9, 0x24, 0x7b, 0xd7, 0x5a, + 0xe7, 0xf6, 0x5e, 0x5d, 0xef, 0x47, 0x9c, 0xb9, 0xa2, 0xf5, 0xf8, 0x5f, 0x6f, 0x77, 0x4e, 0xc5, 0xff, 0x7e, 0x16, 0xde, + 0x9d, 0x1c, 0x3d, 0xfb, 0x7f, 0xbf, 0x6f, 0xfd, 0xaf, 0xe5, 0xde, 0xd9, 0xb5, 0x95, 0xeb, 0x76, 0x9c, 0x09, 0x67, 0x9c, + 0x61, 0x6a, 0xf5, 0x38, 0xae, 0xc5, 0xfc, 0xce, 0x9f, 0x13, 0xff, 0x57, 0x29, 0xfe, 0xaf, 0x0f, 0x8a, 0xff, 0xbb, 0x76, + 0xe7, 0x2a, 0xee, 0x27, 0x72, 0xd7, 0x33, 0xbb, 0x1a, 0xdb, 0x9c, 0xdf, 0x6b, 0xd5, 0x94, 0xfa, 0xc3, 0x29, 0x67, 0x4f, + 0x7c, 0x2b, 0x07, 0xd7, 0x78, 0x77, 0x93, 0x71, 0xdf, 0xbf, 0x56, 0x53, 0xd6, 0x32, 0x31, 0xdd, 0x8f, 0x28, 0xb2, 0xb4, + 0x3b, 0x41, 0x3d, 0x2f, 0x58, 0x0e, 0x64, 0x47, 0x59, 0xad, 0xe9, 0x53, 0xe8, 0xff, 0x5f, 0x5b, 0xfb, 0x48, 0x54, 0xf3, + 0x1e, 0xd7, 0x72, 0xac, 0xa7, 0xd0, 0xee, 0xcc, 0xc4, 0xdf, 0x5e, 0x16, 0xde, 0x4c, 0x8e, 0xb2, 0xae, 0xc5, 0x3a, 0xf2, + 0x6a, 0xab, 0x31, 0xd6, 0x7a, 0x98, 0xd9, 0x1a, 0x6d, 0xcd, 0xd4, 0x0d, 0x59, 0xdc, 0xab, 0xa1, 0xde, 0x5e, 0x54, 0xf2, + 0xc9, 0xd5, 0x6b, 0x80, 0xbc, 0x36, 0xff, 0x77, 0x15, 0x32, 0xd5, 0xaf, 0xe5, 0xe6, 0xab, 0xcc, 0xbd, 0x55, 0x8e, 0xaf, + 0x96, 0x73, 0x6f, 0x26, 0x6b, 0x7b, 0x4f, 0xfe, 0xe2, 0xd5, 0xf3, 0x73, 0x4d, 0xcd, 0x6a, 0xe5, 0xa5, 0xf6, 0x7f, 0x3d, + 0x02, 0xe6, 0x76, 0xa5, 0xdc, 0xe9, 0xd5, 0x54, 0x33, 0x76, 0xf7, 0xf7, 0x7e, 0xde, 0x9f, 0xff, 0x5f, 0xcb, 0xe0, 0xfd, + 0x59, 0xd9, 0x59, 0xd3, 0xf0, 0x3f, 0xfa, 0x3e, 0xeb, 0xed, 0x67, 0x38, 0x39, 0x5a, 0xfb, 0xf7, 0xc6, 0x7f, 0x8a, 0xe3, + 0xc9, 0xd9, 0x7a, 0x38, 0x4b, 0x39, 0x87, 0xc7, 0xf3, 0x5b, 0xe7, 0xc6, 0x3f, 0x9f, 0x78, 0x3f, 0xed, 0xe4, 0xb2, 0x7f, + 0xf6, 0x7b, 0xe6, 0xb1, 0x1e, 0xd3, 0x89, 0xd9, 0x97, 0xe7, 0xce, 0xc4, 0xda, 0x31, 0xa5, 0xf1, 0x8e, 0xad, 0xcd, 0xff, + 0x65, 0x63, 0x8e, 0x6f, 0x77, 0xbf, 0xde, 0x14, 0x66, 0x15, 0xff, 0x86, 0x5f, 0x0a, 0x7c, 0x3d, 0x03, 0x91, 0xbf, 0x22, + 0xf7, 0xf0, 0x4f, 0x3c, 0xc6, 0x8e, 0xe7, 0xff, 0xd5, 0x7e, 0x53, 0x6d, 0xe7, 0x80, 0xb9, 0x79, 0x9f, 0xca, 0xfc, 0x6e, + 0x75, 0xcc, 0x08, 0x54, 0x9e, 0x31, 0x57, 0x76, 0x0e, 0xe8, 0x18, 0xc1, 0x65, 0xf9, 0xf9, 0x3f, 0xf0, 0x53, 0x6a, 0xa2, + 0xda, 0xbc, 0x22, 0xf0, 0xfd, 0x47, 0x3b, 0x22, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0x9e, 0xbf, 0x88, 0x5e, 0x5f, 0xeb, 0xba, 0x9e, 0xeb, 0xb0, 0x9e, 0x71, 0x65, 0x76, 0x7d, 0xea, 0x55, 0xca, 0x1a, 0xb9, + 0x97, 0x9b, 0x66, 0x2e, 0x5b, 0x73, 0x3d, 0x5b, 0x5d, 0x35, 0x43, 0xd6, 0x5e, 0xe9, 0xf8, 0x95, 0xf5, 0x57, 0x5f, 0xd3, + 0xe7, 0x2d, 0xaf, 0x1c, 0x77, 0x16, 0x73, 0x18, 0xac, 0xdc, 0x53, 0xfd, 0xc7, 0xba, 0x77, 0x2e, 0xae, 0x62, 0x46, 0x9f, + 0x4a, 0xb6, 0xe3, 0x4a, 0xbc, 0xde, 0xe5, 0x3b, 0xcd, 0xe2, 0x67, 0x65, 0x39, 0xa7, 0xf3, 0xa8, 0x16, 0xc9, 0x60, 0xc5, + 0x68, 0x26, 0xd6, 0x9c, 0xee, 0xe5, 0x1b, 0xa8, 0x96, 0x8d, 0xaf, 0x7a, 0x3d, 0xcf, 0x49, 0x16, 0xeb, 0x8f, 0xb5, 0x1c, + 0x7d, 0x27, 0x8f, 0x7b, 0x7d, 0x0d, 0x73, 0x96, 0x73, 0x64, 0x5d, 0x8b, 0xad, 0x4d, 0x26, 0xda, 0x87, 0xea, 0xb9, 0x98, + 0x6d, 0x01, 0x57, 0xdb, 0xcd, 0xd5, 0x9a, 0xa4, 0x1a, 0xff, 0xd5, 0xcf, 0x3a, 0x13, 0xff, 0x77, 0xc7, 0x96, 0xdb, 0x9c, + 0x13, 0xd9, 0xcc, 0x6f, 0xf8, 0x6c, 0xaf, 0xb0, 0xa7, 0xfd, 0x4d, 0x71, 0x8d, 0xfe, 0xf9, 0x75, 0x81, 0xa7, 0x56, 0x07, + 0xd6, 0x73, 0x47, 0xbf, 0x71, 0x0f, 0xa4, 0x2d, 0x6b, 0xe4, 0x5c, 0x3e, 0xd6, 0xf5, 0xf8, 0x5f, 0x1d, 0x2f, 0xac, 0xe6, + 0x33, 0xcc, 0x44, 0xeb, 0x34, 0xdb, 0xfe, 0x67, 0xeb, 0xea, 0x3f, 0xdf, 0xff, 0xbf, 0x36, 0xda, 0xd0, 0xb9, 0xd1, 0xc1, + 0x6c, 0x1e, 0x8e, 0xd5, 0xbb, 0xa9, 0x5e, 0x3a, 0xce, 0x0d, 0xbc, 0xf7, 0xd7, 0xf1, 0xfd, 0x77, 0xf7, 0x4e, 0x95, 0x91, + 0x52, 0xb6, 0x33, 0x36, 0x65, 0xf9, 0x6c, 0xdc, 0x1f, 0xf5, 0x7a, 0xce, 0xe5, 0xd5, 0xf8, 0x1f, 0xd5, 0x26, 0x6b, 0x23, + 0xb8, 0x71, 0xfb, 0x3f, 0x93, 0x6b, 0x72, 0x6f, 0xb7, 0x8a, 0x1c, 0x89, 0xc3, 0x7a, 0xe9, 0xce, 0x4e, 0x27, 0x7f, 0xaa, + 0x13, 0x53, 0xae, 0x99, 0x72, 0xac, 0xf4, 0xc4, 0xf8, 0x7f, 0x9c, 0x71, 0x24, 0x85, 0x7c, 0x25, 0x3b, 0xa3, 0xa8, 0xdd, + 0xf6, 0xa5, 0xe3, 0xdd, 0xb2, 0xb5, 0x97, 0xc3, 0xb9, 0x6f, 0xdd, 0x31, 0xfe, 0x3f, 0x3b, 0xff, 0xb7, 0xbf, 0xe3, 0x58, + 0xcf, 0x6e, 0x45, 0xab, 0xb5, 0xd9, 0xaf, 0xe7, 0x22, 0x1f, 0xd2, 0xab, 0xa9, 0xd5, 0x0e, 0xfb, 0x7f, 0x1d, 0xcf, 0x59, + 0xe7, 0xa5, 0xf8, 0xef, 0x1d, 0x09, 0xe5, 0xc0, 0xfc, 0xe4, 0xf3, 0xd1, 0xbf, 0x32, 0xfe, 0xef, 0x98, 0x31, 0xab, 0xee, + 0x38, 0x72, 0xb6, 0xb4, 0xb2, 0xe3, 0xea, 0xfc, 0x3d, 0xf9, 0x44, 0x0b, 0xdf, 0xb5, 0x4f, 0xc2, 0x4f, 0x8d, 0xff, 0x37, + 0xf7, 0x18, 0xd9, 0x89, 0xff, 0xf3, 0x59, 0x9a, 0xf3, 0x87, 0x79, 0xbd, 0xdd, 0x4f, 0x1c, 0xed, 0x11, 0x9b, 0xf6, 0x38, + 0xdc, 0x8f, 0xe1, 0x9d, 0xd2, 0xb9, 0x7d, 0x78, 0x6a, 0x51, 0xba, 0x53, 0xfa, 0x56, 0xfb, 0x3f, 0x33, 0x0b, 0xf5, 0x74, + 0xfc, 0x77, 0xce, 0x86, 0xe6, 0x50, 0xeb, 0xb8, 0x3e, 0x9a, 0xe8, 0x9f, 0x1b, 0xed, 0xf8, 0xc4, 0x6a, 0xcb, 0xf0, 0x4e, + 0xff, 0xbf, 0xfe, 0xfb, 0x8b, 0x7f, 0xce, 0x66, 0xa5, 0x38, 0xab, 0xf5, 0x93, 0xc6, 0xff, 0xd7, 0xd4, 0xae, 0x51, 0x79, + 0x69, 0xfc, 0xff, 0x19, 0xaf, 0xff, 0x7b, 0x7f, 0x81, 0x75, 0x1d, 0x6e, 0x87, 0x9f, 0x2e, 0x3d, 0xdf, 0x63, 0xdc, 0x2b, + 0xcd, 0x2b, 0xed, 0xff, 0xdc, 0x48, 0xf4, 0xbd, 0xf8, 0xef, 0xea, 0x2f, 0xab, 0x09, 0x3a, 0xe7, 0x59, 0xde, 0x6d, 0xc3, + 0x6b, 0xbb, 0x38, 0xee, 0xfd, 0xda, 0x66, 0x76, 0x74, 0x50, 0x2b, 0xcd, 0xe1, 0xf1, 0xff, 0xee, 0x55, 0xae, 0x1c, 0xcf, + 0xa7, 0xc4, 0xbf, 0xbc, 0xea, 0xa7, 0xea, 0x8c, 0x4a, 0x1c, 0x3e, 0x15, 0xc3, 0xcf, 0xdf, 0x4d, 0x7b, 0xcf, 0xff, 0xd7, + 0xeb, 0xe8, 0xb5, 0xe7, 0xff, 0x3b, 0x2d, 0xc3, 0xd3, 0xcf, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xef, 0xb7, 0xfe, 0x6c, 0x9c, 0x99, 0xa6, 0x9e, 0xd5, 0x7b, 0x37, 0x2b, 0xc0, 0xde, 0x11, 0xa5, 0xb4, 0xf6, + 0x6c, 0x36, 0xb7, 0x75, 0xf7, 0xfa, 0xb4, 0x7a, 0x7e, 0xf0, 0x6c, 0xac, 0x3a, 0xac, 0xff, 0xba, 0xfc, 0xd4, 0x71, 0x9e, + 0xca, 0xc2, 0x55, 0xb9, 0x1f, 0x9e, 0xbb, 0x96, 0x69, 0xbf, 0xc2, 0xb3, 0xef, 0x51, 0xcd, 0x05, 0x9d, 0xa5, 0x1c, 0x10, + 0xab, 0x71, 0x96, 0xcd, 0x0c, 0xf5, 0xf5, 0xb5, 0x67, 0xb3, 0xb5, 0x4e, 0x6f, 0xe6, 0xea, 0x6c, 0xe4, 0x87, 0xae, 0x9f, + 0xa3, 0x9d, 0xd5, 0xa5, 0xdd, 0xc7, 0xb9, 0x7e, 0xc5, 0x3a, 0x72, 0x73, 0x67, 0xe3, 0xcc, 0x67, 0xf9, 0xcc, 0x64, 0x50, + 0x3b, 0xe5, 0x91, 0x75, 0xa5, 0xbd, 0x99, 0x0b, 0x56, 0x57, 0x34, 0x3e, 0xb7, 0xd6, 0xb6, 0xbe, 0x0a, 0x6c, 0x37, 0xbf, + 0xd5, 0x73, 0xfd, 0xb7, 0x6a, 0x5f, 0xe4, 0xd7, 0xa3, 0xcc, 0x07, 0xe4, 0x74, 0x38, 0xbb, 0x9a, 0xed, 0xcc, 0x5e, 0x23, + 0xe7, 0xbf, 0xe1, 0xde, 0xde, 0x21, 0x3b, 0x6b, 0x08, 0x53, 0xec, 0x51, 0x8d, 0x32, 0x1a, 0xdc, 0xc7, 0xe7, 0x6e, 0xf9, + 0x5c, 0x0e, 0xb8, 0x6b, 0x22, 0x33, 0x6d, 0x0a, 0xd9, 0x2f, 0x32, 0x58, 0xd7, 0xde, 0x5d, 0x56, 0xbb, 0x47, 0x67, 0xf2, + 0x96, 0xe7, 0xc0, 0x1d, 0x75, 0xbd, 0x98, 0x9b, 0xeb, 0x5a, 0x6e, 0x93, 0x53, 0x6c, 0x7b, 0x3b, 0x4b, 0x3a, 0xea, 0xe7, + 0x6a, 0x2f, 0x6f, 0xa6, 0x6c, 0x3d, 0xa3, 0xe1, 0x4c, 0xcf, 0xf2, 0x99, 0xf2, 0xf5, 0x5c, 0xe6, 0xb3, 0xd9, 0x6f, 0xf2, + 0x58, 0x59, 0xca, 0x77, 0xdb, 0x35, 0x91, 0x87, 0xff, 0xd4, 0x5d, 0xf3, 0x7c, 0x36, 0x8b, 0x4a, 0x0d, 0x5a, 0xcb, 0x91, + 0xf8, 0x5c, 0xc9, 0x6c, 0xae, 0x83, 0x13, 0x57, 0xeb, 0x2a, 0xde, 0x39, 0x9f, 0x11, 0xff, 0xb9, 0xbd, 0xe6, 0xd7, 0x56, + 0xdd, 0xd6, 0xdd, 0x2e, 0xce, 0xb4, 0x99, 0xf5, 0x7a, 0xa3, 0xfa, 0xb9, 0xb5, 0xac, 0x34, 0x73, 0xd9, 0x79, 0xae, 0xe9, + 0x91, 0x7e, 0x65, 0x8f, 0xca, 0x95, 0x4f, 0xad, 0xb4, 0x03, 0x4f, 0x95, 0x54, 0x46, 0x30, 0x4f, 0xc5, 0xff, 0x67, 0xb4, + 0xef, 0xb5, 0xdd, 0x0d, 0xc7, 0xe3, 0xff, 0x94, 0x7b, 0x45, 0xfd, 0x65, 0x29, 0xcf, 0xde, 0x74, 0xcc, 0x0b, 0xa5, 0xb5, + 0xec, 0x6a, 0x9a, 0x9f, 0xaf, 0xec, 0x66, 0xf7, 0xb9, 0xf1, 0x5f, 0xdd, 0x3b, 0xe6, 0xad, 0xf8, 0xcf, 0xc7, 0xb7, 0xff, + 0xeb, 0xbb, 0x9b, 0xfe, 0xf9, 0x19, 0x55, 0x4a, 0x3d, 0x8b, 0xce, 0xb2, 0xab, 0xb8, 0xef, 0xda, 0x6e, 0xaf, 0xf9, 0xc4, + 0xf8, 0x66, 0x36, 0x27, 0xf0, 0x93, 0xf1, 0x5f, 0xb9, 0x2a, 0xbd, 0x25, 0xbb, 0x33, 0x43, 0x6f, 0xb4, 0xff, 0xf3, 0xcf, + 0x0d, 0xde, 0x8a, 0xff, 0xea, 0xf3, 0xff, 0x99, 0xbd, 0x3c, 0x4f, 0xb4, 0x8c, 0x95, 0x96, 0xfc, 0xec, 0x3e, 0x09, 0x27, + 0xc6, 0x39, 0xa7, 0xdb, 0xff, 0xca, 0x78, 0xe4, 0x1a, 0xee, 0xfc, 0x7e, 0xba, 0xe4, 0xda, 0x9e, 0xf9, 0xfd, 0xb4, 0x19, + 0x99, 0xa7, 0xc6, 0xf7, 0x9f, 0xb5, 0xdf, 0xea, 0xf5, 0xda, 0xf3, 0xb4, 0x9f, 0x70, 0xac, 0x1d, 0x33, 0x00, 0xcf, 0x3f, + 0x73, 0xfc, 0xb4, 0x73, 0x57, 0xdd, 0x89, 0xe5, 0xb9, 0xef, 0xd3, 0x51, 0x3e, 0xf3, 0xbd, 0xe5, 0x4c, 0xe5, 0x6f, 0xfa, + 0xf5, 0xef, 0x67, 0xe5, 0x10, 0x1e, 0xff, 0x86, 0x76, 0xaf, 0xfc, 0xb9, 0xdf, 0x4d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xa9, 0xdf, 0xde, 0xd7, 0xd7, 0xbd, 0x57, 0xd7, 0x7c, 0xf7, 0x67, 0xe2, 0x8e, 0x35, + 0x3c, 0xd0, 0xb6, 0x16, 0x34, 0x93, 0xb9, 0xe0, 0xba, 0x63, 0x31, 0x5b, 0x99, 0x4d, 0x80, 0xf9, 0x36, 0xff, 0x8d, 0x75, + 0x7e, 0xd5, 0xcf, 0xcd, 0x30, 0xf3, 0x82, 0x55, 0x7c, 0x30, 0x1f, 0xff, 0x19, 0xe6, 0x32, 0xea, 0x2e, 0xbd, 0x26, 0xb2, + 0x0b, 0x5c, 0x85, 0xfc, 0x55, 0xd1, 0x47, 0x80, 0xa5, 0xf8, 0x9f, 0xc9, 0xc8, 0xfd, 0x49, 0xa5, 0x29, 0xef, 0x3e, 0x06, + 0xfc, 0x79, 0x94, 0xfd, 0xbd, 0xe2, 0x7f, 0x27, 0x7f, 0x3d, 0xf0, 0x7e, 0xfc, 0xa7, 0x58, 0x5a, 0xcf, 0x15, 0x0b, 0xfc, + 0xda, 0xfb, 0x9f, 0x99, 0xfd, 0x4f, 0x7b, 0xe9, 0xd5, 0xb0, 0xc7, 0x44, 0xf5, 0xa9, 0x24, 0xd0, 0xf1, 0x7c, 0x70, 0xa7, + 0xb4, 0xfe, 0x9b, 0x84, 0x99, 0xe7, 0x19, 0xae, 0x1c, 0x7c, 0xff, 0xe7, 0x92, 0xb5, 0xfa, 0xca, 0x19, 0x84, 0xef, 0xdf, + 0xef, 0x70, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x79, 0xff, 0xf9, 0xe7, 0x3c, 0x80, 0xf8, 0x07, 0xfe, 0xba, 0xf8, 0xff, 0x17 }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle cherryFontRecs[189] = { + { 4, 4, 5 , 15 }, + { 17, 4, 3 , 10 }, + { 28, 4, 5 , 2 }, + { 41, 4, 10 , 10 }, + { 59, 4, 7 , 11 }, + { 74, 4, 7 , 10 }, + { 89, 4, 8 , 10 }, + { 105, 4, 1 , 2 }, + { 114, 4, 3 , 10 }, + { 125, 4, 3 , 10 }, + { 136, 4, 3 , 3 }, + { 147, 4, 7 , 7 }, + { 162, 4, 2 , 2 }, + { 172, 4, 6 , 3 }, + { 186, 4, 1 , 1 }, + { 195, 4, 4 , 10 }, + { 207, 4, 5 , 8 }, + { 220, 4, 5 , 8 }, + { 233, 4, 5 , 8 }, + { 246, 4, 5 , 8 }, + { 259, 4, 5 , 8 }, + { 272, 4, 5 , 8 }, + { 285, 4, 5 , 8 }, + { 298, 4, 5 , 8 }, + { 311, 4, 5 , 8 }, + { 324, 4, 5 , 8 }, + { 337, 4, 3 , 10 }, + { 348, 4, 3 , 12 }, + { 359, 4, 6 , 7 }, + { 373, 4, 6 , 4 }, + { 387, 4, 6 , 7 }, + { 401, 4, 5 , 10 }, + { 414, 4, 8 , 10 }, + { 430, 4, 7 , 9 }, + { 445, 4, 7 , 9 }, + { 460, 4, 6 , 9 }, + { 474, 4, 6 , 9 }, + { 488, 4, 7 , 9 }, + { 4, 27, 6 , 9 }, + { 18, 27, 6 , 9 }, + { 32, 27, 7 , 9 }, + { 47, 27, 3 , 9 }, + { 58, 27, 6 , 9 }, + { 72, 27, 7 , 9 }, + { 87, 27, 7 , 9 }, + { 102, 27, 11 , 9 }, + { 121, 27, 8 , 9 }, + { 137, 27, 6 , 9 }, + { 151, 27, 6 , 9 }, + { 165, 27, 7 , 9 }, + { 180, 27, 7 , 9 }, + { 195, 27, 6 , 9 }, + { 209, 27, 7 , 9 }, + { 224, 27, 8 , 9 }, + { 240, 27, 9 , 9 }, + { 257, 27, 11 , 9 }, + { 276, 27, 7 , 9 }, + { 291, 27, 7 , 9 }, + { 306, 27, 7 , 9 }, + { 321, 27, 3 , 9 }, + { 332, 27, 4 , 10 }, + { 344, 27, 3 , 9 }, + { 355, 27, 3 , 3 }, + { 366, 27, 7 , 2 }, + { 381, 27, 2 , 2 }, + { 391, 27, 6 , 6 }, + { 405, 27, 6 , 9 }, + { 419, 27, 6 , 6 }, + { 433, 27, 6 , 9 }, + { 447, 27, 6 , 6 }, + { 461, 27, 5 , 9 }, + { 474, 27, 5 , 9 }, + { 487, 27, 7 , 9 }, + { 4, 50, 3 , 7 }, + { 15, 50, 3 , 8 }, + { 26, 50, 6 , 9 }, + { 40, 50, 4 , 9 }, + { 52, 50, 11 , 6 }, + { 71, 50, 7 , 6 }, + { 86, 50, 5 , 6 }, + { 99, 50, 6 , 8 }, + { 113, 50, 6 , 8 }, + { 127, 50, 5 , 6 }, + { 140, 50, 5 , 6 }, + { 153, 50, 5 , 9 }, + { 166, 50, 7 , 6 }, + { 181, 50, 7 , 6 }, + { 196, 50, 11 , 6 }, + { 215, 50, 7 , 6 }, + { 230, 50, 7 , 8 }, + { 245, 50, 6 , 6 }, + { 259, 50, 5 , 9 }, + { 272, 50, 1 , 9 }, + { 281, 50, 5 , 9 }, + { 294, 50, 7 , 3 }, + { 309, 50, 3 , 10 }, + { 320, 50, 7 , 10 }, + { 335, 50, 7 , 10 }, + { 350, 50, 6 , 9 }, + { 364, 50, 7 , 9 }, + { 379, 50, 6 , 12 }, + { 393, 50, 7 , 11 }, + { 408, 50, 5 , 9 }, + { 421, 50, 5 , 5 }, + { 434, 50, 4 , 5 }, + { 446, 50, 6 , 7 }, + { 460, 50, 6 , 3 }, + { 474, 50, 5 , 5 }, + { 487, 50, 6 , 1 }, + { 4, 73, 3 , 3 }, + { 15, 73, 7 , 10 }, + { 30, 73, 3 , 5 }, + { 41, 73, 3 , 5 }, + { 52, 73, 7 , 12 }, + { 67, 73, 6 , 8 }, + { 81, 73, 7 , 9 }, + { 96, 73, 2 , 3 }, + { 106, 73, 6 , 9 }, + { 120, 73, 3 , 5 }, + { 131, 73, 3 , 5 }, + { 142, 73, 6 , 7 }, + { 156, 73, 13 , 9 }, + { 177, 73, 10 , 6 }, + { 195, 73, 7 , 11 }, + { 210, 73, 5 , 10 }, + { 223, 73, 7 , 12 }, + { 238, 73, 7 , 12 }, + { 253, 73, 7 , 12 }, + { 268, 73, 7 , 12 }, + { 283, 73, 7 , 11 }, + { 298, 73, 7 , 11 }, + { 313, 73, 12 , 9 }, + { 333, 73, 6 , 11 }, + { 347, 73, 7 , 12 }, + { 362, 73, 7 , 12 }, + { 377, 73, 7 , 12 }, + { 392, 73, 7 , 11 }, + { 407, 73, 3 , 12 }, + { 418, 73, 3 , 12 }, + { 429, 73, 3 , 12 }, + { 440, 73, 3 , 11 }, + { 451, 73, 7 , 9 }, + { 466, 73, 8 , 12 }, + { 482, 73, 6 , 12 }, + { 496, 73, 6 , 12 }, + { 4, 96, 6 , 12 }, + { 18, 96, 6 , 12 }, + { 32, 96, 6 , 11 }, + { 46, 96, 5 , 5 }, + { 59, 96, 8 , 9 }, + { 75, 96, 8 , 12 }, + { 91, 96, 8 , 12 }, + { 107, 96, 8 , 12 }, + { 123, 96, 8 , 11 }, + { 139, 96, 7 , 12 }, + { 154, 96, 7 , 9 }, + { 169, 96, 8 , 9 }, + { 185, 96, 6 , 9 }, + { 199, 96, 6 , 9 }, + { 213, 96, 6 , 9 }, + { 227, 96, 6 , 9 }, + { 241, 96, 6 , 8 }, + { 255, 96, 6 , 10 }, + { 269, 96, 10 , 6 }, + { 287, 96, 6 , 8 }, + { 301, 96, 6 , 9 }, + { 315, 96, 6 , 9 }, + { 329, 96, 6 , 9 }, + { 343, 96, 6 , 8 }, + { 357, 96, 3 , 10 }, + { 368, 96, 3 , 10 }, + { 379, 96, 3 , 10 }, + { 390, 96, 3 , 9 }, + { 401, 96, 6 , 10 }, + { 415, 96, 7 , 9 }, + { 430, 96, 5 , 9 }, + { 443, 96, 5 , 9 }, + { 456, 96, 5 , 9 }, + { 469, 96, 5 , 9 }, + { 482, 96, 5 , 8 }, + { 495, 96, 7 , 9 }, + { 4, 119, 8 , 8 }, + { 20, 119, 7 , 9 }, + { 35, 119, 7 , 9 }, + { 50, 119, 7 , 9 }, + { 65, 119, 7 , 8 }, + { 80, 119, 7 , 11 }, + { 95, 119, 5 , 8 }, + { 108, 119, 7 , 10 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo cherryFontGlyphs[189] = { + { 32, 0, 0, 5, { 0 }}, + { 33, 0, 2, 4, { 0 }}, + { 34, 0, 2, 6, { 0 }}, + { 35, 0, 2, 11, { 0 }}, + { 36, 0, 2, 8, { 0 }}, + { 37, 0, 2, 8, { 0 }}, + { 38, 0, 2, 9, { 0 }}, + { 39, 0, 2, 2, { 0 }}, + { 40, 0, 2, 4, { 0 }}, + { 41, 0, 2, 4, { 0 }}, + { 42, 0, 2, 4, { 0 }}, + { 43, 0, 4, 8, { 0 }}, + { 44, 0, 11, 3, { 0 }}, + { 45, 0, 6, 7, { 0 }}, + { 46, 0, 11, 2, { 0 }}, + { 47, 0, 2, 5, { 0 }}, + { 48, 0, 4, 6, { 0 }}, + { 49, 0, 4, 6, { 0 }}, + { 50, 0, 4, 6, { 0 }}, + { 51, 0, 4, 6, { 0 }}, + { 52, 0, 4, 6, { 0 }}, + { 53, 0, 4, 6, { 0 }}, + { 54, 0, 4, 6, { 0 }}, + { 55, 0, 4, 6, { 0 }}, + { 56, 0, 4, 6, { 0 }}, + { 57, 0, 4, 6, { 0 }}, + { 58, 0, 2, 4, { 0 }}, + { 59, 0, 2, 4, { 0 }}, + { 60, 0, 4, 7, { 0 }}, + { 61, 0, 5, 7, { 0 }}, + { 62, 0, 4, 7, { 0 }}, + { 63, 0, 2, 6, { 0 }}, + { 64, 0, 2, 9, { 0 }}, + { 65, 0, 3, 8, { 0 }}, + { 66, 0, 3, 8, { 0 }}, + { 67, 0, 3, 7, { 0 }}, + { 68, 0, 3, 7, { 0 }}, + { 69, 0, 3, 8, { 0 }}, + { 70, 0, 3, 7, { 0 }}, + { 71, 0, 3, 7, { 0 }}, + { 72, 0, 3, 8, { 0 }}, + { 73, 0, 3, 4, { 0 }}, + { 74, 0, 3, 7, { 0 }}, + { 75, 0, 3, 8, { 0 }}, + { 76, 0, 3, 8, { 0 }}, + { 77, 0, 3, 12, { 0 }}, + { 78, 0, 3, 9, { 0 }}, + { 79, 0, 3, 7, { 0 }}, + { 80, 0, 3, 7, { 0 }}, + { 81, 0, 3, 8, { 0 }}, + { 82, 0, 3, 8, { 0 }}, + { 83, 0, 3, 7, { 0 }}, + { 84, 0, 3, 8, { 0 }}, + { 85, 0, 3, 9, { 0 }}, + { 86, 0, 3, 10, { 0 }}, + { 87, 0, 3, 12, { 0 }}, + { 88, 0, 3, 8, { 0 }}, + { 89, 0, 3, 8, { 0 }}, + { 90, 0, 3, 8, { 0 }}, + { 91, 0, 3, 4, { 0 }}, + { 92, 0, 2, 5, { 0 }}, + { 93, 0, 3, 4, { 0 }}, + { 94, 0, 3, 4, { 0 }}, + { 95, 0, 10, 8, { 0 }}, + { 96, 0, 2, 3, { 0 }}, + { 97, 0, 6, 7, { 0 }}, + { 98, 0, 3, 7, { 0 }}, + { 99, 0, 6, 7, { 0 }}, + { 100, 0, 3, 7, { 0 }}, + { 101, 0, 6, 7, { 0 }}, + { 102, 0, 3, 6, { 0 }}, + { 103, 0, 5, 6, { 0 }}, + { 104, 0, 3, 8, { 0 }}, + { 105, 0, 5, 4, { 0 }}, + { 106, 0, 5, 4, { 0 }}, + { 107, 0, 3, 7, { 0 }}, + { 108, 0, 3, 5, { 0 }}, + { 109, 0, 6, 12, { 0 }}, + { 110, 0, 6, 8, { 0 }}, + { 111, 0, 6, 6, { 0 }}, + { 112, 0, 6, 7, { 0 }}, + { 113, 0, 6, 7, { 0 }}, + { 114, 0, 6, 6, { 0 }}, + { 115, 0, 6, 6, { 0 }}, + { 116, 0, 3, 6, { 0 }}, + { 117, 0, 6, 8, { 0 }}, + { 118, 0, 6, 8, { 0 }}, + { 119, 0, 6, 12, { 0 }}, + { 120, 0, 6, 8, { 0 }}, + { 121, 0, 6, 8, { 0 }}, + { 122, 0, 6, 7, { 0 }}, + { 123, 0, 3, 6, { 0 }}, + { 124, 0, 3, 2, { 0 }}, + { 125, 0, 3, 6, { 0 }}, + { 126, 0, 6, 8, { 0 }}, + { 161, 0, 4, 4, { 0 }}, + { 162, 0, 4, 8, { 0 }}, + { 163, 0, 2, 8, { 0 }}, + { 8364, 0, 3, 7, { 0 }}, + { 165, 0, 3, 8, { 0 }}, + { 352, 0, 0, 7, { 0 }}, + { 167, 0, 2, 8, { 0 }}, + { 353, 0, 3, 6, { 0 }}, + { 169, 0, 1, 6, { 0 }}, + { 170, 0, 2, 5, { 0 }}, + { 171, 0, 5, 7, { 0 }}, + { 172, 0, 6, 7, { 0 }}, + { 174, 0, 1, 6, { 0 }}, + { 175, 0, 2, 7, { 0 }}, + { 176, 0, 2, 4, { 0 }}, + { 177, 0, 3, 8, { 0 }}, + { 178, 0, 2, 4, { 0 }}, + { 179, 0, 2, 4, { 0 }}, + { 381, 0, 0, 8, { 0 }}, + { 181, 0, 6, 7, { 0 }}, + { 182, 0, 3, 8, { 0 }}, + { 183, 0, 6, 3, { 0 }}, + { 382, 0, 3, 7, { 0 }}, + { 185, 0, 2, 4, { 0 }}, + { 186, 0, 2, 4, { 0 }}, + { 187, 0, 5, 7, { 0 }}, + { 338, 0, 3, 14, { 0 }}, + { 339, 0, 6, 11, { 0 }}, + { 376, 0, 1, 8, { 0 }}, + { 191, 0, 4, 6, { 0 }}, + { 192, 0, 0, 8, { 0 }}, + { 193, 0, 0, 8, { 0 }}, + { 194, 0, 0, 8, { 0 }}, + { 195, 0, 0, 8, { 0 }}, + { 196, 0, 1, 8, { 0 }}, + { 197, 0, 1, 8, { 0 }}, + { 198, 0, 3, 13, { 0 }}, + { 199, 0, 3, 7, { 0 }}, + { 200, 0, 0, 8, { 0 }}, + { 201, 0, 0, 8, { 0 }}, + { 202, 0, 0, 8, { 0 }}, + { 203, 0, 1, 8, { 0 }}, + { 204, 0, 0, 4, { 0 }}, + { 205, 0, 0, 4, { 0 }}, + { 206, 0, 0, 4, { 0 }}, + { 207, 0, 1, 4, { 0 }}, + { 208, 0, 3, 8, { 0 }}, + { 209, 0, 0, 9, { 0 }}, + { 210, 0, 0, 7, { 0 }}, + { 211, 0, 0, 7, { 0 }}, + { 212, 0, 0, 7, { 0 }}, + { 213, 0, 0, 7, { 0 }}, + { 214, 0, 1, 7, { 0 }}, + { 215, 1, 5, 7, { 0 }}, + { 216, 0, 3, 9, { 0 }}, + { 217, 0, 0, 9, { 0 }}, + { 218, 0, 0, 9, { 0 }}, + { 219, 0, 0, 9, { 0 }}, + { 220, 0, 1, 9, { 0 }}, + { 221, 0, 0, 8, { 0 }}, + { 222, 0, 2, 8, { 0 }}, + { 223, 0, 3, 9, { 0 }}, + { 224, 0, 3, 7, { 0 }}, + { 225, 0, 3, 7, { 0 }}, + { 226, 0, 3, 7, { 0 }}, + { 227, 0, 3, 7, { 0 }}, + { 228, 0, 4, 7, { 0 }}, + { 229, 0, 2, 7, { 0 }}, + { 230, 0, 6, 11, { 0 }}, + { 231, 0, 6, 7, { 0 }}, + { 232, 0, 3, 7, { 0 }}, + { 233, 0, 3, 7, { 0 }}, + { 234, 0, 3, 7, { 0 }}, + { 235, 0, 4, 7, { 0 }}, + { 236, 0, 2, 4, { 0 }}, + { 237, 0, 2, 4, { 0 }}, + { 238, 0, 2, 4, { 0 }}, + { 239, 0, 3, 4, { 0 }}, + { 240, 0, 2, 7, { 0 }}, + { 241, 0, 3, 8, { 0 }}, + { 242, 0, 3, 6, { 0 }}, + { 243, 0, 3, 6, { 0 }}, + { 244, 0, 3, 6, { 0 }}, + { 245, 0, 3, 6, { 0 }}, + { 246, 0, 4, 6, { 0 }}, + { 247, 0, 3, 8, { 0 }}, + { 248, 0, 4, 9, { 0 }}, + { 249, 0, 3, 8, { 0 }}, + { 250, 0, 3, 8, { 0 }}, + { 251, 0, 3, 8, { 0 }}, + { 252, 0, 4, 8, { 0 }}, + { 253, 0, 3, 8, { 0 }}, + { 254, 0, 4, 6, { 0 }}, + { 255, 0, 4, 8, { 0 }}, +}; + +// Style loading function: Cherry +static void GuiLoadStyleCherry(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < CHERRY_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(cherryStyleProps[i].controlId, cherryStyleProps[i].propertyId, cherryStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int cherryFontDataSize = 0; + unsigned char *data = DecompressData(cherryFontData, CHERRY_STYLE_FONT_ATLAS_COMP_SIZE, &cherryFontDataSize); + Image imFont = { data, 512, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 15; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, cherryFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, cherryFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 510, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/style_cherry.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/style_cherry.png new file mode 100644 index 0000000..2e54516 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/style_cherry.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/style_cherry.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/style_cherry.rgs new file mode 100644 index 0000000..7ef11a2 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/style_cherry.rgs differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/style_cherry.txt.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/style_cherry.txt.rgs new file mode 100644 index 0000000..447c6d2 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cherry/style_cherry.txt.rgs @@ -0,0 +1,27 @@ +# +# rgs style text file (v4.0) - raygui style file generated using rGuiStyler +# +# Provided info: +# f fontGenSize charsetFileName fontFileName +# p Property description +# +# WARNING: This style uses a custom font, must be provided with style file +# +f 15 charset.txt Westington.ttf +p 00 00 0xda5757ff DEFAULT_BORDER_COLOR_NORMAL +p 00 01 0x753233ff DEFAULT_BASE_COLOR_NORMAL +p 00 02 0xe17373ff DEFAULT_TEXT_COLOR_NORMAL +p 00 03 0xfaaa97ff DEFAULT_BORDER_COLOR_FOCUSED +p 00 04 0xe06262ff DEFAULT_BASE_COLOR_FOCUSED +p 00 05 0xfdb4aaff DEFAULT_TEXT_COLOR_FOCUSED +p 00 06 0xe03c46ff DEFAULT_BORDER_COLOR_PRESSED +p 00 07 0x5b1e20ff DEFAULT_BASE_COLOR_PRESSED +p 00 08 0xc2474fff DEFAULT_TEXT_COLOR_PRESSED +p 00 09 0xa19292ff DEFAULT_BORDER_COLOR_DISABLED +p 00 10 0x706060ff DEFAULT_BASE_COLOR_DISABLED +p 00 11 0x9e8585ff DEFAULT_TEXT_COLOR_DISABLED +p 00 16 0x0000000f TEXT_SIZE +p 00 17 0x00000000 TEXT_SPACING +p 00 18 0xfb8170ff LINE_COLOR +p 00 19 0x3a1720ff BACKGROUND_COLOR +p 00 20 0x00000016 TEXT_LINE_SPACING diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/Kyrou7Wide.ttf b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/Kyrou7Wide.ttf new file mode 100644 index 0000000..165c3e7 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/Kyrou7Wide.ttf differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/README.md b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/README.md new file mode 100644 index 0000000..12a5f4c --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/README.md @@ -0,0 +1,27 @@ +## style: cyber + +Future is now! Neons and shadows, city never sleeps! Robots waiting in the corners and expensive vending machines! You got the style! + +![cyber style table](style_cyber.png) + +## style: provided files + +Several options are provided to add the style to a `raygui` application, choose the one that better fits the project. + +| file name | description | +| :-------- | :---------- | +| `style_cyber.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) | +| `style_cyber.txt.rgs` | Text style file, no font data, requires external font provided | +| `style_cyber.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) | +| `style_cyber.h` | Embeddable style as code file, self-contained, includes font data | +| `style_cyber.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data | + +## screenshot + +![cyber style screen](screenshot.png) + +## about font + +"Grixel Kyrou 7 Wide" font by [Nikos Giannakopoulos](http://www.grixel.gr/). + +100% free font, downloaded from dafont.com: [grixel-kyrou-7-wide](https://www.dafont.com/grixel-kyrou-7-wide.font) diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/charset.txt b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/charset.txt new file mode 100644 index 0000000..611a673 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/charset.txt @@ -0,0 +1 @@ + !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/font_readme.txt b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/font_readme.txt new file mode 100644 index 0000000..45def0a --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/font_readme.txt @@ -0,0 +1,36 @@ +Thank you for downloading the free Grixel fonts. You can use them in your personal and commercial projects too. They include Western European, Central European, Turkish and Greek characters. They are Unicode TrueType fonts and are optimized to work in both Windows XP and Mac OS X platforms using Adobe Photoshop CS2 and Macromedia Flash 8. + + +Grixel fonts are under Creative Commons Attribution-NoDerivs 2.5 License which can be found here: + +http://creativecommons.org/licenses/by-nd/2.5/ + +=============================================================== +Attribution-NoDerivs 2.5 + +You are free: + + * to copy, distribute, display, and perform the work + * to make commercial use of the work + +Under the following conditions: + +by +Attribution. You must attribute the work in the manner specified by the author or licensor. + +nd +No Derivative Works. You may not alter, transform, or build upon this work. + + * For any reuse or distribution, you must make clear to others the license terms of this work. + * Any of these conditions can be waived if you get permission from the copyright holder. + +Your fair use and other rights are in no way affected by the above. +=============================================================== + + +In no event shall Nikos Giannakopoulos be held liable to you for any consequential or incidental damages, including any lost revenue, profits, goodwill or savings, or for any claim by any third party caused by using these fonts. + +Please read the UsageGuides.pdf before you use them. + + +Grixel - Greek pixel fonts | Nikos Giannakopoulos | www.grixel.gr \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/screenshot.old.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/screenshot.old.png new file mode 100644 index 0000000..2ea08b5 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/screenshot.old.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/screenshot.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/screenshot.png new file mode 100644 index 0000000..58d5cfd Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/screenshot.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/style_cyber.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/style_cyber.h new file mode 100644 index 0000000..5e7bf85 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/style_cyber.h @@ -0,0 +1,592 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleCyber(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define CYBER_STYLE_PROPS_COUNT 17 + +// Custom style name: Cyber +static const GuiStyleProp cyberStyleProps[CYBER_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0x2f7486ff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0x024658ff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0x51bfd3ff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0x82cde0ff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0x3299b4ff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0xb6e1eaff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0xeb7630ff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0xffbc51ff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0xd86f36ff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0x134b5aff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0x02313dff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0x17505fff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x0000000e }, // DEFAULT_TEXT_SIZE + { 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING + { 0, 18, (int)0x81c0d0ff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0x00222bff }, // DEFAULT_BACKGROUND_COLOR + { 0, 20, (int)0x00000007 }, // DEFAULT_TEXT_LINE_SPACING +}; + +// WARNING: This style uses a custom font: "Kyrou7Wide.ttf" (size: 14, spacing: 0) + +#define CYBER_STYLE_FONT_ATLAS_COMP_SIZE 2306 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char cyberFontData[CYBER_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0xdd, 0xdd, 0x72, 0xe3, 0x36, 0x12, 0x06, 0x50, 0x96, 0x6b, 0xdf, 0xff, 0x85, 0x1d, 0xec, 0xb7, 0xb5, 0x93, 0x4c, 0xe2, + 0xa9, 0x8c, 0x88, 0x7f, 0x8a, 0x92, 0xcf, 0x9c, 0xaa, 0xb9, 0x30, 0x2d, 0x89, 0x04, 0xd1, 0x40, 0x93, 0x34, 0x5a, 0x39, + 0x00, 0x00, 0x00, 0x00, 0x16, 0xcb, 0xc5, 0x9f, 0x96, 0xe6, 0x9f, 0xae, 0x3b, 0xa2, 0x9f, 0xff, 0x9e, 0x7b, 0xec, 0xfa, + 0x57, 0x7f, 0xbb, 0xe7, 0xe1, 0xb9, 0xd3, 0x9e, 0x5f, 0x7f, 0x92, 0xd3, 0xdf, 0xcd, 0x50, 0xeb, 0xa6, 0x7a, 0xc6, 0xce, + 0xcf, 0x4c, 0x5f, 0xbc, 0x3d, 0xde, 0x87, 0x74, 0xbf, 0x62, 0xe7, 0xc8, 0xf8, 0xf3, 0x5f, 0xe9, 0xea, 0xef, 0xe7, 0xbd, + 0xb8, 0xad, 0x97, 0xa7, 0xb2, 0x47, 0x69, 0xf8, 0x8d, 0xda, 0xeb, 0x8f, 0x89, 0xbd, 0x2f, 0x97, 0xce, 0x45, 0xa9, 0x8e, + 0x19, 0xc7, 0x86, 0xa3, 0xc9, 0xe4, 0xb9, 0xcc, 0xf4, 0x88, 0xd6, 0x1e, 0xff, 0xb5, 0x7e, 0x91, 0x7f, 0xfd, 0x7f, 0x0c, + 0x45, 0x5a, 0x36, 0xc6, 0xff, 0xd1, 0x35, 0xbe, 0xec, 0xcf, 0x8b, 0xd2, 0x10, 0xe9, 0xfd, 0xaf, 0x69, 0x3d, 0xda, 0xb1, + 0x11, 0x2f, 0xcd, 0xbf, 0x9b, 0xa1, 0x23, 0x5e, 0x75, 0x46, 0x7a, 0x47, 0xce, 0x5a, 0x6b, 0xec, 0x38, 0x9a, 0xaf, 0x3f, + 0xfb, 0x9c, 0x7c, 0x7d, 0xd9, 0x3e, 0x46, 0x96, 0x86, 0x96, 0x2a, 0xc3, 0x9f, 0x98, 0x81, 0x6c, 0x6e, 0xd5, 0xd9, 0xdf, + 0x9d, 0x17, 0x66, 0x38, 0x96, 0x32, 0x75, 0xf6, 0xce, 0x3f, 0x77, 0x74, 0xfe, 0xde, 0x3b, 0xe2, 0xf5, 0xe7, 0xfa, 0x59, + 0x34, 0x9a, 0x8f, 0x8d, 0x66, 0x3f, 0x5b, 0x2a, 0x1b, 0xe2, 0x77, 0xdd, 0x58, 0xbc, 0x32, 0x47, 0x9a, 0xc9, 0x3b, 0xcf, + 0xb6, 0x7d, 0xfe, 0xd0, 0xbe, 0x57, 0xaf, 0x32, 0xff, 0x67, 0xe2, 0xfc, 0x65, 0xa8, 0x9d, 0x6b, 0x39, 0x65, 0xeb, 0x11, + 0x9f, 0x7f, 0x7a, 0x19, 0x38, 0xe6, 0x8f, 0x94, 0xbf, 0x1d, 0x4b, 0x72, 0xda, 0x2c, 0x3c, 0x97, 0xe9, 0xbe, 0x56, 0xfa, + 0x33, 0x6e, 0xc7, 0x73, 0xe6, 0xe4, 0xbf, 0x3f, 0x94, 0xcd, 0xb9, 0xd8, 0x15, 0xf1, 0xff, 0xcf, 0x28, 0x96, 0x89, 0x88, + 0xcd, 0xe4, 0x0c, 0xb3, 0xf6, 0xfa, 0x7f, 0x5e, 0x99, 0x3a, 0x7f, 0x59, 0x7e, 0x55, 0xfb, 0x4f, 0xf4, 0x66, 0x28, 0x7f, + 0xc8, 0xb2, 0x51, 0xb6, 0x6c, 0xbc, 0x97, 0x9c, 0x4d, 0x59, 0xda, 0xa3, 0xf9, 0xff, 0xba, 0x6c, 0x67, 0xcf, 0xd5, 0x52, + 0xcf, 0xbd, 0xd3, 0xd1, 0xeb, 0xff, 0x34, 0x8e, 0x2e, 0xfb, 0xe2, 0xff, 0x7a, 0x7f, 0x4c, 0x9e, 0xbf, 0x5c, 0x7c, 0x7d, + 0xbe, 0xe6, 0x0a, 0x7d, 0x3c, 0xe3, 0xd9, 0x7b, 0xfd, 0x7f, 0xd5, 0x88, 0xb1, 0x23, 0xff, 0xcf, 0x8b, 0xe7, 0xff, 0x3d, + 0xf7, 0xff, 0xf3, 0x26, 0xf1, 0x9f, 0xe9, 0x27, 0x52, 0x59, 0x7e, 0x7f, 0xbe, 0x2d, 0xdb, 0x9d, 0x7b, 0xbe, 0x90, 0xa9, + 0x23, 0x5e, 0x75, 0x2f, 0x26, 0x8b, 0x7e, 0x37, 0x8d, 0xb3, 0xe2, 0xd8, 0xfd, 0xdd, 0xe7, 0xde, 0xff, 0xf7, 0xfc, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x9e, 0xd5, 0x9d, 0xb9, 0xe0, 0x75, + 0x23, 0xab, 0x68, 0x67, 0x56, 0xdd, 0xce, 0xac, 0xd9, 0x1d, 0x7d, 0x65, 0xbd, 0x0e, 0xd1, 0xf8, 0x3a, 0xe3, 0xf6, 0x55, + 0xce, 0x7d, 0xeb, 0x86, 0xe7, 0xaa, 0xa3, 0xa4, 0xba, 0x8e, 0xbe, 0xad, 0x1e, 0x41, 0xbd, 0x76, 0x6b, 0xad, 0x92, 0xd5, + 0xfe, 0xda, 0xaf, 0x3b, 0x6b, 0x53, 0x66, 0xb8, 0x05, 0x7b, 0x56, 0xbf, 0xa7, 0xab, 0x3e, 0xc1, 0xe8, 0x3a, 0xf4, 0xeb, + 0xaa, 0x02, 0xce, 0xaf, 0x90, 0x3f, 0x7f, 0xe7, 0xb2, 0xfd, 0x28, 0xda, 0xf7, 0x38, 0x0b, 0xce, 0xd9, 0x8e, 0xf8, 0xcf, + 0x69, 0x45, 0x80, 0x5c, 0x58, 0xdb, 0x75, 0x5f, 0x25, 0xdc, 0x7d, 0x95, 0x76, 0xea, 0xf1, 0xdf, 0x5e, 0xb3, 0x39, 0x8b, + 0xa3, 0x35, 0xc3, 0xd1, 0xb3, 0x6a, 0x04, 0x18, 0x19, 0xb7, 0x56, 0xc4, 0xff, 0x68, 0xee, 0xf0, 0xda, 0xf1, 0x3f, 0x5a, + 0x4f, 0x2c, 0x27, 0xe7, 0x3d, 0x8d, 0x7d, 0xfb, 0x0e, 0xdb, 0x8f, 0x9b, 0xc6, 0x7f, 0x3d, 0xa6, 0x32, 0x5d, 0xa5, 0x78, + 0x5d, 0x7f, 0x5a, 0xa7, 0x34, 0x45, 0xe9, 0x58, 0x4d, 0xcf, 0x32, 0x3c, 0xb2, 0xec, 0xca, 0xff, 0x53, 0xb9, 0xf2, 0x48, + 0x53, 0x2e, 0xbb, 0x76, 0x8c, 0x6d, 0x1d, 0xb5, 0x1e, 0x57, 0x14, 0xab, 0xd5, 0x2b, 0x7c, 0xfe, 0xfc, 0x3e, 0x57, 0x4f, + 0xf9, 0x9a, 0xf8, 0x9f, 0x8f, 0xc4, 0x3c, 0x65, 0xce, 0x5a, 0x73, 0x6f, 0x22, 0x83, 0xf3, 0xd6, 0x9e, 0xd7, 0x5e, 0x31, + 0xff, 0xe7, 0xa5, 0xe6, 0xff, 0x96, 0xeb, 0xff, 0x2c, 0xb8, 0x7a, 0x1d, 0x6b, 0xb5, 0xd2, 0x7c, 0x2e, 0x77, 0xe4, 0xff, + 0x2d, 0x33, 0xfb, 0xfc, 0xfc, 0x3f, 0xb3, 0x35, 0xcd, 0xb3, 0xf0, 0xf5, 0xf1, 0xdf, 0x76, 0x4c, 0xb9, 0xf4, 0xb5, 0xaf, + 0x17, 0xff, 0xb9, 0xc5, 0xfd, 0xbf, 0x6c, 0xac, 0xcd, 0x9c, 0x25, 0xa3, 0xdb, 0x9e, 0xf8, 0x6f, 0xab, 0x87, 0x3e, 0x73, + 0xfd, 0x3f, 0x17, 0xe1, 0xf5, 0x08, 0xf8, 0x43, 0xfc, 0x2f, 0xca, 0xff, 0x57, 0xbd, 0xba, 0xff, 0x5e, 0xc9, 0xcc, 0x0c, + 0xda, 0x7e, 0x4c, 0x59, 0x9e, 0x7f, 0xcf, 0xd6, 0xf6, 0xdd, 0x9d, 0xff, 0xaf, 0x7a, 0xfd, 0x31, 0x7c, 0xde, 0xeb, 0x5b, + 0xe6, 0x7a, 0xe5, 0xf1, 0x84, 0x6f, 0x73, 0xd8, 0xfd, 0x7c, 0xcf, 0x77, 0x94, 0xbe, 0xdf, 0x53, 0x6c, 0x6d, 0x70, 0xef, + 0xe7, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x5e, 0x65, 0x75, 0xbf, + 0x15, 0x53, 0x69, 0x58, 0x1f, 0xda, 0x52, 0x3f, 0xf3, 0xbc, 0xfa, 0xe6, 0xa3, 0x1a, 0x12, 0xa5, 0xa9, 0xf6, 0xe6, 0xaa, + 0xd6, 0x6c, 0xad, 0x83, 0x30, 0x5b, 0xa7, 0x73, 0xe4, 0xdd, 0x5b, 0x5a, 0xb9, 0xbe, 0xe6, 0x31, 0x95, 0x75, 0xc0, 0xc7, + 0xc2, 0x1e, 0x58, 0x5f, 0xf3, 0x9c, 0x89, 0x9a, 0x0b, 0x33, 0x55, 0x04, 0xb3, 0x71, 0x85, 0x69, 0x86, 0x5a, 0xa5, 0xbd, + 0x02, 0x47, 0xeb, 0xd6, 0x2c, 0xaa, 0xf2, 0xb0, 0xbb, 0x5f, 0xaf, 0xd8, 0xda, 0x5f, 0x47, 0xe1, 0x19, 0xf1, 0x7f, 0xde, + 0x43, 0xb2, 0xf8, 0x6c, 0xf7, 0xfd, 0xb4, 0x16, 0xfb, 0x8f, 0x6b, 0x2b, 0x7f, 0x34, 0xf6, 0x9b, 0x9e, 0xed, 0x99, 0x3e, + 0xcb, 0x99, 0xac, 0x84, 0x50, 0x3a, 0xe7, 0x9b, 0xf6, 0xe8, 0x9f, 0xeb, 0x79, 0xfb, 0x56, 0xc0, 0xbf, 0x53, 0xfc, 0x1f, + 0x83, 0x15, 0x0b, 0x77, 0xc7, 0xff, 0xd1, 0xb4, 0x4f, 0x59, 0x76, 0x44, 0xeb, 0xaa, 0x6f, 0x7f, 0x74, 0xe7, 0x58, 0x6b, + 0x6a, 0x59, 0xe5, 0xc2, 0x5a, 0x0f, 0xe9, 0xe8, 0x5d, 0xa3, 0x23, 0x40, 0x06, 0xe7, 0xff, 0xfe, 0x96, 0x5e, 0x95, 0x63, + 0xbc, 0x66, 0xfc, 0x8f, 0xb5, 0x66, 0x26, 0xce, 0xf0, 0xde, 0xf9, 0x7f, 0x65, 0xe5, 0xee, 0x91, 0xe8, 0x28, 0x0f, 0xde, + 0xa5, 0x0c, 0xcf, 0xce, 0xe3, 0x57, 0x07, 0x47, 0xd3, 0x77, 0x32, 0x94, 0xee, 0xd7, 0xe5, 0x97, 0xf8, 0xcc, 0x96, 0x6b, + 0xf4, 0x9c, 0xb4, 0xf0, 0x68, 0x35, 0xd2, 0xde, 0xf8, 0xcf, 0xa5, 0xf3, 0xff, 0xd1, 0xf8, 0xed, 0x19, 0xc7, 0xd0, 0xf9, + 0x3a, 0x06, 0xdf, 0x75, 0xfc, 0x95, 0xa9, 0xf6, 0xd8, 0x3d, 0xf5, 0x68, 0x57, 0x7e, 0x43, 0x47, 0x16, 0xf4, 0xdb, 0x54, + 0x3e, 0x21, 0x83, 0x39, 0x78, 0x6f, 0xe6, 0xdf, 0x33, 0xce, 0xa6, 0xe3, 0xce, 0x40, 0x4e, 0xc6, 0xc0, 0x6c, 0xca, 0xc1, + 0x57, 0xce, 0x83, 0x59, 0x9a, 0xaf, 0xed, 0xbb, 0xbb, 0xb8, 0x33, 0xa3, 0xbb, 0xe6, 0xdd, 0x9e, 0xd5, 0x26, 0x57, 0xce, + 0xff, 0xe9, 0xce, 0x76, 0x67, 0xe6, 0xff, 0x4c, 0xd7, 0xc9, 0xac, 0xe5, 0x7e, 0xc7, 0xed, 0xe6, 0xff, 0xb6, 0xd8, 0xcc, + 0xe5, 0xf9, 0xbf, 0xf8, 0xbf, 0xfa, 0x49, 0xcb, 0xf1, 0x12, 0xf1, 0xbf, 0xf7, 0xfa, 0x7f, 0xcd, 0x08, 0x32, 0x3a, 0xcb, + 0x1e, 0x9b, 0x9f, 0x11, 0x8c, 0xbf, 0x6a, 0x5f, 0xfc, 0x1f, 0xdf, 0xaa, 0x5a, 0xe3, 0xbb, 0xd5, 0xa6, 0x7c, 0x46, 0xfc, + 0xb7, 0xe4, 0xff, 0x19, 0xbc, 0xff, 0xdf, 0xfe, 0x0d, 0x5b, 0xe9, 0xca, 0x59, 0xda, 0xf3, 0x8e, 0xf7, 0xec, 0x11, 0xbc, + 0xf3, 0x88, 0x36, 0xf7, 0xfc, 0xff, 0x6e, 0x63, 0xf0, 0xdc, 0x77, 0xaa, 0x7c, 0xe7, 0xfe, 0xaf, 0xee, 0x32, 0xfe, 0x5a, + 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xd9, 0xeb, 0x16, 0x72, 0xe9, 0x7a, 0xf9, + 0xd1, 0xba, 0x75, 0xfd, 0x2b, 0x56, 0xb3, 0xa8, 0x65, 0xb2, 0xe8, 0x6c, 0x95, 0x86, 0xd5, 0xf9, 0x99, 0x6c, 0xf7, 0x4c, + 0xff, 0x4e, 0x1a, 0x56, 0x84, 0x65, 0xe8, 0x0c, 0xdf, 0x6f, 0xdd, 0xea, 0xcc, 0xaa, 0xc1, 0x2c, 0x6d, 0xdd, 0x95, 0xe7, + 0x3b, 0xd5, 0x6a, 0xd8, 0x5f, 0x95, 0xc1, 0xea, 0x2b, 0x19, 0x5a, 0x31, 0x99, 0xe1, 0xda, 0x04, 0xbd, 0xe3, 0x5d, 0x3a, + 0xdb, 0xac, 0xf7, 0x5c, 0x7f, 0x6d, 0xe3, 0xd6, 0x2a, 0x33, 0x5f, 0xb7, 0x97, 0xc1, 0x33, 0xfe, 0x91, 0xcf, 0xa9, 0x7e, + 0x9f, 0xe1, 0x11, 0xfa, 0x58, 0x52, 0xd7, 0xbb, 0xa5, 0x1a, 0x47, 0x69, 0x58, 0x43, 0x9f, 0xe9, 0xda, 0x60, 0x19, 0x6e, + 0x87, 0x95, 0x3d, 0x6f, 0xee, 0xd3, 0x6a, 0x6b, 0xb5, 0x33, 0x31, 0x83, 0x66, 0xb0, 0xfe, 0x5d, 0x26, 0x2b, 0x43, 0xe4, + 0x64, 0x8d, 0x77, 0xb6, 0xad, 0x6f, 0x4f, 0x67, 0xf4, 0xb7, 0x1f, 0x6f, 0x9a, 0xdb, 0xb4, 0xad, 0x5e, 0xf5, 0xc7, 0xed, + 0xb3, 0xd2, 0x32, 0x34, 0xdb, 0x8c, 0xb5, 0xe9, 0xd5, 0xf9, 0xc6, 0xdd, 0x6b, 0x7b, 0xd4, 0xab, 0x8f, 0xed, 0xbf, 0x36, + 0x18, 0xa9, 0xc5, 0xb2, 0x2e, 0xfe, 0xd3, 0x5d, 0x51, 0xaa, 0x4c, 0x5d, 0x75, 0xf4, 0xc5, 0x7f, 0xdb, 0xfb, 0x66, 0x68, + 0xfe, 0xaf, 0xc5, 0xdf, 0xde, 0xed, 0xb3, 0xd5, 0xf6, 0x47, 0xe3, 0xbf, 0xbf, 0x0f, 0x64, 0x43, 0x8d, 0xd4, 0x5a, 0x56, + 0x32, 0xb2, 0x65, 0xfe, 0x1a, 0x7b, 0x5f, 0xfc, 0x9f, 0xb5, 0xde, 0x6c, 0xbe, 0xb1, 0x6a, 0xfe, 0xcf, 0x74, 0xfe, 0xdf, + 0xda, 0x57, 0xd3, 0xfc, 0xfd, 0x42, 0x2d, 0x39, 0x55, 0x1e, 0xc6, 0x7e, 0xc9, 0x67, 0xf5, 0x9b, 0x32, 0x8e, 0xc1, 0x6f, + 0xc3, 0xd8, 0xbd, 0xbd, 0x67, 0xdc, 0x5e, 0x53, 0xb9, 0xf3, 0xfa, 0xad, 0x2b, 0xc6, 0xbe, 0x7b, 0xc4, 0x7f, 0x36, 0x65, + 0x3a, 0x99, 0x6a, 0xd7, 0x74, 0xed, 0xfb, 0x35, 0x77, 0x97, 0x72, 0x59, 0x55, 0xd1, 0xff, 0xc7, 0xfe, 0xc7, 0x70, 0x4e, + 0xbc, 0x7f, 0x7b, 0xeb, 0x38, 0x58, 0x2e, 0x98, 0xff, 0x77, 0xde, 0x01, 0x1d, 0xaf, 0x0a, 0x7f, 0x4d, 0xfc, 0x3f, 0xeb, + 0xda, 0xe8, 0xd8, 0x32, 0x36, 0xf6, 0xc6, 0x7f, 0x2e, 0x3e, 0x8e, 0xeb, 0xe2, 0xbf, 0x9c, 0x5e, 0x03, 0xa4, 0x23, 0xaf, + 0xdd, 0xb3, 0x7d, 0xe5, 0xf8, 0x32, 0xfb, 0xbd, 0x3f, 0xcf, 0xc9, 0xff, 0x9f, 0x1f, 0xff, 0x77, 0xbe, 0x43, 0x91, 0x37, + 0xba, 0x43, 0x93, 0x5f, 0xee, 0xb2, 0x5c, 0xf3, 0x3c, 0xf6, 0x3f, 0x29, 0x3f, 0x7c, 0x3e, 0xf8, 0x1e, 0xad, 0x7b, 0xe7, + 0xff, 0xbd, 0xf1, 0x3f, 0x73, 0xff, 0xff, 0xfb, 0xe6, 0xff, 0x77, 0xfe, 0x9b, 0x05, 0x7f, 0xb7, 0xb1, 0xb3, 0x9d, 0xee, + 0x1f, 0xdf, 0xeb, 0x47, 0xe6, 0xf2, 0xe0, 0x7a, 0xe8, 0xfb, 0xe6, 0xff, 0xf7, 0xff, 0x8b, 0x25, 0xd5, 0x56, 0xaf, 0xb8, + 0x26, 0xb9, 0xe3, 0xfd, 0xbd, 0xd5, 0xfd, 0xbd, 0x9c, 0xdc, 0x0b, 0xdd, 0x95, 0xff, 0x1f, 0x37, 0xbf, 0xff, 0x0f, 0xaf, + 0x39, 0x3e, 0x01, 0xe2, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x7d, 0xff, 0x9a, 0x32, 0xc3, + 0xeb, 0x26, 0xf2, 0xa3, 0x96, 0xcc, 0xc7, 0xc4, 0x6a, 0xa4, 0x7d, 0x55, 0x64, 0xcf, 0x6b, 0x60, 0x7d, 0x4e, 0xfc, 0xfd, + 0xe8, 0xde, 0xe3, 0xca, 0xa2, 0xf5, 0xa3, 0xcf, 0x38, 0xb2, 0x0c, 0x9e, 0xab, 0xb9, 0xcf, 0xfc, 0x77, 0x55, 0xa4, 0x63, + 0xf9, 0x5a, 0xdf, 0xe3, 0xaf, 0xba, 0x49, 0xab, 0xcf, 0x48, 0xcf, 0xca, 0xc3, 0x7b, 0x55, 0x28, 0x2c, 0x3f, 0xda, 0x23, + 0xa7, 0x75, 0x24, 0xef, 0x5c, 0x45, 0xb6, 0x0c, 0x55, 0x97, 0xd9, 0x7f, 0x5c, 0x73, 0xf1, 0x90, 0x4a, 0x5d, 0xcf, 0xe7, + 0x54, 0xbb, 0xad, 0x9d, 0xab, 0xf3, 0x5a, 0xd8, 0xa5, 0x71, 0xbd, 0xfc, 0x79, 0x55, 0xe4, 0x4c, 0x8e, 0x7e, 0xf5, 0xe8, + 0xcf, 0xd0, 0xd1, 0xfd, 0xee, 0x8c, 0xa5, 0xf9, 0x13, 0xb2, 0xa8, 0x3a, 0xd7, 0x79, 0x6b, 0x94, 0x17, 0x5e, 0x29, 0x5c, + 0xba, 0xe2, 0x3f, 0x5f, 0x32, 0x84, 0xbc, 0xe0, 0xea, 0x96, 0xd6, 0xf1, 0xf8, 0xb5, 0x56, 0xce, 0xa4, 0x79, 0x45, 0xf8, + 0x4c, 0xc5, 0x1d, 0xeb, 0xa9, 0xda, 0x7b, 0x62, 0xbd, 0x9f, 0xde, 0xbb, 0x8a, 0xec, 0x67, 0xe5, 0xb8, 0xf2, 0xb2, 0xd5, + 0x6f, 0xda, 0x5a, 0x25, 0x03, 0xd9, 0xc1, 0xb3, 0xb6, 0x9e, 0x67, 0x71, 0xbf, 0x9b, 0xff, 0xc7, 0x32, 0x9b, 0x67, 0x1d, + 0x7b, 0xeb, 0xbe, 0x66, 0xcb, 0x95, 0x60, 0x4b, 0x4f, 0xc8, 0x69, 0xb6, 0xf5, 0x8a, 0x71, 0xd2, 0x92, 0x89, 0xde, 0x73, + 0xbf, 0xd3, 0xd8, 0x1b, 0x72, 0x92, 0x87, 0xdf, 0xb5, 0xee, 0xed, 0xcc, 0xa8, 0x94, 0x86, 0x2b, 0xfc, 0x96, 0xec, 0xa0, + 0x5c, 0xba, 0xf5, 0xae, 0xf1, 0xdf, 0x32, 0xff, 0xe7, 0x4d, 0xe3, 0xbf, 0xdc, 0x7c, 0xbf, 0xc7, 0xbf, 0xff, 0xac, 0x75, + 0xfe, 0xbf, 0xd7, 0xd6, 0x95, 0x19, 0xfc, 0xe3, 0xfb, 0x6d, 0xfb, 0x2a, 0x7d, 0xf6, 0xdf, 0x77, 0x7c, 0x8d, 0xf8, 0xbf, + 0xf3, 0x3c, 0x39, 0x1e, 0xff, 0x9f, 0x2f, 0xb0, 0xdf, 0x19, 0xba, 0xa3, 0x53, 0x8b, 0xff, 0x72, 0xcb, 0xad, 0x2b, 0x2b, + 0x5b, 0x8d, 0x3e, 0xab, 0xda, 0x59, 0xe9, 0xf3, 0xbe, 0xf1, 0xdf, 0x92, 0x2f, 0xbd, 0xea, 0x75, 0xf2, 0x31, 0x1d, 0x41, + 0x77, 0x8d, 0xff, 0xfa, 0x93, 0x87, 0xf1, 0x27, 0x64, 0xcf, 0xd8, 0x5a, 0x2e, 0xba, 0x83, 0xf7, 0xbc, 0x63, 0x7f, 0x5e, + 0xfc, 0xcf, 0x54, 0x28, 0x3c, 0xbf, 0xef, 0x72, 0x87, 0xeb, 0xe4, 0x1d, 0xf5, 0x10, 0xef, 0xb1, 0xdf, 0xd9, 0x34, 0x17, + 0xdd, 0xfb, 0x49, 0x8e, 0x3b, 0xf8, 0xf7, 0x7c, 0x6a, 0x30, 0xd6, 0x8f, 0x77, 0x6f, 0x7f, 0x56, 0x6f, 0xbc, 0x62, 0xbf, + 0x45, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x77, 0x5a, 0xc9, 0x93, 0xca, 0x2a, + 0xe0, 0xa3, 0xab, 0x76, 0xd1, 0xaf, 0x46, 0x6b, 0xa6, 0x66, 0x41, 0x95, 0xcc, 0x47, 0x6b, 0x6f, 0xca, 0xe5, 0x47, 0x73, + 0x4c, 0xbe, 0x33, 0x5c, 0xb5, 0x9a, 0xef, 0x77, 0xeb, 0xc5, 0x47, 0xfb, 0xfc, 0x68, 0xcd, 0xd4, 0xb9, 0x7a, 0xb1, 0xb5, + 0x95, 0xd2, 0x9f, 0x83, 0xe3, 0xd9, 0xae, 0x0a, 0xb0, 0x67, 0xef, 0x5c, 0xaf, 0xe7, 0x6b, 0x3d, 0x20, 0xf3, 0xd1, 0xff, + 0x1d, 0x7a, 0x50, 0xb6, 0xe5, 0x15, 0x3b, 0xf7, 0xf9, 0x43, 0x0f, 0xe5, 0x49, 0x39, 0x40, 0xdb, 0x5a, 0xf6, 0x72, 0xab, + 0xad, 0x8f, 0xf7, 0x39, 0x8d, 0x95, 0xfd, 0xee, 0xb5, 0x75, 0xa6, 0x9e, 0x2f, 0xb4, 0x5c, 0x11, 0xd7, 0xab, 0xa2, 0xbe, + 0xce, 0xd6, 0x96, 0xa3, 0x3d, 0xde, 0xe4, 0x58, 0xc5, 0x3f, 0xab, 0xe6, 0xfc, 0x77, 0xea, 0xf5, 0x99, 0x6a, 0x0b, 0xf1, + 0x8f, 0xf8, 0xff, 0x6e, 0xbd, 0x5e, 0xfc, 0xf3, 0x7d, 0xf3, 0xff, 0x32, 0x55, 0x2f, 0xfe, 0xb8, 0xd5, 0xd6, 0xf9, 0x6b, + 0xa1, 0xfb, 0x6c, 0xbd, 0x6b, 0x15, 0x44, 0xe0, 0x8a, 0x3b, 0xb0, 0x73, 0x4f, 0x70, 0x81, 0xd7, 0xc8, 0xc1, 0x46, 0xe2, + 0xda, 0xec, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8b, 0x3f, 0xff, 0x69, 0x07, 0x10, 0xff, 0xc0, + 0xb7, 0x8b, 0xff, 0xff, 0x01 }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle cyberFontRecs[189] = { + { 4, 4, 4 , 14 }, + { 16, 4, 1 , 8 }, + { 25, 4, 4 , 3 }, + { 37, 4, 8 , 8 }, + { 53, 4, 8 , 9 }, + { 69, 4, 8 , 8 }, + { 85, 4, 8 , 8 }, + { 101, 4, 1 , 3 }, + { 110, 4, 4 , 9 }, + { 122, 4, 4 , 9 }, + { 134, 4, 5 , 6 }, + { 147, 4, 5 , 6 }, + { 160, 4, 2 , 2 }, + { 170, 4, 4 , 1 }, + { 182, 4, 1 , 1 }, + { 191, 4, 8 , 8 }, + { 207, 4, 8 , 8 }, + { 223, 4, 2 , 8 }, + { 233, 4, 8 , 8 }, + { 249, 4, 8 , 8 }, + { 265, 4, 8 , 8 }, + { 281, 4, 8 , 8 }, + { 297, 4, 8 , 8 }, + { 313, 4, 7 , 8 }, + { 328, 4, 8 , 8 }, + { 344, 4, 8 , 8 }, + { 360, 4, 1 , 4 }, + { 369, 4, 2 , 5 }, + { 379, 4, 4 , 8 }, + { 391, 4, 5 , 3 }, + { 404, 4, 4 , 8 }, + { 416, 4, 7 , 8 }, + { 431, 4, 8 , 8 }, + { 447, 4, 8 , 8 }, + { 463, 4, 8 , 8 }, + { 479, 4, 8 , 8 }, + { 495, 4, 8 , 8 }, + { 4, 26, 7 , 8 }, + { 19, 26, 7 , 8 }, + { 34, 26, 8 , 8 }, + { 50, 26, 8 , 8 }, + { 66, 26, 5 , 8 }, + { 79, 26, 7 , 8 }, + { 94, 26, 8 , 8 }, + { 110, 26, 7 , 8 }, + { 125, 26, 8 , 8 }, + { 141, 26, 8 , 8 }, + { 157, 26, 8 , 8 }, + { 173, 26, 8 , 8 }, + { 189, 26, 8 , 9 }, + { 205, 26, 8 , 8 }, + { 221, 26, 8 , 8 }, + { 237, 26, 8 , 8 }, + { 253, 26, 8 , 8 }, + { 269, 26, 8 , 8 }, + { 285, 26, 9 , 8 }, + { 302, 26, 8 , 8 }, + { 318, 26, 8 , 8 }, + { 334, 26, 8 , 8 }, + { 350, 26, 4 , 9 }, + { 362, 26, 8 , 8 }, + { 378, 26, 4 , 9 }, + { 390, 26, 4 , 3 }, + { 402, 26, 7 , 1 }, + { 417, 26, 2 , 3 }, + { 427, 26, 7 , 5 }, + { 442, 26, 7 , 8 }, + { 457, 26, 7 , 5 }, + { 472, 26, 7 , 8 }, + { 487, 26, 7 , 5 }, + { 4, 48, 4 , 8 }, + { 16, 48, 7 , 7 }, + { 31, 48, 7 , 8 }, + { 46, 48, 1 , 8 }, + { 55, 48, 3 , 10 }, + { 66, 48, 7 , 8 }, + { 81, 48, 4 , 8 }, + { 93, 48, 9 , 5 }, + { 110, 48, 7 , 5 }, + { 125, 48, 7 , 5 }, + { 140, 48, 7 , 7 }, + { 155, 48, 7 , 7 }, + { 170, 48, 5 , 5 }, + { 183, 48, 7 , 5 }, + { 198, 48, 5 , 8 }, + { 211, 48, 7 , 5 }, + { 226, 48, 7 , 5 }, + { 241, 48, 9 , 5 }, + { 258, 48, 7 , 5 }, + { 273, 48, 7 , 7 }, + { 288, 48, 7 , 5 }, + { 303, 48, 4 , 9 }, + { 315, 48, 1 , 9 }, + { 324, 48, 4 , 9 }, + { 336, 48, 8 , 2 }, + { 352, 48, 1 , 8 }, + { 361, 48, 7 , 8 }, + { 376, 48, 7 , 8 }, + { 391, 48, 8 , 9 }, + { 407, 48, 8 , 9 }, + { 423, 48, 8 , 10 }, + { 439, 48, 4 , 9 }, + { 451, 48, 7 , 8 }, + { 466, 48, 8 , 8 }, + { 482, 48, 7 , 6 }, + { 497, 48, 5 , 3 }, + { 4, 70, 5 , 3 }, + { 17, 70, 8 , 8 }, + { 33, 70, 0 , 0 }, + { 41, 70, 4 , 3 }, + { 53, 70, 8 , 6 }, + { 69, 70, 4 , 5 }, + { 81, 70, 4 , 5 }, + { 93, 70, 8 , 10 }, + { 109, 70, 7 , 7 }, + { 124, 70, 5 , 7 }, + { 137, 70, 1 , 1 }, + { 146, 70, 7 , 8 }, + { 161, 70, 2 , 5 }, + { 171, 70, 4 , 5 }, + { 183, 70, 5 , 3 }, + { 196, 70, 14 , 8 }, + { 218, 70, 13 , 5 }, + { 239, 70, 8 , 9 }, + { 255, 70, 7 , 8 }, + { 270, 70, 8 , 10 }, + { 286, 70, 8 , 10 }, + { 302, 70, 8 , 10 }, + { 318, 70, 8 , 10 }, + { 334, 70, 8 , 9 }, + { 350, 70, 8 , 12 }, + { 366, 70, 14 , 8 }, + { 388, 70, 8 , 10 }, + { 404, 70, 7 , 10 }, + { 419, 70, 7 , 10 }, + { 434, 70, 7 , 10 }, + { 449, 70, 7 , 9 }, + { 464, 70, 5 , 10 }, + { 477, 70, 5 , 10 }, + { 490, 70, 5 , 10 }, + { 4, 92, 5 , 9 }, + { 17, 92, 8 , 8 }, + { 33, 92, 8 , 10 }, + { 49, 92, 8 , 10 }, + { 65, 92, 8 , 10 }, + { 81, 92, 8 , 10 }, + { 97, 92, 8 , 10 }, + { 113, 92, 8 , 9 }, + { 129, 92, 4 , 4 }, + { 141, 92, 8 , 8 }, + { 157, 92, 8 , 10 }, + { 173, 92, 8 , 10 }, + { 189, 92, 8 , 10 }, + { 205, 92, 8 , 9 }, + { 221, 92, 8 , 10 }, + { 237, 92, 7 , 9 }, + { 252, 92, 7 , 9 }, + { 267, 92, 7 , 8 }, + { 282, 92, 7 , 8 }, + { 297, 92, 7 , 8 }, + { 312, 92, 7 , 8 }, + { 327, 92, 7 , 8 }, + { 342, 92, 7 , 9 }, + { 357, 92, 13 , 5 }, + { 378, 92, 7 , 7 }, + { 393, 92, 7 , 8 }, + { 408, 92, 7 , 8 }, + { 423, 92, 7 , 8 }, + { 438, 92, 7 , 8 }, + { 453, 92, 3 , 8 }, + { 464, 92, 2 , 8 }, + { 474, 92, 3 , 8 }, + { 485, 92, 3 , 8 }, + { 4, 114, 8 , 8 }, + { 20, 114, 7 , 8 }, + { 35, 114, 7 , 8 }, + { 50, 114, 7 , 8 }, + { 65, 114, 7 , 8 }, + { 80, 114, 7 , 8 }, + { 95, 114, 7 , 8 }, + { 110, 114, 5 , 6 }, + { 123, 114, 7 , 5 }, + { 138, 114, 7 , 8 }, + { 153, 114, 7 , 8 }, + { 168, 114, 7 , 8 }, + { 183, 114, 7 , 8 }, + { 198, 114, 7 , 10 }, + { 213, 114, 7 , 10 }, + { 228, 114, 7 , 10 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo cyberFontGlyphs[189] = { + { 32, 0, 0, 4, { 0 }}, + { 33, 0, 3, 2, { 0 }}, + { 34, 0, 3, 4, { 0 }}, + { 35, 0, 3, 8, { 0 }}, + { 36, 0, 3, 8, { 0 }}, + { 37, 0, 3, 8, { 0 }}, + { 38, 0, 3, 8, { 0 }}, + { 39, 0, 3, 2, { 0 }}, + { 40, 0, 3, 4, { 0 }}, + { 41, 0, 3, 4, { 0 }}, + { 42, 0, 4, 6, { 0 }}, + { 43, 0, 4, 6, { 0 }}, + { 44, 0, 10, 3, { 0 }}, + { 45, 0, 7, 5, { 0 }}, + { 46, 0, 10, 2, { 0 }}, + { 47, 0, 3, 8, { 0 }}, + { 48, 0, 3, 8, { 0 }}, + { 49, 0, 3, 3, { 0 }}, + { 50, 0, 3, 8, { 0 }}, + { 51, 0, 3, 8, { 0 }}, + { 52, 0, 3, 8, { 0 }}, + { 53, 0, 3, 8, { 0 }}, + { 54, 0, 3, 8, { 0 }}, + { 55, 0, 3, 7, { 0 }}, + { 56, 0, 3, 8, { 0 }}, + { 57, 0, 3, 8, { 0 }}, + { 58, 0, 6, 2, { 0 }}, + { 59, 0, 6, 3, { 0 }}, + { 60, 0, 3, 5, { 0 }}, + { 61, 0, 6, 6, { 0 }}, + { 62, 0, 3, 5, { 0 }}, + { 63, 0, 3, 7, { 0 }}, + { 64, 0, 3, 8, { 0 }}, + { 65, 0, 3, 8, { 0 }}, + { 66, 0, 3, 8, { 0 }}, + { 67, 0, 3, 8, { 0 }}, + { 68, 0, 3, 8, { 0 }}, + { 69, 0, 3, 7, { 0 }}, + { 70, 0, 3, 7, { 0 }}, + { 71, 0, 3, 8, { 0 }}, + { 72, 0, 3, 8, { 0 }}, + { 73, 0, 3, 6, { 0 }}, + { 74, 0, 3, 7, { 0 }}, + { 75, 0, 3, 8, { 0 }}, + { 76, 0, 3, 7, { 0 }}, + { 77, 0, 3, 9, { 0 }}, + { 78, 0, 3, 8, { 0 }}, + { 79, 0, 3, 8, { 0 }}, + { 80, 0, 3, 8, { 0 }}, + { 81, 0, 3, 8, { 0 }}, + { 82, 0, 3, 8, { 0 }}, + { 83, 0, 3, 8, { 0 }}, + { 84, 0, 3, 8, { 0 }}, + { 85, 0, 3, 8, { 0 }}, + { 86, 0, 3, 8, { 0 }}, + { 87, 0, 3, 10, { 0 }}, + { 88, 0, 3, 8, { 0 }}, + { 89, 0, 3, 8, { 0 }}, + { 90, 0, 3, 8, { 0 }}, + { 91, 0, 3, 4, { 0 }}, + { 92, 0, 3, 8, { 0 }}, + { 93, 0, 3, 4, { 0 }}, + { 94, 0, 3, 4, { 0 }}, + { 95, 0, 11, 7, { 0 }}, + { 96, 0, 3, 3, { 0 }}, + { 97, 0, 6, 7, { 0 }}, + { 98, 0, 3, 7, { 0 }}, + { 99, 0, 6, 7, { 0 }}, + { 100, 0, 3, 7, { 0 }}, + { 101, 0, 6, 7, { 0 }}, + { 102, 0, 3, 5, { 0 }}, + { 103, 0, 6, 7, { 0 }}, + { 104, 0, 3, 7, { 0 }}, + { 105, 0, 3, 2, { 0 }}, + { 106, -2, 3, 2, { 0 }}, + { 107, 0, 3, 7, { 0 }}, + { 108, 0, 3, 4, { 0 }}, + { 109, 0, 6, 10, { 0 }}, + { 110, 0, 6, 7, { 0 }}, + { 111, 0, 6, 7, { 0 }}, + { 112, 0, 6, 7, { 0 }}, + { 113, 0, 6, 7, { 0 }}, + { 114, 0, 6, 6, { 0 }}, + { 115, 0, 6, 7, { 0 }}, + { 116, 0, 3, 6, { 0 }}, + { 117, 0, 6, 7, { 0 }}, + { 118, 0, 6, 7, { 0 }}, + { 119, 0, 6, 10, { 0 }}, + { 120, 0, 6, 7, { 0 }}, + { 121, 0, 6, 7, { 0 }}, + { 122, 0, 6, 7, { 0 }}, + { 123, 0, 3, 5, { 0 }}, + { 124, 0, 3, 2, { 0 }}, + { 125, 0, 3, 5, { 0 }}, + { 126, 0, 6, 8, { 0 }}, + { 161, 0, 3, 2, { 0 }}, + { 162, 0, 4, 7, { 0 }}, + { 163, 0, 3, 7, { 0 }}, + { 8364, 0, 3, 9, { 0 }}, + { 165, 0, 3, 8, { 0 }}, + { 352, 0, 1, 8, { 0 }}, + { 167, 0, 4, 5, { 0 }}, + { 353, 0, 3, 7, { 0 }}, + { 169, 0, 3, 9, { 0 }}, + { 170, 0, 3, 7, { 0 }}, + { 171, 0, 6, 6, { 0 }}, + { 172, 0, 7, 6, { 0 }}, + { 174, 0, 3, 9, { 0 }}, + { 175, 0, 0, 0, { 0 }}, + { 176, 0, 3, 4, { 0 }}, + { 177, 0, 6, 8, { 0 }}, + { 178, 0, 3, 4, { 0 }}, + { 179, 0, 3, 4, { 0 }}, + { 381, 0, 1, 8, { 0 }}, + { 181, 0, 6, 7, { 0 }}, + { 182, 0, 4, 6, { 0 }}, + { 183, 0, 7, 2, { 0 }}, + { 382, 0, 3, 7, { 0 }}, + { 185, 0, 3, 4, { 0 }}, + { 186, 0, 3, 5, { 0 }}, + { 187, 0, 6, 6, { 0 }}, + { 338, 0, 3, 14, { 0 }}, + { 339, 0, 6, 13, { 0 }}, + { 376, 0, 2, 8, { 0 }}, + { 191, 0, 3, 7, { 0 }}, + { 192, 0, 1, 8, { 0 }}, + { 193, 0, 1, 8, { 0 }}, + { 194, 0, 1, 8, { 0 }}, + { 195, 0, 1, 8, { 0 }}, + { 196, 0, 2, 8, { 0 }}, + { 197, 0, -1, 8, { 0 }}, + { 198, 0, 3, 14, { 0 }}, + { 199, 0, 3, 8, { 0 }}, + { 200, 0, 1, 7, { 0 }}, + { 201, 0, 1, 7, { 0 }}, + { 202, 0, 1, 7, { 0 }}, + { 203, 0, 2, 7, { 0 }}, + { 204, 0, 1, 6, { 0 }}, + { 205, 0, 1, 6, { 0 }}, + { 206, 0, 1, 6, { 0 }}, + { 207, 0, 2, 6, { 0 }}, + { 208, 0, 3, 9, { 0 }}, + { 209, 0, 1, 8, { 0 }}, + { 210, 0, 1, 8, { 0 }}, + { 211, 0, 1, 8, { 0 }}, + { 212, 0, 1, 8, { 0 }}, + { 213, 0, 1, 8, { 0 }}, + { 214, 0, 2, 8, { 0 }}, + { 215, 1, 6, 6, { 0 }}, + { 216, 0, 3, 8, { 0 }}, + { 217, 0, 1, 8, { 0 }}, + { 218, 0, 1, 8, { 0 }}, + { 219, 0, 1, 8, { 0 }}, + { 220, 0, 2, 8, { 0 }}, + { 221, 0, 1, 8, { 0 }}, + { 222, 0, 3, 7, { 0 }}, + { 223, 0, 3, 7, { 0 }}, + { 224, 0, 3, 7, { 0 }}, + { 225, 0, 3, 7, { 0 }}, + { 226, 0, 3, 7, { 0 }}, + { 227, 0, 3, 7, { 0 }}, + { 228, 0, 3, 7, { 0 }}, + { 229, 0, 2, 7, { 0 }}, + { 230, 0, 6, 13, { 0 }}, + { 231, 0, 6, 7, { 0 }}, + { 232, 0, 3, 7, { 0 }}, + { 233, 0, 3, 7, { 0 }}, + { 234, 0, 3, 7, { 0 }}, + { 235, 0, 3, 7, { 0 }}, + { 236, -1, 3, 2, { 0 }}, + { 237, 0, 3, 2, { 0 }}, + { 238, -1, 3, 2, { 0 }}, + { 239, -1, 3, 2, { 0 }}, + { 240, 0, 3, 8, { 0 }}, + { 241, 0, 3, 7, { 0 }}, + { 242, 0, 3, 7, { 0 }}, + { 243, 0, 3, 7, { 0 }}, + { 244, 0, 3, 7, { 0 }}, + { 245, 0, 3, 7, { 0 }}, + { 246, 0, 3, 7, { 0 }}, + { 247, 0, 4, 6, { 0 }}, + { 248, 0, 6, 7, { 0 }}, + { 249, 0, 3, 7, { 0 }}, + { 250, 0, 3, 7, { 0 }}, + { 251, 0, 3, 7, { 0 }}, + { 252, 0, 3, 7, { 0 }}, + { 253, 0, 3, 7, { 0 }}, + { 254, 0, 3, 7, { 0 }}, + { 255, 0, 3, 7, { 0 }}, +}; + +// Style loading function: Cyber +static void GuiLoadStyleCyber(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < CYBER_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(cyberStyleProps[i].controlId, cyberStyleProps[i].propertyId, cyberStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int cyberFontDataSize = 0; + unsigned char *data = DecompressData(cyberFontData, CYBER_STYLE_FONT_ATLAS_COMP_SIZE, &cyberFontDataSize); + Image imFont = { data, 512, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 14; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, cyberFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, cyberFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 510, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/style_cyber.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/style_cyber.png new file mode 100644 index 0000000..d4fd661 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/style_cyber.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/style_cyber.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/style_cyber.rgs new file mode 100644 index 0000000..142aeee Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/style_cyber.rgs differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/style_cyber.txt.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/style_cyber.txt.rgs new file mode 100644 index 0000000..770213a --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/cyber/style_cyber.txt.rgs @@ -0,0 +1,27 @@ +# +# rgs style text file (v4.0) - raygui style file generated using rGuiStyler +# +# Provided info: +# f fontGenSize charsetFileName fontFileName +# p Property description +# +# WARNING: This style uses a custom font, must be provided with style file +# +f 14 charset.txt Kyrou 7 Wide.ttf +p 00 00 0x2f7486ff DEFAULT_BORDER_COLOR_NORMAL +p 00 01 0x024658ff DEFAULT_BASE_COLOR_NORMAL +p 00 02 0x51bfd3ff DEFAULT_TEXT_COLOR_NORMAL +p 00 03 0x82cde0ff DEFAULT_BORDER_COLOR_FOCUSED +p 00 04 0x3299b4ff DEFAULT_BASE_COLOR_FOCUSED +p 00 05 0xb6e1eaff DEFAULT_TEXT_COLOR_FOCUSED +p 00 06 0xeb7630ff DEFAULT_BORDER_COLOR_PRESSED +p 00 07 0xffbc51ff DEFAULT_BASE_COLOR_PRESSED +p 00 08 0xd86f36ff DEFAULT_TEXT_COLOR_PRESSED +p 00 09 0x134b5aff DEFAULT_BORDER_COLOR_DISABLED +p 00 10 0x02313dff DEFAULT_BASE_COLOR_DISABLED +p 00 11 0x17505fff DEFAULT_TEXT_COLOR_DISABLED +p 00 16 0x0000000e TEXT_SIZE +p 00 17 0x00000000 TEXT_SPACING +p 00 18 0x81c0d0ff LINE_COLOR +p 00 19 0x00222bff BACKGROUND_COLOR +p 00 20 0x00000015 TEXT_LINE_SPACING diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/PixelOperator.ttf b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/PixelOperator.ttf new file mode 100644 index 0000000..34fe947 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/PixelOperator.ttf differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/README.md b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/README.md new file mode 100644 index 0000000..c3595fc --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/README.md @@ -0,0 +1,27 @@ +## style: dark + +Classical dark style with an extra high-def colour touch! Elegant and professional, perfect for the expensive tools! + +![dark style table](style_dark.png) + +## style: provided files + +Several options are provided to add the style to a `raygui` application, choose the one that better fits the project. + +| file name | description | +| :-------- | :---------- | +| `style_dark.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) | +| `style_dark.txt.rgs` | Text style file, no font data, requires external font provided | +| `style_dark.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) | +| `style_dark.h` | Embeddable style as code file, self-contained, includes font data | +| `style_dark.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data | + +## screenshot + +![dark style screen](screenshot.png) + +## about font + +"Pixel Operator" font by de Jayvee Enaguas. + +CC0 1.0 Universal, downloaded from dafont.com: [pixel-operator](https://www.dafont.com/pixel-operator.font) diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/charset.txt b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/charset.txt new file mode 100644 index 0000000..611a673 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/charset.txt @@ -0,0 +1 @@ + !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/font_LICENSE.txt b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/font_LICENSE.txt new file mode 100644 index 0000000..0e259d4 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/font_LICENSE.txt @@ -0,0 +1,121 @@ +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/screenshot.old.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/screenshot.old.png new file mode 100644 index 0000000..712d30c Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/screenshot.old.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/screenshot.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/screenshot.png new file mode 100644 index 0000000..cc9dbee Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/screenshot.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/style_dark.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/style_dark.h new file mode 100644 index 0000000..500e56b --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/style_dark.h @@ -0,0 +1,589 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleDark(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define DARK_STYLE_PROPS_COUNT 23 + +// Custom style name: Dark +static const GuiStyleProp darkStyleProps[DARK_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0x878787ff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0x2c2c2cff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0xc3c3c3ff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0xe1e1e1ff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0x848484ff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0x181818ff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0x000000ff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0xefefefff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0x202020ff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0x6a6a6aff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0x818181ff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0x606060ff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE + { 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING + { 0, 18, (int)0x9d9d9dff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0x3c3c3cff }, // DEFAULT_BACKGROUND_COLOR + { 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING + { 1, 5, (int)0xf7f7f7ff }, // LABEL_TEXT_COLOR_FOCUSED + { 1, 8, (int)0x898989ff }, // LABEL_TEXT_COLOR_PRESSED + { 4, 5, (int)0xb0b0b0ff }, // SLIDER_TEXT_COLOR_FOCUSED + { 5, 5, (int)0x848484ff }, // PROGRESSBAR_TEXT_COLOR_FOCUSED + { 9, 5, (int)0xf5f5f5ff }, // TEXTBOX_TEXT_COLOR_FOCUSED + { 10, 5, (int)0xf6f6f6ff }, // VALUEBOX_TEXT_COLOR_FOCUSED +}; + +// WARNING: This style uses a custom font: "PixelOperator.ttf" (size: 16, spacing: 0) + +#define DARK_STYLE_FONT_ATLAS_COMP_SIZE 2138 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char darkFontData[DARK_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0xdd, 0xdb, 0x92, 0xa5, 0xba, 0x0d, 0x00, 0x50, 0xff, 0xff, 0x4f, 0x2b, 0x0f, 0xa9, 0x54, 0x32, 0x95, 0xd3, 0x80, 0x64, + 0xd9, 0x98, 0x9e, 0x35, 0xeb, 0xad, 0x77, 0x4f, 0xc3, 0x36, 0x96, 0x6f, 0x80, 0x1c, 0x03, 0x00, 0x00, 0x00, 0xf8, 0xeb, + 0xc5, 0x3f, 0xfe, 0x24, 0x7e, 0xfc, 0xcd, 0x78, 0xfc, 0x77, 0xae, 0x7f, 0xfe, 0x9f, 0x4f, 0xe3, 0xe2, 0x58, 0xcf, 0xce, + 0x35, 0x7b, 0xdc, 0x48, 0x94, 0xc4, 0x3f, 0x9f, 0x5f, 0x3c, 0xfe, 0xbb, 0x3f, 0x7d, 0xbf, 0xfc, 0xef, 0x5f, 0xfd, 0xa5, + 0xeb, 0xb3, 0x8f, 0x54, 0xb9, 0xe7, 0xff, 0x4f, 0xee, 0x2a, 0xc6, 0x92, 0xb2, 0xbf, 0x3f, 0xbb, 0xfc, 0xb9, 0x77, 0xfe, + 0x9f, 0xb8, 0xf8, 0x3e, 0x95, 0xab, 0xf4, 0x24, 0xb6, 0x4e, 0x88, 0xff, 0x78, 0x14, 0x89, 0xd1, 0x5a, 0x73, 0xfe, 0x7b, + 0xd4, 0x68, 0x6c, 0xa9, 0xaa, 0x25, 0x79, 0x15, 0xe9, 0xf9, 0xf2, 0xb8, 0xaa, 0xfd, 0xf9, 0x16, 0x30, 0x5a, 0xbe, 0xcb, + 0x7c, 0x6d, 0x8c, 0xe9, 0xdf, 0x7e, 0x56, 0x93, 0x7a, 0xbe, 0xd5, 0xcc, 0x27, 0xa3, 0xe5, 0x2a, 0xbd, 0x11, 0xff, 0x51, + 0x6e, 0xa9, 0x22, 0x19, 0xd1, 0x1d, 0x25, 0x58, 0x69, 0x87, 0xc7, 0xc6, 0xf8, 0x8f, 0xd6, 0xb1, 0x4b, 0xb4, 0xd5, 0xb9, + 0x37, 0xe2, 0xff, 0xba, 0xd7, 0x1e, 0x2d, 0xf5, 0x26, 0x6e, 0xca, 0xa8, 0x37, 0x96, 0xd7, 0x8e, 0x53, 0x57, 0xc7, 0xff, + 0xf5, 0x6f, 0x66, 0xfb, 0xdb, 0x48, 0xf6, 0xdd, 0x1d, 0xe5, 0x54, 0xeb, 0xff, 0xfb, 0xcb, 0x31, 0x7e, 0xec, 0x9b, 0xab, + 0xe3, 0x90, 0x4c, 0x09, 0x47, 0x72, 0x76, 0x35, 0xdb, 0xc3, 0xbe, 0xd9, 0xff, 0x3f, 0x1b, 0x0b, 0x8a, 0xff, 0xb5, 0xf1, + 0x5f, 0xf9, 0x26, 0xf1, 0xf0, 0x0c, 0x2a, 0x7d, 0xe2, 0x38, 0x20, 0xfe, 0xb3, 0xed, 0xd0, 0x75, 0x59, 0x75, 0x8d, 0xe5, + 0xb3, 0xeb, 0x12, 0xcf, 0x66, 0xd8, 0xfb, 0x6a, 0x61, 0x7e, 0x6c, 0x94, 0x8f, 0xff, 0x7c, 0xeb, 0x79, 0xf7, 0xd7, 0xb2, + 0xa5, 0xfa, 0xf3, 0xcc, 0x6e, 0xbe, 0xc4, 0xf7, 0xc5, 0x7f, 0x14, 0xfa, 0x94, 0xf7, 0xe3, 0xb9, 0x27, 0xfe, 0xa3, 0xb0, + 0x72, 0x31, 0xda, 0x56, 0xf9, 0x6a, 0xeb, 0x12, 0x7d, 0x6b, 0x06, 0xef, 0x5f, 0x81, 0xfb, 0xf8, 0xbf, 0x9b, 0x0f, 0xbe, + 0xdf, 0xff, 0xc7, 0x11, 0xfd, 0x7f, 0x94, 0xd7, 0x86, 0x47, 0xa1, 0xf5, 0xfd, 0x5a, 0xfc, 0x47, 0x21, 0x66, 0xa2, 0x65, + 0x5e, 0x3e, 0x96, 0xac, 0xe5, 0xf5, 0xae, 0x19, 0xee, 0xb9, 0x5a, 0x77, 0xbd, 0x68, 0xd7, 0xac, 0xe6, 0x77, 0xc5, 0xff, + 0x68, 0xe8, 0xff, 0x9f, 0x8d, 0x01, 0x66, 0xbf, 0x47, 0x7c, 0xac, 0xf7, 0xef, 0x8c, 0xff, 0x5d, 0x2b, 0xf6, 0xeb, 0x6b, + 0x63, 0x1c, 0x71, 0x65, 0xac, 0xff, 0x77, 0x8e, 0xff, 0xeb, 0x6b, 0x00, 0xb9, 0x79, 0x4c, 0x1c, 0x1a, 0xfd, 0x95, 0x39, + 0x73, 0xd7, 0x1d, 0xfb, 0xde, 0xa7, 0x09, 0xa2, 0xf0, 0xac, 0x46, 0xcf, 0x2a, 0xce, 0xea, 0x6b, 0x90, 0xef, 0xff, 0x77, + 0xdd, 0xff, 0xbf, 0x1f, 0x73, 0x9f, 0xd1, 0xff, 0x8f, 0xdb, 0xde, 0xfd, 0x94, 0xf3, 0x01, 0xf6, 0xb6, 0x00, 0x21, 0xfa, + 0xc1, 0x73, 0xc4, 0x80, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x9f, 0xcf, + 0xef, 0xcf, 0x63, 0x90, 0xcf, 0x84, 0xbd, 0x3e, 0x03, 0xfb, 0x4c, 0x4e, 0xe0, 0x6a, 0x09, 0x75, 0xfd, 0xc5, 0xeb, 0xdc, + 0xf1, 0x99, 0x4c, 0x0b, 0xcf, 0x6b, 0x46, 0xa4, 0x77, 0x3f, 0xe8, 0xcc, 0x28, 0x50, 0xc9, 0x69, 0x30, 0x92, 0x75, 0xa2, + 0x37, 0x97, 0x52, 0xee, 0xec, 0xf7, 0xd4, 0xf8, 0x2f, 0xc4, 0xff, 0xfb, 0x9f, 0x8c, 0x42, 0xfe, 0x9e, 0x9d, 0xf1, 0x9f, + 0xad, 0x7b, 0xb5, 0xfc, 0xb8, 0x73, 0x7d, 0xc9, 0xee, 0x8c, 0x62, 0xd1, 0x78, 0x0d, 0xf7, 0xf5, 0xab, 0x7f, 0xe6, 0xd0, + 0xd9, 0x51, 0xaf, 0x67, 0xe2, 0x3f, 0x9b, 0xfb, 0x34, 0x2e, 0x5a, 0xe1, 0x73, 0xe2, 0x7f, 0x6c, 0x89, 0xff, 0xf8, 0x48, + 0xfc, 0x77, 0x67, 0x92, 0xe9, 0xca, 0x42, 0x5e, 0xc9, 0x7c, 0x93, 0xbf, 0x86, 0xf5, 0x0c, 0xbf, 0xd5, 0x1a, 0xf7, 0x9d, + 0xf8, 0xaf, 0xd4, 0xad, 0xeb, 0x3c, 0xab, 0xe2, 0xff, 0xbe, 0x6c, 0x2b, 0xbd, 0xc9, 0xfc, 0xcf, 0x7b, 0x22, 0x7f, 0x4f, + 0x1e, 0xdd, 0xbb, 0x7d, 0xb4, 0xd6, 0xd6, 0x95, 0xd9, 0xbe, 0xf2, 0x2b, 0xf1, 0x1f, 0xc5, 0xbf, 0x12, 0x37, 0x2d, 0x4a, + 0x6f, 0x06, 0xf6, 0x9e, 0xac, 0x6d, 0x7b, 0xe3, 0xbf, 0x7b, 0xdf, 0x9f, 0x33, 0xe2, 0xff, 0xfd, 0x3c, 0xba, 0xab, 0xe6, + 0x70, 0xbd, 0x7d, 0xe5, 0xef, 0xee, 0xff, 0xef, 0x5b, 0xc9, 0x1d, 0xf5, 0x63, 0xa6, 0xa7, 0x7f, 0xb3, 0xff, 0x7f, 0xef, + 0xe7, 0xef, 0xc6, 0x7f, 0x57, 0x6d, 0x8f, 0x8d, 0x23, 0x93, 0x6a, 0x5f, 0xb9, 0x73, 0x95, 0x6c, 0xf7, 0xfc, 0x7f, 0xd5, + 0x37, 0x1b, 0xe9, 0xd1, 0x44, 0x1c, 0x1b, 0xff, 0x33, 0xab, 0x90, 0xeb, 0xc6, 0x0b, 0xef, 0x8c, 0xff, 0x6b, 0xfb, 0xdb, + 0x56, 0x76, 0x05, 0x3c, 0xad, 0xff, 0xdf, 0x75, 0x97, 0x6c, 0x6c, 0x8e, 0xc9, 0xbd, 0xc7, 0xea, 0xdc, 0xa5, 0x2e, 0x9f, + 0xbf, 0x3f, 0x9a, 0x47, 0x78, 0x5f, 0x8f, 0xff, 0xfa, 0x2a, 0xff, 0x68, 0x5a, 0x95, 0x7c, 0x6f, 0xfc, 0xbf, 0x7b, 0xa7, + 0x93, 0xca, 0x51, 0x7a, 0xda, 0xdf, 0x67, 0x77, 0x85, 0x7b, 0x7b, 0x81, 0x9f, 0xef, 0x36, 0x44, 0x53, 0xcf, 0xd1, 0x95, + 0xbf, 0xff, 0xcf, 0x73, 0xcb, 0xef, 0x78, 0x96, 0xbf, 0x13, 0x1f, 0xc9, 0xfd, 0xf4, 0xdf, 0x88, 0xff, 0xca, 0x91, 0x2b, + 0xff, 0x2b, 0x7b, 0x0d, 0x3b, 0xe3, 0xff, 0xbd, 0x16, 0x40, 0xde, 0x4d, 0x38, 0x71, 0x14, 0x03, 0xfc, 0x9e, 0x16, 0xc0, + 0x0e, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xee, 0x37, 0xb1, 0x7f, 0xce, + 0xcd, 0x55, 0xc9, 0x1a, 0x9f, 0x7f, 0x4f, 0x7a, 0x67, 0xc6, 0xfc, 0x71, 0x93, 0x85, 0xec, 0xfa, 0xb7, 0xfe, 0xfc, 0xa4, + 0x23, 0x1f, 0x6f, 0x34, 0xbe, 0xb5, 0x9e, 0xc9, 0xe5, 0x1d, 0x85, 0x6c, 0x03, 0x57, 0x6f, 0xc6, 0xe6, 0xae, 0x41, 0xee, + 0x18, 0xd1, 0x9e, 0xcf, 0x2c, 0xd2, 0xd9, 0x63, 0xfe, 0xf7, 0x9c, 0x9f, 0x67, 0xfa, 0x8d, 0xf2, 0x9b, 0xc6, 0x77, 0xb9, + 0xcc, 0xf2, 0xf9, 0x11, 0x2a, 0x39, 0xf3, 0xf2, 0x79, 0x36, 0x4f, 0xcf, 0x98, 0x3f, 0x9f, 0x79, 0x27, 0x6e, 0xea, 0xe4, + 0xf3, 0x5a, 0xfa, 0x24, 0x73, 0x44, 0x4f, 0x06, 0xa1, 0xda, 0x37, 0x8e, 0xe9, 0xda, 0x5a, 0xb9, 0xde, 0x99, 0x23, 0xc4, + 0xf4, 0xfb, 0xfc, 0x95, 0xfa, 0x1e, 0x93, 0xd7, 0xbd, 0xfe, 0x8d, 0x67, 0xb2, 0x10, 0x44, 0xa9, 0xa7, 0xeb, 0x2c, 0xc1, + 0xeb, 0x4f, 0xf2, 0x19, 0x33, 0xe3, 0x61, 0x7c, 0x75, 0xff, 0x74, 0x24, 0xdb, 0x9b, 0x4a, 0xbe, 0xba, 0x99, 0x5d, 0x33, + 0xe6, 0xc6, 0x88, 0xe3, 0x22, 0xbb, 0x52, 0x3e, 0xfa, 0x7f, 0xee, 0x6f, 0x62, 0x32, 0xfe, 0xa3, 0x98, 0x59, 0xa8, 0x1e, + 0x23, 0xd9, 0xf8, 0x9f, 0xbf, 0x0a, 0xbb, 0xe2, 0xbf, 0x92, 0xf5, 0xe0, 0xfd, 0x8c, 0xd9, 0xb5, 0x9e, 0x70, 0x6f, 0xfc, + 0xc7, 0x83, 0xf6, 0x6b, 0xa4, 0xe7, 0x2f, 0xa3, 0x90, 0xe1, 0xfc, 0xf9, 0xec, 0x22, 0x5a, 0xfb, 0xff, 0x71, 0x59, 0x26, + 0xf1, 0xc2, 0xf8, 0xbf, 0xb6, 0xdf, 0x5b, 0x2e, 0xfe, 0x67, 0x5a, 0xa7, 0xfd, 0xfd, 0x7f, 0xad, 0x5f, 0x3b, 0xb9, 0xff, + 0x7f, 0x27, 0x63, 0x76, 0x14, 0xe6, 0xd9, 0x95, 0xe3, 0xc6, 0xe4, 0xc8, 0xe0, 0xd9, 0x5c, 0x30, 0x1a, 0xe6, 0xab, 0x1d, + 0xf1, 0xdf, 0x3f, 0xc2, 0xae, 0xcc, 0xad, 0x6a, 0xfd, 0x7f, 0xb4, 0xce, 0xff, 0x23, 0xdd, 0xce, 0xcf, 0xc5, 0x7f, 0xe7, + 0x6e, 0x4b, 0x2b, 0x32, 0xe6, 0xe6, 0x77, 0x76, 0x7c, 0xab, 0xff, 0x1f, 0xa5, 0xfe, 0xbf, 0xd6, 0x7b, 0xcd, 0xd4, 0xca, + 0xd8, 0x90, 0xeb, 0x2e, 0x37, 0xfe, 0x5f, 0x3d, 0xca, 0xce, 0xcf, 0x28, 0x63, 0x53, 0xfb, 0xd4, 0x3d, 0xf7, 0xab, 0x45, + 0x4b, 0xa4, 0xc7, 0xd7, 0x3b, 0x33, 0xe6, 0x56, 0xd6, 0x9e, 0xcf, 0x8f, 0xff, 0xce, 0x3d, 0x4c, 0x2a, 0x77, 0x17, 0xa2, + 0xa1, 0x6f, 0x5e, 0xdd, 0xff, 0xcf, 0xce, 0xff, 0x2b, 0xb9, 0xf4, 0xf7, 0xac, 0xff, 0x8d, 0xa5, 0x6b, 0x3f, 0xd1, 0x7a, + 0x3f, 0x71, 0x1c, 0xd0, 0x7e, 0x77, 0x66, 0x89, 0x7f, 0x63, 0xfe, 0xdf, 0x95, 0x81, 0x7d, 0x94, 0xef, 0x09, 0xd5, 0xd7, + 0xff, 0x67, 0x6b, 0x60, 0x1c, 0xd3, 0xf7, 0x8f, 0xc7, 0x7b, 0xe8, 0xc4, 0x4b, 0xd1, 0x7f, 0x5a, 0xfc, 0x9f, 0xf2, 0x44, + 0x43, 0x47, 0xbb, 0x15, 0x2d, 0xad, 0x5b, 0x65, 0xdf, 0x96, 0xce, 0x71, 0xd4, 0xfc, 0xfc, 0x7f, 0xcd, 0xba, 0xfa, 0x1b, + 0xc7, 0x98, 0xb9, 0x23, 0x3b, 0x1f, 0xff, 0xb1, 0xbc, 0xe4, 0xe4, 0x23, 0xfe, 0x4e, 0x2b, 0x75, 0xde, 0xf1, 0xfe, 0xe6, + 0xda, 0x13, 0x1b, 0x9f, 0xb5, 0x13, 0xa1, 0xc4, 0xd1, 0xf3, 0x21, 0xd7, 0x03, 0xfe, 0xe6, 0xf9, 0xd0, 0xdf, 0xfa, 0x1c, + 0xbc, 0x92, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4e, 0x7d, 0x3b, 0xa4, 0x92, 0x59, + 0x72, 0x34, 0xbf, 0x8b, 0x9e, 0xcf, 0xad, 0x5f, 0x3d, 0xbb, 0xbb, 0xf7, 0xa5, 0x6b, 0xf9, 0x79, 0x6b, 0xe5, 0x34, 0x97, + 0x8f, 0x28, 0x97, 0x53, 0xed, 0x7e, 0xff, 0x83, 0x38, 0xf2, 0x6a, 0xde, 0x65, 0x75, 0x8d, 0x42, 0x3e, 0xd5, 0xce, 0xeb, + 0x35, 0x4a, 0x65, 0xb7, 0xab, 0x96, 0x3d, 0x7f, 0x3b, 0x34, 0x36, 0xbc, 0x4f, 0x59, 0x8b, 0x85, 0x5a, 0x6e, 0xc3, 0xb9, + 0xdc, 0x61, 0xb1, 0xf8, 0x9b, 0xe5, 0xca, 0x6f, 0x7e, 0x3f, 0x89, 0xfb, 0x6c, 0xab, 0xf1, 0xb9, 0xab, 0x59, 0xcd, 0xf8, + 0xde, 0x7d, 0xbd, 0xea, 0xb5, 0xe5, 0x84, 0x5a, 0xb6, 0x7e, 0x67, 0x89, 0x37, 0xde, 0x6e, 0xad, 0x66, 0xc4, 0x8d, 0xcf, + 0xbf, 0x73, 0x1a, 0x1f, 0xcd, 0x05, 0x50, 0xcb, 0x13, 0xb9, 0xeb, 0x5b, 0x55, 0x8e, 0x14, 0xa5, 0x3d, 0x9b, 0xc6, 0xf6, + 0xec, 0x10, 0xf9, 0xec, 0xe7, 0xa3, 0x94, 0xef, 0xb3, 0xfb, 0x93, 0xca, 0x15, 0xa9, 0xc7, 0xff, 0x55, 0x39, 0x55, 0x3e, + 0x99, 0xed, 0xff, 0xc7, 0xf2, 0x7d, 0x18, 0x4e, 0xb9, 0x9a, 0x77, 0xfd, 0x7f, 0xb4, 0xed, 0x98, 0xb4, 0xf7, 0x93, 0x1d, + 0xe5, 0xda, 0x11, 0x0b, 0xbb, 0xf6, 0xfb, 0x8b, 0x74, 0xad, 0x18, 0xe9, 0x1c, 0x7b, 0xf5, 0xd9, 0xd7, 0xae, 0x4f, 0x56, + 0xc4, 0x7f, 0x5c, 0xcc, 0x93, 0xbb, 0x77, 0x1d, 0xeb, 0xbe, 0x9a, 0x4f, 0x5a, 0x86, 0x2f, 0xc6, 0xff, 0x8e, 0xf8, 0x99, + 0x9d, 0xff, 0x47, 0x79, 0x37, 0x9d, 0x33, 0x6b, 0x4c, 0x3c, 0xcc, 0xe8, 0xfc, 0xdb, 0xe2, 0x7f, 0x6f, 0x19, 0x77, 0xb7, + 0xe6, 0xd7, 0x23, 0xec, 0xf1, 0xd1, 0xf8, 0x9f, 0xdd, 0xef, 0x6d, 0x7e, 0xee, 0x7a, 0xbf, 0xfe, 0xdf, 0xb9, 0xb2, 0x71, + 0x46, 0xfc, 0x9f, 0x12, 0xe5, 0xb9, 0x32, 0x5f, 0x1b, 0xff, 0xef, 0xc7, 0x50, 0x57, 0x1f, 0xf6, 0xde, 0xb9, 0x47, 0xdb, + 0xfc, 0xff, 0x7e, 0x97, 0xe4, 0xdc, 0xdd, 0x9d, 0xbd, 0xab, 0x49, 0x3b, 0x4b, 0xbd, 0x73, 0xcf, 0xe1, 0xa7, 0x63, 0x87, + 0xee, 0xf9, 0xee, 0x19, 0xfd, 0x7f, 0x88, 0xff, 0x05, 0x6b, 0xe1, 0x27, 0xf4, 0x92, 0xab, 0xee, 0xe5, 0xe5, 0xb3, 0xd8, + 0xf7, 0x7e, 0x32, 0x5b, 0x52, 0xf9, 0xfb, 0xff, 0x5f, 0x1f, 0xff, 0x3f, 0xd9, 0xe1, 0xe7, 0x5b, 0xf1, 0x1f, 0xc5, 0x15, + 0xc5, 0x33, 0xe2, 0x3f, 0x36, 0x8e, 0x6a, 0x57, 0xdc, 0xcb, 0x3f, 0x79, 0xfc, 0xdf, 0xbf, 0x13, 0xd4, 0xd7, 0xe3, 0xff, + 0x0b, 0x63, 0xe8, 0x35, 0x4f, 0xa1, 0xbc, 0x17, 0xff, 0x73, 0x77, 0x86, 0x4f, 0x1e, 0xff, 0x9f, 0x1e, 0xff, 0xb3, 0x57, + 0x25, 0x36, 0xcd, 0xff, 0x9f, 0x8e, 0x34, 0x7e, 0x7f, 0xfc, 0x8f, 0xad, 0x7b, 0xf7, 0xd7, 0xe7, 0x9b, 0xe3, 0xd0, 0x67, + 0x61, 0xce, 0x79, 0x8a, 0xe3, 0xfd, 0x99, 0xcd, 0xfc, 0xae, 0xa8, 0xeb, 0xef, 0xff, 0x8f, 0x65, 0xfd, 0x7f, 0xef, 0x93, + 0x2d, 0xbb, 0xee, 0xff, 0xef, 0x7d, 0xa2, 0xa8, 0xfb, 0x0c, 0xc5, 0xff, 0x37, 0xda, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xe2, 0x73, 0xf2, 0x2b, 0x72, 0xeb, 0xf7, 0xe7, 0xc3, 0x38, 0x3d, 0xb7, 0xfe, + 0xdd, 0xfb, 0x33, 0xe3, 0xd8, 0xdc, 0xfa, 0xe3, 0x51, 0x8e, 0xa2, 0xef, 0xe5, 0xd6, 0xf7, 0xee, 0xc7, 0xd3, 0xb7, 0x64, + 0xd6, 0xe5, 0xd6, 0xef, 0x7b, 0x87, 0xfa, 0xf4, 0xdc, 0xfa, 0xe3, 0x26, 0x13, 0xd1, 0xc9, 0xb9, 0xf5, 0xeb, 0x6f, 0x51, + 0x9d, 0x9a, 0x5b, 0x9f, 0xb5, 0xef, 0x4e, 0x3e, 0x6d, 0xfb, 0xe3, 0xc5, 0x6b, 0xf6, 0x46, 0x36, 0x84, 0x93, 0x6b, 0x64, + 0x3e, 0x5b, 0xd3, 0x8a, 0x16, 0xa5, 0xf3, 0x7d, 0xcd, 0xb3, 0x73, 0xeb, 0x7f, 0x3d, 0xc6, 0xeb, 0xd9, 0x58, 0xa3, 0x9c, + 0xf3, 0xbe, 0xef, 0x5d, 0xed, 0x48, 0x8d, 0x1b, 0xd7, 0xe6, 0xd6, 0xba, 0x6e, 0x47, 0xcf, 0xdd, 0x29, 0xe1, 0xdb, 0xb9, + 0xb5, 0xc5, 0x7f, 0x4f, 0xab, 0x1b, 0x4d, 0x51, 0xf7, 0xf4, 0x93, 0x7d, 0x59, 0x83, 0xfa, 0xe2, 0x3f, 0xda, 0x3f, 0xdb, + 0x9b, 0x5b, 0xab, 0xba, 0x9e, 0x20, 0xfe, 0x7f, 0x57, 0x3b, 0x90, 0x99, 0xd1, 0x3e, 0x29, 0xf7, 0x37, 0x6b, 0xc0, 0xce, + 0xdc, 0x5a, 0x5f, 0x8f, 0xff, 0x4a, 0xff, 0x20, 0xfe, 0x7f, 0xcf, 0xf8, 0xbf, 0xaf, 0x2f, 0xaf, 0xaf, 0xff, 0x7f, 0x79, + 0x6f, 0xad, 0xdf, 0x19, 0xff, 0x67, 0xe4, 0xd6, 0x15, 0xff, 0xef, 0x8c, 0xff, 0x6b, 0xfb, 0x13, 0xac, 0x58, 0xcd, 0xed, + 0x9d, 0x4d, 0x88, 0xff, 0xd5, 0x75, 0xe7, 0xa4, 0x9d, 0x21, 0xc4, 0x78, 0x7d, 0xfe, 0x5f, 0xdb, 0x13, 0xb4, 0xda, 0x02, + 0xec, 0xcb, 0xd5, 0xfa, 0x46, 0x6e, 0x7d, 0xb9, 0x75, 0x67, 0xae, 0xd7, 0xf5, 0xe8, 0xef, 0x9b, 0xf7, 0x63, 0x4e, 0x1f, + 0xff, 0xf7, 0xde, 0xab, 0xf9, 0xff, 0x35, 0xa5, 0xd5, 0x2b, 0xde, 0xab, 0xc6, 0xff, 0x2b, 0xda, 0xd8, 0x37, 0x4b, 0x63, + 0xcd, 0xbd, 0xa3, 0xfe, 0x33, 0x8c, 0xa6, 0xd1, 0x1f, 0xef, 0xb4, 0x1a, 0xb0, 0x66, 0x9c, 0xf1, 0x7e, 0x4b, 0x08, 0x7c, + 0xed, 0x49, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x93, 0xfc, 0xfb, 0x9f, 0x72, 0x00, 0xf1, 0x0f, 0xfc, 0x75, 0xf1, 0xff, 0x2f }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle darkFontRecs[189] = { + { 4, 4, 4 , 16 }, + { 16, 4, 1 , 9 }, + { 25, 4, 3 , 3 }, + { 36, 4, 6 , 9 }, + { 50, 4, 5 , 13 }, + { 63, 4, 7 , 9 }, + { 78, 4, 5 , 9 }, + { 91, 4, 1 , 3 }, + { 100, 4, 3 , 9 }, + { 111, 4, 3 , 9 }, + { 122, 4, 5 , 5 }, + { 135, 4, 5 , 5 }, + { 148, 4, 2 , 3 }, + { 158, 4, 4 , 1 }, + { 170, 4, 1 , 1 }, + { 179, 4, 3 , 9 }, + { 190, 4, 5 , 9 }, + { 203, 4, 3 , 9 }, + { 214, 4, 5 , 9 }, + { 227, 4, 5 , 9 }, + { 240, 4, 5 , 9 }, + { 253, 4, 5 , 9 }, + { 266, 4, 5 , 9 }, + { 279, 4, 5 , 9 }, + { 292, 4, 5 , 9 }, + { 305, 4, 5 , 9 }, + { 318, 4, 1 , 7 }, + { 327, 4, 2 , 9 }, + { 337, 4, 3 , 5 }, + { 348, 4, 4 , 3 }, + { 360, 4, 3 , 5 }, + { 371, 4, 5 , 9 }, + { 384, 4, 7 , 9 }, + { 399, 4, 5 , 9 }, + { 412, 4, 5 , 9 }, + { 425, 4, 5 , 9 }, + { 438, 4, 5 , 9 }, + { 451, 4, 5 , 9 }, + { 464, 4, 5 , 9 }, + { 477, 4, 5 , 9 }, + { 490, 4, 5 , 9 }, + { 4, 28, 1 , 9 }, + { 13, 28, 5 , 9 }, + { 26, 28, 5 , 9 }, + { 39, 28, 5 , 9 }, + { 52, 28, 7 , 9 }, + { 67, 28, 5 , 9 }, + { 80, 28, 5 , 9 }, + { 93, 28, 5 , 9 }, + { 106, 28, 5 , 9 }, + { 119, 28, 5 , 9 }, + { 132, 28, 5 , 9 }, + { 145, 28, 5 , 9 }, + { 158, 28, 5 , 9 }, + { 171, 28, 5 , 9 }, + { 184, 28, 7 , 9 }, + { 199, 28, 5 , 9 }, + { 212, 28, 5 , 9 }, + { 225, 28, 5 , 9 }, + { 238, 28, 3 , 9 }, + { 249, 28, 3 , 9 }, + { 260, 28, 3 , 9 }, + { 271, 28, 5 , 3 }, + { 284, 28, 5 , 1 }, + { 297, 28, 2 , 2 }, + { 307, 28, 5 , 7 }, + { 320, 28, 5 , 9 }, + { 333, 28, 5 , 7 }, + { 346, 28, 5 , 9 }, + { 359, 28, 5 , 7 }, + { 372, 28, 4 , 9 }, + { 384, 28, 5 , 9 }, + { 397, 28, 5 , 9 }, + { 410, 28, 1 , 9 }, + { 419, 28, 5 , 11 }, + { 432, 28, 5 , 9 }, + { 445, 28, 2 , 9 }, + { 455, 28, 7 , 7 }, + { 470, 28, 5 , 7 }, + { 483, 28, 5 , 7 }, + { 496, 28, 5 , 9 }, + { 4, 52, 5 , 9 }, + { 17, 52, 5 , 7 }, + { 30, 52, 5 , 7 }, + { 43, 52, 4 , 8 }, + { 55, 52, 5 , 7 }, + { 68, 52, 5 , 7 }, + { 81, 52, 7 , 7 }, + { 96, 52, 5 , 7 }, + { 109, 52, 5 , 9 }, + { 122, 52, 5 , 7 }, + { 135, 52, 4 , 9 }, + { 147, 52, 1 , 9 }, + { 156, 52, 4 , 9 }, + { 168, 52, 6 , 2 }, + { 182, 52, 1 , 9 }, + { 191, 52, 5 , 11 }, + { 204, 52, 6 , 9 }, + { 218, 52, 6 , 9 }, + { 232, 52, 5 , 9 }, + { 245, 52, 5 , 12 }, + { 258, 52, 0 , 0 }, + { 266, 52, 5 , 10 }, + { 279, 52, 7 , 9 }, + { 294, 52, 0 , 0 }, + { 302, 52, 6 , 5 }, + { 316, 52, 5 , 3 }, + { 329, 52, 7 , 9 }, + { 344, 52, 0 , 0 }, + { 352, 52, 4 , 4 }, + { 364, 52, 5 , 7 }, + { 377, 52, 0 , 0 }, + { 385, 52, 0 , 0 }, + { 393, 52, 5 , 12 }, + { 406, 52, 5 , 9 }, + { 419, 52, 7 , 9 }, + { 434, 52, 1 , 1 }, + { 443, 52, 5 , 10 }, + { 456, 52, 0 , 0 }, + { 464, 52, 0 , 0 }, + { 472, 52, 6 , 5 }, + { 486, 52, 9 , 9 }, + { 4, 76, 9 , 7 }, + { 21, 76, 5 , 11 }, + { 34, 76, 5 , 9 }, + { 47, 76, 5 , 12 }, + { 60, 76, 5 , 12 }, + { 73, 76, 5 , 12 }, + { 86, 76, 6 , 12 }, + { 100, 76, 5 , 11 }, + { 113, 76, 5 , 13 }, + { 126, 76, 9 , 9 }, + { 143, 76, 5 , 12 }, + { 156, 76, 5 , 12 }, + { 169, 76, 5 , 12 }, + { 182, 76, 5 , 12 }, + { 195, 76, 5 , 11 }, + { 208, 76, 2 , 12 }, + { 218, 76, 2 , 12 }, + { 228, 76, 3 , 12 }, + { 239, 76, 3 , 11 }, + { 250, 76, 6 , 9 }, + { 264, 76, 6 , 12 }, + { 278, 76, 5 , 12 }, + { 291, 76, 5 , 12 }, + { 304, 76, 5 , 12 }, + { 317, 76, 6 , 12 }, + { 331, 76, 5 , 11 }, + { 344, 76, 5 , 5 }, + { 357, 76, 7 , 9 }, + { 372, 76, 5 , 12 }, + { 385, 76, 5 , 12 }, + { 398, 76, 5 , 12 }, + { 411, 76, 5 , 11 }, + { 424, 76, 5 , 12 }, + { 437, 76, 5 , 9 }, + { 450, 76, 5 , 9 }, + { 463, 76, 5 , 10 }, + { 476, 76, 5 , 10 }, + { 489, 76, 5 , 10 }, + { 4, 100, 6 , 10 }, + { 18, 100, 5 , 9 }, + { 31, 100, 5 , 11 }, + { 44, 100, 9 , 7 }, + { 61, 100, 5 , 10 }, + { 74, 100, 5 , 10 }, + { 87, 100, 5 , 10 }, + { 100, 100, 5 , 10 }, + { 113, 100, 5 , 9 }, + { 126, 100, 2 , 10 }, + { 136, 100, 2 , 10 }, + { 146, 100, 3 , 10 }, + { 157, 100, 3 , 9 }, + { 168, 100, 6 , 9 }, + { 182, 100, 6 , 10 }, + { 196, 100, 5 , 10 }, + { 209, 100, 5 , 10 }, + { 222, 100, 5 , 10 }, + { 235, 100, 6 , 10 }, + { 249, 100, 5 , 9 }, + { 262, 100, 5 , 5 }, + { 275, 100, 7 , 7 }, + { 290, 100, 5 , 10 }, + { 303, 100, 5 , 10 }, + { 316, 100, 5 , 10 }, + { 329, 100, 5 , 9 }, + { 342, 100, 5 , 12 }, + { 355, 100, 5 , 11 }, + { 368, 100, 5 , 11 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo darkFontGlyphs[189] = { + { 32, 0, 0, 4, { 0 }}, + { 33, 2, 4, 5, { 0 }}, + { 34, 2, 4, 7, { 0 }}, + { 35, 1, 4, 8, { 0 }}, + { 36, 1, 2, 7, { 0 }}, + { 37, 1, 4, 9, { 0 }}, + { 38, 1, 4, 7, { 0 }}, + { 39, 2, 4, 5, { 0 }}, + { 40, 3, 4, 7, { 0 }}, + { 41, 1, 4, 7, { 0 }}, + { 42, 1, 4, 7, { 0 }}, + { 43, 1, 6, 7, { 0 }}, + { 44, 1, 12, 5, { 0 }}, + { 45, 1, 8, 6, { 0 }}, + { 46, 2, 12, 5, { 0 }}, + { 47, 1, 4, 5, { 0 }}, + { 48, 1, 4, 7, { 0 }}, + { 49, 2, 4, 7, { 0 }}, + { 50, 1, 4, 7, { 0 }}, + { 51, 1, 4, 7, { 0 }}, + { 52, 1, 4, 7, { 0 }}, + { 53, 1, 4, 7, { 0 }}, + { 54, 1, 4, 7, { 0 }}, + { 55, 1, 4, 7, { 0 }}, + { 56, 1, 4, 7, { 0 }}, + { 57, 1, 4, 7, { 0 }}, + { 58, 2, 6, 5, { 0 }}, + { 59, 1, 6, 5, { 0 }}, + { 60, 1, 6, 5, { 0 }}, + { 61, 1, 7, 6, { 0 }}, + { 62, 1, 6, 5, { 0 }}, + { 63, 1, 4, 7, { 0 }}, + { 64, 1, 4, 9, { 0 }}, + { 65, 1, 4, 7, { 0 }}, + { 66, 1, 4, 7, { 0 }}, + { 67, 1, 4, 7, { 0 }}, + { 68, 1, 4, 7, { 0 }}, + { 69, 1, 4, 7, { 0 }}, + { 70, 1, 4, 7, { 0 }}, + { 71, 1, 4, 7, { 0 }}, + { 72, 1, 4, 7, { 0 }}, + { 73, 2, 4, 5, { 0 }}, + { 74, 1, 4, 7, { 0 }}, + { 75, 1, 4, 7, { 0 }}, + { 76, 1, 4, 7, { 0 }}, + { 77, 1, 4, 9, { 0 }}, + { 78, 1, 4, 7, { 0 }}, + { 79, 1, 4, 7, { 0 }}, + { 80, 1, 4, 7, { 0 }}, + { 81, 1, 4, 7, { 0 }}, + { 82, 1, 4, 7, { 0 }}, + { 83, 1, 4, 7, { 0 }}, + { 84, 1, 4, 7, { 0 }}, + { 85, 1, 4, 7, { 0 }}, + { 86, 1, 4, 7, { 0 }}, + { 87, 1, 4, 9, { 0 }}, + { 88, 1, 4, 7, { 0 }}, + { 89, 1, 4, 7, { 0 }}, + { 90, 1, 4, 7, { 0 }}, + { 91, 3, 4, 7, { 0 }}, + { 92, 1, 4, 5, { 0 }}, + { 93, 1, 4, 7, { 0 }}, + { 94, 1, 4, 7, { 0 }}, + { 95, 0, 14, 5, { 0 }}, + { 96, 1, 4, 5, { 0 }}, + { 97, 1, 6, 7, { 0 }}, + { 98, 1, 4, 7, { 0 }}, + { 99, 1, 6, 7, { 0 }}, + { 100, 1, 4, 7, { 0 }}, + { 101, 1, 6, 7, { 0 }}, + { 102, 1, 4, 6, { 0 }}, + { 103, 1, 6, 7, { 0 }}, + { 104, 1, 4, 7, { 0 }}, + { 105, 2, 4, 5, { 0 }}, + { 106, 1, 4, 7, { 0 }}, + { 107, 1, 4, 7, { 0 }}, + { 108, 2, 4, 5, { 0 }}, + { 109, 1, 6, 9, { 0 }}, + { 110, 1, 6, 7, { 0 }}, + { 111, 1, 6, 7, { 0 }}, + { 112, 1, 6, 7, { 0 }}, + { 113, 1, 6, 7, { 0 }}, + { 114, 1, 6, 7, { 0 }}, + { 115, 1, 6, 7, { 0 }}, + { 116, 1, 5, 6, { 0 }}, + { 117, 1, 6, 7, { 0 }}, + { 118, 1, 6, 7, { 0 }}, + { 119, 1, 6, 9, { 0 }}, + { 120, 1, 6, 7, { 0 }}, + { 121, 1, 6, 7, { 0 }}, + { 122, 1, 6, 7, { 0 }}, + { 123, 2, 4, 7, { 0 }}, + { 124, 2, 4, 5, { 0 }}, + { 125, 1, 4, 7, { 0 }}, + { 126, 1, 4, 8, { 0 }}, + { 161, 2, 6, 5, { 0 }}, + { 162, 1, 4, 7, { 0 }}, + { 163, 1, 4, 8, { 0 }}, + { 8364, 1, 4, 8, { 0 }}, + { 165, 1, 4, 7, { 0 }}, + { 352, 1, 1, 7, { 0 }}, + { 167, 0, 0, 0, { 0 }}, + { 353, 1, 3, 7, { 0 }}, + { 169, 1, 4, 9, { 0 }}, + { 170, 0, 0, 0, { 0 }}, + { 171, 1, 6, 8, { 0 }}, + { 172, 1, 8, 7, { 0 }}, + { 174, 1, 4, 9, { 0 }}, + { 175, 0, 0, 0, { 0 }}, + { 176, 1, 4, 6, { 0 }}, + { 177, 1, 6, 7, { 0 }}, + { 178, 0, 0, 0, { 0 }}, + { 179, 0, 0, 0, { 0 }}, + { 381, 1, 1, 7, { 0 }}, + { 181, 1, 6, 7, { 0 }}, + { 182, 1, 4, 9, { 0 }}, + { 183, 2, 8, 5, { 0 }}, + { 382, 1, 3, 7, { 0 }}, + { 185, 0, 0, 0, { 0 }}, + { 186, 0, 0, 0, { 0 }}, + { 187, 1, 6, 8, { 0 }}, + { 338, 1, 4, 11, { 0 }}, + { 339, 1, 6, 11, { 0 }}, + { 376, 1, 2, 7, { 0 }}, + { 191, 1, 6, 7, { 0 }}, + { 192, 1, 1, 7, { 0 }}, + { 193, 1, 1, 7, { 0 }}, + { 194, 1, 1, 7, { 0 }}, + { 195, 1, 1, 7, { 0 }}, + { 196, 1, 2, 7, { 0 }}, + { 197, 1, 0, 7, { 0 }}, + { 198, 1, 4, 11, { 0 }}, + { 199, 1, 4, 7, { 0 }}, + { 200, 1, 1, 7, { 0 }}, + { 201, 1, 1, 7, { 0 }}, + { 202, 1, 1, 7, { 0 }}, + { 203, 1, 2, 7, { 0 }}, + { 204, 1, 1, 5, { 0 }}, + { 205, 2, 1, 5, { 0 }}, + { 206, 1, 1, 5, { 0 }}, + { 207, 1, 2, 5, { 0 }}, + { 208, 0, 4, 7, { 0 }}, + { 209, 1, 1, 7, { 0 }}, + { 210, 1, 1, 7, { 0 }}, + { 211, 1, 1, 7, { 0 }}, + { 212, 1, 1, 7, { 0 }}, + { 213, 1, 1, 7, { 0 }}, + { 214, 1, 2, 7, { 0 }}, + { 215, 1, 6, 7, { 0 }}, + { 216, 0, 4, 7, { 0 }}, + { 217, 1, 1, 7, { 0 }}, + { 218, 1, 1, 7, { 0 }}, + { 219, 1, 1, 7, { 0 }}, + { 220, 1, 2, 7, { 0 }}, + { 221, 1, 1, 7, { 0 }}, + { 222, 1, 4, 7, { 0 }}, + { 223, 1, 4, 7, { 0 }}, + { 224, 1, 3, 7, { 0 }}, + { 225, 1, 3, 7, { 0 }}, + { 226, 1, 3, 7, { 0 }}, + { 227, 1, 3, 7, { 0 }}, + { 228, 1, 4, 7, { 0 }}, + { 229, 1, 2, 7, { 0 }}, + { 230, 1, 6, 11, { 0 }}, + { 231, 1, 6, 7, { 0 }}, + { 232, 1, 3, 7, { 0 }}, + { 233, 1, 3, 7, { 0 }}, + { 234, 1, 3, 7, { 0 }}, + { 235, 1, 4, 7, { 0 }}, + { 236, 1, 3, 5, { 0 }}, + { 237, 2, 3, 5, { 0 }}, + { 238, 1, 3, 5, { 0 }}, + { 239, 1, 4, 5, { 0 }}, + { 240, 1, 4, 7, { 0 }}, + { 241, 1, 3, 7, { 0 }}, + { 242, 1, 3, 7, { 0 }}, + { 243, 1, 3, 7, { 0 }}, + { 244, 1, 3, 7, { 0 }}, + { 245, 1, 3, 7, { 0 }}, + { 246, 1, 4, 7, { 0 }}, + { 247, 1, 6, 7, { 0 }}, + { 248, 0, 6, 7, { 0 }}, + { 249, 1, 3, 7, { 0 }}, + { 250, 1, 3, 7, { 0 }}, + { 251, 1, 3, 7, { 0 }}, + { 252, 1, 4, 7, { 0 }}, + { 253, 1, 3, 7, { 0 }}, + { 254, 1, 4, 7, { 0 }}, + { 255, 1, 4, 7, { 0 }}, +}; + +// Style loading function: Dark +static void GuiLoadStyleDark(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < DARK_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(darkStyleProps[i].controlId, darkStyleProps[i].propertyId, darkStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int darkFontDataSize = 0; + unsigned char *data = DecompressData(darkFontData, DARK_STYLE_FONT_ATLAS_COMP_SIZE, &darkFontDataSize); + Image imFont = { data, 512, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 16; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, darkFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, darkFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 510, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/style_dark.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/style_dark.png new file mode 100644 index 0000000..09d2439 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/style_dark.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/style_dark.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/style_dark.rgs new file mode 100644 index 0000000..1e965d9 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/style_dark.rgs differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/style_dark.txt.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/style_dark.txt.rgs new file mode 100644 index 0000000..586cb0f --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/dark/style_dark.txt.rgs @@ -0,0 +1,33 @@ +# +# rgs style text file (v4.0) - raygui style file generated using rGuiStyler +# +# Provided info: +# f fontGenSize charsetFileName fontFileName +# p Property description +# +# WARNING: This style uses a custom font, must be provided with style file +# +f 16 charset.txt PixelOperator.ttf +p 00 00 0x878787ff DEFAULT_BORDER_COLOR_NORMAL +p 00 01 0x2c2c2cff DEFAULT_BASE_COLOR_NORMAL +p 00 02 0xc3c3c3ff DEFAULT_TEXT_COLOR_NORMAL +p 00 03 0xe1e1e1ff DEFAULT_BORDER_COLOR_FOCUSED +p 00 04 0x848484ff DEFAULT_BASE_COLOR_FOCUSED +p 00 05 0x181818ff DEFAULT_TEXT_COLOR_FOCUSED +p 00 06 0x000000ff DEFAULT_BORDER_COLOR_PRESSED +p 00 07 0xefefefff DEFAULT_BASE_COLOR_PRESSED +p 00 08 0x202020ff DEFAULT_TEXT_COLOR_PRESSED +p 00 09 0x6a6a6aff DEFAULT_BORDER_COLOR_DISABLED +p 00 10 0x818181ff DEFAULT_BASE_COLOR_DISABLED +p 00 11 0x606060ff DEFAULT_TEXT_COLOR_DISABLED +p 00 16 0x00000010 TEXT_SIZE +p 00 17 0x00000000 TEXT_SPACING +p 00 18 0x9d9d9dff LINE_COLOR +p 00 19 0x3c3c3cff BACKGROUND_COLOR +p 00 20 0x00000018 TEXT_LINE_SPACING +p 01 05 0xf7f7f7ff LABEL_TEXT_COLOR_FOCUSED +p 01 08 0x898989ff LABEL_TEXT_COLOR_PRESSED +p 04 05 0xb0b0b0ff SLIDER_TEXT_COLOR_FOCUSED +p 05 05 0x848484ff PROGRESSBAR_TEXT_COLOR_FOCUSED +p 09 05 0xf5f5f5ff TEXTBOX_TEXT_COLOR_FOCUSED +p 10 05 0xf6f6f6ff VALUEBOX_TEXT_COLOR_FOCUSED diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/default/README.md b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/default/README.md new file mode 100644 index 0000000..5e0cef5 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/default/README.md @@ -0,0 +1,22 @@ +## style: default + +raylib style, simple and easy-to-use. Light colors, wide borders, a sophisticated touch. + +![default style table](style_default.png) + +## style: provided files + +Several options are provided to add the style to a `raygui` application, choose the one that better fits the project. + +| file name | description | +| :-------- | :---------- | +| `style_default.txt.rgs` | Text style file, no font data, uses raylib default font | +| `style_default.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data | + +## screenshot + +![default style screen](screenshot.png) + +## about font + +raylib font by Ramon Santamaria ([@raysan5](https://github.com/raysan5)). diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/default/charset.txt b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/default/charset.txt new file mode 100644 index 0000000..611a673 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/default/charset.txt @@ -0,0 +1 @@ + !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/default/screenshot.old.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/default/screenshot.old.png new file mode 100644 index 0000000..d26d948 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/default/screenshot.old.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/default/screenshot.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/default/screenshot.png new file mode 100644 index 0000000..0c35785 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/default/screenshot.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/default/style_default.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/default/style_default.png new file mode 100644 index 0000000..c62e4c3 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/default/style_default.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/default/style_default.txt.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/default/style_default.txt.rgs new file mode 100644 index 0000000..0ee964f --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/default/style_default.txt.rgs @@ -0,0 +1,10 @@ +# +# rgs style text file (v4.0) - raygui style file generated using rGuiStyler +# +# Provided info: +# f fontGenSize charsetFileName fontFileName +# p Property description +# +# WARNING: This style uses a custom font, must be provided with style file +# +f 10 charset.txt PixelOperator.ttf diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/GenericMobileSystemNuevo.ttf b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/GenericMobileSystemNuevo.ttf new file mode 100644 index 0000000..777a528 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/GenericMobileSystemNuevo.ttf differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/README.md b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/README.md new file mode 100644 index 0000000..897579d --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/README.md @@ -0,0 +1,27 @@ +## style: enefete + +Inspired by money and pain, a desperate jump into the trendings train, a train to nowhere. Don't stare at it for too long! + +![enefete style table](style_enefete.png) + +## style: provided files + +Several options are provided to add the style to a `raygui` application, choose the one that better fits the project. + +| file name | description | +| :-------- | :---------- | +| `style_enefete.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) | +| `style_enefete.txt.rgs` | Text style file, no font data, requires external font provided | +| `style_enefete.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) | +| `style_enefete.h` | Embeddable style as code file, self-contained, includes font data | +| `style_enefete.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data | + +## screenshot + +![enefete style screen](screenshot.png) + +## about font + +"Generic Mobile System" font by de Jayvee Enaguas. + +CC0 1.0 Universal, downloaded from dafont.com: [generic-mobile-system](https://www.dafont.com/generic-mobile-system.font) diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/charset.txt b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/charset.txt new file mode 100644 index 0000000..611a673 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/charset.txt @@ -0,0 +1 @@ + !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/font_LICENSE.txt b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/font_LICENSE.txt new file mode 100644 index 0000000..0e259d4 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/font_LICENSE.txt @@ -0,0 +1,121 @@ +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/screenshot.old.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/screenshot.old.png new file mode 100644 index 0000000..06f8143 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/screenshot.old.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/screenshot.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/screenshot.png new file mode 100644 index 0000000..46feea1 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/screenshot.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/style_enefete.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/style_enefete.h new file mode 100644 index 0000000..3d80d4b --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/style_enefete.h @@ -0,0 +1,598 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleEnefete(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define ENEFETE_STYLE_PROPS_COUNT 17 + +// Custom style name: Enefete +static const GuiStyleProp enefeteStyleProps[ENEFETE_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0x1980d5ff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0x4df3ebff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0x103e60ff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0xe7e2f7ff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0x23d4ddff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0xf1f1f1ff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0x6413a6ff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0xea66d9ff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0x9f00bbff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0x4b909eff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0x73c7d0ff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0x448894ff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE + { 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING + { 0, 18, (int)0x1d3f6cff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0x29c9e5ff }, // DEFAULT_BACKGROUND_COLOR + { 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING +}; + +// WARNING: This style uses a custom font: "GMSN.ttf" (size: 16, spacing: 0) + +#define ENEFETE_STYLE_FONT_ATLAS_COMP_SIZE 2434 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char enefeteFontData[ENEFETE_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0xdd, 0x5b, 0x6e, 0xe4, 0x36, 0x10, 0x05, 0x50, 0xee, 0x7f, 0xa1, 0xd9, 0x06, 0x83, 0x20, 0x18, 0x24, 0xe3, 0xb1, 0x45, + 0xb2, 0xaa, 0xa8, 0x57, 0x9f, 0x1c, 0xe4, 0xc7, 0x1a, 0xb7, 0xd5, 0x94, 0xae, 0x44, 0x3d, 0x58, 0xec, 0x0d, 0x00, 0x00, + 0x00, 0xf8, 0x78, 0xff, 0xfc, 0xf7, 0xfd, 0xcf, 0xbe, 0x5b, 0x72, 0xbc, 0xec, 0xd7, 0xbf, 0x18, 0x2d, 0xe9, 0x3f, 0xae, + 0x49, 0x3f, 0x58, 0x36, 0xf7, 0xb7, 0x62, 0xeb, 0xd5, 0x97, 0xda, 0xa6, 0x1f, 0xb4, 0x5a, 0x4b, 0xff, 0xbc, 0x1d, 0xb6, + 0x7d, 0x0f, 0xb4, 0x5e, 0x3b, 0x5c, 0xe7, 0x9f, 0x7f, 0x73, 0xbc, 0xa4, 0x72, 0x3d, 0x57, 0xda, 0xb4, 0x72, 0xfb, 0xac, + 0xb4, 0x60, 0x5b, 0x5e, 0x7a, 0xdc, 0x52, 0x6d, 0xaa, 0x1d, 0xc7, 0x9f, 0xdc, 0x6f, 0x92, 0xff, 0xe3, 0x6f, 0xf3, 0x2b, + 0x83, 0x47, 0x5b, 0x7f, 0x7e, 0xdf, 0x68, 0xd3, 0xc7, 0x84, 0xff, 0xfe, 0x76, 0x5d, 0x42, 0xb3, 0x9f, 0xd2, 0x87, 0x47, + 0xc2, 0x95, 0x16, 0x3a, 0x6e, 0xbd, 0x16, 0xca, 0xc4, 0xe8, 0x33, 0x23, 0xeb, 0x32, 0xb3, 0x6c, 0x6e, 0xfd, 0x62, 0xfb, + 0xfc, 0xf8, 0xf3, 0x8e, 0xf7, 0xb4, 0xa3, 0x2d, 0x3c, 0xda, 0x73, 0x8f, 0xbf, 0xdf, 0xfa, 0x56, 0xcd, 0xa4, 0x7e, 0x4f, + 0xfe, 0xfb, 0xff, 0x72, 0xd6, 0x83, 0x19, 0xcc, 0x9f, 0x1b, 0xd6, 0xcf, 0x0a, 0xc7, 0xc7, 0xac, 0x7d, 0x2d, 0x7c, 0xd4, + 0x4e, 0x3d, 0xb0, 0x0f, 0xaf, 0x6f, 0xb3, 0xe8, 0xdf, 0xd9, 0x91, 0xff, 0x8a, 0x14, 0xb7, 0x89, 0x33, 0x62, 0xa4, 0x4f, + 0x71, 0xdc, 0xe3, 0xcc, 0x27, 0x7c, 0xb4, 0x2e, 0x91, 0xfe, 0x4c, 0xbe, 0x2d, 0x57, 0xfb, 0x1c, 0xfb, 0xf2, 0x5f, 0x71, + 0xbe, 0x5d, 0x3f, 0x97, 0xec, 0x6b, 0xdf, 0x99, 0xf3, 0xf5, 0xfd, 0xf3, 0xbf, 0xfe, 0xdd, 0x2a, 0xf2, 0x5f, 0xb3, 0x55, + 0xd6, 0xf3, 0xdf, 0xe5, 0x7f, 0xfa, 0xfc, 0xff, 0x73, 0xab, 0xf7, 0xe0, 0xf5, 0x57, 0xfe, 0xaa, 0xbd, 0xaa, 0x9f, 0x7f, + 0x6d, 0xfe, 0x47, 0xd7, 0x83, 0x6d, 0x39, 0xff, 0xb1, 0xab, 0xcf, 0xc8, 0xd5, 0x46, 0x55, 0xff, 0x7f, 0x6f, 0xef, 0xe1, + 0xf8, 0xea, 0x31, 0x92, 0xf0, 0xb5, 0x7b, 0x1e, 0x35, 0x9f, 0x7c, 0x45, 0xfe, 0xdb, 0xc4, 0xda, 0xf4, 0xe1, 0xf5, 0xff, + 0xec, 0x11, 0x7e, 0x2d, 0xff, 0x75, 0xe7, 0x8e, 0x2b, 0xf3, 0xdf, 0x83, 0x77, 0xc4, 0xaa, 0xaf, 0xe3, 0xe3, 0xdf, 0x6d, + 0xed, 0xfe, 0xdc, 0x79, 0xd7, 0xff, 0xa3, 0x7e, 0x60, 0x26, 0xff, 0x9f, 0xd2, 0xff, 0x9f, 0xe9, 0x69, 0x8f, 0x5a, 0x71, + 0xfe, 0x78, 0x76, 0xc5, 0xd9, 0xfc, 0xda, 0xfc, 0xf7, 0xa9, 0x7b, 0xd8, 0xf7, 0xce, 0x7f, 0x5b, 0xbe, 0xca, 0xab, 0xdc, + 0x77, 0xa3, 0x7b, 0xd4, 0x68, 0xcf, 0x9d, 0x39, 0xaa, 0xdd, 0x33, 0xff, 0xb1, 0xfd, 0xb9, 0x0f, 0x7b, 0xf9, 0x3d, 0x91, + 0xff, 0xf6, 0x9a, 0xfc, 0xf7, 0xe0, 0xdd, 0x8e, 0x9f, 0xfb, 0x7b, 0xb1, 0xfb, 0x71, 0x91, 0x9e, 0x7c, 0xa6, 0x8f, 0x52, + 0x95, 0xff, 0x7b, 0x6c, 0x49, 0xe7, 0xff, 0x8a, 0xfb, 0xff, 0xed, 0xb0, 0x87, 0xff, 0x59, 0xf9, 0x3f, 0x7e, 0xfe, 0xd7, + 0x6e, 0xff, 0xac, 0x2e, 0x9a, 0xff, 0x9a, 0xfb, 0xff, 0xe7, 0x1f, 0xad, 0x67, 0xae, 0x5c, 0x73, 0xf9, 0xbf, 0xd3, 0xf3, + 0xbf, 0xbd, 0xf9, 0x1f, 0x3d, 0xf5, 0x7e, 0x53, 0xff, 0xbf, 0xf2, 0x3e, 0x7e, 0xfc, 0x9d, 0x9b, 0x7d, 0xef, 0x14, 0xb5, + 0xd0, 0x9b, 0x5c, 0xf7, 0x4c, 0x7f, 0xf4, 0x39, 0x50, 0xee, 0x2e, 0xdd, 0xd5, 0xef, 0xff, 0xd4, 0xb7, 0xe0, 0x79, 0xeb, + 0xd3, 0x6f, 0xdc, 0x67, 0xe4, 0x5d, 0x6f, 0xc9, 0xda, 0xbb, 0xce, 0x7c, 0x3e, 0x1b, 0xff, 0x5b, 0xb6, 0x0f, 0x3b, 0xcf, + 0x6c, 0x5a, 0xe2, 0x19, 0xf7, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xc9, 0xe3, + 0x17, 0x22, 0x63, 0x0d, 0xa3, 0x75, 0x08, 0x6a, 0xeb, 0x21, 0xf4, 0x2f, 0x75, 0x58, 0x57, 0x3f, 0x7b, 0x76, 0xac, 0x65, + 0x66, 0x9c, 0x66, 0xed, 0xef, 0x56, 0x55, 0x96, 0xa8, 0x1d, 0x79, 0x3e, 0xae, 0x77, 0xb3, 0x5a, 0xad, 0x39, 0x56, 0x05, + 0x6d, 0xbd, 0xa6, 0x79, 0xa6, 0x0e, 0x5f, 0xf5, 0xd8, 0xea, 0x9a, 0xfa, 0x68, 0xf3, 0x63, 0xde, 0x6b, 0x2a, 0x8d, 0xd4, + 0xe5, 0x7f, 0x7d, 0x3b, 0xf4, 0x2f, 0xeb, 0xd1, 0x2f, 0xa8, 0xc4, 0x50, 0xbf, 0x74, 0xee, 0xe7, 0x77, 0xca, 0xff, 0xec, + 0x31, 0x38, 0xbb, 0xf7, 0xc6, 0x47, 0xdc, 0x8d, 0xaa, 0x4f, 0x5c, 0x5f, 0x5b, 0xa5, 0x15, 0xd5, 0x47, 0xad, 0xcf, 0x7f, + 0x3b, 0xe9, 0xfc, 0x1f, 0xcd, 0x7f, 0x1f, 0xce, 0x66, 0x73, 0xdf, 0xfc, 0xaf, 0xd7, 0x9d, 0xc8, 0xfe, 0xd5, 0xdc, 0x4c, + 0x0e, 0xf1, 0x5a, 0xe3, 0xf9, 0xfc, 0xe7, 0x2a, 0x05, 0x9d, 0x7b, 0x6e, 0xbd, 0x3e, 0xff, 0xd1, 0x16, 0xb9, 0x2a, 0xff, + 0xf1, 0xbd, 0xa4, 0x0f, 0xab, 0x59, 0xdf, 0x31, 0xff, 0xfd, 0xe3, 0xf3, 0x5f, 0x5f, 0xcb, 0x37, 0x9a, 0x80, 0x48, 0x1d, + 0xf4, 0x99, 0xeb, 0xea, 0xd5, 0x2b, 0xbb, 0xf8, 0x75, 0x57, 0xf4, 0xfc, 0x3f, 0xfa, 0xfd, 0x99, 0x6f, 0x72, 0x75, 0xfe, + 0xdb, 0x30, 0xe1, 0x3d, 0x91, 0xd2, 0xf8, 0x1d, 0x90, 0x4c, 0xcd, 0xab, 0x6b, 0xf2, 0xdf, 0x42, 0x33, 0x06, 0xc6, 0xcf, + 0xf3, 0x77, 0xcf, 0x7f, 0xf5, 0xb5, 0x41, 0xf4, 0x8e, 0x41, 0xf5, 0x3a, 0xde, 0xef, 0xfa, 0xbf, 0x17, 0xf4, 0x12, 0x77, + 0xe4, 0x3f, 0xdb, 0x3e, 0xd1, 0x34, 0xc5, 0xf2, 0x3f, 0x7f, 0x76, 0x8f, 0xcd, 0x26, 0x10, 0x5b, 0xf6, 0xde, 0xfc, 0xd7, + 0xd6, 0x4f, 0x5d, 0xbf, 0x57, 0xfc, 0xa6, 0xfc, 0x47, 0xaf, 0xff, 0xe7, 0xaf, 0xb8, 0xee, 0x95, 0xff, 0x36, 0x31, 0x3f, + 0xcf, 0xd9, 0xf9, 0x1f, 0x55, 0x5b, 0x7d, 0x5b, 0xfe, 0xa3, 0xd9, 0x8a, 0xce, 0x67, 0xd4, 0xc2, 0x67, 0xba, 0xb7, 0x9f, + 0xff, 0xdb, 0x4b, 0xf3, 0x1f, 0x9f, 0x5f, 0xe6, 0x59, 0xf9, 0xaf, 0xee, 0x35, 0x5c, 0x5f, 0x57, 0x2f, 0x7a, 0xb7, 0x31, + 0x7e, 0x97, 0xf2, 0xdd, 0xfd, 0xff, 0xbe, 0xa1, 0x17, 0x9e, 0x7d, 0xfe, 0x7f, 0x55, 0xfe, 0x77, 0x3d, 0xff, 0x6b, 0xd3, + 0x73, 0xfe, 0xed, 0x5a, 0x2b, 0xf9, 0xaf, 0xce, 0x7f, 0xe5, 0xdc, 0x89, 0x6b, 0xff, 0xa2, 0xfa, 0xfd, 0x9f, 0xfa, 0x3b, + 0x69, 0xfb, 0xdf, 0xff, 0xd9, 0xd3, 0x3e, 0x6d, 0x6a, 0xc6, 0xb4, 0xf5, 0xbf, 0xda, 0x26, 0x67, 0x35, 0x8e, 0xad, 0x73, + 0xfd, 0xdb, 0x37, 0x77, 0xcf, 0x7f, 0xec, 0x6d, 0x83, 0xe8, 0x6f, 0xc6, 0x7f, 0xe3, 0x3e, 0x73, 0x81, 0x7d, 0xe6, 0x5b, + 0x94, 0x5a, 0xa1, 0xba, 0x85, 0xb4, 0x2a, 0x8e, 0x00, 0xef, 0x7a, 0xcf, 0x7c, 0xd7, 0xbf, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xbc, 0xd1, 0x2b, 0xb3, 0x35, 0xb7, 0xff, 0xfc, 0x69, 0x0f, 0x8d, 0x77, + 0xed, 0xc9, 0xdf, 0xeb, 0xcb, 0x75, 0x30, 0xd6, 0xc6, 0x9d, 0x56, 0xd4, 0x60, 0xa8, 0xae, 0x23, 0x35, 0x6e, 0x97, 0xd9, + 0x2d, 0x3d, 0x1e, 0x49, 0xbc, 0xba, 0x87, 0x44, 0xc6, 0xf5, 0x64, 0x2a, 0xea, 0x64, 0xe6, 0x12, 0x88, 0x57, 0x42, 0x6c, + 0x8b, 0x9f, 0x1a, 0xdb, 0x6a, 0x91, 0xf1, 0xe1, 0x3b, 0xf3, 0x1f, 0xab, 0x2d, 0x79, 0x45, 0xa5, 0xb5, 0xf8, 0xde, 0x54, + 0xbb, 0x86, 0xf5, 0xad, 0x32, 0xb7, 0xb6, 0xb9, 0x9f, 0x67, 0xc6, 0xf4, 0xe7, 0x6a, 0x0f, 0xac, 0xb6, 0x44, 0x9f, 0xaa, + 0x96, 0xb2, 0xfa, 0x9b, 0x3f, 0xff, 0xde, 0xf1, 0xb2, 0x3e, 0x55, 0x39, 0x62, 0xed, 0x53, 0xbf, 0xff, 0xb7, 0xfb, 0x2a, + 0x27, 0xbc, 0x23, 0xff, 0x2d, 0x70, 0x94, 0x3d, 0x37, 0xff, 0xf1, 0xe3, 0x54, 0x2b, 0xac, 0xd2, 0xb3, 0x3e, 0x37, 0x46, + 0x64, 0xe4, 0x6e, 0xbe, 0x46, 0xd0, 0x19, 0x15, 0x35, 0xfe, 0xcc, 0xd7, 0xca, 0x56, 0x9b, 0x4b, 0xff, 0xf7, 0xc7, 0xb8, + 0x76, 0xd0, 0xdb, 0x9a, 0xcd, 0x7f, 0x0f, 0xd4, 0x1e, 0xa9, 0xa9, 0xc8, 0xf7, 0x9c, 0xfc, 0xcf, 0x5c, 0x6d, 0x9c, 0x97, + 0xff, 0xf1, 0xcf, 0xeb, 0xaa, 0x6a, 0x57, 0xd6, 0xda, 0x19, 0xd5, 0x5a, 0x6e, 0xa1, 0x2d, 0xd2, 0x83, 0xc7, 0x95, 0x5e, + 0x5c, 0xcf, 0xbc, 0x7f, 0xf9, 0x7f, 0xf6, 0x4c, 0x3d, 0x9b, 0xff, 0xd5, 0xbf, 0x78, 0x4d, 0xff, 0x7f, 0x65, 0x7f, 0x79, + 0x52, 0xfe, 0xdb, 0x54, 0x2d, 0xb2, 0x7b, 0x9f, 0xff, 0x2b, 0x6b, 0x6a, 0xd5, 0xe7, 0x3f, 0x96, 0xf0, 0xc8, 0xfe, 0x3e, + 0x3f, 0xe3, 0xc1, 0xda, 0x76, 0x1b, 0xf7, 0xf2, 0x7b, 0xa2, 0xff, 0x9f, 0xcf, 0x7f, 0x5d, 0x9f, 0x67, 0xed, 0xea, 0xf9, + 0x8a, 0xfc, 0xf7, 0x44, 0x65, 0xf4, 0xfd, 0xd7, 0xff, 0xa3, 0x7e, 0x62, 0xb4, 0x55, 0xea, 0xe7, 0xa6, 0xaa, 0xac, 0xb6, + 0xbd, 0x9a, 0xff, 0xcc, 0xf9, 0x3f, 0x7a, 0x1f, 0x22, 0xd3, 0x43, 0x5c, 0xbb, 0x1e, 0xcf, 0x1f, 0x01, 0xd6, 0xfa, 0xff, + 0x67, 0xdc, 0xff, 0xef, 0xa7, 0x5d, 0xff, 0xb7, 0xd4, 0x2c, 0x46, 0x95, 0xfd, 0xff, 0x96, 0xe8, 0x65, 0x66, 0x8e, 0x36, + 0x91, 0xd6, 0x5e, 0x6f, 0xb3, 0x2b, 0xcf, 0xff, 0xb9, 0xd9, 0xe6, 0xda, 0xb6, 0x7a, 0xa7, 0x91, 0xfe, 0xff, 0x9e, 0x14, + 0x56, 0xfc, 0xc5, 0xca, 0xeb, 0xff, 0xeb, 0xe7, 0x66, 0xc8, 0xe4, 0xff, 0xac, 0xde, 0xd3, 0xfe, 0x6f, 0x5e, 0x5b, 0x47, + 0xfa, 0x0e, 0xd7, 0xff, 0x91, 0xfb, 0xff, 0xd1, 0x9a, 0xc7, 0xe3, 0xb3, 0x71, 0xff, 0xf1, 0x0a, 0xff, 0xcc, 0xb3, 0xf1, + 0xf9, 0x47, 0x9c, 0xda, 0xeb, 0x7f, 0xf9, 0xdf, 0xf3, 0xdd, 0x2b, 0x6b, 0xe7, 0xee, 0xce, 0xff, 0x5c, 0xcf, 0x2a, 0x36, + 0x23, 0x62, 0x6e, 0xc6, 0xe4, 0xe8, 0x35, 0x5d, 0x3b, 0x75, 0x4f, 0x6f, 0x17, 0xf4, 0xfe, 0xab, 0x67, 0xe4, 0x79, 0xe7, + 0xfb, 0x50, 0xef, 0xf8, 0x06, 0x67, 0x1c, 0xcf, 0x7b, 0x61, 0xcf, 0x34, 0x7f, 0xff, 0x2f, 0x7e, 0xb4, 0x6a, 0x17, 0xd4, + 0x20, 0x3e, 0xfb, 0x2f, 0xc6, 0x9f, 0x56, 0x20, 0xff, 0x6b, 0xf9, 0xdf, 0xdf, 0x4b, 0xaa, 0x7a, 0x87, 0xe1, 0xd3, 0xf6, + 0x14, 0x2d, 0xf3, 0x29, 0xdb, 0x75, 0xfd, 0x4e, 0xef, 0x5b, 0x5a, 0xc2, 0x3e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x6b, 0xf4, 0x4f, 0xac, 0x9a, 0xc2, 0x6c, 0x2d, 0xab, 0xbe, 0x30, 0x3a, 0xb3, 0x0d, + 0xeb, 0x33, 0x67, 0x3f, 0xe7, 0xeb, 0xcc, 0x05, 0x7d, 0xf0, 0x2f, 0x5a, 0x60, 0x4d, 0x7b, 0x78, 0xac, 0xf1, 0xfa, 0x3c, + 0x0c, 0x5f, 0xd7, 0xb8, 0x25, 0x5a, 0x64, 0x3c, 0x92, 0x77, 0x7d, 0xc6, 0x86, 0xbd, 0xdf, 0xb9, 0xa6, 0x22, 0x7a, 0xa4, + 0xb6, 0xdf, 0x6c, 0x85, 0x92, 0xb3, 0x5b, 0x25, 0x33, 0x62, 0xbb, 0x05, 0x8e, 0x0d, 0xa3, 0x7a, 0x42, 0x2b, 0xb5, 0xba, + 0xd6, 0x8e, 0x4f, 0x73, 0x55, 0xf8, 0xd6, 0xc7, 0xa5, 0xcf, 0xd5, 0xf0, 0x6c, 0x1b, 0xeb, 0x5e, 0xaf, 0xef, 0xed, 0xf1, + 0xa4, 0xe4, 0x96, 0xce, 0x8d, 0xc7, 0xdf, 0xf1, 0x9d, 0xe3, 0x35, 0x6b, 0xe7, 0x3f, 0x27, 0x73, 0xf6, 0x1b, 0xa7, 0x74, + 0x4f, 0xab, 0xc4, 0xd2, 0x9f, 0xa9, 0x08, 0xb3, 0x9e, 0xff, 0x9a, 0xf5, 0x1e, 0xcf, 0x89, 0x10, 0x9b, 0x65, 0x63, 0xa6, + 0x86, 0xf7, 0xfb, 0xaa, 0x07, 0xe4, 0xf3, 0xff, 0xa9, 0x35, 0x17, 0x9e, 0xd4, 0x02, 0x7d, 0x31, 0x61, 0x33, 0xbd, 0xf8, + 0x9a, 0xfc, 0x8f, 0xe7, 0x4a, 0x3a, 0x3f, 0xff, 0x3d, 0xf4, 0x09, 0xf1, 0x9e, 0xdb, 0x1d, 0x97, 0xe6, 0xf2, 0x3f, 0xde, + 0x83, 0xf6, 0x2c, 0xad, 0x9a, 0x29, 0x29, 0x57, 0x87, 0xbc, 0x05, 0xaf, 0x1e, 0x32, 0x4b, 0x23, 0xb5, 0x11, 0x7a, 0xe8, + 0x6a, 0x64, 0xcf, 0xf9, 0x3f, 0x7f, 0xfd, 0x3f, 0xdf, 0x6f, 0x8b, 0xdf, 0x3f, 0xc8, 0xec, 0x4b, 0x3b, 0xfa, 0xe1, 0x67, + 0x2c, 0x8d, 0xd4, 0x86, 0xbb, 0x6a, 0xe9, 0xee, 0xfc, 0xf7, 0xdf, 0xe6, 0x4a, 0x3c, 0x4a, 0xd4, 0xfa, 0xd1, 0x21, 0x77, + 0x64, 0xd9, 0xdb, 0xd7, 0x59, 0xbd, 0xff, 0xb7, 0xba, 0x96, 0x75, 0x73, 0x99, 0x45, 0xab, 0x52, 0x7e, 0xfd, 0xfd, 0xba, + 0xf3, 0xff, 0xbe, 0xad, 0xbe, 0x77, 0x69, 0xe6, 0xee, 0xde, 0x5b, 0xf3, 0x3f, 0xd7, 0x6e, 0xef, 0xc8, 0xff, 0xb8, 0x7e, + 0x6b, 0x2f, 0xba, 0x4f, 0x71, 0xc6, 0x37, 0x9a, 0xad, 0xc0, 0x9f, 0x9b, 0x63, 0xf6, 0x4d, 0xf9, 0x6f, 0x45, 0xfd, 0xff, + 0x33, 0x97, 0xde, 0xa3, 0xff, 0xdf, 0x5f, 0x90, 0xff, 0xec, 0x73, 0x9d, 0x8a, 0x19, 0x8e, 0xcf, 0xce, 0x7f, 0xf6, 0x98, + 0x78, 0xaf, 0x6b, 0xe1, 0xec, 0xd2, 0x6c, 0xfe, 0x3f, 0xf5, 0xfc, 0xff, 0x86, 0xfc, 0xe7, 0x9f, 0x65, 0xaf, 0xdc, 0xff, + 0x3b, 0xef, 0x1d, 0x88, 0xbe, 0x31, 0xff, 0xed, 0x43, 0xcf, 0xff, 0x35, 0xf3, 0xca, 0x3f, 0x2d, 0xff, 0x33, 0x77, 0x99, + 0x9e, 0x9a, 0xff, 0x8a, 0x8c, 0x54, 0xdd, 0xff, 0xaf, 0x7f, 0x0b, 0x6a, 0x67, 0x75, 0xfa, 0xe7, 0x25, 0x7c, 0x9c, 0xff, + 0xc8, 0xfb, 0x3f, 0xef, 0xce, 0xff, 0xdc, 0xbb, 0x31, 0xcf, 0xce, 0x7f, 0x4f, 0xce, 0x4a, 0xf3, 0xce, 0xe7, 0xc3, 0xb1, + 0x39, 0xa6, 0x9f, 0x97, 0xff, 0xfc, 0x3b, 0x65, 0x6f, 0x7d, 0xfe, 0x97, 0x7b, 0x3b, 0xe0, 0x9a, 0xe7, 0x7f, 0x77, 0x7a, + 0xaf, 0x84, 0xb7, 0xbf, 0x55, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x66, 0xec, + 0xeb, 0xea, 0x88, 0x9d, 0xb9, 0x71, 0x62, 0xd7, 0x54, 0xbe, 0x8f, 0xd4, 0x29, 0x98, 0x59, 0x9f, 0x78, 0xf5, 0x83, 0x48, + 0xad, 0xfd, 0xa3, 0x6d, 0x13, 0xad, 0x38, 0x9e, 0xa9, 0x64, 0xb4, 0xeb, 0x3b, 0xae, 0xd7, 0x84, 0x9f, 0xff, 0x0b, 0x73, + 0x95, 0x1f, 0x63, 0xb9, 0xb8, 0xfb, 0xb6, 0x9e, 0x1b, 0xa5, 0xb9, 0xb3, 0x4e, 0x7c, 0x4f, 0xd6, 0x34, 0xaf, 0x5f, 0xab, + 0x6c, 0x95, 0xfe, 0xd8, 0x3a, 0x47, 0x5a, 0xb8, 0x27, 0xe6, 0x61, 0x69, 0x13, 0x7b, 0x52, 0x75, 0x75, 0x9f, 0xcc, 0xbc, + 0x1c, 0xf3, 0x47, 0xe4, 0xca, 0x8a, 0xfd, 0x2d, 0x51, 0xad, 0xff, 0x2e, 0xdb, 0xfa, 0xda, 0xf1, 0xb4, 0xe3, 0x75, 0x7e, + 0xce, 0x78, 0xdf, 0xb9, 0xd1, 0xe3, 0xcf, 0xf8, 0x36, 0x33, 0xc7, 0xb2, 0xf5, 0xea, 0x3c, 0xef, 0xac, 0xd9, 0xf0, 0xd9, + 0x63, 0x95, 0xb3, 0x95, 0x05, 0x46, 0xc7, 0xba, 0xe7, 0x54, 0xaf, 0xca, 0xd5, 0xbd, 0x9a, 0x69, 0xc5, 0xb3, 0x96, 0x1d, + 0xf9, 0x2b, 0x30, 0x0f, 0xdb, 0x95, 0xdf, 0x71, 0x7f, 0xc5, 0x8e, 0xe3, 0x5a, 0x22, 0xf7, 0xde, 0xd6, 0xd9, 0x1a, 0x59, + 0xd9, 0x4a, 0x30, 0xd1, 0xf3, 0xff, 0x53, 0xf3, 0x3f, 0x9a, 0x8b, 0xe0, 0xe7, 0x59, 0xc9, 0xce, 0x5b, 0x56, 0x31, 0x93, + 0xc1, 0xea, 0x15, 0xd0, 0x8e, 0x65, 0x57, 0x56, 0xec, 0x3a, 0xfb, 0xbb, 0xc6, 0xdb, 0xa8, 0xaa, 0x9f, 0x18, 0x9d, 0xb3, + 0x64, 0xb4, 0xec, 0xd3, 0xce, 0xff, 0xfd, 0xf2, 0x65, 0xf3, 0x47, 0xb1, 0xbb, 0xef, 0xdb, 0xfb, 0x67, 0xec, 0x78, 0x42, + 0xc6, 0x33, 0xb3, 0x4b, 0xed, 0xcc, 0xff, 0x3d, 0xeb, 0x1d, 0xf7, 0xd4, 0xb9, 0x31, 0x5b, 0xab, 0xef, 0x3e, 0xb9, 0xc9, + 0xcc, 0x64, 0x1c, 0x9b, 0xbf, 0xb9, 0x7a, 0x99, 0xfc, 0xdf, 0x3b, 0xff, 0x73, 0xf7, 0x56, 0xee, 0x57, 0xbd, 0x32, 0x3b, + 0x4b, 0xef, 0xfb, 0xfb, 0x8b, 0x7d, 0xc3, 0xd3, 0x9a, 0xba, 0xe7, 0x89, 0xf2, 0x7f, 0x97, 0xfe, 0xbf, 0xfc, 0xbf, 0x6f, + 0x7f, 0xe9, 0xa9, 0x4a, 0xe6, 0xfa, 0xff, 0xf2, 0xff, 0xe6, 0xfc, 0xf7, 0x47, 0x5c, 0xff, 0xef, 0xda, 0x5f, 0xde, 0x76, + 0xff, 0x3f, 0xfa, 0xb4, 0xf7, 0x29, 0xcf, 0x7a, 0xce, 0x78, 0xfe, 0xb7, 0xe7, 0x93, 0x77, 0x56, 0x43, 0x7f, 0xff, 0xf3, + 0xde, 0xa7, 0xd4, 0x83, 0xe7, 0xed, 0xfb, 0xa1, 0x36, 0x00, 0xf9, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x76, 0xbe, 0xa9, 0x7f, 0x66, 0xc5, 0xf7, 0xc8, 0xa8, 0xcf, 0xb9, 0xcf, 0x04, 0x62, 0x23, 0x75, 0xce, + 0xac, 0xf8, 0x9e, 0x1f, 0x9d, 0x6f, 0x5b, 0xc2, 0xfb, 0xc6, 0x8a, 0xcb, 0x36, 0xec, 0x49, 0x55, 0x7f, 0x48, 0x15, 0xa4, + 0x77, 0xcc, 0xcd, 0x01, 0xf2, 0xff, 0x94, 0x0a, 0x69, 0x20, 0xff, 0xf2, 0x0f, 0xf2, 0x2f, 0xff, 0x20, 0xff, 0xf2, 0x0f, + 0x6f, 0xbf, 0xff, 0x7f, 0xa7, 0x99, 0x6b, 0xf6, 0xd5, 0x29, 0x06, 0xcf, 0xfe, 0x63, 0x47, 0x87, 0xea, 0x65, 0x6d, 0x78, + 0xdc, 0xf0, 0x8c, 0x10, 0xce, 0xca, 0xff, 0x35, 0xcf, 0xf8, 0x57, 0xf3, 0xaf, 0xff, 0x0f, 0x6f, 0xba, 0x1a, 0x89, 0xbc, + 0xff, 0x27, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x95, 0x7f, 0xff, 0xd3, 0x0e, 0x20, 0xff, 0xc0, 0xc7, 0xe5, 0xff, 0x6f }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle enefeteFontRecs[189] = { + { 4, 4, 4 , 16 }, + { 16, 4, 2 , 10 }, + { 26, 4, 5 , 3 }, + { 39, 4, 7 , 10 }, + { 54, 4, 7 , 13 }, + { 69, 4, 7 , 10 }, + { 84, 4, 7 , 10 }, + { 99, 4, 2 , 3 }, + { 109, 4, 3 , 12 }, + { 120, 4, 3 , 12 }, + { 131, 4, 5 , 6 }, + { 144, 4, 6 , 5 }, + { 158, 4, 2 , 4 }, + { 168, 4, 5 , 1 }, + { 181, 4, 2 , 2 }, + { 191, 4, 4 , 10 }, + { 203, 4, 6 , 10 }, + { 217, 4, 4 , 10 }, + { 229, 4, 6 , 10 }, + { 243, 4, 6 , 10 }, + { 257, 4, 6 , 10 }, + { 271, 4, 6 , 10 }, + { 285, 4, 6 , 10 }, + { 299, 4, 6 , 10 }, + { 313, 4, 6 , 10 }, + { 327, 4, 6 , 10 }, + { 341, 4, 2 , 6 }, + { 351, 4, 2 , 8 }, + { 361, 4, 7 , 7 }, + { 376, 4, 5 , 3 }, + { 389, 4, 7 , 7 }, + { 404, 4, 6 , 10 }, + { 418, 4, 7 , 12 }, + { 433, 4, 7 , 10 }, + { 448, 4, 7 , 10 }, + { 463, 4, 7 , 10 }, + { 478, 4, 7 , 10 }, + { 493, 4, 7 , 10 }, + { 4, 28, 7 , 10 }, + { 19, 28, 7 , 10 }, + { 34, 28, 7 , 10 }, + { 49, 28, 2 , 10 }, + { 59, 28, 5 , 10 }, + { 72, 28, 7 , 10 }, + { 87, 28, 6 , 10 }, + { 101, 28, 9 , 10 }, + { 118, 28, 7 , 10 }, + { 133, 28, 7 , 10 }, + { 148, 28, 7 , 10 }, + { 163, 28, 7 , 12 }, + { 178, 28, 7 , 10 }, + { 193, 28, 7 , 10 }, + { 208, 28, 6 , 10 }, + { 222, 28, 7 , 10 }, + { 237, 28, 7 , 10 }, + { 252, 28, 8 , 10 }, + { 268, 28, 7 , 10 }, + { 283, 28, 6 , 10 }, + { 297, 28, 7 , 10 }, + { 312, 28, 4 , 12 }, + { 324, 28, 4 , 10 }, + { 336, 28, 4 , 12 }, + { 348, 28, 6 , 3 }, + { 362, 28, 7 , 1 }, + { 377, 28, 4 , 3 }, + { 389, 28, 6 , 7 }, + { 403, 28, 6 , 10 }, + { 417, 28, 6 , 7 }, + { 431, 28, 6 , 10 }, + { 445, 28, 6 , 7 }, + { 459, 28, 4 , 10 }, + { 471, 28, 6 , 9 }, + { 485, 28, 6 , 10 }, + { 499, 28, 2 , 10 }, + { 4, 52, 5 , 12 }, + { 17, 52, 6 , 10 }, + { 31, 52, 3 , 10 }, + { 42, 52, 8 , 7 }, + { 58, 52, 6 , 7 }, + { 72, 52, 6 , 7 }, + { 86, 52, 6 , 9 }, + { 100, 52, 6 , 9 }, + { 114, 52, 5 , 7 }, + { 127, 52, 6 , 7 }, + { 141, 52, 4 , 10 }, + { 153, 52, 6 , 7 }, + { 167, 52, 6 , 7 }, + { 181, 52, 8 , 7 }, + { 197, 52, 6 , 7 }, + { 211, 52, 6 , 9 }, + { 225, 52, 6 , 7 }, + { 239, 52, 5 , 12 }, + { 252, 52, 2 , 12 }, + { 262, 52, 5 , 12 }, + { 275, 52, 7 , 3 }, + { 290, 52, 2 , 9 }, + { 300, 52, 6 , 11 }, + { 314, 52, 7 , 10 }, + { 329, 52, 7 , 9 }, + { 344, 52, 6 , 10 }, + { 358, 52, 7 , 11 }, + { 373, 52, 6 , 12 }, + { 387, 52, 6 , 10 }, + { 401, 52, 7 , 10 }, + { 416, 52, 5 , 5 }, + { 429, 52, 7 , 6 }, + { 444, 52, 6 , 3 }, + { 458, 52, 7 , 10 }, + { 473, 52, 0 , 0 }, + { 481, 52, 4 , 4 }, + { 493, 52, 6 , 7 }, + { 4, 76, 4 , 5 }, + { 16, 76, 4 , 5 }, + { 28, 76, 7 , 11 }, + { 43, 76, 6 , 9 }, + { 57, 76, 7 , 12 }, + { 72, 76, 2 , 2 }, + { 82, 76, 6 , 10 }, + { 96, 76, 3 , 5 }, + { 107, 76, 4 , 5 }, + { 119, 76, 7 , 6 }, + { 134, 76, 9 , 10 }, + { 151, 76, 8 , 7 }, + { 167, 76, 6 , 11 }, + { 181, 76, 6 , 11 }, + { 195, 76, 7 , 11 }, + { 210, 76, 7 , 11 }, + { 225, 76, 7 , 11 }, + { 240, 76, 7 , 11 }, + { 255, 76, 7 , 11 }, + { 270, 76, 7 , 11 }, + { 285, 76, 9 , 10 }, + { 302, 76, 7 , 12 }, + { 317, 76, 7 , 11 }, + { 332, 76, 7 , 11 }, + { 347, 76, 7 , 11 }, + { 362, 76, 7 , 11 }, + { 377, 76, 3 , 11 }, + { 388, 76, 3 , 11 }, + { 399, 76, 5 , 11 }, + { 412, 76, 5 , 11 }, + { 425, 76, 8 , 10 }, + { 441, 76, 7 , 11 }, + { 456, 76, 7 , 11 }, + { 471, 76, 7 , 11 }, + { 486, 76, 7 , 11 }, + { 4, 100, 7 , 11 }, + { 19, 100, 7 , 11 }, + { 34, 100, 7 , 7 }, + { 49, 100, 7 , 13 }, + { 64, 100, 7 , 11 }, + { 79, 100, 7 , 11 }, + { 94, 100, 7 , 11 }, + { 109, 100, 7 , 11 }, + { 124, 100, 6 , 11 }, + { 138, 100, 7 , 10 }, + { 153, 100, 7 , 10 }, + { 168, 100, 6 , 10 }, + { 182, 100, 6 , 10 }, + { 196, 100, 6 , 10 }, + { 210, 100, 6 , 10 }, + { 224, 100, 6 , 10 }, + { 238, 100, 6 , 11 }, + { 252, 100, 8 , 7 }, + { 268, 100, 6 , 9 }, + { 282, 100, 6 , 10 }, + { 296, 100, 6 , 10 }, + { 310, 100, 6 , 10 }, + { 324, 100, 6 , 10 }, + { 338, 100, 3 , 10 }, + { 349, 100, 3 , 10 }, + { 360, 100, 5 , 10 }, + { 373, 100, 5 , 10 }, + { 386, 100, 6 , 10 }, + { 400, 100, 6 , 10 }, + { 414, 100, 6 , 10 }, + { 428, 100, 6 , 10 }, + { 442, 100, 6 , 10 }, + { 456, 100, 6 , 10 }, + { 470, 100, 6 , 10 }, + { 484, 100, 6 , 7 }, + { 4, 124, 7 , 11 }, + { 19, 124, 6 , 10 }, + { 33, 124, 6 , 10 }, + { 47, 124, 6 , 10 }, + { 61, 124, 6 , 10 }, + { 75, 124, 6 , 12 }, + { 89, 124, 6 , 12 }, + { 103, 124, 6 , 12 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo enefeteFontGlyphs[189] = { + { 32, 0, 0, 4, { 0 }}, + { 33, 0, 2, 3, { 0 }}, + { 34, 0, 2, 6, { 0 }}, + { 35, 0, 2, 8, { 0 }}, + { 36, 0, 1, 8, { 0 }}, + { 37, 0, 2, 8, { 0 }}, + { 38, 0, 2, 8, { 0 }}, + { 39, 0, 2, 3, { 0 }}, + { 40, 0, 2, 4, { 0 }}, + { 41, 0, 2, 4, { 0 }}, + { 42, 0, 4, 6, { 0 }}, + { 43, 0, 6, 7, { 0 }}, + { 44, 0, 10, 3, { 0 }}, + { 45, 0, 8, 6, { 0 }}, + { 46, 0, 10, 3, { 0 }}, + { 47, 0, 2, 5, { 0 }}, + { 48, 0, 2, 7, { 0 }}, + { 49, 0, 2, 7, { 0 }}, + { 50, 0, 2, 7, { 0 }}, + { 51, 0, 2, 7, { 0 }}, + { 52, 0, 2, 7, { 0 }}, + { 53, 0, 2, 7, { 0 }}, + { 54, 0, 2, 7, { 0 }}, + { 55, 0, 2, 7, { 0 }}, + { 56, 0, 2, 7, { 0 }}, + { 57, 0, 2, 7, { 0 }}, + { 58, 0, 4, 3, { 0 }}, + { 59, 0, 4, 3, { 0 }}, + { 60, 0, 4, 8, { 0 }}, + { 61, 0, 6, 6, { 0 }}, + { 62, 0, 4, 8, { 0 }}, + { 63, 0, 2, 7, { 0 }}, + { 64, 0, 2, 8, { 0 }}, + { 65, 0, 2, 8, { 0 }}, + { 66, 0, 2, 8, { 0 }}, + { 67, 0, 2, 8, { 0 }}, + { 68, 0, 2, 8, { 0 }}, + { 69, 0, 2, 8, { 0 }}, + { 70, 0, 2, 8, { 0 }}, + { 71, 0, 2, 8, { 0 }}, + { 72, 0, 2, 8, { 0 }}, + { 73, 0, 2, 3, { 0 }}, + { 74, 0, 2, 6, { 0 }}, + { 75, 0, 2, 8, { 0 }}, + { 76, 0, 2, 7, { 0 }}, + { 77, 0, 2, 10, { 0 }}, + { 78, 0, 2, 8, { 0 }}, + { 79, 0, 2, 8, { 0 }}, + { 80, 0, 2, 8, { 0 }}, + { 81, 0, 2, 8, { 0 }}, + { 82, 0, 2, 8, { 0 }}, + { 83, 0, 2, 8, { 0 }}, + { 84, 0, 2, 7, { 0 }}, + { 85, 0, 2, 8, { 0 }}, + { 86, 0, 2, 8, { 0 }}, + { 87, 0, 2, 9, { 0 }}, + { 88, 0, 2, 8, { 0 }}, + { 89, 0, 2, 7, { 0 }}, + { 90, 0, 2, 8, { 0 }}, + { 91, 0, 2, 5, { 0 }}, + { 92, 0, 2, 5, { 0 }}, + { 93, 0, 2, 5, { 0 }}, + { 94, 0, 2, 7, { 0 }}, + { 95, 0, 14, 8, { 0 }}, + { 96, 0, 2, 5, { 0 }}, + { 97, 0, 5, 7, { 0 }}, + { 98, 0, 2, 7, { 0 }}, + { 99, 0, 5, 7, { 0 }}, + { 100, 0, 2, 7, { 0 }}, + { 101, 0, 5, 7, { 0 }}, + { 102, 0, 2, 5, { 0 }}, + { 103, 0, 5, 7, { 0 }}, + { 104, 0, 2, 7, { 0 }}, + { 105, 0, 2, 3, { 0 }}, + { 106, 0, 2, 6, { 0 }}, + { 107, 0, 2, 7, { 0 }}, + { 108, 0, 2, 4, { 0 }}, + { 109, 0, 5, 9, { 0 }}, + { 110, 0, 5, 7, { 0 }}, + { 111, 0, 5, 7, { 0 }}, + { 112, 0, 5, 7, { 0 }}, + { 113, 0, 5, 7, { 0 }}, + { 114, 0, 5, 6, { 0 }}, + { 115, 0, 5, 7, { 0 }}, + { 116, 0, 2, 5, { 0 }}, + { 117, 0, 5, 7, { 0 }}, + { 118, 0, 5, 7, { 0 }}, + { 119, 0, 5, 9, { 0 }}, + { 120, 0, 5, 7, { 0 }}, + { 121, 0, 5, 7, { 0 }}, + { 122, 0, 5, 7, { 0 }}, + { 123, 0, 2, 6, { 0 }}, + { 124, 0, 2, 3, { 0 }}, + { 125, 0, 2, 6, { 0 }}, + { 126, 0, 6, 8, { 0 }}, + { 161, 0, 5, 3, { 0 }}, + { 162, 0, 3, 7, { 0 }}, + { 163, 0, 2, 8, { 0 }}, + { 8364, 0, 3, 8, { 0 }}, + { 165, 0, 2, 7, { 0 }}, + { 352, 0, 1, 8, { 0 }}, + { 167, 0, 2, 7, { 0 }}, + { 353, 0, 2, 7, { 0 }}, + { 169, 0, 2, 8, { 0 }}, + { 170, 0, 2, 6, { 0 }}, + { 171, 0, 6, 8, { 0 }}, + { 172, 0, 7, 7, { 0 }}, + { 174, 0, 2, 8, { 0 }}, + { 175, 0, 0, 0, { 0 }}, + { 176, 0, 2, 5, { 0 }}, + { 177, 0, 4, 7, { 0 }}, + { 178, 0, 2, 5, { 0 }}, + { 179, 0, 2, 5, { 0 }}, + { 381, 0, 1, 8, { 0 }}, + { 181, 0, 5, 7, { 0 }}, + { 182, 0, 2, 8, { 0 }}, + { 183, 0, 6, 3, { 0 }}, + { 382, 0, 2, 7, { 0 }}, + { 185, 0, 2, 4, { 0 }}, + { 186, 0, 2, 5, { 0 }}, + { 187, 0, 6, 8, { 0 }}, + { 338, 0, 2, 10, { 0 }}, + { 339, 0, 5, 9, { 0 }}, + { 376, 0, 1, 7, { 0 }}, + { 191, 0, 3, 7, { 0 }}, + { 192, 0, 1, 8, { 0 }}, + { 193, 0, 1, 8, { 0 }}, + { 194, 0, 1, 8, { 0 }}, + { 195, 0, 1, 8, { 0 }}, + { 196, 0, 1, 8, { 0 }}, + { 197, 0, 1, 8, { 0 }}, + { 198, 0, 2, 10, { 0 }}, + { 199, 0, 2, 8, { 0 }}, + { 200, 0, 1, 8, { 0 }}, + { 201, 0, 1, 8, { 0 }}, + { 202, 0, 1, 8, { 0 }}, + { 203, 0, 1, 8, { 0 }}, + { 204, 0, 1, 4, { 0 }}, + { 205, 0, 1, 4, { 0 }}, + { 206, 0, 1, 6, { 0 }}, + { 207, 0, 1, 6, { 0 }}, + { 208, 0, 2, 9, { 0 }}, + { 209, 0, 1, 8, { 0 }}, + { 210, 0, 1, 8, { 0 }}, + { 211, 0, 1, 8, { 0 }}, + { 212, 0, 1, 8, { 0 }}, + { 213, 0, 1, 8, { 0 }}, + { 214, 0, 1, 8, { 0 }}, + { 215, 0, 5, 8, { 0 }}, + { 216, 0, 1, 8, { 0 }}, + { 217, 0, 1, 8, { 0 }}, + { 218, 0, 1, 8, { 0 }}, + { 219, 0, 1, 8, { 0 }}, + { 220, 0, 1, 8, { 0 }}, + { 221, 0, 1, 7, { 0 }}, + { 222, 0, 2, 8, { 0 }}, + { 223, 0, 2, 8, { 0 }}, + { 224, 0, 2, 7, { 0 }}, + { 225, 0, 2, 7, { 0 }}, + { 226, 0, 2, 7, { 0 }}, + { 227, 0, 2, 7, { 0 }}, + { 228, 0, 2, 7, { 0 }}, + { 229, 0, 1, 7, { 0 }}, + { 230, 0, 5, 9, { 0 }}, + { 231, 0, 5, 7, { 0 }}, + { 232, 0, 2, 7, { 0 }}, + { 233, 0, 2, 7, { 0 }}, + { 234, 0, 2, 7, { 0 }}, + { 235, 0, 2, 7, { 0 }}, + { 236, 0, 2, 4, { 0 }}, + { 237, 0, 2, 4, { 0 }}, + { 238, 0, 2, 6, { 0 }}, + { 239, 0, 2, 6, { 0 }}, + { 240, 0, 2, 7, { 0 }}, + { 241, 0, 2, 7, { 0 }}, + { 242, 0, 2, 7, { 0 }}, + { 243, 0, 2, 7, { 0 }}, + { 244, 0, 2, 7, { 0 }}, + { 245, 0, 2, 7, { 0 }}, + { 246, 0, 2, 7, { 0 }}, + { 247, 0, 4, 7, { 0 }}, + { 248, 0, 3, 8, { 0 }}, + { 249, 0, 2, 7, { 0 }}, + { 250, 0, 2, 7, { 0 }}, + { 251, 0, 2, 7, { 0 }}, + { 252, 0, 2, 7, { 0 }}, + { 253, 0, 2, 7, { 0 }}, + { 254, 0, 2, 7, { 0 }}, + { 255, 0, 2, 7, { 0 }}, +}; + +// Style loading function: Enefete +static void GuiLoadStyleEnefete(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < ENEFETE_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(enefeteStyleProps[i].controlId, enefeteStyleProps[i].propertyId, enefeteStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int enefeteFontDataSize = 0; + unsigned char *data = DecompressData(enefeteFontData, ENEFETE_STYLE_FONT_ATLAS_COMP_SIZE, &enefeteFontDataSize); + Image imFont = { data, 512, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 16; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, enefeteFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, enefeteFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 510, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/style_enefete.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/style_enefete.png new file mode 100644 index 0000000..d40778c Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/style_enefete.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/style_enefete.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/style_enefete.rgs new file mode 100644 index 0000000..7eea922 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/style_enefete.rgs differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/style_enefete.txt.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/style_enefete.txt.rgs new file mode 100644 index 0000000..d879663 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/enefete/style_enefete.txt.rgs @@ -0,0 +1,27 @@ +# +# rgs style text file (v4.0) - raygui style file generated using rGuiStyler +# +# Provided info: +# f fontGenSize charsetFileName fontFileName +# p Property description +# +# WARNING: This style uses a custom font, must be provided with style file +# +f 16 charset.txt GenericMobileSystemNuevo.ttf +p 00 00 0x1980d5ff DEFAULT_BORDER_COLOR_NORMAL +p 00 01 0x4df3ebff DEFAULT_BASE_COLOR_NORMAL +p 00 02 0x103e60ff DEFAULT_TEXT_COLOR_NORMAL +p 00 03 0xe7e2f7ff DEFAULT_BORDER_COLOR_FOCUSED +p 00 04 0x23d4ddff DEFAULT_BASE_COLOR_FOCUSED +p 00 05 0xf1f1f1ff DEFAULT_TEXT_COLOR_FOCUSED +p 00 06 0x6413a6ff DEFAULT_BORDER_COLOR_PRESSED +p 00 07 0xea66d9ff DEFAULT_BASE_COLOR_PRESSED +p 00 08 0x9f00bbff DEFAULT_TEXT_COLOR_PRESSED +p 00 09 0x4b909eff DEFAULT_BORDER_COLOR_DISABLED +p 00 10 0x73c7d0ff DEFAULT_BASE_COLOR_DISABLED +p 00 11 0x448894ff DEFAULT_TEXT_COLOR_DISABLED +p 00 16 0x00000010 TEXT_SIZE +p 00 17 0x00000000 TEXT_SPACING +p 00 18 0x1d3f6cff LINE_COLOR +p 00 19 0x29c9e5ff BACKGROUND_COLOR +p 00 20 0x00000018 TEXT_LINE_SPACING diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/genesis/PixelOperator.ttf b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/genesis/PixelOperator.ttf new file mode 100644 index 0000000..34fe947 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/genesis/PixelOperator.ttf differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/genesis/font_LICENSE.txt b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/genesis/font_LICENSE.txt new file mode 100644 index 0000000..0e259d4 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/genesis/font_LICENSE.txt @@ -0,0 +1,121 @@ +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/genesis/screenshot.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/genesis/screenshot.png new file mode 100644 index 0000000..235d91c Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/genesis/screenshot.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/genesis/style_genesis.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/genesis/style_genesis.h new file mode 100644 index 0000000..a6e8eda --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/genesis/style_genesis.h @@ -0,0 +1,589 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleGenesis(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define GENESIS_STYLE_PROPS_COUNT 23 + +// Custom style name: Genesis +static const GuiStyleProp genesisStyleProps[GENESIS_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0x667384ff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0x181b1eff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0xc2c8d0ff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0xd3dbdfff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0xa7afb0ff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0x020202ff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0x181b1eff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0xac3c3cff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0xdededeff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0x3e4550ff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0x2e353dff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0x484f57ff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE + { 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING + { 0, 18, (int)0x96a3b4ff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0x292c33ff }, // DEFAULT_BACKGROUND_COLOR + { 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING + { 1, 5, (int)0x97a9aeff }, // LABEL_TEXT_COLOR_FOCUSED + { 4, 5, (int)0xa69a9aff }, // SLIDER_TEXT_COLOR_FOCUSED + { 4, 6, (int)0xc3ccd5ff }, // SLIDER_BORDER_COLOR_PRESSED + { 6, 6, (int)0xa7aeb5ff }, // CHECKBOX_BORDER_COLOR_PRESSED + { 9, 5, (int)0xa9a5a5ff }, // TEXTBOX_TEXT_COLOR_FOCUSED + { 10, 5, (int)0xc9c7c7ff }, // VALUEBOX_TEXT_COLOR_FOCUSED +}; + +// WARNING: This style uses a custom font: "PixelOperator.ttf" (size: 16, spacing: 0) + +#define GENESIS_STYLE_FONT_ATLAS_COMP_SIZE 2138 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char genesisFontData[GENESIS_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0xdd, 0xdb, 0x92, 0xa5, 0xba, 0x0d, 0x00, 0x50, 0xff, 0xff, 0x4f, 0x2b, 0x0f, 0xa9, 0x54, 0x32, 0x95, 0xd3, 0x80, 0x64, + 0xd9, 0x98, 0x9e, 0x35, 0xeb, 0xad, 0x77, 0x4f, 0xc3, 0x36, 0x96, 0x6f, 0x80, 0x1c, 0x03, 0x00, 0x00, 0x00, 0xf8, 0xeb, + 0xc5, 0x3f, 0xfe, 0x24, 0x7e, 0xfc, 0xcd, 0x78, 0xfc, 0x77, 0xae, 0x7f, 0xfe, 0x9f, 0x4f, 0xe3, 0xe2, 0x58, 0xcf, 0xce, + 0x35, 0x7b, 0xdc, 0x48, 0x94, 0xc4, 0x3f, 0x9f, 0x5f, 0x3c, 0xfe, 0xbb, 0x3f, 0x7d, 0xbf, 0xfc, 0xef, 0x5f, 0xfd, 0xa5, + 0xeb, 0xb3, 0x8f, 0x54, 0xb9, 0xe7, 0xff, 0x4f, 0xee, 0x2a, 0xc6, 0x92, 0xb2, 0xbf, 0x3f, 0xbb, 0xfc, 0xb9, 0x77, 0xfe, + 0x9f, 0xb8, 0xf8, 0x3e, 0x95, 0xab, 0xf4, 0x24, 0xb6, 0x4e, 0x88, 0xff, 0x78, 0x14, 0x89, 0xd1, 0x5a, 0x73, 0xfe, 0x7b, + 0xd4, 0x68, 0x6c, 0xa9, 0xaa, 0x25, 0x79, 0x15, 0xe9, 0xf9, 0xf2, 0xb8, 0xaa, 0xfd, 0xf9, 0x16, 0x30, 0x5a, 0xbe, 0xcb, + 0x7c, 0x6d, 0x8c, 0xe9, 0xdf, 0x7e, 0x56, 0x93, 0x7a, 0xbe, 0xd5, 0xcc, 0x27, 0xa3, 0xe5, 0x2a, 0xbd, 0x11, 0xff, 0x51, + 0x6e, 0xa9, 0x22, 0x19, 0xd1, 0x1d, 0x25, 0x58, 0x69, 0x87, 0xc7, 0xc6, 0xf8, 0x8f, 0xd6, 0xb1, 0x4b, 0xb4, 0xd5, 0xb9, + 0x37, 0xe2, 0xff, 0xba, 0xd7, 0x1e, 0x2d, 0xf5, 0x26, 0x6e, 0xca, 0xa8, 0x37, 0x96, 0xd7, 0x8e, 0x53, 0x57, 0xc7, 0xff, + 0xf5, 0x6f, 0x66, 0xfb, 0xdb, 0x48, 0xf6, 0xdd, 0x1d, 0xe5, 0x54, 0xeb, 0xff, 0xfb, 0xcb, 0x31, 0x7e, 0xec, 0x9b, 0xab, + 0xe3, 0x90, 0x4c, 0x09, 0x47, 0x72, 0x76, 0x35, 0xdb, 0xc3, 0xbe, 0xd9, 0xff, 0x3f, 0x1b, 0x0b, 0x8a, 0xff, 0xb5, 0xf1, + 0x5f, 0xf9, 0x26, 0xf1, 0xf0, 0x0c, 0x2a, 0x7d, 0xe2, 0x38, 0x20, 0xfe, 0xb3, 0xed, 0xd0, 0x75, 0x59, 0x75, 0x8d, 0xe5, + 0xb3, 0xeb, 0x12, 0xcf, 0x66, 0xd8, 0xfb, 0x6a, 0x61, 0x7e, 0x6c, 0x94, 0x8f, 0xff, 0x7c, 0xeb, 0x79, 0xf7, 0xd7, 0xb2, + 0xa5, 0xfa, 0xf3, 0xcc, 0x6e, 0xbe, 0xc4, 0xf7, 0xc5, 0x7f, 0x14, 0xfa, 0x94, 0xf7, 0xe3, 0xb9, 0x27, 0xfe, 0xa3, 0xb0, + 0x72, 0x31, 0xda, 0x56, 0xf9, 0x6a, 0xeb, 0x12, 0x7d, 0x6b, 0x06, 0xef, 0x5f, 0x81, 0xfb, 0xf8, 0xbf, 0x9b, 0x0f, 0xbe, + 0xdf, 0xff, 0xc7, 0x11, 0xfd, 0x7f, 0x94, 0xd7, 0x86, 0x47, 0xa1, 0xf5, 0xfd, 0x5a, 0xfc, 0x47, 0x21, 0x66, 0xa2, 0x65, + 0x5e, 0x3e, 0x96, 0xac, 0xe5, 0xf5, 0xae, 0x19, 0xee, 0xb9, 0x5a, 0x77, 0xbd, 0x68, 0xd7, 0xac, 0xe6, 0x77, 0xc5, 0xff, + 0x68, 0xe8, 0xff, 0x9f, 0x8d, 0x01, 0x66, 0xbf, 0x47, 0x7c, 0xac, 0xf7, 0xef, 0x8c, 0xff, 0x5d, 0x2b, 0xf6, 0xeb, 0x6b, + 0x63, 0x1c, 0x71, 0x65, 0xac, 0xff, 0x77, 0x8e, 0xff, 0xeb, 0x6b, 0x00, 0xb9, 0x79, 0x4c, 0x1c, 0x1a, 0xfd, 0x95, 0x39, + 0x73, 0xd7, 0x1d, 0xfb, 0xde, 0xa7, 0x09, 0xa2, 0xf0, 0xac, 0x46, 0xcf, 0x2a, 0xce, 0xea, 0x6b, 0x90, 0xef, 0xff, 0x77, + 0xdd, 0xff, 0xbf, 0x1f, 0x73, 0x9f, 0xd1, 0xff, 0x8f, 0xdb, 0xde, 0xfd, 0x94, 0xf3, 0x01, 0xf6, 0xb6, 0x00, 0x21, 0xfa, + 0xc1, 0x73, 0xc4, 0x80, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x9f, 0xcf, + 0xef, 0xcf, 0x63, 0x90, 0xcf, 0x84, 0xbd, 0x3e, 0x03, 0xfb, 0x4c, 0x4e, 0xe0, 0x6a, 0x09, 0x75, 0xfd, 0xc5, 0xeb, 0xdc, + 0xf1, 0x99, 0x4c, 0x0b, 0xcf, 0x6b, 0x46, 0xa4, 0x77, 0x3f, 0xe8, 0xcc, 0x28, 0x50, 0xc9, 0x69, 0x30, 0x92, 0x75, 0xa2, + 0x37, 0x97, 0x52, 0xee, 0xec, 0xf7, 0xd4, 0xf8, 0x2f, 0xc4, 0xff, 0xfb, 0x9f, 0x8c, 0x42, 0xfe, 0x9e, 0x9d, 0xf1, 0x9f, + 0xad, 0x7b, 0xb5, 0xfc, 0xb8, 0x73, 0x7d, 0xc9, 0xee, 0x8c, 0x62, 0xd1, 0x78, 0x0d, 0xf7, 0xf5, 0xab, 0x7f, 0xe6, 0xd0, + 0xd9, 0x51, 0xaf, 0x67, 0xe2, 0x3f, 0x9b, 0xfb, 0x34, 0x2e, 0x5a, 0xe1, 0x73, 0xe2, 0x7f, 0x6c, 0x89, 0xff, 0xf8, 0x48, + 0xfc, 0x77, 0x67, 0x92, 0xe9, 0xca, 0x42, 0x5e, 0xc9, 0x7c, 0x93, 0xbf, 0x86, 0xf5, 0x0c, 0xbf, 0xd5, 0x1a, 0xf7, 0x9d, + 0xf8, 0xaf, 0xd4, 0xad, 0xeb, 0x3c, 0xab, 0xe2, 0xff, 0xbe, 0x6c, 0x2b, 0xbd, 0xc9, 0xfc, 0xcf, 0x7b, 0x22, 0x7f, 0x4f, + 0x1e, 0xdd, 0xbb, 0x7d, 0xb4, 0xd6, 0xd6, 0x95, 0xd9, 0xbe, 0xf2, 0x2b, 0xf1, 0x1f, 0xc5, 0xbf, 0x12, 0x37, 0x2d, 0x4a, + 0x6f, 0x06, 0xf6, 0x9e, 0xac, 0x6d, 0x7b, 0xe3, 0xbf, 0x7b, 0xdf, 0x9f, 0x33, 0xe2, 0xff, 0xfd, 0x3c, 0xba, 0xab, 0xe6, + 0x70, 0xbd, 0x7d, 0xe5, 0xef, 0xee, 0xff, 0xef, 0x5b, 0xc9, 0x1d, 0xf5, 0x63, 0xa6, 0xa7, 0x7f, 0xb3, 0xff, 0x7f, 0xef, + 0xe7, 0xef, 0xc6, 0x7f, 0x57, 0x6d, 0x8f, 0x8d, 0x23, 0x93, 0x6a, 0x5f, 0xb9, 0x73, 0x95, 0x6c, 0xf7, 0xfc, 0x7f, 0xd5, + 0x37, 0x1b, 0xe9, 0xd1, 0x44, 0x1c, 0x1b, 0xff, 0x33, 0xab, 0x90, 0xeb, 0xc6, 0x0b, 0xef, 0x8c, 0xff, 0x6b, 0xfb, 0xdb, + 0x56, 0x76, 0x05, 0x3c, 0xad, 0xff, 0xdf, 0x75, 0x97, 0x6c, 0x6c, 0x8e, 0xc9, 0xbd, 0xc7, 0xea, 0xdc, 0xa5, 0x2e, 0x9f, + 0xbf, 0x3f, 0x9a, 0x47, 0x78, 0x5f, 0x8f, 0xff, 0xfa, 0x2a, 0xff, 0x68, 0x5a, 0x95, 0x7c, 0x6f, 0xfc, 0xbf, 0x7b, 0xa7, + 0x93, 0xca, 0x51, 0x7a, 0xda, 0xdf, 0x67, 0x77, 0x85, 0x7b, 0x7b, 0x81, 0x9f, 0xef, 0x36, 0x44, 0x53, 0xcf, 0xd1, 0x95, + 0xbf, 0xff, 0xcf, 0x73, 0xcb, 0xef, 0x78, 0x96, 0xbf, 0x13, 0x1f, 0xc9, 0xfd, 0xf4, 0xdf, 0x88, 0xff, 0xca, 0x91, 0x2b, + 0xff, 0x2b, 0x7b, 0x0d, 0x3b, 0xe3, 0xff, 0xbd, 0x16, 0x40, 0xde, 0x4d, 0x38, 0x71, 0x14, 0x03, 0xfc, 0x9e, 0x16, 0xc0, + 0x0e, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xee, 0x37, 0xb1, 0x7f, 0xce, + 0xcd, 0x55, 0xc9, 0x1a, 0x9f, 0x7f, 0x4f, 0x7a, 0x67, 0xc6, 0xfc, 0x71, 0x93, 0x85, 0xec, 0xfa, 0xb7, 0xfe, 0xfc, 0xa4, + 0x23, 0x1f, 0x6f, 0x34, 0xbe, 0xb5, 0x9e, 0xc9, 0xe5, 0x1d, 0x85, 0x6c, 0x03, 0x57, 0x6f, 0xc6, 0xe6, 0xae, 0x41, 0xee, + 0x18, 0xd1, 0x9e, 0xcf, 0x2c, 0xd2, 0xd9, 0x63, 0xfe, 0xf7, 0x9c, 0x9f, 0x67, 0xfa, 0x8d, 0xf2, 0x9b, 0xc6, 0x77, 0xb9, + 0xcc, 0xf2, 0xf9, 0x11, 0x2a, 0x39, 0xf3, 0xf2, 0x79, 0x36, 0x4f, 0xcf, 0x98, 0x3f, 0x9f, 0x79, 0x27, 0x6e, 0xea, 0xe4, + 0xf3, 0x5a, 0xfa, 0x24, 0x73, 0x44, 0x4f, 0x06, 0xa1, 0xda, 0x37, 0x8e, 0xe9, 0xda, 0x5a, 0xb9, 0xde, 0x99, 0x23, 0xc4, + 0xf4, 0xfb, 0xfc, 0x95, 0xfa, 0x1e, 0x93, 0xd7, 0xbd, 0xfe, 0x8d, 0x67, 0xb2, 0x10, 0x44, 0xa9, 0xa7, 0xeb, 0x2c, 0xc1, + 0xeb, 0x4f, 0xf2, 0x19, 0x33, 0xe3, 0x61, 0x7c, 0x75, 0xff, 0x74, 0x24, 0xdb, 0x9b, 0x4a, 0xbe, 0xba, 0x99, 0x5d, 0x33, + 0xe6, 0xc6, 0x88, 0xe3, 0x22, 0xbb, 0x52, 0x3e, 0xfa, 0x7f, 0xee, 0x6f, 0x62, 0x32, 0xfe, 0xa3, 0x98, 0x59, 0xa8, 0x1e, + 0x23, 0xd9, 0xf8, 0x9f, 0xbf, 0x0a, 0xbb, 0xe2, 0xbf, 0x92, 0xf5, 0xe0, 0xfd, 0x8c, 0xd9, 0xb5, 0x9e, 0x70, 0x6f, 0xfc, + 0xc7, 0x83, 0xf6, 0x6b, 0xa4, 0xe7, 0x2f, 0xa3, 0x90, 0xe1, 0xfc, 0xf9, 0xec, 0x22, 0x5a, 0xfb, 0xff, 0x71, 0x59, 0x26, + 0xf1, 0xc2, 0xf8, 0xbf, 0xb6, 0xdf, 0x5b, 0x2e, 0xfe, 0x67, 0x5a, 0xa7, 0xfd, 0xfd, 0x7f, 0xad, 0x5f, 0x3b, 0xb9, 0xff, + 0x7f, 0x27, 0x63, 0x76, 0x14, 0xe6, 0xd9, 0x95, 0xe3, 0xc6, 0xe4, 0xc8, 0xe0, 0xd9, 0x5c, 0x30, 0x1a, 0xe6, 0xab, 0x1d, + 0xf1, 0xdf, 0x3f, 0xc2, 0xae, 0xcc, 0xad, 0x6a, 0xfd, 0x7f, 0xb4, 0xce, 0xff, 0x23, 0xdd, 0xce, 0xcf, 0xc5, 0x7f, 0xe7, + 0x6e, 0x4b, 0x2b, 0x32, 0xe6, 0xe6, 0x77, 0x76, 0x7c, 0xab, 0xff, 0x1f, 0xa5, 0xfe, 0xbf, 0xd6, 0x7b, 0xcd, 0xd4, 0xca, + 0xd8, 0x90, 0xeb, 0x2e, 0x37, 0xfe, 0x5f, 0x3d, 0xca, 0xce, 0xcf, 0x28, 0x63, 0x53, 0xfb, 0xd4, 0x3d, 0xf7, 0xab, 0x45, + 0x4b, 0xa4, 0xc7, 0xd7, 0x3b, 0x33, 0xe6, 0x56, 0xd6, 0x9e, 0xcf, 0x8f, 0xff, 0xce, 0x3d, 0x4c, 0x2a, 0x77, 0x17, 0xa2, + 0xa1, 0x6f, 0x5e, 0xdd, 0xff, 0xcf, 0xce, 0xff, 0x2b, 0xb9, 0xf4, 0xf7, 0xac, 0xff, 0x8d, 0xa5, 0x6b, 0x3f, 0xd1, 0x7a, + 0x3f, 0x71, 0x1c, 0xd0, 0x7e, 0x77, 0x66, 0x89, 0x7f, 0x63, 0xfe, 0xdf, 0x95, 0x81, 0x7d, 0x94, 0xef, 0x09, 0xd5, 0xd7, + 0xff, 0x67, 0x6b, 0x60, 0x1c, 0xd3, 0xf7, 0x8f, 0xc7, 0x7b, 0xe8, 0xc4, 0x4b, 0xd1, 0x7f, 0x5a, 0xfc, 0x9f, 0xf2, 0x44, + 0x43, 0x47, 0xbb, 0x15, 0x2d, 0xad, 0x5b, 0x65, 0xdf, 0x96, 0xce, 0x71, 0xd4, 0xfc, 0xfc, 0x7f, 0xcd, 0xba, 0xfa, 0x1b, + 0xc7, 0x98, 0xb9, 0x23, 0x3b, 0x1f, 0xff, 0xb1, 0xbc, 0xe4, 0xe4, 0x23, 0xfe, 0x4e, 0x2b, 0x75, 0xde, 0xf1, 0xfe, 0xe6, + 0xda, 0x13, 0x1b, 0x9f, 0xb5, 0x13, 0xa1, 0xc4, 0xd1, 0xf3, 0x21, 0xd7, 0x03, 0xfe, 0xe6, 0xf9, 0xd0, 0xdf, 0xfa, 0x1c, + 0xbc, 0x92, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4e, 0x7d, 0x3b, 0xa4, 0x92, 0x59, + 0x72, 0x34, 0xbf, 0x8b, 0x9e, 0xcf, 0xad, 0x5f, 0x3d, 0xbb, 0xbb, 0xf7, 0xa5, 0x6b, 0xf9, 0x79, 0x6b, 0xe5, 0x34, 0x97, + 0x8f, 0x28, 0x97, 0x53, 0xed, 0x7e, 0xff, 0x83, 0x38, 0xf2, 0x6a, 0xde, 0x65, 0x75, 0x8d, 0x42, 0x3e, 0xd5, 0xce, 0xeb, + 0x35, 0x4a, 0x65, 0xb7, 0xab, 0x96, 0x3d, 0x7f, 0x3b, 0x34, 0x36, 0xbc, 0x4f, 0x59, 0x8b, 0x85, 0x5a, 0x6e, 0xc3, 0xb9, + 0xdc, 0x61, 0xb1, 0xf8, 0x9b, 0xe5, 0xca, 0x6f, 0x7e, 0x3f, 0x89, 0xfb, 0x6c, 0xab, 0xf1, 0xb9, 0xab, 0x59, 0xcd, 0xf8, + 0xde, 0x7d, 0xbd, 0xea, 0xb5, 0xe5, 0x84, 0x5a, 0xb6, 0x7e, 0x67, 0x89, 0x37, 0xde, 0x6e, 0xad, 0x66, 0xc4, 0x8d, 0xcf, + 0xbf, 0x73, 0x1a, 0x1f, 0xcd, 0x05, 0x50, 0xcb, 0x13, 0xb9, 0xeb, 0x5b, 0x55, 0x8e, 0x14, 0xa5, 0x3d, 0x9b, 0xc6, 0xf6, + 0xec, 0x10, 0xf9, 0xec, 0xe7, 0xa3, 0x94, 0xef, 0xb3, 0xfb, 0x93, 0xca, 0x15, 0xa9, 0xc7, 0xff, 0x55, 0x39, 0x55, 0x3e, + 0x99, 0xed, 0xff, 0xc7, 0xf2, 0x7d, 0x18, 0x4e, 0xb9, 0x9a, 0x77, 0xfd, 0x7f, 0xb4, 0xed, 0x98, 0xb4, 0xf7, 0x93, 0x1d, + 0xe5, 0xda, 0x11, 0x0b, 0xbb, 0xf6, 0xfb, 0x8b, 0x74, 0xad, 0x18, 0xe9, 0x1c, 0x7b, 0xf5, 0xd9, 0xd7, 0xae, 0x4f, 0x56, + 0xc4, 0x7f, 0x5c, 0xcc, 0x93, 0xbb, 0x77, 0x1d, 0xeb, 0xbe, 0x9a, 0x4f, 0x5a, 0x86, 0x2f, 0xc6, 0xff, 0x8e, 0xf8, 0x99, + 0x9d, 0xff, 0x47, 0x79, 0x37, 0x9d, 0x33, 0x6b, 0x4c, 0x3c, 0xcc, 0xe8, 0xfc, 0xdb, 0xe2, 0x7f, 0x6f, 0x19, 0x77, 0xb7, + 0xe6, 0xd7, 0x23, 0xec, 0xf1, 0xd1, 0xf8, 0x9f, 0xdd, 0xef, 0x6d, 0x7e, 0xee, 0x7a, 0xbf, 0xfe, 0xdf, 0xb9, 0xb2, 0x71, + 0x46, 0xfc, 0x9f, 0x12, 0xe5, 0xb9, 0x32, 0x5f, 0x1b, 0xff, 0xef, 0xc7, 0x50, 0x57, 0x1f, 0xf6, 0xde, 0xb9, 0x47, 0xdb, + 0xfc, 0xff, 0x7e, 0x97, 0xe4, 0xdc, 0xdd, 0x9d, 0xbd, 0xab, 0x49, 0x3b, 0x4b, 0xbd, 0x73, 0xcf, 0xe1, 0xa7, 0x63, 0x87, + 0xee, 0xf9, 0xee, 0x19, 0xfd, 0x7f, 0x88, 0xff, 0x05, 0x6b, 0xe1, 0x27, 0xf4, 0x92, 0xab, 0xee, 0xe5, 0xe5, 0xb3, 0xd8, + 0xf7, 0x7e, 0x32, 0x5b, 0x52, 0xf9, 0xfb, 0xff, 0x5f, 0x1f, 0xff, 0x3f, 0xd9, 0xe1, 0xe7, 0x5b, 0xf1, 0x1f, 0xc5, 0x15, + 0xc5, 0x33, 0xe2, 0x3f, 0x36, 0x8e, 0x6a, 0x57, 0xdc, 0xcb, 0x3f, 0x79, 0xfc, 0xdf, 0xbf, 0x13, 0xd4, 0xd7, 0xe3, 0xff, + 0x0b, 0x63, 0xe8, 0x35, 0x4f, 0xa1, 0xbc, 0x17, 0xff, 0x73, 0x77, 0x86, 0x4f, 0x1e, 0xff, 0x9f, 0x1e, 0xff, 0xb3, 0x57, + 0x25, 0x36, 0xcd, 0xff, 0x9f, 0x8e, 0x34, 0x7e, 0x7f, 0xfc, 0x8f, 0xad, 0x7b, 0xf7, 0xd7, 0xe7, 0x9b, 0xe3, 0xd0, 0x67, + 0x61, 0xce, 0x79, 0x8a, 0xe3, 0xfd, 0x99, 0xcd, 0xfc, 0xae, 0xa8, 0xeb, 0xef, 0xff, 0x8f, 0x65, 0xfd, 0x7f, 0xef, 0x93, + 0x2d, 0xbb, 0xee, 0xff, 0xef, 0x7d, 0xa2, 0xa8, 0xfb, 0x0c, 0xc5, 0xff, 0x37, 0xda, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xe2, 0x73, 0xf2, 0x2b, 0x72, 0xeb, 0xf7, 0xe7, 0xc3, 0x38, 0x3d, 0xb7, 0xfe, + 0xdd, 0xfb, 0x33, 0xe3, 0xd8, 0xdc, 0xfa, 0xe3, 0x51, 0x8e, 0xa2, 0xef, 0xe5, 0xd6, 0xf7, 0xee, 0xc7, 0xd3, 0xb7, 0x64, + 0xd6, 0xe5, 0xd6, 0xef, 0x7b, 0x87, 0xfa, 0xf4, 0xdc, 0xfa, 0xe3, 0x26, 0x13, 0xd1, 0xc9, 0xb9, 0xf5, 0xeb, 0x6f, 0x51, + 0x9d, 0x9a, 0x5b, 0x9f, 0xb5, 0xef, 0x4e, 0x3e, 0x6d, 0xfb, 0xe3, 0xc5, 0x6b, 0xf6, 0x46, 0x36, 0x84, 0x93, 0x6b, 0x64, + 0x3e, 0x5b, 0xd3, 0x8a, 0x16, 0xa5, 0xf3, 0x7d, 0xcd, 0xb3, 0x73, 0xeb, 0x7f, 0x3d, 0xc6, 0xeb, 0xd9, 0x58, 0xa3, 0x9c, + 0xf3, 0xbe, 0xef, 0x5d, 0xed, 0x48, 0x8d, 0x1b, 0xd7, 0xe6, 0xd6, 0xba, 0x6e, 0x47, 0xcf, 0xdd, 0x29, 0xe1, 0xdb, 0xb9, + 0xb5, 0xc5, 0x7f, 0x4f, 0xab, 0x1b, 0x4d, 0x51, 0xf7, 0xf4, 0x93, 0x7d, 0x59, 0x83, 0xfa, 0xe2, 0x3f, 0xda, 0x3f, 0xdb, + 0x9b, 0x5b, 0xab, 0xba, 0x9e, 0x20, 0xfe, 0x7f, 0x57, 0x3b, 0x90, 0x99, 0xd1, 0x3e, 0x29, 0xf7, 0x37, 0x6b, 0xc0, 0xce, + 0xdc, 0x5a, 0x5f, 0x8f, 0xff, 0x4a, 0xff, 0x20, 0xfe, 0x7f, 0xcf, 0xf8, 0xbf, 0xaf, 0x2f, 0xaf, 0xaf, 0xff, 0x7f, 0x79, + 0x6f, 0xad, 0xdf, 0x19, 0xff, 0x67, 0xe4, 0xd6, 0x15, 0xff, 0xef, 0x8c, 0xff, 0x6b, 0xfb, 0x13, 0xac, 0x58, 0xcd, 0xed, + 0x9d, 0x4d, 0x88, 0xff, 0xd5, 0x75, 0xe7, 0xa4, 0x9d, 0x21, 0xc4, 0x78, 0x7d, 0xfe, 0x5f, 0xdb, 0x13, 0xb4, 0xda, 0x02, + 0xec, 0xcb, 0xd5, 0xfa, 0x46, 0x6e, 0x7d, 0xb9, 0x75, 0x67, 0xae, 0xd7, 0xf5, 0xe8, 0xef, 0x9b, 0xf7, 0x63, 0x4e, 0x1f, + 0xff, 0xf7, 0xde, 0xab, 0xf9, 0xff, 0x35, 0xa5, 0xd5, 0x2b, 0xde, 0xab, 0xc6, 0xff, 0x2b, 0xda, 0xd8, 0x37, 0x4b, 0x63, + 0xcd, 0xbd, 0xa3, 0xfe, 0x33, 0x8c, 0xa6, 0xd1, 0x1f, 0xef, 0xb4, 0x1a, 0xb0, 0x66, 0x9c, 0xf1, 0x7e, 0x4b, 0x08, 0x7c, + 0xed, 0x49, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x93, 0xfc, 0xfb, 0x9f, 0x72, 0x00, 0xf1, 0x0f, 0xfc, 0x75, 0xf1, 0xff, 0x2f }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle genesisFontRecs[189] = { + { 4, 4, 4 , 16 }, + { 16, 4, 1 , 9 }, + { 25, 4, 3 , 3 }, + { 36, 4, 6 , 9 }, + { 50, 4, 5 , 13 }, + { 63, 4, 7 , 9 }, + { 78, 4, 5 , 9 }, + { 91, 4, 1 , 3 }, + { 100, 4, 3 , 9 }, + { 111, 4, 3 , 9 }, + { 122, 4, 5 , 5 }, + { 135, 4, 5 , 5 }, + { 148, 4, 2 , 3 }, + { 158, 4, 4 , 1 }, + { 170, 4, 1 , 1 }, + { 179, 4, 3 , 9 }, + { 190, 4, 5 , 9 }, + { 203, 4, 3 , 9 }, + { 214, 4, 5 , 9 }, + { 227, 4, 5 , 9 }, + { 240, 4, 5 , 9 }, + { 253, 4, 5 , 9 }, + { 266, 4, 5 , 9 }, + { 279, 4, 5 , 9 }, + { 292, 4, 5 , 9 }, + { 305, 4, 5 , 9 }, + { 318, 4, 1 , 7 }, + { 327, 4, 2 , 9 }, + { 337, 4, 3 , 5 }, + { 348, 4, 4 , 3 }, + { 360, 4, 3 , 5 }, + { 371, 4, 5 , 9 }, + { 384, 4, 7 , 9 }, + { 399, 4, 5 , 9 }, + { 412, 4, 5 , 9 }, + { 425, 4, 5 , 9 }, + { 438, 4, 5 , 9 }, + { 451, 4, 5 , 9 }, + { 464, 4, 5 , 9 }, + { 477, 4, 5 , 9 }, + { 490, 4, 5 , 9 }, + { 4, 28, 1 , 9 }, + { 13, 28, 5 , 9 }, + { 26, 28, 5 , 9 }, + { 39, 28, 5 , 9 }, + { 52, 28, 7 , 9 }, + { 67, 28, 5 , 9 }, + { 80, 28, 5 , 9 }, + { 93, 28, 5 , 9 }, + { 106, 28, 5 , 9 }, + { 119, 28, 5 , 9 }, + { 132, 28, 5 , 9 }, + { 145, 28, 5 , 9 }, + { 158, 28, 5 , 9 }, + { 171, 28, 5 , 9 }, + { 184, 28, 7 , 9 }, + { 199, 28, 5 , 9 }, + { 212, 28, 5 , 9 }, + { 225, 28, 5 , 9 }, + { 238, 28, 3 , 9 }, + { 249, 28, 3 , 9 }, + { 260, 28, 3 , 9 }, + { 271, 28, 5 , 3 }, + { 284, 28, 5 , 1 }, + { 297, 28, 2 , 2 }, + { 307, 28, 5 , 7 }, + { 320, 28, 5 , 9 }, + { 333, 28, 5 , 7 }, + { 346, 28, 5 , 9 }, + { 359, 28, 5 , 7 }, + { 372, 28, 4 , 9 }, + { 384, 28, 5 , 9 }, + { 397, 28, 5 , 9 }, + { 410, 28, 1 , 9 }, + { 419, 28, 5 , 11 }, + { 432, 28, 5 , 9 }, + { 445, 28, 2 , 9 }, + { 455, 28, 7 , 7 }, + { 470, 28, 5 , 7 }, + { 483, 28, 5 , 7 }, + { 496, 28, 5 , 9 }, + { 4, 52, 5 , 9 }, + { 17, 52, 5 , 7 }, + { 30, 52, 5 , 7 }, + { 43, 52, 4 , 8 }, + { 55, 52, 5 , 7 }, + { 68, 52, 5 , 7 }, + { 81, 52, 7 , 7 }, + { 96, 52, 5 , 7 }, + { 109, 52, 5 , 9 }, + { 122, 52, 5 , 7 }, + { 135, 52, 4 , 9 }, + { 147, 52, 1 , 9 }, + { 156, 52, 4 , 9 }, + { 168, 52, 6 , 2 }, + { 182, 52, 1 , 9 }, + { 191, 52, 5 , 11 }, + { 204, 52, 6 , 9 }, + { 218, 52, 6 , 9 }, + { 232, 52, 5 , 9 }, + { 245, 52, 5 , 12 }, + { 258, 52, 0 , 0 }, + { 266, 52, 5 , 10 }, + { 279, 52, 7 , 9 }, + { 294, 52, 0 , 0 }, + { 302, 52, 6 , 5 }, + { 316, 52, 5 , 3 }, + { 329, 52, 7 , 9 }, + { 344, 52, 0 , 0 }, + { 352, 52, 4 , 4 }, + { 364, 52, 5 , 7 }, + { 377, 52, 0 , 0 }, + { 385, 52, 0 , 0 }, + { 393, 52, 5 , 12 }, + { 406, 52, 5 , 9 }, + { 419, 52, 7 , 9 }, + { 434, 52, 1 , 1 }, + { 443, 52, 5 , 10 }, + { 456, 52, 0 , 0 }, + { 464, 52, 0 , 0 }, + { 472, 52, 6 , 5 }, + { 486, 52, 9 , 9 }, + { 4, 76, 9 , 7 }, + { 21, 76, 5 , 11 }, + { 34, 76, 5 , 9 }, + { 47, 76, 5 , 12 }, + { 60, 76, 5 , 12 }, + { 73, 76, 5 , 12 }, + { 86, 76, 6 , 12 }, + { 100, 76, 5 , 11 }, + { 113, 76, 5 , 13 }, + { 126, 76, 9 , 9 }, + { 143, 76, 5 , 12 }, + { 156, 76, 5 , 12 }, + { 169, 76, 5 , 12 }, + { 182, 76, 5 , 12 }, + { 195, 76, 5 , 11 }, + { 208, 76, 2 , 12 }, + { 218, 76, 2 , 12 }, + { 228, 76, 3 , 12 }, + { 239, 76, 3 , 11 }, + { 250, 76, 6 , 9 }, + { 264, 76, 6 , 12 }, + { 278, 76, 5 , 12 }, + { 291, 76, 5 , 12 }, + { 304, 76, 5 , 12 }, + { 317, 76, 6 , 12 }, + { 331, 76, 5 , 11 }, + { 344, 76, 5 , 5 }, + { 357, 76, 7 , 9 }, + { 372, 76, 5 , 12 }, + { 385, 76, 5 , 12 }, + { 398, 76, 5 , 12 }, + { 411, 76, 5 , 11 }, + { 424, 76, 5 , 12 }, + { 437, 76, 5 , 9 }, + { 450, 76, 5 , 9 }, + { 463, 76, 5 , 10 }, + { 476, 76, 5 , 10 }, + { 489, 76, 5 , 10 }, + { 4, 100, 6 , 10 }, + { 18, 100, 5 , 9 }, + { 31, 100, 5 , 11 }, + { 44, 100, 9 , 7 }, + { 61, 100, 5 , 10 }, + { 74, 100, 5 , 10 }, + { 87, 100, 5 , 10 }, + { 100, 100, 5 , 10 }, + { 113, 100, 5 , 9 }, + { 126, 100, 2 , 10 }, + { 136, 100, 2 , 10 }, + { 146, 100, 3 , 10 }, + { 157, 100, 3 , 9 }, + { 168, 100, 6 , 9 }, + { 182, 100, 6 , 10 }, + { 196, 100, 5 , 10 }, + { 209, 100, 5 , 10 }, + { 222, 100, 5 , 10 }, + { 235, 100, 6 , 10 }, + { 249, 100, 5 , 9 }, + { 262, 100, 5 , 5 }, + { 275, 100, 7 , 7 }, + { 290, 100, 5 , 10 }, + { 303, 100, 5 , 10 }, + { 316, 100, 5 , 10 }, + { 329, 100, 5 , 9 }, + { 342, 100, 5 , 12 }, + { 355, 100, 5 , 11 }, + { 368, 100, 5 , 11 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo genesisFontGlyphs[189] = { + { 32, 0, 0, 4, { 0 }}, + { 33, 2, 4, 5, { 0 }}, + { 34, 2, 4, 7, { 0 }}, + { 35, 1, 4, 8, { 0 }}, + { 36, 1, 2, 7, { 0 }}, + { 37, 1, 4, 9, { 0 }}, + { 38, 1, 4, 7, { 0 }}, + { 39, 2, 4, 5, { 0 }}, + { 40, 3, 4, 7, { 0 }}, + { 41, 1, 4, 7, { 0 }}, + { 42, 1, 4, 7, { 0 }}, + { 43, 1, 6, 7, { 0 }}, + { 44, 1, 12, 5, { 0 }}, + { 45, 1, 8, 6, { 0 }}, + { 46, 2, 12, 5, { 0 }}, + { 47, 1, 4, 5, { 0 }}, + { 48, 1, 4, 7, { 0 }}, + { 49, 2, 4, 7, { 0 }}, + { 50, 1, 4, 7, { 0 }}, + { 51, 1, 4, 7, { 0 }}, + { 52, 1, 4, 7, { 0 }}, + { 53, 1, 4, 7, { 0 }}, + { 54, 1, 4, 7, { 0 }}, + { 55, 1, 4, 7, { 0 }}, + { 56, 1, 4, 7, { 0 }}, + { 57, 1, 4, 7, { 0 }}, + { 58, 2, 6, 5, { 0 }}, + { 59, 1, 6, 5, { 0 }}, + { 60, 1, 6, 5, { 0 }}, + { 61, 1, 7, 6, { 0 }}, + { 62, 1, 6, 5, { 0 }}, + { 63, 1, 4, 7, { 0 }}, + { 64, 1, 4, 9, { 0 }}, + { 65, 1, 4, 7, { 0 }}, + { 66, 1, 4, 7, { 0 }}, + { 67, 1, 4, 7, { 0 }}, + { 68, 1, 4, 7, { 0 }}, + { 69, 1, 4, 7, { 0 }}, + { 70, 1, 4, 7, { 0 }}, + { 71, 1, 4, 7, { 0 }}, + { 72, 1, 4, 7, { 0 }}, + { 73, 2, 4, 5, { 0 }}, + { 74, 1, 4, 7, { 0 }}, + { 75, 1, 4, 7, { 0 }}, + { 76, 1, 4, 7, { 0 }}, + { 77, 1, 4, 9, { 0 }}, + { 78, 1, 4, 7, { 0 }}, + { 79, 1, 4, 7, { 0 }}, + { 80, 1, 4, 7, { 0 }}, + { 81, 1, 4, 7, { 0 }}, + { 82, 1, 4, 7, { 0 }}, + { 83, 1, 4, 7, { 0 }}, + { 84, 1, 4, 7, { 0 }}, + { 85, 1, 4, 7, { 0 }}, + { 86, 1, 4, 7, { 0 }}, + { 87, 1, 4, 9, { 0 }}, + { 88, 1, 4, 7, { 0 }}, + { 89, 1, 4, 7, { 0 }}, + { 90, 1, 4, 7, { 0 }}, + { 91, 3, 4, 7, { 0 }}, + { 92, 1, 4, 5, { 0 }}, + { 93, 1, 4, 7, { 0 }}, + { 94, 1, 4, 7, { 0 }}, + { 95, 0, 14, 5, { 0 }}, + { 96, 1, 4, 5, { 0 }}, + { 97, 1, 6, 7, { 0 }}, + { 98, 1, 4, 7, { 0 }}, + { 99, 1, 6, 7, { 0 }}, + { 100, 1, 4, 7, { 0 }}, + { 101, 1, 6, 7, { 0 }}, + { 102, 1, 4, 6, { 0 }}, + { 103, 1, 6, 7, { 0 }}, + { 104, 1, 4, 7, { 0 }}, + { 105, 2, 4, 5, { 0 }}, + { 106, 1, 4, 7, { 0 }}, + { 107, 1, 4, 7, { 0 }}, + { 108, 2, 4, 5, { 0 }}, + { 109, 1, 6, 9, { 0 }}, + { 110, 1, 6, 7, { 0 }}, + { 111, 1, 6, 7, { 0 }}, + { 112, 1, 6, 7, { 0 }}, + { 113, 1, 6, 7, { 0 }}, + { 114, 1, 6, 7, { 0 }}, + { 115, 1, 6, 7, { 0 }}, + { 116, 1, 5, 6, { 0 }}, + { 117, 1, 6, 7, { 0 }}, + { 118, 1, 6, 7, { 0 }}, + { 119, 1, 6, 9, { 0 }}, + { 120, 1, 6, 7, { 0 }}, + { 121, 1, 6, 7, { 0 }}, + { 122, 1, 6, 7, { 0 }}, + { 123, 2, 4, 7, { 0 }}, + { 124, 2, 4, 5, { 0 }}, + { 125, 1, 4, 7, { 0 }}, + { 126, 1, 4, 8, { 0 }}, + { 161, 2, 6, 5, { 0 }}, + { 162, 1, 4, 7, { 0 }}, + { 163, 1, 4, 8, { 0 }}, + { 8364, 1, 4, 8, { 0 }}, + { 165, 1, 4, 7, { 0 }}, + { 352, 1, 1, 7, { 0 }}, + { 167, 0, 0, 0, { 0 }}, + { 353, 1, 3, 7, { 0 }}, + { 169, 1, 4, 9, { 0 }}, + { 170, 0, 0, 0, { 0 }}, + { 171, 1, 6, 8, { 0 }}, + { 172, 1, 8, 7, { 0 }}, + { 174, 1, 4, 9, { 0 }}, + { 175, 0, 0, 0, { 0 }}, + { 176, 1, 4, 6, { 0 }}, + { 177, 1, 6, 7, { 0 }}, + { 178, 0, 0, 0, { 0 }}, + { 179, 0, 0, 0, { 0 }}, + { 381, 1, 1, 7, { 0 }}, + { 181, 1, 6, 7, { 0 }}, + { 182, 1, 4, 9, { 0 }}, + { 183, 2, 8, 5, { 0 }}, + { 382, 1, 3, 7, { 0 }}, + { 185, 0, 0, 0, { 0 }}, + { 186, 0, 0, 0, { 0 }}, + { 187, 1, 6, 8, { 0 }}, + { 338, 1, 4, 11, { 0 }}, + { 339, 1, 6, 11, { 0 }}, + { 376, 1, 2, 7, { 0 }}, + { 191, 1, 6, 7, { 0 }}, + { 192, 1, 1, 7, { 0 }}, + { 193, 1, 1, 7, { 0 }}, + { 194, 1, 1, 7, { 0 }}, + { 195, 1, 1, 7, { 0 }}, + { 196, 1, 2, 7, { 0 }}, + { 197, 1, 0, 7, { 0 }}, + { 198, 1, 4, 11, { 0 }}, + { 199, 1, 4, 7, { 0 }}, + { 200, 1, 1, 7, { 0 }}, + { 201, 1, 1, 7, { 0 }}, + { 202, 1, 1, 7, { 0 }}, + { 203, 1, 2, 7, { 0 }}, + { 204, 1, 1, 5, { 0 }}, + { 205, 2, 1, 5, { 0 }}, + { 206, 1, 1, 5, { 0 }}, + { 207, 1, 2, 5, { 0 }}, + { 208, 0, 4, 7, { 0 }}, + { 209, 1, 1, 7, { 0 }}, + { 210, 1, 1, 7, { 0 }}, + { 211, 1, 1, 7, { 0 }}, + { 212, 1, 1, 7, { 0 }}, + { 213, 1, 1, 7, { 0 }}, + { 214, 1, 2, 7, { 0 }}, + { 215, 1, 6, 7, { 0 }}, + { 216, 0, 4, 7, { 0 }}, + { 217, 1, 1, 7, { 0 }}, + { 218, 1, 1, 7, { 0 }}, + { 219, 1, 1, 7, { 0 }}, + { 220, 1, 2, 7, { 0 }}, + { 221, 1, 1, 7, { 0 }}, + { 222, 1, 4, 7, { 0 }}, + { 223, 1, 4, 7, { 0 }}, + { 224, 1, 3, 7, { 0 }}, + { 225, 1, 3, 7, { 0 }}, + { 226, 1, 3, 7, { 0 }}, + { 227, 1, 3, 7, { 0 }}, + { 228, 1, 4, 7, { 0 }}, + { 229, 1, 2, 7, { 0 }}, + { 230, 1, 6, 11, { 0 }}, + { 231, 1, 6, 7, { 0 }}, + { 232, 1, 3, 7, { 0 }}, + { 233, 1, 3, 7, { 0 }}, + { 234, 1, 3, 7, { 0 }}, + { 235, 1, 4, 7, { 0 }}, + { 236, 1, 3, 5, { 0 }}, + { 237, 2, 3, 5, { 0 }}, + { 238, 1, 3, 5, { 0 }}, + { 239, 1, 4, 5, { 0 }}, + { 240, 1, 4, 7, { 0 }}, + { 241, 1, 3, 7, { 0 }}, + { 242, 1, 3, 7, { 0 }}, + { 243, 1, 3, 7, { 0 }}, + { 244, 1, 3, 7, { 0 }}, + { 245, 1, 3, 7, { 0 }}, + { 246, 1, 4, 7, { 0 }}, + { 247, 1, 6, 7, { 0 }}, + { 248, 0, 6, 7, { 0 }}, + { 249, 1, 3, 7, { 0 }}, + { 250, 1, 3, 7, { 0 }}, + { 251, 1, 3, 7, { 0 }}, + { 252, 1, 4, 7, { 0 }}, + { 253, 1, 3, 7, { 0 }}, + { 254, 1, 4, 7, { 0 }}, + { 255, 1, 4, 7, { 0 }}, +}; + +// Style loading function: Genesis +static void GuiLoadStyleGenesis(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < GENESIS_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(genesisStyleProps[i].controlId, genesisStyleProps[i].propertyId, genesisStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int genesisFontDataSize = 0; + unsigned char *data = DecompressData(genesisFontData, GENESIS_STYLE_FONT_ATLAS_COMP_SIZE, &genesisFontDataSize); + Image imFont = { data, 512, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 16; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, genesisFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, genesisFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 510, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/genesis/style_genesis.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/genesis/style_genesis.png new file mode 100644 index 0000000..37dfa85 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/genesis/style_genesis.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/genesis/style_genesis.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/genesis/style_genesis.rgs new file mode 100644 index 0000000..1d12f67 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/genesis/style_genesis.rgs differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/PixelIntv.otf b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/PixelIntv.otf new file mode 100644 index 0000000..e8c54a7 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/PixelIntv.otf differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/README.md b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/README.md new file mode 100644 index 0000000..da97773 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/README.md @@ -0,0 +1,27 @@ +## style: jungle + +Sunset in the jungle, trees do not let to see the last rays of sun on the horizon, small creek in the path, mug on the shoes, a touch of danger and the adventure feeling, get into your jeep and drive with this style. + +![jungle style table](style_jungle.png) + +## style: provided files + +Several options are provided to add the style to a `raygui` application, choose the one that better fits the project. + +| file name | description | +| :-------- | :---------- | +| `style_jungle.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) | +| `style_jungle.txt.rgs` | Text style file, no font data, requires external font provided | +| `style_jungle.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) | +| `style_jungle.h` | Embeddable style as code file, self-contained, includes font data | +| `style_jungle.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data | + +## screenshot + +![jungle style screen](screenshot.png) + +## about font + +"Pixel Intv" font by [Pixel Sagas](http://www.pixelsagas.com) (Neale and Shayna Davidson). + +100% free font, downloaded from dafont.com: [pixel-intv](https://www.dafont.com/pixel-intv.font) diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/charset.txt b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/charset.txt new file mode 100644 index 0000000..611a673 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/charset.txt @@ -0,0 +1 @@ + !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/font_readme.txt b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/font_readme.txt new file mode 100644 index 0000000..b4e6c6e --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/font_readme.txt @@ -0,0 +1,47 @@ +Shareware/ Font License + +Pixel Sagas Freeware Fonts EULA (End User License Agreement) and Software Inclusion Agreement + +"Purchaser" and "User" may be used interchangeably in this agreement. + +"Pixel Sagas" and "Neale Davidson" may be used interchangeably in this agreement. These all refer to the intellectual and legal property of Neale Davidson. + +Usage + +Pixel Saga's Shareware Fonts are free to use for personal, non-commercial purposes. No payment is necessary to use Pixel Saga's Freeware Fonts for personal use, and there is no limit to the amount of prints, pages, or other medium to be produced using them. However, you cannot offer the font for commercial sale, or offer for direct download. The inclusion othe font name and/or site URL in the credits or documentation when it is used is appreciated, but this is not mandatory. + +Payment + +Payment is not required for the use of Pixel Saga's Shareware Fonts. Commercial use requires a modest fee which can be paid through the pixelsagas.com web site through Paypal.com's services. The transaction receipt for any shareware "commercial license" purchase will suffice as proof of license. + +Support + +Font installation help is available at http://www.pixelsagas.com. If you experience problems with any Pixel Saga's Freeware font (such as spacing issues or missing characters), please verify that you have the correct and current version of the fonts. In the case of Freeware fonts, downloading the font directly from the Pixel Sagas site will ensure that the font files have not been altered. + +Software Inclusion Agreement + +Pixel Saga's software products are protected by copyright laws and International copyright treaties, as well as other intellectual property laws and treaties. All Pixel Saga's software products are licensed, not sold. + +1) GRANT OF LICENSE + +This document grants the user the following rights: + +Installation and Use. The user may install and use an unlimited number of copies of the software product. The user may not offer Pixel Sagas freeware fonts for direct download unless the user has received explicit, written permission from Neale Davidson. Otherwise please direct users to the http://www.pixelsagas.com website. Pixel Sagas freeware fonts may, however, be embedded for web, publication, or general software use. + +2) WARRANTIES + +None + +Pixel Sagas expressly disclaims any warranty for the software product. The software product and any related documentation is provided "as is" without warranty of any kind, either express or implied, including, without limitation, the implied warranties or merchantability, fitness for a particular purpose, or non-infringement. The entire risk arising out of use or performance of the software product remains with the user. + +No Liability For Consequential Damages. + +In no event shall Neale Davidson or Pixel Sagas be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or any other pecuniary loss) arising out of the use of or inability to use this product, even if Pixel Sagas has been advised of the possibility of such damages. + +3) MISCELLANEOUS + +Should the user have any questions concerning this document or you desire to contact Neale Davidson for any reason, please email jaynz@pixelsagas.com . + +Governing Law + +This agreement is governed by and subject to the laws of the United States of America. diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/screenshot.old.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/screenshot.old.png new file mode 100644 index 0000000..a8a7dbb Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/screenshot.old.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/screenshot.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/screenshot.png new file mode 100644 index 0000000..2b378f3 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/screenshot.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/style_jungle.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/style_jungle.h new file mode 100644 index 0000000..7311a6e --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/style_jungle.h @@ -0,0 +1,579 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleJungle(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define JUNGLE_STYLE_PROPS_COUNT 17 + +// Custom style name: Jungle +static const GuiStyleProp jungleStyleProps[JUNGLE_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0x60827dff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0x2c3334ff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0x82a29fff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0x5f9aa8ff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0x334e57ff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0x6aa9b8ff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0xa9cb8dff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0x3b6357ff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0x97af81ff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0x5b6462ff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0x2c3334ff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0x666b69ff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x0000000c }, // DEFAULT_TEXT_SIZE + { 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING + { 0, 18, (int)0x638465ff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0x2b3a3aff }, // DEFAULT_BACKGROUND_COLOR + { 0, 20, (int)0x00000006 }, // DEFAULT_TEXT_LINE_SPACING +}; + +// WARNING: This style uses a custom font: "PixelIntv.otf" (size: 12, spacing: 0) + +#define JUNGLE_STYLE_FONT_ATLAS_COMP_SIZE 2059 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char jungleFontData[JUNGLE_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0x9d, 0xbd, 0x8e, 0x1d, 0x35, 0x18, 0x86, 0x8d, 0x39, 0x1d, 0x25, 0xa2, 0x00, 0x09, 0x91, 0x06, 0x89, 0x86, 0x86, 0x28, + 0x12, 0x74, 0x7b, 0x01, 0xd4, 0x08, 0x51, 0x20, 0x2a, 0x1a, 0xe0, 0x1e, 0xc8, 0x95, 0xa5, 0xa1, 0xe7, 0x06, 0xb8, 0x0b, + 0x2e, 0xe0, 0x8b, 0x36, 0x9b, 0xdd, 0xec, 0xee, 0x99, 0xb1, 0xfd, 0xfd, 0xd8, 0x9e, 0x9f, 0x67, 0x1f, 0x25, 0x52, 0xc6, + 0x67, 0x66, 0x6c, 0xbf, 0xb6, 0x67, 0x36, 0xdf, 0x7b, 0x3e, 0x4b, 0x02, 0x00, 0x00, 0x00, 0xb8, 0xe2, 0xf6, 0x67, 0xf9, + 0xd8, 0x52, 0x49, 0x7a, 0x5f, 0xd2, 0x7e, 0xad, 0xfb, 0xe3, 0x77, 0x25, 0x79, 0xf5, 0x13, 0xcb, 0x57, 0xcc, 0x2b, 0x75, + 0x58, 0xab, 0xf5, 0x7a, 0xcd, 0x92, 0xaa, 0x64, 0xfd, 0xfa, 0xeb, 0xfd, 0x95, 0x14, 0x6d, 0x78, 0xfa, 0x93, 0x14, 0x6d, + 0x29, 0x9f, 0xd7, 0x5b, 0xff, 0x72, 0x1f, 0xac, 0x97, 0xdd, 0xfd, 0xb9, 0xed, 0x89, 0xac, 0xb8, 0xe6, 0xfa, 0xe7, 0x93, + 0x6a, 0x04, 0xea, 0x47, 0x86, 0xae, 0x77, 0x4b, 0x9f, 0xae, 0xb5, 0x41, 0x94, 0x35, 0xb8, 0x3f, 0xde, 0x53, 0xff, 0xf4, + 0x70, 0x8f, 0xf6, 0xf9, 0x5f, 0x53, 0x45, 0xe4, 0xb2, 0xd8, 0x13, 0xa9, 0xa8, 0x4d, 0x36, 0xdc, 0x29, 0x62, 0x34, 0xa7, + 0xa0, 0xde, 0xcd, 0xc5, 0x36, 0x88, 0x41, 0x7f, 0xdb, 0x08, 0x8d, 0xba, 0x8e, 0x6d, 0xfe, 0xdf, 0x72, 0x79, 0x37, 0x02, + 0xca, 0x57, 0xf5, 0xd7, 0x38, 0x6a, 0xfe, 0xa7, 0xae, 0xea, 0x7b, 0xf4, 0x1f, 0xb1, 0xfe, 0x97, 0x3f, 0x5f, 0xee, 0xb3, + 0xe5, 0xeb, 0xe5, 0xf7, 0xf3, 0x5f, 0xff, 0xf4, 0x8c, 0xd0, 0x5f, 0xff, 0xfc, 0xef, 0xab, 0x7e, 0xc4, 0xfa, 0xbf, 0xc5, + 0xf7, 0xc8, 0xda, 0x73, 0x7c, 0x79, 0xec, 0x48, 0xf7, 0xf9, 0x3f, 0x83, 0x92, 0xfa, 0xb5, 0xf7, 0x3f, 0x71, 0xac, 0xb3, + 0xbd, 0xe7, 0xbf, 0xe5, 0x5a, 0xf7, 0x3d, 0x21, 0x86, 0xf9, 0xb9, 0x57, 0xfd, 0x4b, 0xea, 0x43, 0xc4, 0x5a, 0xa3, 0x79, + 0xca, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x33, 0x62, 0x52, 0x8e, 0xbf, 0x47, + 0x46, 0x22, 0x7b, 0x95, 0xb5, 0xbb, 0x0d, 0x34, 0xce, 0x95, 0x6c, 0xe8, 0xb1, 0x59, 0xfd, 0xd2, 0xcb, 0xed, 0x97, 0xd4, + 0xde, 0x8c, 0x96, 0xda, 0x58, 0xef, 0xe7, 0xd1, 0x3f, 0x2b, 0x63, 0xaf, 0x65, 0x87, 0xde, 0x9a, 0x9f, 0x71, 0x3d, 0x72, + 0xed, 0x6d, 0x9f, 0xb6, 0x4c, 0xb7, 0x02, 0xa4, 0x21, 0xf3, 0xbf, 0xcd, 0xc3, 0xd4, 0xc7, 0xdd, 0xb8, 0xec, 0x33, 0x2b, + 0xd5, 0xf5, 0xa2, 0x76, 0x14, 0x7e, 0x88, 0x36, 0xf7, 0x1d, 0xdf, 0xd1, 0xae, 0x4f, 0xab, 0xa3, 0xc4, 0x32, 0x26, 0x2d, + 0x0e, 0xd6, 0x88, 0xf5, 0x3f, 0x66, 0xfe, 0x97, 0xc6, 0xa9, 0x3c, 0xfb, 0x13, 0xb3, 0x8e, 0xcf, 0xd2, 0xbf, 0xc7, 0x5a, + 0x9d, 0x1a, 0x56, 0x05, 0x6b, 0x5d, 0x6c, 0xcf, 0x7f, 0x8b, 0x53, 0xa7, 0xe4, 0x56, 0xb2, 0xbf, 0x4f, 0xcd, 0x98, 0xff, + 0x9e, 0x39, 0x6e, 0x5b, 0xff, 0xcb, 0xfa, 0xc7, 0xb9, 0xdb, 0x64, 0xca, 0xdb, 0x74, 0xcb, 0x1c, 0xdb, 0xd6, 0xf3, 0x1f, + 0x22, 0xfd, 0x8c, 0xf3, 0x7e, 0x9f, 0x42, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe8, 0xeb, 0xc7, 0x1b, 0xe5, 0x29, 0x91, 0xc6, 0x2c, 0x3e, 0xeb, 0x7e, 0xad, 0x51, 0x6e, 0xbd, 0xf1, 0xfd, 0x1d, 0xed, + 0xfb, 0x88, 0x88, 0x49, 0x5b, 0x32, 0x98, 0xf9, 0xbd, 0x88, 0xb2, 0x09, 0x47, 0x5e, 0x8f, 0x7e, 0x9b, 0xa9, 0xbf, 0xa5, + 0x3e, 0x76, 0xfd, 0xc5, 0x98, 0x61, 0xb0, 0x96, 0x19, 0x66, 0x5b, 0xfa, 0x5b, 0x5c, 0x07, 0x1e, 0xfd, 0xeb, 0x6b, 0x55, + 0x2a, 0xe8, 0xa1, 0x5f, 0xe3, 0xad, 0xfa, 0x8b, 0x31, 0xef, 0x63, 0x9f, 0xa7, 0x58, 0x1f, 0xfd, 0x2d, 0xfd, 0x76, 0x94, + 0xf5, 0xbf, 0x7e, 0xcd, 0x6c, 0x5c, 0xff, 0xa5, 0xba, 0xaa, 0x48, 0xb8, 0x1b, 0x55, 0x3f, 0xa7, 0x5a, 0xfb, 0xe7, 0xbc, + 0xfa, 0xa7, 0x2e, 0xfa, 0xf7, 0xb9, 0xe3, 0x7e, 0x9e, 0xff, 0x96, 0xec, 0xd5, 0x33, 0x7c, 0x6e, 0x3e, 0x6f, 0x78, 0xad, + 0x74, 0x44, 0xcf, 0xf4, 0x5b, 0xff, 0x71, 0x01, 0xee, 0xc7, 0x25, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x30, 0x22, 0x46, 0x61, 0x8f, 0x9d, 0xf5, 0x88, 0x00, 0x5e, 0x1f, 0xcf, 0x0d, 0x31, 0xcc, 0xe7, 0xc7, + 0xf3, 0x8a, 0x63, 0x44, 0x94, 0x39, 0xff, 0x6c, 0xfb, 0xf1, 0xb6, 0xe6, 0x41, 0xb3, 0x3b, 0x08, 0x23, 0xe2, 0x80, 0xe3, + 0xf5, 0x4f, 0x4d, 0xf1, 0xd8, 0x6b, 0x25, 0xb3, 0xc1, 0x33, 0x94, 0x95, 0x19, 0x9f, 0x4a, 0x19, 0xa2, 0xf4, 0x6e, 0xa6, + 0x7a, 0x2f, 0x58, 0x72, 0xdd, 0xd5, 0xae, 0x66, 0xdb, 0xa1, 0xb8, 0xe4, 0x8e, 0xa9, 0x79, 0x59, 0xf4, 0x2d, 0xcf, 0xea, + 0xb6, 0xe5, 0x86, 0x35, 0xa0, 0xbf, 0x47, 0x3a, 0xa9, 0xe7, 0xa3, 0xcf, 0x77, 0xd7, 0x5f, 0xff, 0xd4, 0xe0, 0xf1, 0x8b, + 0x76, 0xa4, 0x48, 0x65, 0xf7, 0x5b, 0xcb, 0x08, 0xe8, 0xad, 0x7f, 0xad, 0xad, 0x76, 0x97, 0x50, 0x0a, 0x1d, 0x37, 0xd1, + 0xfa, 0xb7, 0x8c, 0xd3, 0xe8, 0x11, 0x6c, 0x19, 0x01, 0x63, 0xe6, 0xbf, 0xa8, 0xf5, 0x2f, 0xaf, 0x0d, 0xf1, 0xbd, 0x67, + 0x71, 0x01, 0xd9, 0x56, 0x14, 0xaf, 0x5b, 0xcd, 0xa2, 0x62, 0x36, 0xad, 0x1c, 0x23, 0xde, 0xa0, 0x6d, 0x7b, 0x55, 0x47, + 0x3b, 0x36, 0x6d, 0x3d, 0x31, 0x5e, 0x7f, 0x31, 0xef, 0xf8, 0x9d, 0x37, 0xb7, 0xfb, 0xb5, 0x6d, 0xd6, 0xd9, 0x1d, 0x7b, + 0xf1, 0xf3, 0x7f, 0x7b, 0xdf, 0x46, 0x1b, 0x71, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x39, 0x73, 0x14, 0xe8, 0x33, 0xd5, 0xd4, 0xcf, 0xb0, 0xee, 0x9d, 0x35, 0x72, 0xef, 0xdc, 0x5e, 0xfb, 0xdb, 0xd9, + 0xf3, 0x82, 0x49, 0x97, 0x1d, 0xe0, 0xe2, 0xe3, 0x66, 0xbe, 0x2c, 0x66, 0xb5, 0x1e, 0xb2, 0x66, 0xdc, 0xd2, 0x7a, 0x30, + 0x3c, 0xbe, 0x1e, 0xab, 0xe7, 0x23, 0xde, 0x87, 0x17, 0xe3, 0x6d, 0xb3, 0xcd, 0x7f, 0x9b, 0x2f, 0x64, 0x6b, 0xfa, 0xa7, + 0x41, 0xfe, 0x3c, 0x8f, 0xfe, 0xde, 0xdd, 0x9f, 0xed, 0x8e, 0x2c, 0x7d, 0xaf, 0x1e, 0x41, 0xff, 0x36, 0xf7, 0xae, 0xc5, + 0x47, 0x18, 0xed, 0xc3, 0x9b, 0xa5, 0xbf, 0x98, 0xf6, 0xce, 0xf5, 0xe8, 0xef, 0xf3, 0xcb, 0x8f, 0x9b, 0xff, 0xf6, 0x3b, + 0xa6, 0x2e, 0x3b, 0xa3, 0x7b, 0x67, 0xab, 0x2e, 0x53, 0xe3, 0x0c, 0xa7, 0x56, 0xbc, 0x5f, 0xae, 0x97, 0xb3, 0x6b, 0xae, + 0x7b, 0x31, 0xca, 0xbf, 0xea, 0xcd, 0xfe, 0x3d, 0x43, 0x7f, 0xbc, 0x63, 0xc7, 0x1e, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x8b, 0xe3, 0xc4, 0xed, 0x47, 0xa5, 0xcd, 0xea, 0x26, 0x8b, 0x19, 0x3d, + 0xac, 0xb9, 0x63, 0xb4, 0xde, 0x0a, 0x4d, 0xec, 0x5c, 0x13, 0xbb, 0xcc, 0x8f, 0x3e, 0x7b, 0xed, 0x83, 0xf8, 0x5e, 0x5e, + 0x3c, 0xf0, 0x52, 0x3e, 0x5b, 0xcd, 0x72, 0xb2, 0xd4, 0x33, 0xb5, 0x73, 0xcb, 0x77, 0xb6, 0x38, 0x00, 0x74, 0xb9, 0xda, + 0x74, 0x47, 0xb3, 0xb2, 0x9e, 0x16, 0xd7, 0x85, 0x2f, 0x43, 0x9f, 0xf5, 0xb3, 0xf9, 0x89, 0x92, 0x4f, 0x79, 0xf5, 0xa4, + 0x77, 0x5f, 0x2e, 0xf6, 0x78, 0x5e, 0xc9, 0x75, 0x54, 0x3b, 0xb7, 0x7c, 0x67, 0xad, 0xfe, 0x59, 0x9d, 0xab, 0x4d, 0xaf, + 0x4e, 0x8c, 0xaf, 0xd0, 0x96, 0x15, 0xc7, 0xa2, 0x7f, 0x5b, 0xfd, 0x1f, 0xaf, 0xac, 0xcf, 0x4b, 0x5f, 0x14, 0xfe, 0x75, + 0x77, 0xf6, 0xe5, 0xe1, 0x6f, 0xfd, 0xb9, 0xa5, 0x3b, 0xeb, 0x9d, 0x3c, 0x36, 0x17, 0x97, 0x77, 0x04, 0x44, 0x66, 0x53, + 0x4c, 0xae, 0x0c, 0xad, 0x36, 0xc7, 0x83, 0x3c, 0xd9, 0x5b, 0x5e, 0xab, 0x61, 0x69, 0xfe, 0xb7, 0xe9, 0xbf, 0x76, 0xe7, + 0x64, 0xf4, 0xc7, 0xc9, 0x46, 0xe6, 0x7f, 0x8f, 0xac, 0x78, 0xa2, 0x9a, 0x27, 0xad, 0x6b, 0x85, 0x67, 0xfe, 0x97, 0x9e, + 0xff, 0xf1, 0xfa, 0x5b, 0x5d, 0x70, 0xa3, 0xf5, 0x4f, 0x66, 0x9f, 0xaa, 0xf5, 0xad, 0xd1, 0xbe, 0x02, 0x94, 0x9f, 0xc2, + 0x75, 0xfd, 0xd7, 0xa9, 0xeb, 0x6f, 0x79, 0xfe, 0xcb, 0x4e, 0xf4, 0x4f, 0x0e, 0x67, 0x6d, 0x94, 0x1f, 0xd5, 0xff, 0xfe, + 0xdf, 0x53, 0x7f, 0xfd, 0xfb, 0x7f, 0xac, 0xb3, 0xd2, 0x96, 0xd5, 0x71, 0x4f, 0xdf, 0x94, 0xf3, 0xb7, 0xe6, 0xd7, 0x47, + 0xbf, 0xc3, 0xbd, 0x92, 0x1f, 0x86, 0x9d, 0x0b, 0x31, 0x8e, 0x57, 0x3c, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xb0, 0x75, 0xea, 0x5e, 0xb4, 0xcf, 0x17, 0xe3, 0x48, 0xb5, 0xf3, 0xbc, 0xe5, 0x5a, 0x97, 0xda, 0xd7, + 0xf2, 0xad, 0x7c, 0x79, 0x75, 0xf4, 0x8d, 0xbc, 0x91, 0xdf, 0xdc, 0x7d, 0x50, 0x2b, 0xbf, 0x8b, 0xb4, 0x2d, 0xc7, 0xdb, + 0x96, 0x7e, 0x2c, 0x9f, 0xd1, 0xc7, 0xb5, 0xdb, 0xa2, 0x7f, 0x35, 0x3f, 0xd9, 0x8f, 0x72, 0x23, 0x7f, 0x1a, 0xce, 0xf3, + 0x96, 0x6b, 0xf4, 0xff, 0x42, 0xfe, 0x93, 0x7f, 0xe5, 0xb5, 0x7c, 0xb5, 0x78, 0xd6, 0xdf, 0xee, 0x3e, 0xf0, 0xf8, 0xf5, + 0x34, 0x3b, 0x21, 0xc7, 0x45, 0x18, 0xdb, 0xa3, 0xff, 0xb5, 0x78, 0xf2, 0x2f, 0xf2, 0x91, 0xfc, 0xb4, 0xe0, 0x44, 0xab, + 0x9d, 0xe7, 0x2d, 0xd7, 0xe8, 0xff, 0x97, 0x88, 0xfc, 0x23, 0xbf, 0xcb, 0xc7, 0x57, 0x25, 0x37, 0x72, 0xd3, 0x70, 0x6d, + 0x7f, 0x5d, 0x2f, 0xef, 0xea, 0x75, 0x71, 0xee, 0x84, 0x1d, 0x39, 0xff, 0xa3, 0xfc, 0x04, 0x9f, 0xca, 0xcf, 0xf2, 0x5d, + 0x87, 0x3e, 0x8b, 0xd4, 0xff, 0x1b, 0xf9, 0x7f, 0x45, 0xff, 0x98, 0x3e, 0xf0, 0xf8, 0xf5, 0xae, 0xb5, 0x8d, 0x71, 0x16, + 0x48, 0x63, 0x26, 0x5d, 0x6f, 0xdb, 0x7b, 0xf5, 0x99, 0x45, 0xff, 0xf5, 0x36, 0x7d, 0x22, 0xaf, 0x27, 0xea, 0x5f, 0x7b, + 0xfe, 0x27, 0x45, 0xce, 0x58, 0x8d, 0x1b, 0x35, 0xc2, 0xa9, 0xb2, 0x27, 0xfd, 0x4b, 0xe5, 0x7f, 0x4c, 0xd4, 0x7f, 0x8c, + 0x6b, 0xa8, 0xfd, 0xba, 0xe8, 0xbf, 0x2d, 0xfd, 0x2d, 0xef, 0xf6, 0x9e, 0xf5, 0x50, 0x73, 0x2f, 0xab, 0x9f, 0xac, 0x76, + 0x9e, 0xb7, 0x5c, 0x8b, 0x47, 0xff, 0xd1, 0x75, 0xdd, 0x8f, 0x53, 0x11, 0xce, 0xed, 0x54, 0x05, 0xf4, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3d, 0x93, 0x2b, 0xb9, 0xdf, 0x72, 0xa1, 0xc4, 0xe2, 0x67, 0x68, 0xdb, 0x01, + 0x58, 0x8c, 0x39, 0x09, 0x73, 0x68, 0x3b, 0xeb, 0x6d, 0x19, 0x77, 0xbf, 0x52, 0xcb, 0x4b, 0x7a, 0xd4, 0xff, 0xbf, 0x38, + 0x17, 0x4a, 0xb2, 0x3a, 0x77, 0x9f, 0x6f, 0x07, 0x58, 0x9f, 0xb7, 0x21, 0x9b, 0x3c, 0x91, 0xa5, 0x76, 0x6e, 0xe7, 0x7e, + 0xe5, 0xb2, 0x3c, 0x24, 0xe7, 0xcb, 0xec, 0xb8, 0xc5, 0x99, 0x63, 0x1a, 0x52, 0x75, 0x41, 0x8f, 0xf3, 0x11, 0xf4, 0x2e, + 0xb3, 0xe6, 0xf9, 0xdc, 0x62, 0x5b, 0x22, 0xcb, 0xd6, 0xe7, 0xbf, 0x6d, 0x7e, 0xd8, 0xd7, 0x9b, 0xb1, 0x65, 0x1a, 0xdf, + 0xdb, 0xa8, 0xb2, 0xd1, 0xf7, 0x8c, 0xf2, 0x7c, 0x1d, 0x41, 0x7f, 0x4b, 0x86, 0xd0, 0xa3, 0xeb, 0x2f, 0xc1, 0x99, 0xf3, + 0x66, 0xae, 0x6f, 0xbe, 0x6b, 0xa7, 0x21, 0x65, 0x33, 0xf4, 0x6f, 0xd9, 0x23, 0x7e, 0xaf, 0xf3, 0x5f, 0x5b, 0xe7, 0xb3, + 0xcd, 0xff, 0xb6, 0xef, 0x47, 0x1c, 0x5d, 0x7f, 0x41, 0xff, 0x40, 0xcf, 0xd7, 0x1e, 0xe7, 0xff, 0x59, 0xdf, 0xff, 0xdb, + 0xc6, 0x21, 0x9e, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0xe7, 0x61, 0xb3, 0x7a, 0x03, 0xdb, + 0xbc, 0x6f, 0xdb, 0xf0, 0xfd, 0x65, 0xd3, 0x6e, 0x62, 0xe5, 0x36, 0xd8, 0xbc, 0x64, 0x7e, 0xdf, 0x57, 0xbc, 0x87, 0xcd, + 0xda, 0xaf, 0xf6, 0x1c, 0x59, 0xa3, 0x7d, 0x7f, 0xa5, 0x5d, 0x71, 0xad, 0xbb, 0x4d, 0xdb, 0xc6, 0xf0, 0x7a, 0x1b, 0xf6, + 0xec, 0x01, 0x5c, 0x3a, 0x9e, 0x77, 0xb0, 0xfb, 0xd6, 0xac, 0xd8, 0xd7, 0x11, 0x62, 0x66, 0xa9, 0x5a, 0x92, 0x37, 0xef, + 0x53, 0xaa, 0x97, 0x8d, 0xf5, 0xa7, 0x1c, 0xc5, 0xff, 0x75, 0xf4, 0xb2, 0xf1, 0x8e, 0x81, 0x7d, 0xc5, 0xff, 0xf7, 0xa4, + 0xb1, 0xcd, 0xbf, 0xcb, 0xfc, 0xf7, 0x3c, 0xa7, 0xb6, 0x36, 0x36, 0xb4, 0x1e, 0xad, 0xda, 0xb3, 0xc1, 0x52, 0x76, 0x16, + 0xff, 0xcf, 0x96, 0xe6, 0xf8, 0x96, 0xde, 0xc3, 0xd0, 0xbf, 0x5f, 0x3d, 0x8f, 0xf2, 0x3d, 0xa4, 0xbd, 0xf8, 0xdb, 0xb6, + 0xd4, 0x86, 0xb3, 0x7f, 0x0f, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xc1, 0x98, 0x3c, 0x7e, + 0x5b, 0x77, 0xf3, 0x8d, 0xbd, 0x9f, 0x3d, 0x8b, 0x5f, 0x0e, 0xd8, 0xf1, 0x37, 0xca, 0xab, 0xd7, 0xe2, 0x75, 0xb4, 0x46, + 0x57, 0x8e, 0x9c, 0xc5, 0x2f, 0x15, 0x47, 0x46, 0xd9, 0xcd, 0x69, 0x1b, 0xa7, 0x33, 0x63, 0x4a, 0xa2, 0x8e, 0x92, 0x1f, + 0xdf, 0x6d, 0x1d, 0x1f, 0x01, 0x8b, 0xa8, 0x4d, 0x6c, 0x99, 0xcf, 0xcb, 0x34, 0xc3, 0x75, 0xa8, 0xcd, 0x36, 0x63, 0x2d, + 0x6b, 0x73, 0x01, 0xce, 0x71, 0x01, 0xc4, 0x94, 0xf9, 0x9e, 0xff, 0x5b, 0x8b, 0xe6, 0xf7, 0xc9, 0xe2, 0xa6, 0x2f, 0xed, + 0xe3, 0xaa, 0x98, 0xe5, 0x3b, 0x4b, 0xa6, 0xdd, 0xab, 0x67, 0x44, 0xf3, 0x8f, 0xaf, 0xff, 0x2c, 0xdf, 0xd9, 0x39, 0xb3, + 0x78, 0xb5, 0x8c, 0xc4, 0x19, 0xf3, 0x7f, 0xbe, 0x8f, 0x67, 0x7b, 0x8e, 0xa4, 0xf1, 0xbd, 0x53, 0xd6, 0x7f, 0xbc, 0x1a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x67, 0x07, 0x60, 0xb4, 0x37, 0xd0, 0xe2, 0x7d, + 0x89, 0xce, 0x80, 0xe7, 0xc9, 0xe2, 0x27, 0x06, 0x5f, 0xdb, 0x3e, 0xfd, 0x48, 0x3d, 0xf6, 0xf8, 0x5d, 0xef, 0xbb, 0x1c, + 0xee, 0xfb, 0x8c, 0xcf, 0xe2, 0x97, 0x4e, 0xa4, 0xff, 0x48, 0x4f, 0x59, 0x29, 0x8b, 0xdb, 0x5e, 0xda, 0x70, 0x1e, 0x37, + 0x62, 0x7c, 0xc4, 0xd9, 0x93, 0x1d, 0xaf, 0x47, 0x99, 0xe5, 0xcc, 0x1e, 0xbb, 0x30, 0xcf, 0xd5, 0xbf, 0x8f, 0xa3, 0xce, + 0x32, 0xda, 0x46, 0xea, 0x3f, 0xcf, 0xfb, 0x74, 0x06, 0xfd, 0xad, 0x35, 0x41, 0x7f, 0xf4, 0xdf, 0x8a, 0xfe, 0x72, 0x12, + 0xfd, 0xb7, 0xe1, 0xff, 0x9b, 0x97, 0x6d, 0x58, 0xcc, 0xdf, 0x50, 0xe0, 0x5d, 0xff, 0x38, 0x2b, 0xa0, 0xf6, 0x1b, 0x4a, + 0xe8, 0x7f, 0xdc, 0xdf, 0x53, 0xf9, 0xdd, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x90, 0xb9, 0x10, 0xfd, 0xd1, 0xff, 0xe4, 0xfa, 0xbf, 0x05 }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle jungleFontRecs[189] = { + { 4, 4, 5 , 12 }, + { 17, 4, 2 , 7 }, + { 27, 4, 5 , 3 }, + { 40, 4, 5 , 5 }, + { 53, 4, 6 , 7 }, + { 67, 4, 7 , 7 }, + { 82, 4, 5 , 7 }, + { 95, 4, 3 , 3 }, + { 106, 4, 4 , 8 }, + { 118, 4, 4 , 8 }, + { 130, 4, 5 , 5 }, + { 143, 4, 5 , 5 }, + { 156, 4, 2 , 3 }, + { 166, 4, 5 , 1 }, + { 179, 4, 2 , 2 }, + { 189, 4, 7 , 7 }, + { 204, 4, 7 , 6 }, + { 219, 4, 6 , 6 }, + { 233, 4, 6 , 6 }, + { 4, 24, 6 , 6 }, + { 18, 24, 6 , 6 }, + { 32, 24, 6 , 6 }, + { 46, 24, 6 , 6 }, + { 60, 24, 6 , 6 }, + { 74, 24, 6 , 6 }, + { 88, 24, 6 , 6 }, + { 102, 24, 2 , 5 }, + { 112, 24, 2 , 6 }, + { 122, 24, 3 , 5 }, + { 133, 24, 5 , 3 }, + { 146, 24, 3 , 5 }, + { 157, 24, 6 , 7 }, + { 171, 24, 7 , 7 }, + { 186, 24, 6 , 7 }, + { 200, 24, 6 , 7 }, + { 214, 24, 6 , 7 }, + { 228, 24, 6 , 7 }, + { 4, 44, 6 , 7 }, + { 18, 44, 6 , 7 }, + { 32, 44, 6 , 7 }, + { 46, 44, 6 , 7 }, + { 60, 44, 6 , 7 }, + { 74, 44, 6 , 7 }, + { 88, 44, 6 , 7 }, + { 102, 44, 6 , 7 }, + { 116, 44, 7 , 7 }, + { 131, 44, 6 , 7 }, + { 145, 44, 6 , 7 }, + { 159, 44, 6 , 7 }, + { 173, 44, 7 , 8 }, + { 188, 44, 6 , 7 }, + { 202, 44, 6 , 7 }, + { 216, 44, 6 , 7 }, + { 230, 44, 6 , 7 }, + { 4, 64, 6 , 7 }, + { 18, 64, 7 , 7 }, + { 33, 64, 6 , 7 }, + { 47, 64, 6 , 7 }, + { 61, 64, 6 , 7 }, + { 75, 64, 4 , 8 }, + { 87, 64, 7 , 7 }, + { 102, 64, 4 , 8 }, + { 114, 64, 4 , 2 }, + { 126, 64, 6 , 1 }, + { 140, 64, 2 , 2 }, + { 150, 64, 6 , 5 }, + { 164, 64, 6 , 7 }, + { 178, 64, 6 , 5 }, + { 192, 64, 6 , 7 }, + { 206, 64, 6 , 5 }, + { 220, 64, 6 , 7 }, + { 234, 64, 6 , 7 }, + { 4, 84, 6 , 7 }, + { 18, 84, 6 , 7 }, + { 32, 84, 5 , 8 }, + { 45, 84, 6 , 7 }, + { 59, 84, 6 , 7 }, + { 73, 84, 7 , 5 }, + { 88, 84, 6 , 5 }, + { 102, 84, 6 , 5 }, + { 116, 84, 6 , 7 }, + { 130, 84, 6 , 7 }, + { 144, 84, 6 , 5 }, + { 158, 84, 6 , 5 }, + { 172, 84, 6 , 6 }, + { 186, 84, 6 , 5 }, + { 200, 84, 6 , 5 }, + { 214, 84, 7 , 5 }, + { 229, 84, 6 , 5 }, + { 4, 104, 6 , 7 }, + { 18, 104, 6 , 5 }, + { 32, 104, 4 , 8 }, + { 44, 104, 2 , 8 }, + { 54, 104, 4 , 8 }, + { 66, 104, 5 , 2 }, + { 79, 104, 2 , 7 }, + { 89, 104, 6 , 6 }, + { 103, 104, 6 , 7 }, + { 117, 104, 6 , 7 }, + { 131, 104, 6 , 7 }, + { 145, 104, 0 , 0 }, + { 153, 104, 6 , 9 }, + { 167, 104, 0 , 0 }, + { 175, 104, 7 , 7 }, + { 190, 104, 8 , 8 }, + { 206, 104, 6 , 5 }, + { 220, 104, 8 , 8 }, + { 236, 104, 7 , 7 }, + { 4, 124, 8 , 8 }, + { 20, 124, 4 , 4 }, + { 32, 124, 8 , 8 }, + { 48, 124, 8 , 8 }, + { 64, 124, 8 , 8 }, + { 80, 124, 0 , 0 }, + { 88, 124, 6 , 7 }, + { 102, 124, 5 , 8 }, + { 115, 124, 3 , 3 }, + { 126, 124, 0 , 0 }, + { 134, 124, 8 , 8 }, + { 150, 124, 8 , 8 }, + { 166, 124, 6 , 5 }, + { 180, 124, 10 , 7 }, + { 198, 124, 10 , 5 }, + { 216, 124, 0 , 0 }, + { 224, 124, 6 , 7 }, + { 238, 124, 6 , 10 }, + { 4, 144, 6 , 10 }, + { 18, 144, 6 , 10 }, + { 32, 144, 6 , 10 }, + { 46, 144, 6 , 10 }, + { 60, 144, 6 , 10 }, + { 74, 144, 10 , 7 }, + { 92, 144, 6 , 9 }, + { 106, 144, 6 , 10 }, + { 120, 144, 6 , 10 }, + { 134, 144, 6 , 10 }, + { 148, 144, 6 , 10 }, + { 162, 144, 6 , 10 }, + { 176, 144, 6 , 10 }, + { 190, 144, 6 , 10 }, + { 204, 144, 6 , 10 }, + { 218, 144, 6 , 7 }, + { 232, 144, 6 , 10 }, + { 4, 164, 6 , 10 }, + { 18, 164, 6 , 10 }, + { 32, 164, 6 , 10 }, + { 46, 164, 6 , 10 }, + { 60, 164, 6 , 10 }, + { 74, 164, 6 , 5 }, + { 88, 164, 6 , 7 }, + { 102, 164, 6 , 10 }, + { 116, 164, 6 , 10 }, + { 130, 164, 6 , 10 }, + { 144, 164, 6 , 10 }, + { 158, 164, 6 , 10 }, + { 172, 164, 6 , 7 }, + { 186, 164, 6 , 7 }, + { 200, 164, 6 , 8 }, + { 214, 164, 6 , 8 }, + { 228, 164, 6 , 8 }, + { 4, 184, 6 , 8 }, + { 18, 184, 6 , 8 }, + { 32, 184, 6 , 8 }, + { 46, 184, 9 , 5 }, + { 63, 184, 6 , 7 }, + { 77, 184, 6 , 8 }, + { 91, 184, 6 , 8 }, + { 105, 184, 6 , 8 }, + { 119, 184, 6 , 8 }, + { 133, 184, 6 , 8 }, + { 147, 184, 6 , 8 }, + { 161, 184, 6 , 8 }, + { 175, 184, 6 , 8 }, + { 189, 184, 6 , 7 }, + { 203, 184, 6 , 8 }, + { 217, 184, 6 , 8 }, + { 231, 184, 6 , 8 }, + { 4, 204, 6 , 8 }, + { 18, 204, 6 , 8 }, + { 32, 204, 6 , 8 }, + { 46, 204, 5 , 5 }, + { 59, 204, 6 , 5 }, + { 73, 204, 6 , 8 }, + { 87, 204, 6 , 8 }, + { 101, 204, 6 , 8 }, + { 115, 204, 6 , 8 }, + { 129, 204, 6 , 10 }, + { 143, 204, 6 , 9 }, + { 157, 204, 6 , 10 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo jungleFontGlyphs[189] = { + { 32, 0, 0, 5, { 0 }}, + { 33, 0, 2, 3, { 0 }}, + { 34, 0, 2, 6, { 0 }}, + { 35, 0, 3, 6, { 0 }}, + { 36, 0, 2, 7, { 0 }}, + { 37, 0, 2, 8, { 0 }}, + { 38, 0, 2, 6, { 0 }}, + { 39, 0, 2, 4, { 0 }}, + { 40, 0, 2, 5, { 0 }}, + { 41, 0, 2, 5, { 0 }}, + { 42, 0, 2, 6, { 0 }}, + { 43, 0, 3, 6, { 0 }}, + { 44, 0, 7, 3, { 0 }}, + { 45, 0, 5, 6, { 0 }}, + { 46, 0, 7, 3, { 0 }}, + { 47, 0, 2, 8, { 0 }}, + { 48, 0, 3, 8, { 0 }}, + { 49, 0, 3, 7, { 0 }}, + { 50, 0, 3, 7, { 0 }}, + { 51, 0, 3, 7, { 0 }}, + { 52, 0, 3, 7, { 0 }}, + { 53, 0, 3, 7, { 0 }}, + { 54, 0, 3, 7, { 0 }}, + { 55, 0, 3, 7, { 0 }}, + { 56, 0, 3, 7, { 0 }}, + { 57, 0, 3, 7, { 0 }}, + { 58, 0, 4, 3, { 0 }}, + { 59, 0, 4, 3, { 0 }}, + { 60, 0, 3, 4, { 0 }}, + { 61, 0, 4, 6, { 0 }}, + { 62, 0, 3, 4, { 0 }}, + { 63, 0, 2, 7, { 0 }}, + { 64, 0, 2, 8, { 0 }}, + { 65, 0, 2, 7, { 0 }}, + { 66, 0, 2, 7, { 0 }}, + { 67, 0, 2, 7, { 0 }}, + { 68, 0, 2, 7, { 0 }}, + { 69, 0, 2, 7, { 0 }}, + { 70, 0, 2, 7, { 0 }}, + { 71, 0, 2, 7, { 0 }}, + { 72, 0, 2, 7, { 0 }}, + { 73, 0, 2, 7, { 0 }}, + { 74, 0, 2, 7, { 0 }}, + { 75, 0, 2, 7, { 0 }}, + { 76, 0, 2, 7, { 0 }}, + { 77, 0, 2, 8, { 0 }}, + { 78, 0, 2, 7, { 0 }}, + { 79, 0, 2, 7, { 0 }}, + { 80, 0, 2, 7, { 0 }}, + { 81, 0, 2, 7, { 0 }}, + { 82, 0, 2, 7, { 0 }}, + { 83, 0, 2, 7, { 0 }}, + { 84, 0, 2, 7, { 0 }}, + { 85, 0, 2, 7, { 0 }}, + { 86, 0, 2, 7, { 0 }}, + { 87, 0, 2, 8, { 0 }}, + { 88, 0, 2, 7, { 0 }}, + { 89, 0, 2, 7, { 0 }}, + { 90, 0, 2, 7, { 0 }}, + { 91, 0, 2, 5, { 0 }}, + { 92, 0, 2, 8, { 0 }}, + { 93, 0, 2, 5, { 0 }}, + { 94, 0, -1, 5, { 0 }}, + { 95, 0, 10, 7, { 0 }}, + { 96, 0, -1, 3, { 0 }}, + { 97, 0, 4, 7, { 0 }}, + { 98, 0, 2, 7, { 0 }}, + { 99, 0, 4, 7, { 0 }}, + { 100, 0, 2, 7, { 0 }}, + { 101, 0, 4, 7, { 0 }}, + { 102, 0, 2, 7, { 0 }}, + { 103, 0, 4, 7, { 0 }}, + { 104, 0, 2, 7, { 0 }}, + { 105, 0, 2, 7, { 0 }}, + { 106, 0, 2, 6, { 0 }}, + { 107, 0, 2, 7, { 0 }}, + { 108, 0, 2, 7, { 0 }}, + { 109, 0, 4, 8, { 0 }}, + { 110, 0, 4, 7, { 0 }}, + { 111, 0, 4, 7, { 0 }}, + { 112, 0, 4, 7, { 0 }}, + { 113, 0, 4, 7, { 0 }}, + { 114, 0, 4, 7, { 0 }}, + { 115, 0, 4, 7, { 0 }}, + { 116, 0, 3, 7, { 0 }}, + { 117, 0, 4, 7, { 0 }}, + { 118, 0, 4, 7, { 0 }}, + { 119, 0, 4, 8, { 0 }}, + { 120, 0, 4, 7, { 0 }}, + { 121, 0, 4, 7, { 0 }}, + { 122, 0, 4, 7, { 0 }}, + { 123, 0, 2, 5, { 0 }}, + { 124, 0, 2, 3, { 0 }}, + { 125, 0, 2, 5, { 0 }}, + { 126, 0, -1, 6, { 0 }}, + { 161, 0, 2, 3, { 0 }}, + { 162, 0, 3, 7, { 0 }}, + { 163, 0, 2, 7, { 0 }}, + { 8364, 0, 2, 7, { 0 }}, + { 165, 0, 2, 7, { 0 }}, + { 352, 0, 0, 0, { 0 }}, + { 167, 0, 1, 7, { 0 }}, + { 353, 0, 0, 0, { 0 }}, + { 169, 0, 2, 8, { 0 }}, + { 170, 0, 1, 8, { 0 }}, + { 171, 0, 3, 7, { 0 }}, + { 172, 0, 1, 8, { 0 }}, + { 174, 0, 2, 8, { 0 }}, + { 175, 0, 1, 8, { 0 }}, + { 176, 0, 1, 2, { 0 }}, + { 177, 0, 1, 8, { 0 }}, + { 178, 0, 1, 8, { 0 }}, + { 179, 0, 1, 8, { 0 }}, + { 381, 0, 0, 0, { 0 }}, + { 181, 0, 4, 7, { 0 }}, + { 182, 0, 1, 4, { 0 }}, + { 183, 0, 4, 4, { 0 }}, + { 382, 0, 0, 0, { 0 }}, + { 185, 0, 1, 8, { 0 }}, + { 186, 0, 1, 8, { 0 }}, + { 187, 0, 3, 7, { 0 }}, + { 338, 0, 2, 11, { 0 }}, + { 339, 0, 4, 11, { 0 }}, + { 376, 0, 0, 0, { 0 }}, + { 191, 0, 2, 7, { 0 }}, + { 192, 0, -1, 7, { 0 }}, + { 193, 0, -1, 7, { 0 }}, + { 194, 0, -1, 7, { 0 }}, + { 195, 0, -1, 7, { 0 }}, + { 196, 0, -1, 7, { 0 }}, + { 197, 0, -1, 7, { 0 }}, + { 198, 0, 2, 11, { 0 }}, + { 199, 0, 2, 7, { 0 }}, + { 200, 0, -1, 7, { 0 }}, + { 201, 0, -1, 7, { 0 }}, + { 202, 0, -1, 7, { 0 }}, + { 203, 0, -1, 7, { 0 }}, + { 204, 0, -1, 7, { 0 }}, + { 205, 0, -1, 7, { 0 }}, + { 206, 0, -1, 7, { 0 }}, + { 207, 0, -1, 7, { 0 }}, + { 208, 0, 2, 7, { 0 }}, + { 209, 0, -1, 7, { 0 }}, + { 210, 0, -1, 7, { 0 }}, + { 211, 0, -1, 7, { 0 }}, + { 212, 0, -1, 7, { 0 }}, + { 213, 0, -1, 7, { 0 }}, + { 214, 0, -1, 7, { 0 }}, + { 215, 0, 3, 7, { 0 }}, + { 216, 0, 2, 7, { 0 }}, + { 217, 0, -1, 7, { 0 }}, + { 218, 0, -1, 7, { 0 }}, + { 219, 0, -1, 7, { 0 }}, + { 220, 0, -1, 7, { 0 }}, + { 221, 0, -1, 7, { 0 }}, + { 222, 0, 2, 7, { 0 }}, + { 223, 0, 2, 7, { 0 }}, + { 224, 0, 1, 7, { 0 }}, + { 225, 0, 1, 7, { 0 }}, + { 226, 0, 1, 7, { 0 }}, + { 227, 0, 1, 7, { 0 }}, + { 228, 0, 1, 7, { 0 }}, + { 229, 0, 1, 7, { 0 }}, + { 230, 0, 4, 10, { 0 }}, + { 231, 0, 4, 7, { 0 }}, + { 232, 0, 1, 7, { 0 }}, + { 233, 0, 1, 7, { 0 }}, + { 234, 0, 1, 7, { 0 }}, + { 235, 0, 1, 7, { 0 }}, + { 236, 0, 1, 7, { 0 }}, + { 237, 0, 1, 7, { 0 }}, + { 238, 0, 1, 7, { 0 }}, + { 239, 0, 1, 7, { 0 }}, + { 240, 0, 2, 7, { 0 }}, + { 241, 0, 1, 7, { 0 }}, + { 242, 0, 1, 7, { 0 }}, + { 243, 0, 1, 7, { 0 }}, + { 244, 0, 1, 7, { 0 }}, + { 245, 0, 1, 7, { 0 }}, + { 246, 0, 1, 7, { 0 }}, + { 247, 0, 3, 6, { 0 }}, + { 248, 0, 4, 7, { 0 }}, + { 249, 0, 1, 7, { 0 }}, + { 250, 0, 1, 7, { 0 }}, + { 251, 0, 1, 7, { 0 }}, + { 252, 0, 1, 7, { 0 }}, + { 253, 0, 1, 7, { 0 }}, + { 254, 0, 2, 7, { 0 }}, + { 255, 0, 1, 7, { 0 }}, +}; + +// Style loading function: Jungle +static void GuiLoadStyleJungle(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < JUNGLE_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(jungleStyleProps[i].controlId, jungleStyleProps[i].propertyId, jungleStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int jungleFontDataSize = 0; + unsigned char *data = DecompressData(jungleFontData, JUNGLE_STYLE_FONT_ATLAS_COMP_SIZE, &jungleFontDataSize); + Image imFont = { data, 256, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 12; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, jungleFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, jungleFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 254, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/style_jungle.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/style_jungle.png new file mode 100644 index 0000000..61d93f9 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/style_jungle.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/style_jungle.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/style_jungle.rgs new file mode 100644 index 0000000..843867c Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/style_jungle.rgs differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/style_jungle.txt.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/style_jungle.txt.rgs new file mode 100644 index 0000000..6901b7d --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/jungle/style_jungle.txt.rgs @@ -0,0 +1,27 @@ +# +# rgs style text file (v4.0) - raygui style file generated using rGuiStyler +# +# Provided info: +# f fontGenSize charsetFileName fontFileName +# p Property description +# +# WARNING: This style uses a custom font, must be provided with style file +# +f 12 charset.txt Pixel Intv.otf +p 00 00 0x60827dff DEFAULT_BORDER_COLOR_NORMAL +p 00 01 0x2c3334ff DEFAULT_BASE_COLOR_NORMAL +p 00 02 0x82a29fff DEFAULT_TEXT_COLOR_NORMAL +p 00 03 0x5f9aa8ff DEFAULT_BORDER_COLOR_FOCUSED +p 00 04 0x334e57ff DEFAULT_BASE_COLOR_FOCUSED +p 00 05 0x6aa9b8ff DEFAULT_TEXT_COLOR_FOCUSED +p 00 06 0xa9cb8dff DEFAULT_BORDER_COLOR_PRESSED +p 00 07 0x3b6357ff DEFAULT_BASE_COLOR_PRESSED +p 00 08 0x97af81ff DEFAULT_TEXT_COLOR_PRESSED +p 00 09 0x5b6462ff DEFAULT_BORDER_COLOR_DISABLED +p 00 10 0x2c3334ff DEFAULT_BASE_COLOR_DISABLED +p 00 11 0x666b69ff DEFAULT_TEXT_COLOR_DISABLED +p 00 16 0x0000000c TEXT_SIZE +p 00 17 0x00000000 TEXT_SPACING +p 00 18 0x638465ff LINE_COLOR +p 00 19 0x2b3a3aff BACKGROUND_COLOR +p 00 20 0x00000012 TEXT_LINE_SPACING diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/Cartridge.ttf b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/Cartridge.ttf new file mode 100644 index 0000000..19d7280 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/Cartridge.ttf differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/README.md b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/README.md new file mode 100644 index 0000000..b6519dd --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/README.md @@ -0,0 +1,27 @@ +## style: lavanda + +Walking throught fields full of lavanda, it feels like a dream, a fantasy, just relax and close your eyes, could you feel it? + +![lavanda style table](style_lavanda.png) + +## style: provided files + +Several options are provided to add the style to a `raygui` application, choose the one that better fits the project. + +| file name | description | +| :-------- | :---------- | +| `style_lavanda.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) | +| `style_lavanda.txt.rgs` | Text style file, no font data, requires external font provided | +| `style_lavanda.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) | +| `style_lavanda.h` | Embeddable style as code file, self-contained, includes font data | +| `style_lavanda.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data | + +## screenshot + +![lavanda style screen](screenshot.png) + +## about font + +"Cartridge" font by [jeti](https://fontenddev.com/) + +Licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), downloaded from dafont.com: [cartridge](https://www.dafont.com/cartridge.font) diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/charset.txt b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/charset.txt new file mode 100644 index 0000000..611a673 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/charset.txt @@ -0,0 +1 @@ + !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/font_readme.txt b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/font_readme.txt new file mode 100644 index 0000000..c9ff454 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/font_readme.txt @@ -0,0 +1,6 @@ +Cartridge by jeti: A decorative, Art Nouveau-inspired font with a dainty, fantastical hand-lettered feel. + +You are free to use this font for personal or commercial projects, all I ask is that you include credit. + +Licensed under CC BY 4.0: https://creativecommons.org/licenses/by/4.0/ +More info: https://fontenddev.com/fonts/cartridge/ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/screenshot.old.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/screenshot.old.png new file mode 100644 index 0000000..f787e0f Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/screenshot.old.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/screenshot.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/screenshot.png new file mode 100644 index 0000000..544b3d1 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/screenshot.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/style_lavanda.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/style_lavanda.h new file mode 100644 index 0000000..7e8902b --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/style_lavanda.h @@ -0,0 +1,607 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleLavanda(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define LAVANDA_STYLE_PROPS_COUNT 16 + +// Custom style name: Lavanda +static const GuiStyleProp lavandaStyleProps[LAVANDA_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0xab9bd3ff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0x3e4350ff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0xdadaf4ff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0xee84a0ff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0xf4b7c7ff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0xb7657bff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0xd5c8dbff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0x966ec0ff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0xd7ccf7ff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0x8fa2bdff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0x6b798dff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0x8292a9ff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE + { 0, 18, (int)0x84adb7ff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0x5b5b81ff }, // DEFAULT_BACKGROUND_COLOR + { 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING +}; + +// WARNING: This style uses a custom font: "Cartridge.ttf" (size: 16, spacing: 1) + +#define LAVANDA_STYLE_FONT_ATLAS_COMP_SIZE 2636 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char lavandaFontData[LAVANDA_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0xdd, 0xdb, 0xd2, 0xa4, 0xba, 0x0d, 0x06, 0x50, 0xde, 0xff, 0xa5, 0xbf, 0x5c, 0xa4, 0x52, 0x49, 0xaa, 0x66, 0x63, 0x24, + 0x0b, 0x9a, 0xee, 0x59, 0xb3, 0xee, 0x7e, 0xa6, 0x4f, 0x06, 0xf9, 0x04, 0x96, 0x73, 0x00, 0x00, 0x00, 0x00, 0x24, 0x7f, + 0xfc, 0x4b, 0x4e, 0xfe, 0x6f, 0x2e, 0xbf, 0xd3, 0x7f, 0xfe, 0x9e, 0xc5, 0xff, 0xf8, 0xff, 0xff, 0x75, 0xed, 0x7d, 0x73, + 0xf9, 0xf3, 0x3b, 0x47, 0xf2, 0xc7, 0xef, 0x97, 0x8d, 0xd7, 0xff, 0xd3, 0x3b, 0xd4, 0xff, 0xff, 0x7f, 0xff, 0x55, 0xca, + 0xf1, 0xfc, 0x35, 0x47, 0xf1, 0x73, 0xb2, 0xf8, 0x9c, 0xab, 0xbf, 0xb0, 0x56, 0xfa, 0xb5, 0x73, 0x9e, 0xd3, 0x2b, 0xb2, + 0xf3, 0xca, 0xf3, 0xd7, 0x1d, 0xe5, 0xb2, 0x3a, 0x96, 0x25, 0x5c, 0x3d, 0xcb, 0xef, 0x8b, 0xff, 0x5c, 0x78, 0xe5, 0xf9, + 0xf1, 0x6c, 0xd4, 0x09, 0xeb, 0x72, 0xac, 0xd6, 0x18, 0x3b, 0xa5, 0x7a, 0xf6, 0x1d, 0x2b, 0xff, 0xff, 0x5a, 0x6d, 0xbb, + 0x5f, 0x3b, 0xae, 0x4a, 0xbf, 0xfe, 0xad, 0xaf, 0x94, 0x5c, 0x06, 0xfe, 0x7f, 0x5a, 0xdf, 0x7e, 0xe2, 0xfa, 0xcf, 0xf6, + 0xb5, 0x7d, 0xa5, 0xad, 0x9c, 0xb8, 0x46, 0xab, 0xf1, 0x9f, 0x56, 0x8b, 0x90, 0x45, 0x99, 0xde, 0x1d, 0xff, 0x9d, 0x76, + 0x34, 0x37, 0x95, 0x6a, 0xb5, 0xbe, 0xad, 0x5f, 0x37, 0x29, 0xb6, 0xb4, 0xbd, 0xf8, 0x5f, 0x7f, 0x4e, 0xc6, 0xca, 0x6d, + 0xdd, 0x7b, 0xa9, 0x97, 0x76, 0xef, 0xb7, 0x75, 0x6b, 0x95, 0x34, 0x7a, 0x40, 0xfd, 0xfa, 0x7a, 0xaa, 0xc4, 0x6b, 0x51, + 0x7a, 0xa5, 0x75, 0xcb, 0x58, 0xbd, 0x9f, 0x72, 0x6b, 0x95, 0x47, 0xca, 0xf2, 0x68, 0xb7, 0x3a, 0xd5, 0x5f, 0x94, 0x72, + 0x5c, 0x56, 0xfa, 0xe5, 0xfd, 0xab, 0x30, 0xa5, 0xd1, 0x59, 0x6e, 0x6b, 0xff, 0xd7, 0xad, 0x71, 0x9a, 0x57, 0x72, 0xca, + 0x7d, 0x83, 0x94, 0x47, 0x95, 0xeb, 0x73, 0xbc, 0x1e, 0x8b, 0xcc, 0xc7, 0x7f, 0xaf, 0x1f, 0xf3, 0xa7, 0x72, 0xef, 0xf6, + 0x12, 0xe6, 0xeb, 0xc6, 0xb7, 0xc7, 0x7f, 0x1a, 0x7d, 0x8c, 0xea, 0x6b, 0x52, 0x9e, 0x7b, 0x39, 0x6f, 0x23, 0xaf, 0x5f, + 0x99, 0x19, 0xba, 0x26, 0x3b, 0xad, 0x41, 0x1a, 0xe3, 0xc5, 0xdd, 0x96, 0x7c, 0x7a, 0xce, 0xea, 0xc9, 0xf8, 0xcf, 0x85, + 0x19, 0x89, 0xd5, 0x95, 0x97, 0x65, 0x29, 0xe4, 0x86, 0xf6, 0xff, 0x0d, 0x73, 0xaa, 0x4f, 0xc5, 0x7f, 0x96, 0x73, 0x5b, + 0x13, 0xd7, 0x74, 0x46, 0xce, 0x43, 0x3e, 0x70, 0x16, 0xae, 0xc4, 0xff, 0xd1, 0x6c, 0xc9, 0x7f, 0x3b, 0xfe, 0x8f, 0x8b, + 0xbd, 0xf8, 0xa3, 0x31, 0x0b, 0xf8, 0x5b, 0xf1, 0x9f, 0x46, 0xcc, 0x64, 0x6c, 0x64, 0xde, 0xeb, 0x33, 0xcc, 0xc6, 0xff, + 0x7b, 0x6b, 0xe1, 0x55, 0xff, 0x3f, 0x17, 0xef, 0x30, 0xfd, 0x4e, 0xfc, 0x1f, 0xa3, 0xfd, 0xff, 0xf5, 0x15, 0x33, 0x31, + 0x6b, 0xf4, 0x77, 0xc4, 0x7f, 0x9a, 0xf5, 0x70, 0x06, 0x67, 0x6e, 0xbe, 0x39, 0xfe, 0x3b, 0xd1, 0x93, 0x76, 0x5d, 0x79, + 0xde, 0xba, 0xe5, 0xa4, 0xc7, 0x56, 0xad, 0x19, 0xee, 0x9e, 0xff, 0xef, 0xdf, 0xb7, 0xc9, 0xf6, 0xab, 0xf3, 0xf0, 0xf8, + 0xff, 0xb9, 0xf8, 0x3f, 0xca, 0x33, 0xd8, 0xe7, 0xf7, 0x5a, 0xea, 0xf5, 0x4f, 0x1a, 0xf7, 0xbb, 0x8f, 0x91, 0xdf, 0xf2, + 0xb6, 0xf3, 0x70, 0xed, 0x35, 0x29, 0xcf, 0x6d, 0x9c, 0xdf, 0x01, 0xfb, 0xe7, 0xd9, 0x88, 0xce, 0xbc, 0xec, 0xfb, 0xea, + 0xd8, 0xbc, 0xa6, 0x8d, 0xfd, 0x5b, 0x4a, 0x81, 0x67, 0x9e, 0x31, 0x40, 0xfc, 0x8b, 0x7f, 0x78, 0xfb, 0x73, 0xcb, 0xe2, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xdf, 0x5a, 0xa1, 0x57, 0x5b, 0x15, 0xbe, + 0x93, 0xcb, 0xb8, 0x93, 0x9d, 0x6e, 0xbd, 0x42, 0x3d, 0xad, 0x9c, 0x04, 0xbd, 0xd7, 0xe5, 0x34, 0x0b, 0x5a, 0x46, 0xf2, + 0x13, 0x74, 0xf3, 0x4e, 0x55, 0x32, 0x08, 0x54, 0xf7, 0x32, 0xe8, 0xee, 0x1b, 0x50, 0xfb, 0x8c, 0xce, 0x6a, 0xfd, 0x0c, + 0x65, 0x41, 0xe8, 0xe4, 0x16, 0xde, 0x5b, 0x95, 0x5a, 0xcf, 0xd1, 0xb6, 0x93, 0xf5, 0x23, 0xad, 0x55, 0x73, 0x93, 0xf1, + 0x9f, 0x4b, 0xb9, 0x0e, 0x3a, 0x19, 0x6a, 0x3a, 0x59, 0x6a, 0x32, 0x9c, 0x5f, 0xe7, 0x5a, 0x94, 0x5e, 0xcb, 0x39, 0x95, + 0xe2, 0x77, 0xaa, 0xef, 0xca, 0x90, 0x46, 0xa4, 0xd5, 0xca, 0xb0, 0xb3, 0x3e, 0x72, 0xa7, 0x55, 0xd9, 0xbb, 0x7a, 0x53, + 0xca, 0x45, 0x7c, 0x77, 0xde, 0x9d, 0x94, 0xe3, 0xe7, 0xd9, 0xf8, 0x4f, 0xe3, 0x17, 0xe5, 0x52, 0xce, 0xe5, 0x6e, 0x46, + 0xb6, 0x6e, 0x26, 0xa7, 0x5e, 0x16, 0x81, 0x7e, 0xfc, 0x5f, 0x3b, 0x03, 0xbf, 0x1d, 0xff, 0x3b, 0xfb, 0xc7, 0x4c, 0xc4, + 0x7f, 0xb6, 0x3f, 0x39, 0x23, 0xe5, 0x5a, 0x79, 0x97, 0x55, 0xfc, 0x3c, 0x19, 0xff, 0xfd, 0x8c, 0x85, 0x67, 0xbf, 0x38, + 0x5b, 0xf1, 0x3f, 0xf9, 0xba, 0xa3, 0x99, 0x5f, 0x6b, 0x3f, 0xfe, 0xd3, 0xec, 0xb9, 0xce, 0xf5, 0x3d, 0xa7, 0xf2, 0x06, + 0x77, 0xae, 0xcf, 0x5c, 0xc8, 0xd7, 0xbb, 0xdb, 0x33, 0xa8, 0xe5, 0xae, 0xce, 0xb2, 0x35, 0xde, 0x8d, 0xff, 0x3c, 0xd8, + 0xff, 0xaf, 0x8c, 0xc8, 0x32, 0xde, 0xfe, 0x7f, 0x57, 0xfc, 0xdf, 0xd5, 0xff, 0xbf, 0xd2, 0x92, 0x75, 0xf7, 0xf5, 0x7a, + 0x3a, 0xfe, 0xef, 0x98, 0x97, 0xca, 0x48, 0xcb, 0xd5, 0xaf, 0x31, 0xae, 0xf6, 0xff, 0x33, 0xb4, 0x2b, 0x55, 0x6f, 0xdc, + 0x92, 0x9b, 0xdb, 0xff, 0x34, 0x46, 0x4a, 0xbb, 0xf1, 0x7f, 0x5c, 0xca, 0x83, 0x9a, 0xe6, 0xb9, 0xae, 0xd4, 0xe1, 0x3b, + 0x3b, 0xef, 0xed, 0xf4, 0xe0, 0xd3, 0xdc, 0x79, 0x2e, 0x8d, 0x91, 0xea, 0x6f, 0xc4, 0xff, 0xce, 0x2e, 0x5d, 0x4f, 0xf5, + 0xdc, 0x8f, 0x0b, 0x6d, 0xde, 0x1b, 0xe3, 0x7f, 0x7e, 0xfe, 0x6f, 0xfd, 0x1d, 0xf2, 0xf0, 0xf8, 0x3f, 0x8d, 0x28, 0x7e, + 0x5f, 0xfc, 0xd7, 0xdb, 0xa3, 0x99, 0xfd, 0x90, 0xa7, 0x6b, 0x80, 0xce, 0xee, 0x99, 0x9d, 0x9d, 0x53, 0x53, 0xda, 0x89, + 0x6c, 0xae, 0x47, 0x32, 0xd5, 0xff, 0x7f, 0x2e, 0xfe, 0xd3, 0xba, 0x0e, 0x3b, 0xdf, 0xbf, 0xbf, 0x3b, 0x40, 0xb6, 0x5a, + 0x95, 0x8c, 0xc6, 0xff, 0xc4, 0x2c, 0x5d, 0xb7, 0x4e, 0x7a, 0x7e, 0x3f, 0xf4, 0xe7, 0xee, 0x59, 0xa7, 0xb9, 0xab, 0x5b, + 0x46, 0xee, 0x8c, 0x67, 0x64, 0x2e, 0x2d, 0x5b, 0xf1, 0xbf, 0x7f, 0x2e, 0xaa, 0xfb, 0x32, 0xae, 0xfb, 0xc6, 0xf5, 0x79, + 0x91, 0x6e, 0xfc, 0xf7, 0x32, 0xd4, 0x5f, 0xfd, 0x1d, 0xff, 0x3c, 0x57, 0x72, 0x8c, 0xdf, 0x91, 0x4e, 0xab, 0xae, 0xea, + 0xf6, 0x2c, 0xd2, 0xda, 0x35, 0xff, 0x7d, 0xf1, 0xff, 0x44, 0xad, 0x31, 0x33, 0xf3, 0xd9, 0xb9, 0x17, 0x99, 0xf2, 0x35, + 0x3d, 0x3d, 0xc2, 0xfa, 0xfc, 0x19, 0xbd, 0x6f, 0x47, 0xa3, 0x37, 0x65, 0xe3, 0x9d, 0x88, 0xff, 0xa3, 0x71, 0xbf, 0x62, + 0xff, 0x4e, 0xdf, 0x77, 0x66, 0x35, 0xce, 0x8d, 0x4f, 0x25, 0xcc, 0xbd, 0xbf, 0x67, 0x10, 0x3f, 0x17, 0x75, 0x7f, 0x6b, + 0xa9, 0xfd, 0x1d, 0xf1, 0xff, 0x4c, 0x8d, 0x3d, 0x3d, 0x12, 0x81, 0x4f, 0x8e, 0xa9, 0x33, 0x32, 0x02, 0xe7, 0xb7, 0xda, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xa9, 0xf5, 0x63, 0x33, 0xf9, 0x89, 0xd6, + 0x6b, 0x9a, 0x6b, 0x2b, 0x21, 0xd2, 0x58, 0xaf, 0xbc, 0x97, 0x47, 0xbf, 0x9a, 0xd5, 0xe5, 0x7c, 0xbd, 0x4c, 0x2e, 0xae, + 0xa1, 0x59, 0xad, 0x10, 0xc9, 0xf6, 0x5a, 0xbc, 0xee, 0xae, 0x06, 0xab, 0x4f, 0xeb, 0x64, 0x65, 0x38, 0xdf, 0x4d, 0xa0, + 0xbb, 0x0f, 0xc0, 0x59, 0x96, 0x83, 0x94, 0x3f, 0xef, 0xec, 0x95, 0x29, 0xe7, 0x0a, 0x4b, 0x61, 0xed, 0x54, 0x5a, 0x57, + 0x68, 0x27, 0xa3, 0xc3, 0xff, 0x7e, 0x5e, 0xe5, 0x6c, 0x65, 0x79, 0xa5, 0x55, 0xb2, 0xf1, 0xd5, 0xf3, 0x9d, 0xac, 0x32, + 0x10, 0xf6, 0xf3, 0xe8, 0x67, 0x70, 0x05, 0x7e, 0x86, 0xfe, 0x5a, 0x59, 0x25, 0x96, 0xad, 0x3a, 0x3e, 0x43, 0x75, 0xed, + 0x6e, 0x79, 0xa5, 0x51, 0x73, 0xa7, 0x5d, 0xe3, 0x1f, 0xad, 0x0c, 0x09, 0x19, 0xc8, 0x08, 0x90, 0x56, 0x09, 0x9d, 0xb5, + 0x42, 0x69, 0xaf, 0x42, 0xac, 0x67, 0x39, 0x4a, 0xf9, 0x3b, 0x1e, 0x8d, 0x3c, 0xa8, 0xb3, 0xd9, 0x97, 0x76, 0xf6, 0xfd, + 0x98, 0xc9, 0x98, 0x39, 0xb5, 0x86, 0xbe, 0x97, 0x9b, 0xa9, 0xfe, 0xd9, 0x9d, 0xab, 0x2a, 0x1b, 0xbd, 0xd0, 0x14, 0x7f, + 0x5d, 0x2e, 0xb7, 0x71, 0x7f, 0x6e, 0xf5, 0xea, 0x71, 0x53, 0xcf, 0xa9, 0x34, 0x95, 0x3b, 0xe9, 0xae, 0xf8, 0x3f, 0xc6, + 0xb3, 0x9c, 0xf5, 0x7a, 0x21, 0xbb, 0x3d, 0xf5, 0xbd, 0xf8, 0x5f, 0xef, 0x52, 0xb4, 0x5f, 0xe3, 0xdf, 0x19, 0xff, 0xbd, + 0x5c, 0x88, 0x59, 0xf6, 0xba, 0xbb, 0x7b, 0xaf, 0xd5, 0xfa, 0xf1, 0x69, 0x67, 0x97, 0xed, 0xe5, 0xd1, 0xc8, 0x22, 0xb7, + 0x6c, 0x6f, 0xdd, 0xfe, 0x7e, 0xff, 0x7f, 0xdd, 0x8f, 0x3f, 0xab, 0x1b, 0xef, 0xc8, 0xff, 0x77, 0x7f, 0xfc, 0xd7, 0xb2, + 0x26, 0xf7, 0xda, 0xf0, 0x6b, 0x79, 0x74, 0x27, 0xb3, 0xdf, 0x7d, 0x2a, 0xfe, 0xeb, 0xe3, 0xea, 0xe9, 0x31, 0x45, 0xe7, + 0x0c, 0xe5, 0x42, 0x2e, 0xc3, 0xb4, 0xf2, 0xa7, 0x9e, 0x8f, 0x7a, 0x67, 0xb3, 0xf0, 0xdc, 0xf9, 0x3e, 0x57, 0xc6, 0x62, + 0xcf, 0xc5, 0x7f, 0x36, 0x46, 0xe0, 0x7b, 0xed, 0x56, 0x2e, 0xb7, 0x22, 0xf7, 0xc7, 0xff, 0xdc, 0x9e, 0x95, 0xfb, 0x79, + 0xfa, 0x7a, 0x7d, 0xfc, 0x6c, 0xcc, 0x82, 0x75, 0xce, 0xe8, 0xb5, 0xb9, 0x8e, 0x3c, 0x32, 0xeb, 0x9d, 0xad, 0xb8, 0xb9, + 0x7f, 0x4e, 0xbe, 0x36, 0x1b, 0x34, 0x1f, 0xff, 0x47, 0x71, 0xfc, 0x7d, 0x5c, 0xdc, 0xab, 0x63, 0x77, 0xdc, 0x9a, 0xad, + 0xfe, 0xf8, 0xec, 0x9c, 0x55, 0xfd, 0xbb, 0x3f, 0xdf, 0xff, 0xdf, 0xcb, 0x1a, 0x9b, 0x56, 0x3f, 0x38, 0x1b, 0x75, 0x69, + 0x27, 0xf3, 0xf2, 0x4e, 0x8c, 0x4d, 0xee, 0x53, 0x36, 0xf1, 0x1d, 0xcf, 0x47, 0x11, 0xd3, 0xf1, 0x5f, 0x2f, 0x85, 0x7c, + 0xb4, 0x1f, 0xd4, 0xbf, 0x5a, 0xfb, 0x11, 0x98, 0xc1, 0xb3, 0xf8, 0xfc, 0xfc, 0x5f, 0xda, 0x75, 0x5f, 0x36, 0x33, 0x9e, + 0x57, 0xdb, 0x8e, 0x67, 0xf3, 0x09, 0xe6, 0xa5, 0xf9, 0x0b, 0xfb, 0xb9, 0xff, 0xf3, 0x48, 0xa4, 0x4d, 0xe7, 0x9c, 0xbe, + 0xbf, 0x1e, 0xd9, 0xbb, 0x77, 0x96, 0xdb, 0xcf, 0x62, 0x6e, 0x7f, 0xf7, 0x2c, 0x9f, 0x33, 0xe8, 0xde, 0xdf, 0xc8, 0xe0, + 0xfd, 0x44, 0x8e, 0xad, 0x79, 0x9a, 0x7c, 0xf8, 0x3b, 0x1e, 0xce, 0xef, 0x43, 0xf1, 0xff, 0xe9, 0x72, 0xef, 0xcf, 0xd5, + 0xc9, 0x7a, 0xfb, 0xfd, 0xf1, 0xcf, 0x3b, 0xe3, 0xff, 0x78, 0x49, 0xfc, 0xf3, 0x7c, 0x0d, 0x2e, 0xfe, 0xdf, 0x77, 0x2e, + 0x77, 0x9f, 0xff, 0x7d, 0xfb, 0xaf, 0xd3, 0x96, 0xdf, 0x55, 0xaa, 0xca, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x58, 0xaf, 0x1c, 0xca, 0x50, 0x46, 0xa0, 0xe3, 0xff, 0x72, 0x97, 0xac, 0x73, 0x4d, 0x76, 0xf2, + 0xc6, 0xf7, 0x57, 0x53, 0xa5, 0x7d, 0x6c, 0x27, 0x17, 0x4b, 0x2e, 0xad, 0x00, 0xc9, 0xc8, 0x7e, 0x09, 0xfd, 0x52, 0x4a, + 0x29, 0x9b, 0x68, 0x25, 0x7f, 0x5b, 0x1a, 0x2b, 0x83, 0x7b, 0x59, 0x9f, 0x3e, 0x75, 0x9e, 0x57, 0x19, 0x57, 0xfa, 0xbf, + 0x26, 0x37, 0xac, 0x1e, 0xbc, 0xfa, 0x3d, 0x7a, 0x59, 0x58, 0x73, 0x69, 0xa5, 0x5b, 0xda, 0xb9, 0x5c, 0xfb, 0xeb, 0x29, + 0xd3, 0x5c, 0x4f, 0x99, 0xed, 0xd2, 0x5e, 0x45, 0x63, 0x2f, 0x5f, 0x6a, 0xb7, 0x8e, 0xdc, 0xcf, 0xf0, 0x9d, 0xed, 0x77, + 0xbe, 0xb2, 0x47, 0x41, 0xbe, 0xe8, 0x3c, 0x77, 0xeb, 0x86, 0xfe, 0xef, 0xcc, 0xed, 0xb1, 0xb3, 0x9b, 0xf9, 0xef, 0xca, + 0x55, 0xdf, 0xdb, 0x87, 0xe6, 0x8d, 0xab, 0x38, 0x77, 0xea, 0xf0, 0x6e, 0x1e, 0xb3, 0x6f, 0x58, 0xdf, 0x9b, 0x8f, 0xfe, + 0xae, 0xe7, 0xce, 0xf3, 0x3a, 0xcf, 0xe1, 0x1b, 0x7e, 0x6b, 0x25, 0xc3, 0x6b, 0xa7, 0xfd, 0xcf, 0xa5, 0xf2, 0xba, 0x92, + 0xdd, 0xb4, 0xb7, 0xeb, 0xd5, 0x67, 0x8e, 0x1e, 0x9b, 0xd9, 0xb6, 0x3a, 0xd9, 0xae, 0xcf, 0x77, 0xac, 0xaa, 0x1f, 0xd9, + 0x6d, 0xff, 0xbb, 0x7f, 0xed, 0xec, 0x43, 0xf4, 0x89, 0xf3, 0xdc, 0xdb, 0x1d, 0x2d, 0x8b, 0x51, 0xf7, 0x95, 0x32, 0xae, + 0x1d, 0xdb, 0xed, 0x25, 0xef, 0x8d, 0xff, 0xab, 0xed, 0xff, 0x51, 0xbe, 0xea, 0x77, 0x7a, 0xda, 0x6f, 0x3b, 0xba, 0x93, + 0x71, 0xf3, 0xa9, 0x23, 0x77, 0xc4, 0x7f, 0x4e, 0xb3, 0xf1, 0xe7, 0xd2, 0x2c, 0xc3, 0x4e, 0x66, 0xe7, 0xfa, 0xd1, 0x5c, + 0x2a, 0x8f, 0xf3, 0x36, 0xf4, 0xfb, 0xe2, 0x7f, 0xef, 0xbd, 0xd7, 0xf1, 0x5d, 0xcf, 0x50, 0x7b, 0xb4, 0xe7, 0xe1, 0xee, + 0x8b, 0xe1, 0xa3, 0xfd, 0xad, 0xf2, 0x9a, 0x28, 0xaf, 0xe5, 0x04, 0xbd, 0xbb, 0xfd, 0xbf, 0x96, 0xdd, 0xfc, 0x3d, 0x47, + 0xaf, 0xb5, 0x49, 0xef, 0x88, 0xff, 0xdc, 0x3a, 0x26, 0x4c, 0x69, 0xa6, 0xf5, 0x28, 0xee, 0x7d, 0x94, 0xd7, 0xb5, 0x0b, + 0xeb, 0x3d, 0x35, 0xae, 0xb4, 0x29, 0xb3, 0x11, 0xdb, 0x3b, 0xf2, 0xa6, 0xfe, 0xff, 0x2f, 0xc5, 0xff, 0x1d, 0x31, 0xfe, + 0x4c, 0xfc, 0xef, 0xf5, 0x00, 0xfa, 0xfb, 0x2d, 0x75, 0x6a, 0x86, 0x9d, 0xbd, 0x6d, 0x76, 0x8f, 0x76, 0x6b, 0x87, 0xfc, + 0xa1, 0x36, 0xec, 0xcd, 0xb4, 0x7e, 0x5b, 0xff, 0xff, 0xfc, 0xfe, 0x4f, 0xda, 0xf3, 0xcb, 0xef, 0x8b, 0xff, 0x7e, 0x0b, + 0x70, 0x4f, 0xfc, 0xe7, 0xc1, 0x79, 0xd2, 0xb4, 0x67, 0x3d, 0xd3, 0xb8, 0x6f, 0xfc, 0xc6, 0x71, 0x61, 0xe5, 0xec, 0x77, + 0xf6, 0xd0, 0xfc, 0xee, 0xf8, 0x5f, 0xcf, 0x2f, 0xfd, 0x4a, 0xff, 0x3f, 0x1b, 0xb3, 0xa0, 0xd3, 0xf1, 0xff, 0x3d, 0xf9, + 0x46, 0x33, 0x36, 0xee, 0xf8, 0xbe, 0x56, 0xa3, 0x1b, 0x57, 0x3b, 0xa3, 0x89, 0xeb, 0x73, 0xae, 0xcf, 0xec, 0x76, 0x92, + 0x57, 0x9d, 0xab, 0x3b, 0xee, 0x58, 0x7e, 0x66, 0xfe, 0xef, 0x5b, 0x22, 0x5f, 0xfc, 0xaf, 0xe6, 0xd0, 0xcf, 0xc7, 0xcf, + 0xb5, 0x23, 0x95, 0xe7, 0x0c, 0x3f, 0x17, 0xff, 0x9f, 0x9b, 0xe7, 0xb9, 0x67, 0x37, 0x93, 0xce, 0x33, 0x36, 0xc7, 0x2d, + 0xcf, 0xce, 0xbd, 0xef, 0x59, 0x8b, 0xe3, 0x0b, 0xe2, 0x7f, 0x66, 0x36, 0xb4, 0x53, 0x12, 0x59, 0xec, 0x8b, 0x9c, 0xe2, + 0x33, 0xd7, 0x77, 0xf5, 0xff, 0x67, 0x5b, 0xc5, 0x4f, 0x3e, 0xe7, 0xf1, 0xfc, 0x95, 0xde, 0x3d, 0x06, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xf6, 0xda, 0xba, 0x7a, 0xd6, 0xbd, 0x34, 0xd7, 0xef, 0xf6, 0xd7, + 0xa9, 0xd6, 0x77, 0x0d, 0xb8, 0xf2, 0x9e, 0x29, 0xaf, 0xbf, 0xa9, 0x7d, 0x52, 0xe5, 0x5b, 0xdf, 0x93, 0x75, 0xff, 0x58, + 0xe4, 0x18, 0xc8, 0xc8, 0x35, 0x91, 0x72, 0x4e, 0x87, 0xa3, 0x99, 0x95, 0x28, 0xe5, 0xab, 0x2e, 0x8d, 0xbf, 0xa7, 0xbc, + 0x32, 0xf3, 0x68, 0x7c, 0xef, 0x37, 0xaf, 0xb9, 0xef, 0x66, 0xf2, 0xec, 0xef, 0x50, 0x31, 0xbd, 0xea, 0x31, 0xcd, 0x3c, + 0xdc, 0x19, 0x5b, 0xef, 0x9a, 0x8d, 0x15, 0xcd, 0x9d, 0x48, 0xaf, 0xd4, 0xd7, 0x69, 0xc7, 0x46, 0xad, 0x3e, 0xcb, 0xe8, + 0x75, 0x3a, 0xb7, 0x43, 0x4c, 0x46, 0x33, 0x69, 0xbe, 0x79, 0x5d, 0x5e, 0x9a, 0xd9, 0x35, 0xf2, 0x05, 0xeb, 0x90, 0xb3, + 0xb1, 0x5b, 0x4a, 0x1a, 0x3b, 0x9d, 0x7c, 0x66, 0xa5, 0xf3, 0xde, 0x95, 0xf9, 0xce, 0x55, 0xa3, 0xd5, 0x7c, 0x6e, 0x4f, + 0x5d, 0x75, 0xbd, 0x9c, 0x1f, 0x19, 0x7f, 0xc7, 0x67, 0xe2, 0xbf, 0x93, 0x77, 0x37, 0xcb, 0x3e, 0xe5, 0xb3, 0xab, 0x9e, + 0xbb, 0xd9, 0xc6, 0xd2, 0xda, 0x6d, 0x60, 0xff, 0xef, 0x9f, 0xc8, 0xba, 0x73, 0x6f, 0xfb, 0x3f, 0xdf, 0xc7, 0xae, 0x66, + 0x38, 0xe8, 0x5d, 0xdd, 0xdd, 0x9d, 0x2e, 0xf2, 0x33, 0xf1, 0xbf, 0xce, 0xba, 0x98, 0x91, 0xd9, 0x84, 0x4f, 0x1c, 0x4b, + 0x73, 0xd7, 0xa7, 0x0c, 0x8d, 0x17, 0xd6, 0xb9, 0x2e, 0x9f, 0x88, 0xff, 0x9c, 0xf4, 0xce, 0xd3, 0xd8, 0xd9, 0x62, 0xea, + 0xef, 0x93, 0xb3, 0x15, 0xfd, 0x5d, 0x6b, 0xe6, 0xe2, 0x3f, 0xc3, 0x3b, 0xb0, 0xbd, 0x3d, 0xfe, 0xa7, 0x67, 0x00, 0xfa, + 0x31, 0x9e, 0xf6, 0x68, 0x6d, 0x62, 0x94, 0xdb, 0xf9, 0xfb, 0x73, 0x59, 0xf7, 0xcf, 0xf2, 0x2a, 0xa7, 0x75, 0x45, 0x64, + 0x60, 0x1e, 0x25, 0xed, 0x1e, 0xf6, 0xfd, 0xf1, 0xbf, 0xb3, 0xe7, 0x4f, 0xbe, 0x2e, 0xfe, 0x57, 0x35, 0x5a, 0x3d, 0xbf, + 0x6d, 0x5a, 0xb1, 0xda, 0x3b, 0x96, 0x8d, 0xd9, 0x9f, 0x2c, 0xb3, 0xe6, 0xdf, 0xd3, 0xfb, 0xaf, 0x7d, 0xdb, 0x99, 0xf8, + 0x9f, 0x89, 0xce, 0x4f, 0xc6, 0x7f, 0x36, 0xf6, 0x8e, 0x99, 0x6c, 0xdd, 0xd2, 0xcc, 0x14, 0x9a, 0x97, 0xce, 0xff, 0x75, + 0x46, 0x34, 0xf3, 0x7b, 0x75, 0xdc, 0x71, 0x6c, 0x6f, 0xe6, 0x2b, 0x37, 0x8e, 0x7d, 0x8f, 0x0f, 0xb4, 0xff, 0x13, 0x35, + 0xc3, 0x67, 0xdb, 0xff, 0x63, 0xf4, 0x7a, 0x5c, 0xff, 0xfa, 0x3c, 0xd0, 0xa3, 0x7c, 0x4b, 0xfc, 0xe7, 0x4b, 0xe3, 0xff, + 0xb8, 0xb0, 0xa3, 0xdc, 0x5b, 0x6b, 0x80, 0x3c, 0x3a, 0xfe, 0x7f, 0x57, 0xfc, 0xcf, 0xde, 0x01, 0xc9, 0xf2, 0x1e, 0x67, + 0x2d, 0xca, 0xd3, 0xb8, 0xd3, 0x98, 0xe2, 0x6e, 0x6a, 0xef, 0x79, 0xfe, 0x27, 0xcd, 0xd1, 0x49, 0x35, 0x1e, 0xef, 0x39, + 0x76, 0xcf, 0xac, 0x6b, 0xca, 0x73, 0x8a, 0x19, 0xb9, 0xce, 0x9f, 0xcc, 0xba, 0xbb, 0x1a, 0xc5, 0x3d, 0xff, 0xeb, 0x77, + 0xef, 0xa7, 0x66, 0xe8, 0xc8, 0xe4, 0xb3, 0x44, 0x6f, 0x79, 0x3a, 0x60, 0xfa, 0x1e, 0xda, 0x37, 0xe4, 0x21, 0xce, 0xcf, + 0x67, 0x4c, 0xbf, 0xef, 0xa9, 0x01, 0xee, 0xed, 0xe9, 0x7d, 0xcf, 0xb3, 0xc1, 0x88, 0x7e, 0xd6, 0xcf, 0xa8, 0xfc, 0xe6, + 0xef, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xa6, 0xfd, 0xfb, 0x9f, 0x72, 0x00, 0xf1, 0x0f, 0xfc, 0x75, 0xf1, 0xff, 0x2f }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle lavandaFontRecs[189] = { + { 4, 4, 5 , 16 }, + { 17, 4, 1 , 9 }, + { 26, 4, 3 , 3 }, + { 37, 4, 7 , 8 }, + { 52, 4, 5 , 11 }, + { 65, 4, 10 , 8 }, + { 83, 4, 7 , 9 }, + { 98, 4, 1 , 3 }, + { 107, 4, 3 , 12 }, + { 118, 4, 3 , 12 }, + { 129, 4, 5 , 4 }, + { 142, 4, 5 , 5 }, + { 155, 4, 2 , 3 }, + { 165, 4, 3 , 1 }, + { 176, 4, 1 , 1 }, + { 185, 4, 4 , 12 }, + { 197, 4, 5 , 9 }, + { 210, 4, 3 , 9 }, + { 221, 4, 5 , 9 }, + { 234, 4, 5 , 9 }, + { 247, 4, 5 , 9 }, + { 260, 4, 5 , 9 }, + { 273, 4, 5 , 9 }, + { 286, 4, 5 , 9 }, + { 299, 4, 5 , 9 }, + { 312, 4, 5 , 9 }, + { 325, 4, 1 , 4 }, + { 334, 4, 2 , 6 }, + { 344, 4, 4 , 5 }, + { 356, 4, 4 , 3 }, + { 368, 4, 4 , 5 }, + { 380, 4, 5 , 9 }, + { 393, 4, 7 , 10 }, + { 408, 4, 7 , 9 }, + { 423, 4, 6 , 9 }, + { 437, 4, 5 , 9 }, + { 450, 4, 6 , 9 }, + { 464, 4, 5 , 9 }, + { 477, 4, 5 , 9 }, + { 490, 4, 6 , 9 }, + { 4, 28, 5 , 10 }, + { 17, 28, 1 , 9 }, + { 26, 28, 6 , 9 }, + { 40, 28, 6 , 9 }, + { 54, 28, 5 , 9 }, + { 67, 28, 8 , 11 }, + { 83, 28, 6 , 10 }, + { 97, 28, 7 , 9 }, + { 112, 28, 5 , 9 }, + { 125, 28, 7 , 11 }, + { 140, 28, 5 , 9 }, + { 153, 28, 6 , 9 }, + { 167, 28, 7 , 9 }, + { 182, 28, 6 , 9 }, + { 196, 28, 6 , 10 }, + { 210, 28, 9 , 10 }, + { 227, 28, 6 , 11 }, + { 241, 28, 5 , 10 }, + { 254, 28, 5 , 9 }, + { 267, 28, 3 , 12 }, + { 278, 28, 4 , 12 }, + { 290, 28, 3 , 12 }, + { 301, 28, 5 , 4 }, + { 314, 28, 6 , 1 }, + { 328, 28, 3 , 3 }, + { 339, 28, 6 , 7 }, + { 353, 28, 5 , 9 }, + { 366, 28, 4 , 7 }, + { 378, 28, 5 , 10 }, + { 391, 28, 4 , 7 }, + { 403, 28, 3 , 10 }, + { 414, 28, 4 , 11 }, + { 426, 28, 5 , 11 }, + { 439, 28, 1 , 9 }, + { 448, 28, 5 , 12 }, + { 461, 28, 5 , 9 }, + { 474, 28, 1 , 9 }, + { 483, 28, 8 , 9 }, + { 4, 52, 5 , 9 }, + { 17, 52, 4 , 7 }, + { 29, 52, 5 , 10 }, + { 42, 52, 5 , 10 }, + { 55, 52, 5 , 7 }, + { 68, 52, 5 , 7 }, + { 81, 52, 3 , 9 }, + { 92, 52, 5 , 7 }, + { 105, 52, 5 , 8 }, + { 118, 52, 9 , 8 }, + { 135, 52, 5 , 9 }, + { 148, 52, 6 , 9 }, + { 162, 52, 4 , 7 }, + { 174, 52, 5 , 12 }, + { 187, 52, 1 , 12 }, + { 196, 52, 5 , 12 }, + { 209, 52, 6 , 2 }, + { 223, 52, 1 , 9 }, + { 232, 52, 5 , 10 }, + { 245, 52, 6 , 9 }, + { 259, 52, 7 , 9 }, + { 274, 52, 5 , 9 }, + { 287, 52, 6 , 12 }, + { 301, 52, 5 , 10 }, + { 314, 52, 5 , 10 }, + { 327, 52, 8 , 8 }, + { 343, 52, 4 , 7 }, + { 355, 52, 6 , 5 }, + { 369, 52, 6 , 3 }, + { 383, 52, 8 , 8 }, + { 399, 52, 5 , 1 }, + { 412, 52, 4 , 4 }, + { 424, 52, 5 , 7 }, + { 437, 52, 3 , 4 }, + { 448, 52, 3 , 4 }, + { 459, 52, 5 , 12 }, + { 472, 52, 5 , 10 }, + { 485, 52, 7 , 11 }, + { 500, 52, 1 , 1 }, + { 4, 76, 4 , 10 }, + { 16, 76, 2 , 4 }, + { 26, 76, 4 , 7 }, + { 38, 76, 6 , 5 }, + { 52, 76, 11 , 9 }, + { 71, 76, 7 , 7 }, + { 86, 76, 5 , 12 }, + { 99, 76, 5 , 9 }, + { 112, 76, 7 , 12 }, + { 127, 76, 7 , 12 }, + { 142, 76, 7 , 12 }, + { 157, 76, 7 , 12 }, + { 172, 76, 7 , 11 }, + { 187, 76, 7 , 12 }, + { 202, 76, 10 , 9 }, + { 220, 76, 5 , 12 }, + { 233, 76, 5 , 12 }, + { 246, 76, 5 , 12 }, + { 259, 76, 5 , 12 }, + { 272, 76, 5 , 11 }, + { 285, 76, 2 , 12 }, + { 295, 76, 2 , 12 }, + { 305, 76, 3 , 12 }, + { 316, 76, 3 , 11 }, + { 327, 76, 7 , 9 }, + { 342, 76, 6 , 12 }, + { 356, 76, 7 , 12 }, + { 371, 76, 7 , 12 }, + { 386, 76, 7 , 12 }, + { 401, 76, 7 , 12 }, + { 416, 76, 7 , 11 }, + { 431, 76, 5 , 5 }, + { 444, 76, 7 , 9 }, + { 459, 76, 6 , 12 }, + { 473, 76, 6 , 12 }, + { 487, 76, 6 , 12 }, + { 4, 100, 6 , 11 }, + { 18, 100, 5 , 13 }, + { 31, 100, 5 , 9 }, + { 44, 100, 5 , 11 }, + { 57, 100, 6 , 10 }, + { 71, 100, 6 , 10 }, + { 85, 100, 6 , 10 }, + { 99, 100, 6 , 10 }, + { 113, 100, 6 , 9 }, + { 127, 100, 6 , 11 }, + { 141, 100, 7 , 7 }, + { 156, 100, 4 , 10 }, + { 168, 100, 4 , 10 }, + { 180, 100, 4 , 10 }, + { 192, 100, 4 , 10 }, + { 204, 100, 4 , 9 }, + { 216, 100, 2 , 10 }, + { 226, 100, 2 , 10 }, + { 236, 100, 3 , 10 }, + { 247, 100, 3 , 9 }, + { 258, 100, 5 , 9 }, + { 271, 100, 5 , 12 }, + { 284, 100, 4 , 10 }, + { 296, 100, 4 , 10 }, + { 308, 100, 4 , 10 }, + { 320, 100, 5 , 10 }, + { 333, 100, 4 , 9 }, + { 345, 100, 5 , 5 }, + { 358, 100, 6 , 7 }, + { 372, 100, 5 , 10 }, + { 385, 100, 5 , 10 }, + { 398, 100, 5 , 10 }, + { 411, 100, 5 , 9 }, + { 424, 100, 6 , 12 }, + { 438, 100, 5 , 12 }, + { 451, 100, 6 , 11 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo lavandaFontGlyphs[189] = { + { 32, 0, 0, 5, { 0 }}, + { 33, 0, 3, 2, { 0 }}, + { 34, 0, 3, 4, { 0 }}, + { 35, 0, 3, 8, { 0 }}, + { 36, 0, 2, 6, { 0 }}, + { 37, 0, 4, 11, { 0 }}, + { 38, 0, 3, 8, { 0 }}, + { 39, 0, 3, 2, { 0 }}, + { 40, 0, 2, 4, { 0 }}, + { 41, 0, 2, 4, { 0 }}, + { 42, 0, 3, 6, { 0 }}, + { 43, 0, 5, 6, { 0 }}, + { 44, 0, 10, 3, { 0 }}, + { 45, 0, 7, 4, { 0 }}, + { 46, 0, 11, 2, { 0 }}, + { 47, 0, 2, 5, { 0 }}, + { 48, 0, 3, 6, { 0 }}, + { 49, 0, 3, 4, { 0 }}, + { 50, 0, 3, 6, { 0 }}, + { 51, 0, 3, 6, { 0 }}, + { 52, 0, 3, 6, { 0 }}, + { 53, 0, 3, 6, { 0 }}, + { 54, 0, 3, 6, { 0 }}, + { 55, 0, 3, 6, { 0 }}, + { 56, 0, 3, 6, { 0 }}, + { 57, 0, 3, 6, { 0 }}, + { 58, 0, 7, 2, { 0 }}, + { 59, 0, 7, 3, { 0 }}, + { 60, 0, 5, 5, { 0 }}, + { 61, 0, 6, 5, { 0 }}, + { 62, 0, 5, 5, { 0 }}, + { 63, 0, 3, 6, { 0 }}, + { 64, 0, 4, 8, { 0 }}, + { 65, 0, 3, 8, { 0 }}, + { 66, 0, 3, 7, { 0 }}, + { 67, 0, 3, 6, { 0 }}, + { 68, 0, 3, 7, { 0 }}, + { 69, 0, 3, 6, { 0 }}, + { 70, 0, 3, 6, { 0 }}, + { 71, 0, 3, 7, { 0 }}, + { 72, 0, 2, 6, { 0 }}, + { 73, 0, 3, 2, { 0 }}, + { 74, 0, 3, 7, { 0 }}, + { 75, 0, 3, 7, { 0 }}, + { 76, 0, 3, 6, { 0 }}, + { 77, 0, 3, 9, { 0 }}, + { 78, 0, 2, 7, { 0 }}, + { 79, 0, 3, 8, { 0 }}, + { 80, 0, 3, 6, { 0 }}, + { 81, 0, 3, 8, { 0 }}, + { 82, 0, 3, 6, { 0 }}, + { 83, 0, 3, 7, { 0 }}, + { 84, 0, 3, 8, { 0 }}, + { 85, 0, 3, 7, { 0 }}, + { 86, 0, 2, 7, { 0 }}, + { 87, 0, 2, 10, { 0 }}, + { 88, 0, 3, 7, { 0 }}, + { 89, 0, 3, 6, { 0 }}, + { 90, 0, 3, 6, { 0 }}, + { 91, 0, 2, 4, { 0 }}, + { 92, 0, 2, 5, { 0 }}, + { 93, 0, 2, 4, { 0 }}, + { 94, 0, 3, 6, { 0 }}, + { 95, 0, 13, 7, { 0 }}, + { 96, 0, 3, 4, { 0 }}, + { 97, 0, 5, 7, { 0 }}, + { 98, 0, 3, 6, { 0 }}, + { 99, 0, 5, 5, { 0 }}, + { 100, 0, 2, 6, { 0 }}, + { 101, 0, 5, 5, { 0 }}, + { 102, 0, 2, 4, { 0 }}, + { 103, 0, 4, 5, { 0 }}, + { 104, 0, 3, 6, { 0 }}, + { 105, 0, 3, 2, { 0 }}, + { 106, -1, 3, 5, { 0 }}, + { 107, 0, 3, 6, { 0 }}, + { 108, 0, 3, 2, { 0 }}, + { 109, 0, 5, 9, { 0 }}, + { 110, 0, 5, 6, { 0 }}, + { 111, 0, 5, 5, { 0 }}, + { 112, 0, 5, 6, { 0 }}, + { 113, 0, 5, 6, { 0 }}, + { 114, 0, 5, 6, { 0 }}, + { 115, 0, 5, 6, { 0 }}, + { 116, 0, 3, 4, { 0 }}, + { 117, 0, 5, 6, { 0 }}, + { 118, 0, 4, 6, { 0 }}, + { 119, 0, 4, 10, { 0 }}, + { 120, 0, 5, 6, { 0 }}, + { 121, -1, 5, 6, { 0 }}, + { 122, 0, 5, 5, { 0 }}, + { 123, 0, 2, 6, { 0 }}, + { 124, 0, 2, 2, { 0 }}, + { 125, 0, 2, 6, { 0 }}, + { 126, 0, 7, 7, { 0 }}, + { 161, 0, 5, 2, { 0 }}, + { 162, 0, 4, 6, { 0 }}, + { 163, 0, 3, 7, { 0 }}, + { 8364, 0, 3, 8, { 0 }}, + { 165, 0, 3, 6, { 0 }}, + { 352, 0, 0, 7, { 0 }}, + { 167, 0, 3, 6, { 0 }}, + { 353, 0, 2, 6, { 0 }}, + { 169, 0, 4, 9, { 0 }}, + { 170, 0, 3, 5, { 0 }}, + { 171, 0, 6, 7, { 0 }}, + { 172, 0, 6, 7, { 0 }}, + { 174, 0, 4, 9, { 0 }}, + { 175, 0, 2, 6, { 0 }}, + { 176, 0, 3, 5, { 0 }}, + { 177, 0, 5, 6, { 0 }}, + { 178, 0, 3, 4, { 0 }}, + { 179, 0, 3, 4, { 0 }}, + { 381, 0, 0, 6, { 0 }}, + { 181, 0, 5, 6, { 0 }}, + { 182, 0, 3, 8, { 0 }}, + { 183, 0, 7, 2, { 0 }}, + { 382, 0, 2, 5, { 0 }}, + { 185, 0, 3, 3, { 0 }}, + { 186, 0, 3, 5, { 0 }}, + { 187, 0, 6, 7, { 0 }}, + { 338, 0, 3, 12, { 0 }}, + { 339, 0, 5, 8, { 0 }}, + { 376, 0, 1, 6, { 0 }}, + { 191, 0, 5, 6, { 0 }}, + { 192, 0, 0, 8, { 0 }}, + { 193, 0, 0, 8, { 0 }}, + { 194, 0, 0, 8, { 0 }}, + { 195, 0, 0, 8, { 0 }}, + { 196, 0, 1, 8, { 0 }}, + { 197, 0, 0, 8, { 0 }}, + { 198, 0, 3, 11, { 0 }}, + { 199, 0, 3, 6, { 0 }}, + { 200, 0, 0, 6, { 0 }}, + { 201, 0, 0, 6, { 0 }}, + { 202, 0, 0, 6, { 0 }}, + { 203, 0, 1, 6, { 0 }}, + { 204, -1, 0, 2, { 0 }}, + { 205, 0, 0, 3, { 0 }}, + { 206, -1, 0, 3, { 0 }}, + { 207, -1, 1, 3, { 0 }}, + { 208, -1, 3, 7, { 0 }}, + { 209, 0, 0, 7, { 0 }}, + { 210, 0, 0, 8, { 0 }}, + { 211, 0, 0, 8, { 0 }}, + { 212, 0, 0, 8, { 0 }}, + { 213, 0, 0, 8, { 0 }}, + { 214, 0, 1, 8, { 0 }}, + { 215, 0, 5, 6, { 0 }}, + { 216, 0, 3, 8, { 0 }}, + { 217, 0, 0, 7, { 0 }}, + { 218, 0, 0, 7, { 0 }}, + { 219, 0, 0, 7, { 0 }}, + { 220, 0, 1, 7, { 0 }}, + { 221, 0, 0, 6, { 0 }}, + { 222, 0, 3, 6, { 0 }}, + { 223, 0, 3, 6, { 0 }}, + { 224, 0, 2, 7, { 0 }}, + { 225, 0, 2, 7, { 0 }}, + { 226, 0, 2, 7, { 0 }}, + { 227, 0, 2, 7, { 0 }}, + { 228, 0, 3, 7, { 0 }}, + { 229, 0, 1, 7, { 0 }}, + { 230, 0, 5, 8, { 0 }}, + { 231, 0, 5, 5, { 0 }}, + { 232, 0, 2, 5, { 0 }}, + { 233, 0, 2, 5, { 0 }}, + { 234, 0, 2, 5, { 0 }}, + { 235, 0, 3, 5, { 0 }}, + { 236, -1, 2, 2, { 0 }}, + { 237, 0, 2, 3, { 0 }}, + { 238, -1, 2, 3, { 0 }}, + { 239, -1, 3, 3, { 0 }}, + { 240, 0, 3, 6, { 0 }}, + { 241, 0, 2, 6, { 0 }}, + { 242, 0, 2, 5, { 0 }}, + { 243, 0, 2, 5, { 0 }}, + { 244, 0, 2, 5, { 0 }}, + { 245, 0, 2, 6, { 0 }}, + { 246, 0, 3, 5, { 0 }}, + { 247, 0, 5, 6, { 0 }}, + { 248, -1, 5, 6, { 0 }}, + { 249, 0, 2, 6, { 0 }}, + { 250, 0, 2, 6, { 0 }}, + { 251, 0, 2, 6, { 0 }}, + { 252, 0, 3, 6, { 0 }}, + { 253, -1, 2, 6, { 0 }}, + { 254, 0, 3, 6, { 0 }}, + { 255, -1, 3, 6, { 0 }}, +}; + +// Style loading function: Lavanda +static void GuiLoadStyleLavanda(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < LAVANDA_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(lavandaStyleProps[i].controlId, lavandaStyleProps[i].propertyId, lavandaStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int lavandaFontDataSize = 0; + unsigned char *data = DecompressData(lavandaFontData, LAVANDA_STYLE_FONT_ATLAS_COMP_SIZE, &lavandaFontDataSize); + Image imFont = { data, 512, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 16; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, lavandaFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, lavandaFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 510, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/style_lavanda.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/style_lavanda.png new file mode 100644 index 0000000..e554e71 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/style_lavanda.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/style_lavanda.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/style_lavanda.rgs new file mode 100644 index 0000000..1a28c1c Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/style_lavanda.rgs differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/style_lavanda.txt.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/style_lavanda.txt.rgs new file mode 100644 index 0000000..33ee9bd --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/lavanda/style_lavanda.txt.rgs @@ -0,0 +1,26 @@ +# +# rgs style text file (v4.0) - raygui style file generated using rGuiStyler +# +# Provided info: +# f fontGenSize charsetFileName fontFileName +# p Property description +# +# WARNING: This style uses a custom font, must be provided with style file +# +f 16 charset.txt Cartridge.ttf +p 00 00 0xab9bd3ff DEFAULT_BORDER_COLOR_NORMAL +p 00 01 0x3e4350ff DEFAULT_BASE_COLOR_NORMAL +p 00 02 0xdadaf4ff DEFAULT_TEXT_COLOR_NORMAL +p 00 03 0xee84a0ff DEFAULT_BORDER_COLOR_FOCUSED +p 00 04 0xf4b7c7ff DEFAULT_BASE_COLOR_FOCUSED +p 00 05 0xb7657bff DEFAULT_TEXT_COLOR_FOCUSED +p 00 06 0xd5c8dbff DEFAULT_BORDER_COLOR_PRESSED +p 00 07 0x966ec0ff DEFAULT_BASE_COLOR_PRESSED +p 00 08 0xd7ccf7ff DEFAULT_TEXT_COLOR_PRESSED +p 00 09 0x8fa2bdff DEFAULT_BORDER_COLOR_DISABLED +p 00 10 0x6b798dff DEFAULT_BASE_COLOR_DISABLED +p 00 11 0x8292a9ff DEFAULT_TEXT_COLOR_DISABLED +p 00 16 0x00000010 TEXT_SIZE +p 00 18 0x84adb7ff LINE_COLOR +p 00 19 0x5b5b81ff BACKGROUND_COLOR +p 00 20 0x00000018 TEXT_LINE_SPACING diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/rltech/2a03_memesbruh03.ttf b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/rltech/2a03_memesbruh03.ttf new file mode 100644 index 0000000..71f6e9d Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/rltech/2a03_memesbruh03.ttf differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/rltech/font_readme.txt b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/rltech/font_readme.txt new file mode 100644 index 0000000..7689af6 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/rltech/font_readme.txt @@ -0,0 +1,10 @@ + +Every font made by MB03 is 100% free for personal & commercial use. +Including the font(s) in this archive. + + + +~ memesbruh03~ + +For more cool things, go to...: +https://memesbruh03.neocities.org/ \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/rltech/screenshot.old.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/rltech/screenshot.old.png new file mode 100644 index 0000000..1b6d207 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/rltech/screenshot.old.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/rltech/screenshot.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/rltech/screenshot.png new file mode 100644 index 0000000..5167ba7 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/rltech/screenshot.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/rltech/style_rltech.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/rltech/style_rltech.h new file mode 100644 index 0000000..20e84f6 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/rltech/style_rltech.h @@ -0,0 +1,572 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleRLTech(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define RLTECH_STYLE_PROPS_COUNT 15 + +// Custom style name: RLTech +static const GuiStyleProp rltechStyleProps[RLTECH_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0x000000ff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0xf5f5f5ff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0x000000ff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0xe10000ff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0xffffffff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0xed0000ff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0xed0000ff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0x0f0f0fff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0xff2323ff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0xcacacaff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0xe3e3e3ff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0xb3b3b3ff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE + { 0, 18, (int)0x352c2cff }, // DEFAULT_LINE_COLOR + { 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING +}; + +// WARNING: This style uses a custom font: "2a03.ttf" (size: 16, spacing: 1) + +#define RLTECH_STYLE_FONT_ATLAS_COMP_SIZE 1950 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char rltechFontData[RLTECH_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0xdd, 0xcb, 0x76, 0xc3, 0x2a, 0x12, 0x05, 0x50, 0xfe, 0xff, 0xa7, 0xab, 0x07, 0x77, 0xd0, 0x8f, 0xd5, 0xb1, 0xa0, 0x28, + 0x10, 0xd8, 0x3b, 0x7b, 0x16, 0xc7, 0xb6, 0x1e, 0x1c, 0x03, 0x8a, 0x29, 0x45, 0x03, 0x00, 0x00, 0x00, 0x88, 0xf8, 0xbf, + 0xbf, 0x89, 0x3f, 0xfe, 0x32, 0xba, 0x5f, 0xe5, 0x9f, 0xdf, 0xc6, 0x87, 0x67, 0xfd, 0xfb, 0xa7, 0xef, 0xf5, 0xa2, 0xf3, + 0x5d, 0xff, 0xfe, 0xfd, 0xdf, 0x5b, 0xd2, 0xbf, 0x6d, 0x15, 0xaf, 0x30, 0xfa, 0xd7, 0x9f, 0xb7, 0xa4, 0xea, 0xd5, 0x6a, + 0x1f, 0xd9, 0x77, 0xe4, 0x9f, 0xb7, 0x6e, 0xe7, 0xb1, 0x68, 0x9b, 0x8e, 0x6c, 0x0c, 0xb4, 0xfa, 0xb5, 0xf9, 0xff, 0xbc, + 0xad, 0xf1, 0x78, 0xee, 0x67, 0xb2, 0x9e, 0x7d, 0xcf, 0x8a, 0x23, 0xd7, 0xb7, 0xbd, 0x31, 0xf9, 0xd7, 0x77, 0x3e, 0x92, + 0x3d, 0x6a, 0xe3, 0x7f, 0xdf, 0x9b, 0x87, 0xda, 0x3d, 0x6e, 0xa5, 0xcf, 0x69, 0x8b, 0xdf, 0xa7, 0x22, 0xff, 0xcf, 0x29, + 0x1f, 0xef, 0xff, 0x33, 0x79, 0xea, 0x69, 0x11, 0xa3, 0x9f, 0xc3, 0xed, 0xf5, 0xfc, 0x67, 0x1e, 0xa9, 0x6d, 0x71, 0x6d, + 0x7b, 0xfe, 0xc7, 0x47, 0x85, 0xe3, 0xc7, 0x27, 0x3e, 0xb4, 0x41, 0xf9, 0x1f, 0x7b, 0x56, 0x66, 0x5e, 0x90, 0x1b, 0xa5, + 0xcf, 0x8d, 0xdc, 0x5b, 0xf2, 0x33, 0xa7, 0x32, 0xfd, 0xf2, 0xbf, 0xab, 0xff, 0xef, 0xe9, 0x31, 0xe4, 0x7f, 0xfe, 0x1c, + 0x64, 0xe6, 0x2a, 0x4f, 0xf9, 0x1f, 0xe9, 0x91, 0x6b, 0xc6, 0xf3, 0xa7, 0xe6, 0x3f, 0x3a, 0xe6, 0x8f, 0x6b, 0xe7, 0x95, + 0xad, 0xf4, 0x6a, 0xc2, 0x8a, 0x4f, 0x80, 0x78, 0x68, 0x9b, 0xe3, 0xfd, 0x7f, 0x66, 0x2e, 0x9f, 0xc9, 0xe5, 0xe8, 0x99, + 0xfd, 0xcf, 0x6d, 0x9f, 0xbd, 0x3e, 0xb2, 0xbe, 0xff, 0xcf, 0x5d, 0x1b, 0x1c, 0xed, 0x3d, 0x76, 0xf6, 0xe7, 0x6f, 0xe4, + 0x7f, 0xa6, 0xf5, 0xd7, 0xcc, 0x4a, 0x56, 0x3c, 0x67, 0xcf, 0x99, 0x8a, 0x87, 0x36, 0x79, 0x6f, 0xff, 0x1f, 0x17, 0x8c, + 0xff, 0xdb, 0xe3, 0x88, 0x7b, 0xf4, 0x4a, 0xe6, 0x5d, 0xf9, 0x5f, 0x77, 0x75, 0xf3, 0xde, 0xfc, 0xb7, 0x63, 0xf2, 0x3f, + 0x73, 0x25, 0xfd, 0x17, 0xf2, 0x5f, 0x71, 0xf4, 0x9f, 0xae, 0xd8, 0x44, 0xc1, 0xec, 0xf1, 0x37, 0xf2, 0xbf, 0x3a, 0xb1, + 0xbb, 0x5f, 0xed, 0xbc, 0xf3, 0x22, 0xff, 0x2b, 0x12, 0x14, 0x0f, 0xa3, 0x86, 0xf9, 0xd9, 0xe3, 0x7d, 0xf9, 0x1f, 0x99, + 0x45, 0x9e, 0x33, 0x63, 0xdf, 0x3b, 0xff, 0xdf, 0x73, 0x06, 0xce, 0xfd, 0xfe, 0x44, 0xe6, 0x6a, 0xdb, 0x69, 0xfd, 0xff, + 0x09, 0xbd, 0x2c, 0x20, 0xff, 0x80, 0xfc, 0x03, 0xbf, 0xb0, 0x52, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7e, 0xe9, 0x3b, 0xf4, 0xb9, 0xd5, 0xc9, 0x77, 0xd6, 0xa6, 0x5f, 0x51, 0x11, 0xa6, 0xba, 0xb2, 0xf6, + 0xe7, 0xad, 0x1f, 0x59, 0x01, 0xdf, 0xb7, 0x6a, 0x2a, 0x06, 0xd7, 0xa9, 0xd7, 0xae, 0x6a, 0xcf, 0x54, 0x1f, 0x68, 0xa5, + 0xeb, 0xed, 0x67, 0x56, 0x9b, 0x44, 0x2a, 0x21, 0x2b, 0xaa, 0x37, 0xee, 0xca, 0x7f, 0x4f, 0xfb, 0x6d, 0x47, 0xd4, 0xa6, + 0xcf, 0xac, 0x26, 0x7c, 0x3f, 0xff, 0xa3, 0xad, 0x70, 0xbc, 0x2e, 0x76, 0xc5, 0xea, 0xcb, 0xf6, 0x6a, 0xf5, 0xe1, 0xfc, + 0x59, 0xac, 0x5c, 0x81, 0xba, 0xb7, 0x57, 0x98, 0xdd, 0x8f, 0xbf, 0x5e, 0x73, 0xae, 0xd6, 0xe9, 0x48, 0x15, 0x6e, 0xf9, + 0x7f, 0x3b, 0xff, 0xeb, 0x47, 0x94, 0xbb, 0xea, 0xdd, 0xc4, 0xf0, 0x1d, 0x41, 0x66, 0xee, 0x57, 0x14, 0x13, 0x7f, 0x7b, + 0x76, 0xfe, 0xb3, 0x6d, 0x2a, 0x1e, 0x3f, 0x55, 0xe4, 0xbf, 0x3d, 0xdc, 0x39, 0xa1, 0x0d, 0x56, 0x4e, 0xce, 0x56, 0x59, + 0xae, 0xcf, 0x7d, 0x65, 0x85, 0xaa, 0x48, 0x8e, 0xff, 0xab, 0xcf, 0x62, 0x55, 0x4f, 0x79, 0x53, 0xfe, 0xf3, 0x77, 0xd1, + 0xdb, 0x37, 0xe7, 0x7d, 0x7a, 0xce, 0xe8, 0x5c, 0x73, 0x6f, 0xfe, 0x2b, 0xef, 0x75, 0x73, 0x4e, 0xfe, 0x57, 0xce, 0x28, + 0xfb, 0xb6, 0x7f, 0x7f, 0xfe, 0xe3, 0x2b, 0xc7, 0xff, 0x71, 0x48, 0xfe, 0x2b, 0xdb, 0x5a, 0x4b, 0xe5, 0x71, 0x6f, 0xff, + 0xdf, 0x5e, 0xfc, 0xbd, 0xfc, 0x8f, 0xe7, 0x3f, 0xcc, 0xff, 0x5f, 0xcb, 0x7f, 0x5c, 0x9b, 0xff, 0x98, 0xd8, 0x92, 0xf9, + 0x47, 0xce, 0x1a, 0xff, 0x57, 0x3e, 0x27, 0x73, 0x47, 0xe0, 0x3b, 0xfa, 0xff, 0x6f, 0xb8, 0xfe, 0x5f, 0xff, 0x7e, 0x99, + 0x19, 0x74, 0x55, 0xfe, 0xfb, 0xe7, 0xf0, 0xbf, 0x92, 0xff, 0xcc, 0xc8, 0xa0, 0xf6, 0x39, 0xe3, 0xd7, 0x78, 0xf6, 0xcd, + 0xff, 0x77, 0x5d, 0x6b, 0x3d, 0xe3, 0xd3, 0x3a, 0x16, 0x5d, 0x83, 0xfd, 0xdf, 0x2b, 0xbd, 0x55, 0xfd, 0x46, 0xed, 0x7c, + 0x3c, 0xff, 0x5d, 0x88, 0x99, 0x3e, 0xec, 0xe4, 0xfc, 0x8f, 0xf7, 0x52, 0xb9, 0x9e, 0xed, 0x8d, 0xfc, 0xbf, 0x59, 0x87, + 0x52, 0xbd, 0x4b, 0x42, 0x9b, 0x59, 0xf2, 0x59, 0x72, 0xc3, 0x71, 0x93, 0x7f, 0xe4, 0x5f, 0xd6, 0xd0, 0x2e, 0xb5, 0x63, + 0xf9, 0xe7, 0x17, 0xdb, 0x65, 0xff, 0xc8, 0xf6, 0x84, 0x7b, 0xf3, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x50, 0xb5, 0xfe, 0x3f, 0x53, 0x6d, 0xe4, 0xf4, 0xfa, 0xb9, 0xa3, 0x2b, 0xf9, 0xfb, 0xd7, 0x74, 0x47, 0x41, + 0x55, 0xde, 0xe7, 0xaa, 0x85, 0x23, 0x35, 0x04, 0x62, 0xb8, 0x42, 0x7f, 0xcf, 0x73, 0x3e, 0xb7, 0x89, 0xbf, 0xf7, 0x36, + 0xd7, 0xc2, 0x9e, 0x1f, 0xef, 0x5f, 0xdb, 0x10, 0x43, 0xc7, 0x3c, 0x73, 0x8c, 0x3e, 0x9d, 0x8b, 0xb1, 0x7b, 0x28, 0xfc, + 0xfd, 0x2a, 0x63, 0x2d, 0x23, 0x3a, 0x57, 0x33, 0x55, 0x55, 0x6b, 0xbf, 0xb7, 0x7e, 0xf6, 0xfc, 0xef, 0x62, 0x7a, 0x15, + 0xfa, 0xf8, 0x31, 0xaf, 0xad, 0x21, 0xd4, 0xfb, 0x9c, 0xf1, 0xba, 0xc4, 0x63, 0x6d, 0x26, 0x26, 0x56, 0xdc, 0x45, 0x6a, + 0xbf, 0x63, 0xe2, 0x68, 0xf4, 0xf6, 0x3a, 0x23, 0x7b, 0x32, 0x5a, 0x51, 0x30, 0x77, 0xe4, 0xab, 0xf3, 0x9f, 0xa9, 0xbc, + 0x9e, 0xcf, 0x7f, 0x6d, 0xfd, 0xec, 0xb9, 0xfc, 0x8f, 0xb5, 0xed, 0x7c, 0x65, 0xe5, 0xf1, 0x4f, 0xba, 0x36, 0x38, 0x06, + 0xfa, 0x94, 0xaa, 0x4f, 0xf5, 0x96, 0xf2, 0xbd, 0x50, 0x0c, 0xbf, 0xdb, 0xf8, 0xda, 0xc6, 0x48, 0xf5, 0xf3, 0x51, 0x54, + 0xab, 0x2c, 0xb7, 0x27, 0xb3, 0xf9, 0x1f, 0xf9, 0xec, 0xad, 0xba, 0x5b, 0xd3, 0x29, 0xf5, 0xb3, 0x73, 0xa3, 0xef, 0x53, + 0xf3, 0xbf, 0xef, 0x6e, 0x66, 0x9f, 0x9e, 0x13, 0xcb, 0x7a, 0xa1, 0xbf, 0xdf, 0x2d, 0x0a, 0x57, 0xdc, 0xd7, 0x8c, 0x86, + 0x66, 0xee, 0x48, 0xb2, 0x62, 0x84, 0xb8, 0xbf, 0xff, 0x1f, 0xcf, 0xc6, 0x49, 0xfd, 0xff, 0x9a, 0x39, 0x41, 0x45, 0xfe, + 0x73, 0x33, 0x83, 0xf9, 0x2a, 0xed, 0xbd, 0xcf, 0x89, 0x8e, 0x54, 0xb4, 0x92, 0x4f, 0x80, 0xf8, 0xaf, 0xde, 0x77, 0x75, + 0xfe, 0xc7, 0xaf, 0x68, 0xe4, 0xae, 0x3a, 0x55, 0x54, 0x31, 0x3d, 0x61, 0xfe, 0x5f, 0x99, 0xff, 0x35, 0xf5, 0x73, 0xeb, + 0xaa, 0xc6, 0xaf, 0xc8, 0xff, 0x78, 0xca, 0x67, 0x7a, 0xf9, 0x3d, 0xf9, 0xaf, 0xbe, 0x2a, 0xbd, 0xa2, 0xff, 0xaf, 0xdf, + 0xc6, 0xb1, 0xeb, 0x7f, 0xb3, 0x2d, 0x67, 0xf7, 0xf5, 0xff, 0xca, 0xf1, 0xff, 0xde, 0xfa, 0xb9, 0x75, 0x79, 0x99, 0xad, + 0x9d, 0x5b, 0x73, 0xaf, 0x9e, 0xea, 0xfe, 0x3f, 0x77, 0x74, 0x32, 0xf3, 0xff, 0x53, 0xf2, 0x1f, 0x0b, 0xb6, 0x70, 0xbc, + 0x95, 0xc7, 0x82, 0xf4, 0xd7, 0xec, 0xd7, 0xda, 0x31, 0xd6, 0x39, 0x9f, 0xd1, 0xed, 0xf5, 0xfe, 0x3f, 0xf7, 0xd7, 0x95, + 0x23, 0x83, 0xcc, 0xbb, 0xc5, 0xd6, 0xb3, 0x1c, 0x07, 0xb7, 0xa9, 0x99, 0x2b, 0x09, 0x71, 0x6c, 0x8a, 0xa2, 0x74, 0x3c, + 0x21, 0xff, 0xad, 0xf8, 0xba, 0xfc, 0xf8, 0xf8, 0xa9, 0x25, 0xbf, 0x03, 0xd1, 0xba, 0xee, 0x5b, 0xbf, 0x6b, 0x54, 0x7a, + 0x62, 0xa5, 0xc2, 0xdc, 0x1d, 0xd5, 0x46, 0xae, 0xff, 0x9d, 0x9e, 0x94, 0x7b, 0xbf, 0xd5, 0xb4, 0x3b, 0xff, 0x77, 0x7d, + 0x06, 0x9e, 0x9a, 0xb8, 0x3b, 0x8e, 0x67, 0xbc, 0xda, 0x7a, 0x59, 0x33, 0xa7, 0xfb, 0xa5, 0xfc, 0xe3, 0x78, 0x3a, 0xb3, + 0xdf, 0x91, 0x7f, 0xbd, 0x88, 0xe3, 0x4a, 0xd5, 0xff, 0x74, 0x7c, 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x70, 0xc6, 0x6a, 0x86, 0xde, 0x5a, 0xec, 0xa3, 0xd5, 0xaf, 0xf3, 0xab, 0xa5, 0xc7, 0x7e, 0x1f, 0xc3, + 0x95, 0xb9, 0x9f, 0xd6, 0xda, 0x57, 0xde, 0x01, 0x21, 0xbf, 0x5f, 0x99, 0x3a, 0x6b, 0x3d, 0xbf, 0x1b, 0xaf, 0x32, 0x10, + 0xa9, 0xf5, 0x50, 0xeb, 0xcf, 0x64, 0xee, 0x6e, 0x0f, 0x7b, 0xce, 0x53, 0x66, 0x15, 0x59, 0xfd, 0x56, 0x3f, 0x3f, 0xa3, + 0xbf, 0x5a, 0x5c, 0xbc, 0xb8, 0x92, 0xfa, 0x73, 0xcb, 0x88, 0xc4, 0xfb, 0xc7, 0xd4, 0x31, 0x59, 0xbd, 0x5f, 0xb3, 0x6b, + 0x95, 0xb2, 0x55, 0xa7, 0x62, 0xf0, 0x08, 0xdf, 0x79, 0x26, 0xf7, 0x9c, 0xa7, 0x7c, 0x0d, 0xb9, 0xd8, 0x50, 0x7f, 0xa0, + 0x22, 0xff, 0x31, 0xb9, 0x9f, 0xef, 0xac, 0xd6, 0x8c, 0xd4, 0x3d, 0x75, 0xf6, 0xee, 0xd3, 0xba, 0xb5, 0xa6, 0x91, 0x6c, + 0x0d, 0xa7, 0xae, 0xbb, 0x7d, 0x77, 0x7f, 0x6a, 0xef, 0xc2, 0xb0, 0xf3, 0x2c, 0x8c, 0xe4, 0x3f, 0xb7, 0xbd, 0x51, 0x98, + 0xcb, 0xda, 0x5a, 0xf7, 0xb9, 0xcf, 0xb3, 0xb6, 0xa0, 0xb6, 0xe6, 0x78, 0x0d, 0xd6, 0xb6, 0xa4, 0x82, 0x69, 0xed, 0x1d, + 0xd5, 0x76, 0x9d, 0xc9, 0xa7, 0xfe, 0x7f, 0x7d, 0xbb, 0xd8, 0xf7, 0x48, 0xbe, 0xda, 0x63, 0x5f, 0xba, 0x2b, 0x46, 0x08, + 0xcf, 0x33, 0xec, 0x5b, 0x8e, 0x72, 0xdd, 0x7d, 0xba, 0xaa, 0x1f, 0x59, 0x91, 0xff, 0xa7, 0xfa, 0xbe, 0x37, 0xe6, 0xe5, + 0xe9, 0xbe, 0x8c, 0xe7, 0x6e, 0x75, 0x94, 0xb7, 0x98, 0x56, 0x9c, 0xee, 0xfe, 0x7d, 0xbc, 0x2d, 0xff, 0xa7, 0xa4, 0xfc, + 0xac, 0xfe, 0xff, 0xd4, 0x24, 0x7d, 0x1e, 0x63, 0xdf, 0xf9, 0xa9, 0xb5, 0xa2, 0xc5, 0x64, 0xd3, 0x9d, 0xbf, 0x1a, 0x7e, + 0x42, 0xfe, 0xf7, 0xce, 0xff, 0xab, 0x1f, 0x99, 0xbb, 0x57, 0x71, 0xf5, 0xf8, 0xff, 0xcc, 0x91, 0x74, 0xbb, 0xb4, 0x97, + 0xd9, 0x73, 0x5f, 0x8b, 0xfa, 0x2b, 0x17, 0x35, 0xed, 0xe9, 0xbb, 0xe7, 0xff, 0x55, 0x8f, 0xdc, 0x30, 0xff, 0x97, 0xff, + 0x99, 0x94, 0xb7, 0xd7, 0x8e, 0x4e, 0xef, 0x7f, 0xf7, 0x67, 0xf2, 0xbf, 0x27, 0x97, 0xab, 0x1e, 0x59, 0x31, 0xe2, 0x39, + 0x7b, 0xfc, 0x7f, 0xe3, 0xf9, 0xaa, 0xbd, 0xc6, 0x5e, 0xbf, 0x6d, 0x99, 0xff, 0xe3, 0xd5, 0x6d, 0xf5, 0xae, 0xff, 0xce, + 0x54, 0x8d, 0x3b, 0x4e, 0x6e, 0x4f, 0x6b, 0xfe, 0x3b, 0x7b, 0x4e, 0xfe, 0xbf, 0xf9, 0x7c, 0x9d, 0x96, 0xff, 0xb6, 0xe9, + 0xbf, 0x4b, 0xf2, 0xbf, 0xa2, 0x3d, 0xc5, 0xd6, 0xf9, 0x7f, 0xc8, 0x7f, 0x71, 0x0b, 0xdf, 0xb9, 0x6d, 0xb1, 0x38, 0x4b, + 0x77, 0x7e, 0xef, 0xf8, 0xdc, 0xbe, 0x61, 0xff, 0xf7, 0x8d, 0x6a, 0xee, 0x56, 0xb4, 0xf2, 0xfb, 0x57, 0xef, 0x5f, 0xc9, + 0xb9, 0xf5, 0x3c, 0xa9, 0x18, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0x5b, 0xbb, + 0xa7, 0xa6, 0x7e, 0x2b, 0xaa, 0xa9, 0x3f, 0xfe, 0x48, 0xed, 0xfe, 0x46, 0xa2, 0x3a, 0x78, 0x14, 0xac, 0x48, 0x5c, 0x71, + 0x96, 0xc6, 0xce, 0x4a, 0xdf, 0xab, 0xfd, 0x7a, 0xfa, 0xd7, 0x57, 0x62, 0xef, 0x5f, 0xc3, 0x57, 0xb5, 0x7a, 0xf6, 0x94, + 0x9a, 0xfa, 0x2d, 0x75, 0x7c, 0xdf, 0xae, 0xa8, 0x3f, 0x7e, 0xfe, 0xda, 0x05, 0x15, 0xf5, 0x79, 0x6b, 0xed, 0xe4, 0x6c, + 0xfe, 0x77, 0x6c, 0xfd, 0xba, 0x71, 0xd4, 0x6d, 0x15, 0xf5, 0x9f, 0xea, 0xe6, 0xc4, 0xa1, 0x15, 0xf5, 0x2b, 0x5f, 0x4d, + 0x96, 0xa3, 0xb0, 0x0a, 0x71, 0xcf, 0xf8, 0x7f, 0xcf, 0x5a, 0xed, 0x18, 0x1a, 0x41, 0x56, 0xd5, 0xd4, 0x78, 0xb3, 0x02, + 0x62, 0xe5, 0x7d, 0x26, 0xce, 0xae, 0xa8, 0x7d, 0xc2, 0x1d, 0x35, 0xbe, 0xeb, 0x1a, 0x40, 0x2b, 0xcb, 0xff, 0xfc, 0xab, + 0xad, 0xaf, 0x15, 0xb2, 0xae, 0xa6, 0xfe, 0x7d, 0x15, 0xf5, 0x3e, 0xdd, 0x05, 0xf0, 0xfb, 0x2a, 0x6a, 0xcb, 0xff, 0xea, + 0x9e, 0xeb, 0x9c, 0xfc, 0xef, 0xac, 0xa9, 0xa5, 0xa2, 0xae, 0xfc, 0x7f, 0xdb, 0xf8, 0xbf, 0xe2, 0x9e, 0x3a, 0xef, 0x8f, + 0x7a, 0x9b, 0xfc, 0xa7, 0xf2, 0x7f, 0x77, 0x45, 0x67, 0x89, 0x3f, 0xf9, 0x38, 0x7f, 0x5f, 0x4d, 0xdd, 0xdf, 0x49, 0x85, + 0xfc, 0xff, 0x4e, 0xfe, 0xd7, 0x54, 0x6f, 0xfc, 0xc6, 0x9a, 0xba, 0x67, 0xf7, 0x97, 0x37, 0x56, 0xd4, 0x7d, 0x7f, 0x4f, + 0x5d, 0xff, 0xbf, 0x61, 0x8e, 0x72, 0x7a, 0x4d, 0x5d, 0x15, 0x75, 0x73, 0xdb, 0xb6, 0xe6, 0x3f, 0x56, 0xc0, 0xdd, 0x57, + 0xac, 0x63, 0xe2, 0x2a, 0x37, 0xf0, 0xad, 0xf9, 0x37, 0xfe, 0x87, 0xef, 0x9f, 0xb1, 0x3a, 0x3a, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x37, 0xf8, 0xe7, 0xc7, + 0x71, 0x00, 0xf9, 0x07, 0x7e, 0x2e, 0xff, 0xff, 0x02 }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle rltechFontRecs[189] = { + { 4, 4, 5 , 16 }, + { 17, 4, 1 , 9 }, + { 26, 4, 3 , 3 }, + { 37, 4, 5 , 7 }, + { 50, 4, 5 , 9 }, + { 63, 4, 7 , 9 }, + { 78, 4, 6 , 9 }, + { 92, 4, 1 , 3 }, + { 101, 4, 2 , 13 }, + { 111, 4, 2 , 13 }, + { 121, 4, 5 , 5 }, + { 134, 4, 5 , 5 }, + { 147, 4, 1 , 2 }, + { 156, 4, 5 , 1 }, + { 169, 4, 1 , 1 }, + { 178, 4, 3 , 9 }, + { 189, 4, 5 , 9 }, + { 202, 4, 2 , 9 }, + { 212, 4, 5 , 9 }, + { 225, 4, 5 , 9 }, + { 238, 4, 5 , 9 }, + { 251, 4, 5 , 9 }, + { 264, 4, 5 , 9 }, + { 277, 4, 5 , 9 }, + { 290, 4, 5 , 9 }, + { 303, 4, 5 , 9 }, + { 316, 4, 1 , 6 }, + { 325, 4, 1 , 7 }, + { 334, 4, 3 , 5 }, + { 345, 4, 5 , 3 }, + { 358, 4, 3 , 5 }, + { 369, 4, 5 , 9 }, + { 382, 4, 8 , 9 }, + { 398, 4, 5 , 9 }, + { 411, 4, 5 , 9 }, + { 424, 4, 5 , 9 }, + { 437, 4, 5 , 9 }, + { 450, 4, 5 , 9 }, + { 463, 4, 5 , 9 }, + { 476, 4, 5 , 9 }, + { 489, 4, 5 , 9 }, + { 502, 4, 1 , 9 }, + { 4, 28, 5 , 9 }, + { 17, 28, 5 , 9 }, + { 30, 28, 5 , 9 }, + { 43, 28, 9 , 9 }, + { 60, 28, 5 , 9 }, + { 73, 28, 5 , 9 }, + { 86, 28, 5 , 9 }, + { 99, 28, 5 , 9 }, + { 112, 28, 5 , 9 }, + { 125, 28, 5 , 9 }, + { 138, 28, 5 , 9 }, + { 151, 28, 5 , 9 }, + { 164, 28, 5 , 9 }, + { 177, 28, 9 , 9 }, + { 194, 28, 5 , 9 }, + { 207, 28, 5 , 9 }, + { 220, 28, 5 , 9 }, + { 233, 28, 3 , 13 }, + { 244, 28, 3 , 9 }, + { 255, 28, 3 , 13 }, + { 266, 28, 3 , 2 }, + { 277, 28, 6 , 1 }, + { 291, 28, 2 , 2 }, + { 301, 28, 5 , 7 }, + { 314, 28, 5 , 9 }, + { 327, 28, 5 , 7 }, + { 340, 28, 5 , 9 }, + { 353, 28, 5 , 7 }, + { 366, 28, 4 , 9 }, + { 378, 28, 5 , 10 }, + { 391, 28, 5 , 9 }, + { 404, 28, 1 , 9 }, + { 413, 28, 1 , 12 }, + { 422, 28, 5 , 9 }, + { 435, 28, 1 , 9 }, + { 444, 28, 9 , 7 }, + { 461, 28, 5 , 7 }, + { 474, 28, 5 , 7 }, + { 487, 28, 5 , 10 }, + { 4, 52, 5 , 10 }, + { 17, 52, 5 , 7 }, + { 30, 52, 5 , 7 }, + { 43, 52, 4 , 9 }, + { 55, 52, 5 , 7 }, + { 68, 52, 5 , 7 }, + { 81, 52, 9 , 7 }, + { 98, 52, 5 , 7 }, + { 111, 52, 5 , 10 }, + { 124, 52, 5 , 7 }, + { 137, 52, 3 , 13 }, + { 148, 52, 1 , 13 }, + { 157, 52, 3 , 13 }, + { 168, 52, 4 , 2 }, + { 180, 52, 1 , 9 }, + { 189, 52, 5 , 7 }, + { 202, 52, 5 , 9 }, + { 215, 52, 5 , 9 }, + { 228, 52, 5 , 9 }, + { 241, 52, 5 , 12 }, + { 254, 52, 5 , 9 }, + { 267, 52, 5 , 10 }, + { 280, 52, 8 , 9 }, + { 296, 52, 4 , 7 }, + { 308, 52, 6 , 5 }, + { 322, 52, 5 , 3 }, + { 335, 52, 8 , 9 }, + { 351, 52, 6 , 1 }, + { 365, 52, 3 , 3 }, + { 376, 52, 5 , 7 }, + { 389, 52, 4 , 5 }, + { 401, 52, 4 , 5 }, + { 413, 52, 5 , 12 }, + { 426, 52, 5 , 10 }, + { 439, 52, 6 , 9 }, + { 453, 52, 1 , 1 }, + { 462, 52, 5 , 10 }, + { 475, 52, 2 , 5 }, + { 485, 52, 4 , 7 }, + { 497, 52, 6 , 5 }, + { 4, 76, 9 , 9 }, + { 21, 76, 9 , 7 }, + { 38, 76, 5 , 11 }, + { 51, 76, 5 , 9 }, + { 64, 76, 5 , 12 }, + { 77, 76, 5 , 12 }, + { 90, 76, 5 , 12 }, + { 103, 76, 5 , 12 }, + { 116, 76, 5 , 11 }, + { 129, 76, 5 , 11 }, + { 142, 76, 9 , 9 }, + { 159, 76, 5 , 11 }, + { 172, 76, 5 , 12 }, + { 185, 76, 5 , 12 }, + { 198, 76, 5 , 12 }, + { 211, 76, 5 , 11 }, + { 224, 76, 2 , 12 }, + { 234, 76, 2 , 12 }, + { 244, 76, 3 , 12 }, + { 255, 76, 3 , 11 }, + { 266, 76, 6 , 9 }, + { 280, 76, 5 , 12 }, + { 293, 76, 5 , 12 }, + { 306, 76, 5 , 12 }, + { 319, 76, 5 , 12 }, + { 332, 76, 5 , 12 }, + { 345, 76, 5 , 11 }, + { 358, 76, 5 , 5 }, + { 371, 76, 5 , 9 }, + { 384, 76, 5 , 12 }, + { 397, 76, 5 , 12 }, + { 410, 76, 5 , 12 }, + { 423, 76, 5 , 11 }, + { 436, 76, 5 , 12 }, + { 449, 76, 5 , 9 }, + { 462, 76, 5 , 11 }, + { 475, 76, 5 , 10 }, + { 488, 76, 5 , 10 }, + { 4, 100, 5 , 10 }, + { 17, 100, 5 , 10 }, + { 30, 100, 5 , 9 }, + { 43, 100, 5 , 9 }, + { 56, 100, 9 , 7 }, + { 73, 100, 5 , 9 }, + { 86, 100, 5 , 10 }, + { 99, 100, 5 , 10 }, + { 112, 100, 5 , 10 }, + { 125, 100, 5 , 9 }, + { 138, 100, 2 , 10 }, + { 148, 100, 2 , 10 }, + { 158, 100, 3 , 10 }, + { 169, 100, 3 , 9 }, + { 180, 100, 5 , 9 }, + { 193, 100, 5 , 10 }, + { 206, 100, 5 , 10 }, + { 219, 100, 5 , 10 }, + { 232, 100, 5 , 10 }, + { 245, 100, 5 , 10 }, + { 258, 100, 5 , 9 }, + { 271, 100, 5 , 5 }, + { 284, 100, 5 , 7 }, + { 297, 100, 5 , 10 }, + { 310, 100, 5 , 10 }, + { 323, 100, 5 , 10 }, + { 336, 100, 5 , 9 }, + { 349, 100, 5 , 13 }, + { 362, 100, 5 , 13 }, + { 375, 100, 5 , 12 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo rltechFontGlyphs[189] = { + { 32, 0, 0, 5, { 0 }}, + { 33, 0, 3, 2, { 0 }}, + { 34, 0, 3, 4, { 0 }}, + { 35, 0, 3, 6, { 0 }}, + { 36, 0, 3, 6, { 0 }}, + { 37, 0, 3, 8, { 0 }}, + { 38, 0, 3, 7, { 0 }}, + { 39, 0, 3, 2, { 0 }}, + { 40, 0, 1, 2, { 0 }}, + { 41, -1, 1, 2, { 0 }}, + { 42, 0, 3, 6, { 0 }}, + { 43, 0, 5, 6, { 0 }}, + { 44, 0, 10, 2, { 0 }}, + { 45, 0, 8, 6, { 0 }}, + { 46, 0, 11, 2, { 0 }}, + { 47, 0, 3, 4, { 0 }}, + { 48, 0, 3, 6, { 0 }}, + { 49, 0, 3, 3, { 0 }}, + { 50, 0, 3, 6, { 0 }}, + { 51, 0, 3, 6, { 0 }}, + { 52, 0, 3, 6, { 0 }}, + { 53, 0, 3, 6, { 0 }}, + { 54, 0, 3, 6, { 0 }}, + { 55, 0, 3, 6, { 0 }}, + { 56, 0, 3, 6, { 0 }}, + { 57, 0, 3, 6, { 0 }}, + { 58, 0, 4, 2, { 0 }}, + { 59, 0, 4, 2, { 0 }}, + { 60, 0, 5, 4, { 0 }}, + { 61, 0, 6, 6, { 0 }}, + { 62, 0, 5, 4, { 0 }}, + { 63, 0, 3, 6, { 0 }}, + { 64, 0, 3, 9, { 0 }}, + { 65, 0, 3, 6, { 0 }}, + { 66, 0, 3, 6, { 0 }}, + { 67, 0, 3, 6, { 0 }}, + { 68, 0, 3, 6, { 0 }}, + { 69, 0, 3, 6, { 0 }}, + { 70, 0, 3, 6, { 0 }}, + { 71, 0, 3, 6, { 0 }}, + { 72, 0, 3, 6, { 0 }}, + { 73, 0, 3, 2, { 0 }}, + { 74, 0, 3, 6, { 0 }}, + { 75, 0, 3, 6, { 0 }}, + { 76, 0, 3, 6, { 0 }}, + { 77, 0, 3, 10, { 0 }}, + { 78, 0, 3, 6, { 0 }}, + { 79, 0, 3, 6, { 0 }}, + { 80, 0, 3, 6, { 0 }}, + { 81, 0, 3, 6, { 0 }}, + { 82, 0, 3, 6, { 0 }}, + { 83, 0, 3, 6, { 0 }}, + { 84, 0, 3, 6, { 0 }}, + { 85, 0, 3, 6, { 0 }}, + { 86, 0, 3, 6, { 0 }}, + { 87, 0, 3, 10, { 0 }}, + { 88, 0, 3, 6, { 0 }}, + { 89, 0, 3, 6, { 0 }}, + { 90, 0, 3, 6, { 0 }}, + { 91, 0, 1, 2, { 0 }}, + { 92, 0, 3, 4, { 0 }}, + { 93, -2, 1, 2, { 0 }}, + { 94, 0, 3, 4, { 0 }}, + { 95, 0, 12, 7, { 0 }}, + { 96, 0, 3, 3, { 0 }}, + { 97, 0, 5, 6, { 0 }}, + { 98, 0, 3, 6, { 0 }}, + { 99, 0, 5, 6, { 0 }}, + { 100, 0, 3, 6, { 0 }}, + { 101, 0, 5, 6, { 0 }}, + { 102, 0, 3, 5, { 0 }}, + { 103, 0, 5, 6, { 0 }}, + { 104, 0, 3, 6, { 0 }}, + { 105, 0, 3, 2, { 0 }}, + { 106, 0, 3, 2, { 0 }}, + { 107, 0, 3, 6, { 0 }}, + { 108, 0, 3, 2, { 0 }}, + { 109, 0, 5, 10, { 0 }}, + { 110, 0, 5, 6, { 0 }}, + { 111, 0, 5, 6, { 0 }}, + { 112, 0, 5, 6, { 0 }}, + { 113, 0, 5, 6, { 0 }}, + { 114, 0, 5, 6, { 0 }}, + { 115, 0, 5, 6, { 0 }}, + { 116, 0, 3, 5, { 0 }}, + { 117, 0, 5, 6, { 0 }}, + { 118, 0, 5, 6, { 0 }}, + { 119, 0, 5, 10, { 0 }}, + { 120, 0, 5, 6, { 0 }}, + { 121, 0, 5, 6, { 0 }}, + { 122, 0, 5, 6, { 0 }}, + { 123, 0, 1, 3, { 0 }}, + { 124, 0, 1, 2, { 0 }}, + { 125, -1, 1, 3, { 0 }}, + { 126, 0, 3, 5, { 0 }}, + { 161, 0, 6, 2, { 0 }}, + { 162, 0, 4, 6, { 0 }}, + { 163, 0, 3, 6, { 0 }}, + { 8364, 0, 3, 6, { 0 }}, + { 165, 0, 3, 6, { 0 }}, + { 352, 0, 0, 6, { 0 }}, + { 167, 0, 3, 6, { 0 }}, + { 353, 0, 2, 6, { 0 }}, + { 169, 0, 3, 9, { 0 }}, + { 170, 0, 3, 5, { 0 }}, + { 171, 0, 5, 7, { 0 }}, + { 172, 0, 6, 6, { 0 }}, + { 174, 0, 3, 9, { 0 }}, + { 175, 0, 2, 7, { 0 }}, + { 176, 0, 3, 4, { 0 }}, + { 177, 0, 4, 6, { 0 }}, + { 178, 0, 3, 5, { 0 }}, + { 179, 0, 3, 5, { 0 }}, + { 381, 0, 0, 6, { 0 }}, + { 181, 0, 5, 6, { 0 }}, + { 182, 0, 3, 7, { 0 }}, + { 183, 0, 7, 2, { 0 }}, + { 382, 0, 2, 6, { 0 }}, + { 185, 0, 3, 3, { 0 }}, + { 186, 0, 3, 5, { 0 }}, + { 187, 0, 5, 7, { 0 }}, + { 338, 0, 3, 10, { 0 }}, + { 339, 0, 5, 10, { 0 }}, + { 376, 0, 1, 6, { 0 }}, + { 191, 0, 6, 6, { 0 }}, + { 192, 0, 0, 6, { 0 }}, + { 193, 0, 0, 6, { 0 }}, + { 194, 0, 0, 6, { 0 }}, + { 195, 0, 0, 6, { 0 }}, + { 196, 0, 1, 6, { 0 }}, + { 197, 0, 1, 6, { 0 }}, + { 198, 0, 3, 10, { 0 }}, + { 199, 0, 3, 6, { 0 }}, + { 200, 0, 0, 6, { 0 }}, + { 201, 0, 0, 6, { 0 }}, + { 202, 0, 0, 6, { 0 }}, + { 203, 0, 1, 6, { 0 }}, + { 204, -1, 0, 2, { 0 }}, + { 205, 0, 0, 2, { 0 }}, + { 206, -1, 0, 2, { 0 }}, + { 207, -1, 1, 2, { 0 }}, + { 208, -1, 3, 6, { 0 }}, + { 209, 0, 0, 6, { 0 }}, + { 210, 0, 0, 6, { 0 }}, + { 211, 0, 0, 6, { 0 }}, + { 212, 0, 0, 6, { 0 }}, + { 213, 0, 0, 6, { 0 }}, + { 214, 0, 1, 6, { 0 }}, + { 215, 0, 5, 6, { 0 }}, + { 216, 0, 3, 6, { 0 }}, + { 217, 0, 0, 6, { 0 }}, + { 218, 0, 0, 6, { 0 }}, + { 219, 0, 0, 6, { 0 }}, + { 220, 0, 1, 6, { 0 }}, + { 221, 0, 0, 6, { 0 }}, + { 222, 0, 3, 6, { 0 }}, + { 223, 0, 3, 6, { 0 }}, + { 224, 0, 2, 6, { 0 }}, + { 225, 0, 2, 6, { 0 }}, + { 226, 0, 2, 6, { 0 }}, + { 227, 0, 2, 6, { 0 }}, + { 228, 0, 3, 6, { 0 }}, + { 229, 0, 3, 6, { 0 }}, + { 230, 0, 5, 10, { 0 }}, + { 231, 0, 5, 6, { 0 }}, + { 232, 0, 2, 6, { 0 }}, + { 233, 0, 2, 6, { 0 }}, + { 234, 0, 2, 6, { 0 }}, + { 235, 0, 3, 6, { 0 }}, + { 236, -1, 2, 2, { 0 }}, + { 237, 0, 2, 2, { 0 }}, + { 238, -1, 2, 2, { 0 }}, + { 239, -1, 3, 2, { 0 }}, + { 240, 0, 3, 6, { 0 }}, + { 241, 0, 2, 6, { 0 }}, + { 242, 0, 2, 6, { 0 }}, + { 243, 0, 2, 6, { 0 }}, + { 244, 0, 2, 6, { 0 }}, + { 245, 0, 2, 6, { 0 }}, + { 246, 0, 3, 6, { 0 }}, + { 247, 0, 5, 6, { 0 }}, + { 248, 0, 5, 6, { 0 }}, + { 249, 0, 2, 6, { 0 }}, + { 250, 0, 2, 6, { 0 }}, + { 251, 0, 2, 6, { 0 }}, + { 252, 0, 3, 6, { 0 }}, + { 253, 0, 2, 6, { 0 }}, + { 254, 0, 2, 6, { 0 }}, + { 255, 0, 3, 6, { 0 }}, +}; + +// Style loading function: RLTech +static void GuiLoadStyleRLTech(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < RLTECH_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(rltechStyleProps[i].controlId, rltechStyleProps[i].propertyId, rltechStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int rltechFontDataSize = 0; + unsigned char *data = DecompressData(rltechFontData, RLTECH_STYLE_FONT_ATLAS_COMP_SIZE, &rltechFontDataSize); + Image imFont = { data, 512, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 16; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, rltechFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, rltechFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 510, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/rltech/style_rltech.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/rltech/style_rltech.png new file mode 100644 index 0000000..b4a532f Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/rltech/style_rltech.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/rltech/style_rltech.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/rltech/style_rltech.rgs new file mode 100644 index 0000000..576d1ac Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/rltech/style_rltech.rgs differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/GenericMobileSystemNuevo.ttf b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/GenericMobileSystemNuevo.ttf new file mode 100644 index 0000000..777a528 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/GenericMobileSystemNuevo.ttf differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/README.md b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/README.md new file mode 100644 index 0000000..082c1a2 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/README.md @@ -0,0 +1,27 @@ +## style: sunny + +Sweet, colorful, sunny! Inspired by the [Playdate](https://play.date/) console and its [pulp](https://play.date/pulp/) editor! + +![sunny style table](style_sunny.png) + +## style: provided files + +Several options are provided to add the style to a `raygui` application, choose the one that better fits the project. + +| file name | description | +| :-------- | :---------- | +| `style_sunny.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) | +| `style_sunny.txt.rgs` | Text style file, no font data, requires external font provided | +| `style_sunny.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) | +| `style_sunny.h` | Embeddable style as code file, self-contained, includes font data | +| `style_sunny.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data | + +## screenshot + +![sunny style screen](screenshot.png) + +## about font + +"Generic Mobile System" font by Jayvee Enaguas (HarvettFox96). + +CC0 free font, downloaded from dafont.com: [generic-mobile-system](https://www.dafont.com/es/generic-mobile-system.font) diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/charset.txt b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/charset.txt new file mode 100644 index 0000000..611a673 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/charset.txt @@ -0,0 +1 @@ + !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/font_LICENSE.txt b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/font_LICENSE.txt new file mode 100644 index 0000000..60f42f6 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/font_LICENSE.txt @@ -0,0 +1,160 @@ +===| Description |=== + +Generic Mobile System is a raster proportional sans serif typeface, extracted from various generic/knockoff mobile devices, created with libre/free font editor software FontForge. + +Source files: https://notabug.org/HarvettFox96/ttf-genericmobile/ + +===| Update log |=== + +Version 20190323.02: + +- OS/2 and TeX metric fixes. +- Updated Panose. + +Version 20190323.01: + +- Added outline variant. +- Minor fixes. + +Version 20190103.03: + +- Minor bearing tweaks. (Clásico only) +- Minor fixes. + +Version 20190103.02: + +- Bearing tweaks from the different generic mobile phone as Cherry Mobile S5. (Clásico only) +- Minor fixes. + +Version 20190103.01: + +- Initial public release. + +===| Copyright/attribution notice |=== + +© 2009-2019 Jayvee Enaguas (HarvettFox96). Released under a libre/free public domain licence as Creative Commons Zero (CC0) 1.0. Applies worldwide countries including the Philippines, Spain, etc. + + +------------------------------------------------------------------------------- + +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/screenshot.old.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/screenshot.old.png new file mode 100644 index 0000000..20151f8 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/screenshot.old.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/screenshot.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/screenshot.png new file mode 100644 index 0000000..301c27c Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/screenshot.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/style_sunny.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/style_sunny.h new file mode 100644 index 0000000..639ce1a --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/style_sunny.h @@ -0,0 +1,614 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleSunny(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define SUNNY_STYLE_PROPS_COUNT 33 + +// Custom style name: Sunny +static const GuiStyleProp sunnyStyleProps[SUNNY_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0x9c760aff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0x594006ff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0xf6d519ff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0xf6ee89ff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0xf5f3d1ff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0xf4cd19ff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0xf7e580ff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0xf7f2c1ff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0x52470aff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0xc0be92ff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0xd3d3a1ff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0xbcbc89ff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE + { 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING + { 0, 18, (int)0x725706ff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0xf0be4bff }, // DEFAULT_BACKGROUND_COLOR + { 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING + { 1, 2, (int)0x504506ff }, // LABEL_TEXT_COLOR_NORMAL + { 1, 5, (int)0xfdeb9bff }, // LABEL_TEXT_COLOR_FOCUSED + { 1, 8, (int)0xf5e8a4ff }, // LABEL_TEXT_COLOR_PRESSED + { 2, 2, (int)0xebc21fff }, // BUTTON_TEXT_COLOR_NORMAL + { 3, 2, (int)0xebc21fff }, // TOGGLE_TEXT_COLOR_NORMAL + { 4, 2, (int)0x81700fff }, // SLIDER_TEXT_COLOR_NORMAL + { 4, 5, (int)0xf4e49aff }, // SLIDER_TEXT_COLOR_FOCUSED + { 7, 2, (int)0xebc21fff }, // COMBOBOX_TEXT_COLOR_NORMAL + { 8, 2, (int)0xefd87bff }, // DROPDOWNBOX_TEXT_COLOR_NORMAL + { 8, 5, (int)0xd4b219ff }, // DROPDOWNBOX_TEXT_COLOR_FOCUSED + { 9, 2, (int)0x7a680bff }, // TEXTBOX_TEXT_COLOR_NORMAL + { 9, 5, (int)0xad931fff }, // TEXTBOX_TEXT_COLOR_FOCUSED + { 10, 2, (int)0x62570eff }, // VALUEBOX_TEXT_COLOR_NORMAL + { 10, 5, (int)0xf2df88ff }, // VALUEBOX_TEXT_COLOR_FOCUSED + { 12, 2, (int)0xf4e798ff }, // LISTVIEW_TEXT_COLOR_NORMAL + { 15, 2, (int)0xebc21fff }, // STATUSBAR_TEXT_COLOR_NORMAL +}; + +// WARNING: This style uses a custom font: "GMSN.ttf" (size: 16, spacing: 0) + +#define SUNNY_STYLE_FONT_ATLAS_COMP_SIZE 2434 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char sunnyFontData[SUNNY_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0xdd, 0x5b, 0x6e, 0xe4, 0x36, 0x10, 0x05, 0x50, 0xee, 0x7f, 0xa1, 0xd9, 0x06, 0x83, 0x20, 0x18, 0x24, 0xe3, 0xb1, 0x45, + 0xb2, 0xaa, 0xa8, 0x57, 0x9f, 0x1c, 0xe4, 0xc7, 0x1a, 0xb7, 0xd5, 0x94, 0xae, 0x44, 0x3d, 0x58, 0xec, 0x0d, 0x00, 0x00, + 0x00, 0xf8, 0x78, 0xff, 0xfc, 0xf7, 0xfd, 0xcf, 0xbe, 0x5b, 0x72, 0xbc, 0xec, 0xd7, 0xbf, 0x18, 0x2d, 0xe9, 0x3f, 0xae, + 0x49, 0x3f, 0x58, 0x36, 0xf7, 0xb7, 0x62, 0xeb, 0xd5, 0x97, 0xda, 0xa6, 0x1f, 0xb4, 0x5a, 0x4b, 0xff, 0xbc, 0x1d, 0xb6, + 0x7d, 0x0f, 0xb4, 0x5e, 0x3b, 0x5c, 0xe7, 0x9f, 0x7f, 0x73, 0xbc, 0xa4, 0x72, 0x3d, 0x57, 0xda, 0xb4, 0x72, 0xfb, 0xac, + 0xb4, 0x60, 0x5b, 0x5e, 0x7a, 0xdc, 0x52, 0x6d, 0xaa, 0x1d, 0xc7, 0x9f, 0xdc, 0x6f, 0x92, 0xff, 0xe3, 0x6f, 0xf3, 0x2b, + 0x83, 0x47, 0x5b, 0x7f, 0x7e, 0xdf, 0x68, 0xd3, 0xc7, 0x84, 0xff, 0xfe, 0x76, 0x5d, 0x42, 0xb3, 0x9f, 0xd2, 0x87, 0x47, + 0xc2, 0x95, 0x16, 0x3a, 0x6e, 0xbd, 0x16, 0xca, 0xc4, 0xe8, 0x33, 0x23, 0xeb, 0x32, 0xb3, 0x6c, 0x6e, 0xfd, 0x62, 0xfb, + 0xfc, 0xf8, 0xf3, 0x8e, 0xf7, 0xb4, 0xa3, 0x2d, 0x3c, 0xda, 0x73, 0x8f, 0xbf, 0xdf, 0xfa, 0x56, 0xcd, 0xa4, 0x7e, 0x4f, + 0xfe, 0xfb, 0xff, 0x72, 0xd6, 0x83, 0x19, 0xcc, 0x9f, 0x1b, 0xd6, 0xcf, 0x0a, 0xc7, 0xc7, 0xac, 0x7d, 0x2d, 0x7c, 0xd4, + 0x4e, 0x3d, 0xb0, 0x0f, 0xaf, 0x6f, 0xb3, 0xe8, 0xdf, 0xd9, 0x91, 0xff, 0x8a, 0x14, 0xb7, 0x89, 0x33, 0x62, 0xa4, 0x4f, + 0x71, 0xdc, 0xe3, 0xcc, 0x27, 0x7c, 0xb4, 0x2e, 0x91, 0xfe, 0x4c, 0xbe, 0x2d, 0x57, 0xfb, 0x1c, 0xfb, 0xf2, 0x5f, 0x71, + 0xbe, 0x5d, 0x3f, 0x97, 0xec, 0x6b, 0xdf, 0x99, 0xf3, 0xf5, 0xfd, 0xf3, 0xbf, 0xfe, 0xdd, 0x2a, 0xf2, 0x5f, 0xb3, 0x55, + 0xd6, 0xf3, 0xdf, 0xe5, 0x7f, 0xfa, 0xfc, 0xff, 0x73, 0xab, 0xf7, 0xe0, 0xf5, 0x57, 0xfe, 0xaa, 0xbd, 0xaa, 0x9f, 0x7f, + 0x6d, 0xfe, 0x47, 0xd7, 0x83, 0x6d, 0x39, 0xff, 0xb1, 0xab, 0xcf, 0xc8, 0xd5, 0x46, 0x55, 0xff, 0x7f, 0x6f, 0xef, 0xe1, + 0xf8, 0xea, 0x31, 0x92, 0xf0, 0xb5, 0x7b, 0x1e, 0x35, 0x9f, 0x7c, 0x45, 0xfe, 0xdb, 0xc4, 0xda, 0xf4, 0xe1, 0xf5, 0xff, + 0xec, 0x11, 0x7e, 0x2d, 0xff, 0x75, 0xe7, 0x8e, 0x2b, 0xf3, 0xdf, 0x83, 0x77, 0xc4, 0xaa, 0xaf, 0xe3, 0xe3, 0xdf, 0x6d, + 0xed, 0xfe, 0xdc, 0x79, 0xd7, 0xff, 0xa3, 0x7e, 0x60, 0x26, 0xff, 0x9f, 0xd2, 0xff, 0x9f, 0xe9, 0x69, 0x8f, 0x5a, 0x71, + 0xfe, 0x78, 0x76, 0xc5, 0xd9, 0xfc, 0xda, 0xfc, 0xf7, 0xa9, 0x7b, 0xd8, 0xf7, 0xce, 0x7f, 0x5b, 0xbe, 0xca, 0xab, 0xdc, + 0x77, 0xa3, 0x7b, 0xd4, 0x68, 0xcf, 0x9d, 0x39, 0xaa, 0xdd, 0x33, 0xff, 0xb1, 0xfd, 0xb9, 0x0f, 0x7b, 0xf9, 0x3d, 0x91, + 0xff, 0xf6, 0x9a, 0xfc, 0xf7, 0xe0, 0xdd, 0x8e, 0x9f, 0xfb, 0x7b, 0xb1, 0xfb, 0x71, 0x91, 0x9e, 0x7c, 0xa6, 0x8f, 0x52, + 0x95, 0xff, 0x7b, 0x6c, 0x49, 0xe7, 0xff, 0x8a, 0xfb, 0xff, 0xed, 0xb0, 0x87, 0xff, 0x59, 0xf9, 0x3f, 0x7e, 0xfe, 0xd7, + 0x6e, 0xff, 0xac, 0x2e, 0x9a, 0xff, 0x9a, 0xfb, 0xff, 0xe7, 0x1f, 0xad, 0x67, 0xae, 0x5c, 0x73, 0xf9, 0xbf, 0xd3, 0xf3, + 0xbf, 0xbd, 0xf9, 0x1f, 0x3d, 0xf5, 0x7e, 0x53, 0xff, 0xbf, 0xf2, 0x3e, 0x7e, 0xfc, 0x9d, 0x9b, 0x7d, 0xef, 0x14, 0xb5, + 0xd0, 0x9b, 0x5c, 0xf7, 0x4c, 0x7f, 0xf4, 0x39, 0x50, 0xee, 0x2e, 0xdd, 0xd5, 0xef, 0xff, 0xd4, 0xb7, 0xe0, 0x79, 0xeb, + 0xd3, 0x6f, 0xdc, 0x67, 0xe4, 0x5d, 0x6f, 0xc9, 0xda, 0xbb, 0xce, 0x7c, 0x3e, 0x1b, 0xff, 0x5b, 0xb6, 0x0f, 0x3b, 0xcf, + 0x6c, 0x5a, 0xe2, 0x19, 0xf7, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xc9, 0xe3, + 0x17, 0x22, 0x63, 0x0d, 0xa3, 0x75, 0x08, 0x6a, 0xeb, 0x21, 0xf4, 0x2f, 0x75, 0x58, 0x57, 0x3f, 0x7b, 0x76, 0xac, 0x65, + 0x66, 0x9c, 0x66, 0xed, 0xef, 0x56, 0x55, 0x96, 0xa8, 0x1d, 0x79, 0x3e, 0xae, 0x77, 0xb3, 0x5a, 0xad, 0x39, 0x56, 0x05, + 0x6d, 0xbd, 0xa6, 0x79, 0xa6, 0x0e, 0x5f, 0xf5, 0xd8, 0xea, 0x9a, 0xfa, 0x68, 0xf3, 0x63, 0xde, 0x6b, 0x2a, 0x8d, 0xd4, + 0xe5, 0x7f, 0x7d, 0x3b, 0xf4, 0x2f, 0xeb, 0xd1, 0x2f, 0xa8, 0xc4, 0x50, 0xbf, 0x74, 0xee, 0xe7, 0x77, 0xca, 0xff, 0xec, + 0x31, 0x38, 0xbb, 0xf7, 0xc6, 0x47, 0xdc, 0x8d, 0xaa, 0x4f, 0x5c, 0x5f, 0x5b, 0xa5, 0x15, 0xd5, 0x47, 0xad, 0xcf, 0x7f, + 0x3b, 0xe9, 0xfc, 0x1f, 0xcd, 0x7f, 0x1f, 0xce, 0x66, 0x73, 0xdf, 0xfc, 0xaf, 0xd7, 0x9d, 0xc8, 0xfe, 0xd5, 0xdc, 0x4c, + 0x0e, 0xf1, 0x5a, 0xe3, 0xf9, 0xfc, 0xe7, 0x2a, 0x05, 0x9d, 0x7b, 0x6e, 0xbd, 0x3e, 0xff, 0xd1, 0x16, 0xb9, 0x2a, 0xff, + 0xf1, 0xbd, 0xa4, 0x0f, 0xab, 0x59, 0xdf, 0x31, 0xff, 0xfd, 0xe3, 0xf3, 0x5f, 0x5f, 0xcb, 0x37, 0x9a, 0x80, 0x48, 0x1d, + 0xf4, 0x99, 0xeb, 0xea, 0xd5, 0x2b, 0xbb, 0xf8, 0x75, 0x57, 0xf4, 0xfc, 0x3f, 0xfa, 0xfd, 0x99, 0x6f, 0x72, 0x75, 0xfe, + 0xdb, 0x30, 0xe1, 0x3d, 0x91, 0xd2, 0xf8, 0x1d, 0x90, 0x4c, 0xcd, 0xab, 0x6b, 0xf2, 0xdf, 0x42, 0x33, 0x06, 0xc6, 0xcf, + 0xf3, 0x77, 0xcf, 0x7f, 0xf5, 0xb5, 0x41, 0xf4, 0x8e, 0x41, 0xf5, 0x3a, 0xde, 0xef, 0xfa, 0xbf, 0x17, 0xf4, 0x12, 0x77, + 0xe4, 0x3f, 0xdb, 0x3e, 0xd1, 0x34, 0xc5, 0xf2, 0x3f, 0x7f, 0x76, 0x8f, 0xcd, 0x26, 0x10, 0x5b, 0xf6, 0xde, 0xfc, 0xd7, + 0xd6, 0x4f, 0x5d, 0xbf, 0x57, 0xfc, 0xa6, 0xfc, 0x47, 0xaf, 0xff, 0xe7, 0xaf, 0xb8, 0xee, 0x95, 0xff, 0x36, 0x31, 0x3f, + 0xcf, 0xd9, 0xf9, 0x1f, 0x55, 0x5b, 0x7d, 0x5b, 0xfe, 0xa3, 0xd9, 0x8a, 0xce, 0x67, 0xd4, 0xc2, 0x67, 0xba, 0xb7, 0x9f, + 0xff, 0xdb, 0x4b, 0xf3, 0x1f, 0x9f, 0x5f, 0xe6, 0x59, 0xf9, 0xaf, 0xee, 0x35, 0x5c, 0x5f, 0x57, 0x2f, 0x7a, 0xb7, 0x31, + 0x7e, 0x97, 0xf2, 0xdd, 0xfd, 0xff, 0xbe, 0xa1, 0x17, 0x9e, 0x7d, 0xfe, 0x7f, 0x55, 0xfe, 0x77, 0x3d, 0xff, 0x6b, 0xd3, + 0x73, 0xfe, 0xed, 0x5a, 0x2b, 0xf9, 0xaf, 0xce, 0x7f, 0xe5, 0xdc, 0x89, 0x6b, 0xff, 0xa2, 0xfa, 0xfd, 0x9f, 0xfa, 0x3b, + 0x69, 0xfb, 0xdf, 0xff, 0xd9, 0xd3, 0x3e, 0x6d, 0x6a, 0xc6, 0xb4, 0xf5, 0xbf, 0xda, 0x26, 0x67, 0x35, 0x8e, 0xad, 0x73, + 0xfd, 0xdb, 0x37, 0x77, 0xcf, 0x7f, 0xec, 0x6d, 0x83, 0xe8, 0x6f, 0xc6, 0x7f, 0xe3, 0x3e, 0x73, 0x81, 0x7d, 0xe6, 0x5b, + 0x94, 0x5a, 0xa1, 0xba, 0x85, 0xb4, 0x2a, 0x8e, 0x00, 0xef, 0x7a, 0xcf, 0x7c, 0xd7, 0xbf, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xbc, 0xd1, 0x2b, 0xb3, 0x35, 0xb7, 0xff, 0xfc, 0x69, 0x0f, 0x8d, 0x77, + 0xed, 0xc9, 0xdf, 0xeb, 0xcb, 0x75, 0x30, 0xd6, 0xc6, 0x9d, 0x56, 0xd4, 0x60, 0xa8, 0xae, 0x23, 0x35, 0x6e, 0x97, 0xd9, + 0x2d, 0x3d, 0x1e, 0x49, 0xbc, 0xba, 0x87, 0x44, 0xc6, 0xf5, 0x64, 0x2a, 0xea, 0x64, 0xe6, 0x12, 0x88, 0x57, 0x42, 0x6c, + 0x8b, 0x9f, 0x1a, 0xdb, 0x6a, 0x91, 0xf1, 0xe1, 0x3b, 0xf3, 0x1f, 0xab, 0x2d, 0x79, 0x45, 0xa5, 0xb5, 0xf8, 0xde, 0x54, + 0xbb, 0x86, 0xf5, 0xad, 0x32, 0xb7, 0xb6, 0xb9, 0x9f, 0x67, 0xc6, 0xf4, 0xe7, 0x6a, 0x0f, 0xac, 0xb6, 0x44, 0x9f, 0xaa, + 0x96, 0xb2, 0xfa, 0x9b, 0x3f, 0xff, 0xde, 0xf1, 0xb2, 0x3e, 0x55, 0x39, 0x62, 0xed, 0x53, 0xbf, 0xff, 0xb7, 0xfb, 0x2a, + 0x27, 0xbc, 0x23, 0xff, 0x2d, 0x70, 0x94, 0x3d, 0x37, 0xff, 0xf1, 0xe3, 0x54, 0x2b, 0xac, 0xd2, 0xb3, 0x3e, 0x37, 0x46, + 0x64, 0xe4, 0x6e, 0xbe, 0x46, 0xd0, 0x19, 0x15, 0x35, 0xfe, 0xcc, 0xd7, 0xca, 0x56, 0x9b, 0x4b, 0xff, 0xf7, 0xc7, 0xb8, + 0x76, 0xd0, 0xdb, 0x9a, 0xcd, 0x7f, 0x0f, 0xd4, 0x1e, 0xa9, 0xa9, 0xc8, 0xf7, 0x9c, 0xfc, 0xcf, 0x5c, 0x6d, 0x9c, 0x97, + 0xff, 0xf1, 0xcf, 0xeb, 0xaa, 0x6a, 0x57, 0xd6, 0xda, 0x19, 0xd5, 0x5a, 0x6e, 0xa1, 0x2d, 0xd2, 0x83, 0xc7, 0x95, 0x5e, + 0x5c, 0xcf, 0xbc, 0x7f, 0xf9, 0x7f, 0xf6, 0x4c, 0x3d, 0x9b, 0xff, 0xd5, 0xbf, 0x78, 0x4d, 0xff, 0x7f, 0x65, 0x7f, 0x79, + 0x52, 0xfe, 0xdb, 0x54, 0x2d, 0xb2, 0x7b, 0x9f, 0xff, 0x2b, 0x6b, 0x6a, 0xd5, 0xe7, 0x3f, 0x96, 0xf0, 0xc8, 0xfe, 0x3e, + 0x3f, 0xe3, 0xc1, 0xda, 0x76, 0x1b, 0xf7, 0xf2, 0x7b, 0xa2, 0xff, 0x9f, 0xcf, 0x7f, 0x5d, 0x9f, 0x67, 0xed, 0xea, 0xf9, + 0x8a, 0xfc, 0xf7, 0x44, 0x65, 0xf4, 0xfd, 0xd7, 0xff, 0xa3, 0x7e, 0x62, 0xb4, 0x55, 0xea, 0xe7, 0xa6, 0xaa, 0xac, 0xb6, + 0xbd, 0x9a, 0xff, 0xcc, 0xf9, 0x3f, 0x7a, 0x1f, 0x22, 0xd3, 0x43, 0x5c, 0xbb, 0x1e, 0xcf, 0x1f, 0x01, 0xd6, 0xfa, 0xff, + 0x67, 0xdc, 0xff, 0xef, 0xa7, 0x5d, 0xff, 0xb7, 0xd4, 0x2c, 0x46, 0x95, 0xfd, 0xff, 0x96, 0xe8, 0x65, 0x66, 0x8e, 0x36, + 0x91, 0xd6, 0x5e, 0x6f, 0xb3, 0x2b, 0xcf, 0xff, 0xb9, 0xd9, 0xe6, 0xda, 0xb6, 0x7a, 0xa7, 0x91, 0xfe, 0xff, 0x9e, 0x14, + 0x56, 0xfc, 0xc5, 0xca, 0xeb, 0xff, 0xeb, 0xe7, 0x66, 0xc8, 0xe4, 0xff, 0xac, 0xde, 0xd3, 0xfe, 0x6f, 0x5e, 0x5b, 0x47, + 0xfa, 0x0e, 0xd7, 0xff, 0x91, 0xfb, 0xff, 0xd1, 0x9a, 0xc7, 0xe3, 0xb3, 0x71, 0xff, 0xf1, 0x0a, 0xff, 0xcc, 0xb3, 0xf1, + 0xf9, 0x47, 0x9c, 0xda, 0xeb, 0x7f, 0xf9, 0xdf, 0xf3, 0xdd, 0x2b, 0x6b, 0xe7, 0xee, 0xce, 0xff, 0x5c, 0xcf, 0x2a, 0x36, + 0x23, 0x62, 0x6e, 0xc6, 0xe4, 0xe8, 0x35, 0x5d, 0x3b, 0x75, 0x4f, 0x6f, 0x17, 0xf4, 0xfe, 0xab, 0x67, 0xe4, 0x79, 0xe7, + 0xfb, 0x50, 0xef, 0xf8, 0x06, 0x67, 0x1c, 0xcf, 0x7b, 0x61, 0xcf, 0x34, 0x7f, 0xff, 0x2f, 0x7e, 0xb4, 0x6a, 0x17, 0xd4, + 0x20, 0x3e, 0xfb, 0x2f, 0xc6, 0x9f, 0x56, 0x20, 0xff, 0x6b, 0xf9, 0xdf, 0xdf, 0x4b, 0xaa, 0x7a, 0x87, 0xe1, 0xd3, 0xf6, + 0x14, 0x2d, 0xf3, 0x29, 0xdb, 0x75, 0xfd, 0x4e, 0xef, 0x5b, 0x5a, 0xc2, 0x3e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x6b, 0xf4, 0x4f, 0xac, 0x9a, 0xc2, 0x6c, 0x2d, 0xab, 0xbe, 0x30, 0x3a, 0xb3, 0x0d, + 0xeb, 0x33, 0x67, 0x3f, 0xe7, 0xeb, 0xcc, 0x05, 0x7d, 0xf0, 0x2f, 0x5a, 0x60, 0x4d, 0x7b, 0x78, 0xac, 0xf1, 0xfa, 0x3c, + 0x0c, 0x5f, 0xd7, 0xb8, 0x25, 0x5a, 0x64, 0x3c, 0x92, 0x77, 0x7d, 0xc6, 0x86, 0xbd, 0xdf, 0xb9, 0xa6, 0x22, 0x7a, 0xa4, + 0xb6, 0xdf, 0x6c, 0x85, 0x92, 0xb3, 0x5b, 0x25, 0x33, 0x62, 0xbb, 0x05, 0x8e, 0x0d, 0xa3, 0x7a, 0x42, 0x2b, 0xb5, 0xba, + 0xd6, 0x8e, 0x4f, 0x73, 0x55, 0xf8, 0xd6, 0xc7, 0xa5, 0xcf, 0xd5, 0xf0, 0x6c, 0x1b, 0xeb, 0x5e, 0xaf, 0xef, 0xed, 0xf1, + 0xa4, 0xe4, 0x96, 0xce, 0x8d, 0xc7, 0xdf, 0xf1, 0x9d, 0xe3, 0x35, 0x6b, 0xe7, 0x3f, 0x27, 0x73, 0xf6, 0x1b, 0xa7, 0x74, + 0x4f, 0xab, 0xc4, 0xd2, 0x9f, 0xa9, 0x08, 0xb3, 0x9e, 0xff, 0x9a, 0xf5, 0x1e, 0xcf, 0x89, 0x10, 0x9b, 0x65, 0x63, 0xa6, + 0x86, 0xf7, 0xfb, 0xaa, 0x07, 0xe4, 0xf3, 0xff, 0xa9, 0x35, 0x17, 0x9e, 0xd4, 0x02, 0x7d, 0x31, 0x61, 0x33, 0xbd, 0xf8, + 0x9a, 0xfc, 0x8f, 0xe7, 0x4a, 0x3a, 0x3f, 0xff, 0x3d, 0xf4, 0x09, 0xf1, 0x9e, 0xdb, 0x1d, 0x97, 0xe6, 0xf2, 0x3f, 0xde, + 0x83, 0xf6, 0x2c, 0xad, 0x9a, 0x29, 0x29, 0x57, 0x87, 0xbc, 0x05, 0xaf, 0x1e, 0x32, 0x4b, 0x23, 0xb5, 0x11, 0x7a, 0xe8, + 0x6a, 0x64, 0xcf, 0xf9, 0x3f, 0x7f, 0xfd, 0x3f, 0xdf, 0x6f, 0x8b, 0xdf, 0x3f, 0xc8, 0xec, 0x4b, 0x3b, 0xfa, 0xe1, 0x67, + 0x2c, 0x8d, 0xd4, 0x86, 0xbb, 0x6a, 0xe9, 0xee, 0xfc, 0xf7, 0xdf, 0xe6, 0x4a, 0x3c, 0x4a, 0xd4, 0xfa, 0xd1, 0x21, 0x77, + 0x64, 0xd9, 0xdb, 0xd7, 0x59, 0xbd, 0xff, 0xb7, 0xba, 0x96, 0x75, 0x73, 0x99, 0x45, 0xab, 0x52, 0x7e, 0xfd, 0xfd, 0xba, + 0xf3, 0xff, 0xbe, 0xad, 0xbe, 0x77, 0x69, 0xe6, 0xee, 0xde, 0x5b, 0xf3, 0x3f, 0xd7, 0x6e, 0xef, 0xc8, 0xff, 0xb8, 0x7e, + 0x6b, 0x2f, 0xba, 0x4f, 0x71, 0xc6, 0x37, 0x9a, 0xad, 0xc0, 0x9f, 0x9b, 0x63, 0xf6, 0x4d, 0xf9, 0x6f, 0x45, 0xfd, 0xff, + 0x33, 0x97, 0xde, 0xa3, 0xff, 0xdf, 0x5f, 0x90, 0xff, 0xec, 0x73, 0x9d, 0x8a, 0x19, 0x8e, 0xcf, 0xce, 0x7f, 0xf6, 0x98, + 0x78, 0xaf, 0x6b, 0xe1, 0xec, 0xd2, 0x6c, 0xfe, 0x3f, 0xf5, 0xfc, 0xff, 0x86, 0xfc, 0xe7, 0x9f, 0x65, 0xaf, 0xdc, 0xff, + 0x3b, 0xef, 0x1d, 0x88, 0xbe, 0x31, 0xff, 0xed, 0x43, 0xcf, 0xff, 0x35, 0xf3, 0xca, 0x3f, 0x2d, 0xff, 0x33, 0x77, 0x99, + 0x9e, 0x9a, 0xff, 0x8a, 0x8c, 0x54, 0xdd, 0xff, 0xaf, 0x7f, 0x0b, 0x6a, 0x67, 0x75, 0xfa, 0xe7, 0x25, 0x7c, 0x9c, 0xff, + 0xc8, 0xfb, 0x3f, 0xef, 0xce, 0xff, 0xdc, 0xbb, 0x31, 0xcf, 0xce, 0x7f, 0x4f, 0xce, 0x4a, 0xf3, 0xce, 0xe7, 0xc3, 0xb1, + 0x39, 0xa6, 0x9f, 0x97, 0xff, 0xfc, 0x3b, 0x65, 0x6f, 0x7d, 0xfe, 0x97, 0x7b, 0x3b, 0xe0, 0x9a, 0xe7, 0x7f, 0x77, 0x7a, + 0xaf, 0x84, 0xb7, 0xbf, 0x55, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x66, 0xec, + 0xeb, 0xea, 0x88, 0x9d, 0xb9, 0x71, 0x62, 0xd7, 0x54, 0xbe, 0x8f, 0xd4, 0x29, 0x98, 0x59, 0x9f, 0x78, 0xf5, 0x83, 0x48, + 0xad, 0xfd, 0xa3, 0x6d, 0x13, 0xad, 0x38, 0x9e, 0xa9, 0x64, 0xb4, 0xeb, 0x3b, 0xae, 0xd7, 0x84, 0x9f, 0xff, 0x0b, 0x73, + 0x95, 0x1f, 0x63, 0xb9, 0xb8, 0xfb, 0xb6, 0x9e, 0x1b, 0xa5, 0xb9, 0xb3, 0x4e, 0x7c, 0x4f, 0xd6, 0x34, 0xaf, 0x5f, 0xab, + 0x6c, 0x95, 0xfe, 0xd8, 0x3a, 0x47, 0x5a, 0xb8, 0x27, 0xe6, 0x61, 0x69, 0x13, 0x7b, 0x52, 0x75, 0x75, 0x9f, 0xcc, 0xbc, + 0x1c, 0xf3, 0x47, 0xe4, 0xca, 0x8a, 0xfd, 0x2d, 0x51, 0xad, 0xff, 0x2e, 0xdb, 0xfa, 0xda, 0xf1, 0xb4, 0xe3, 0x75, 0x7e, + 0xce, 0x78, 0xdf, 0xb9, 0xd1, 0xe3, 0xcf, 0xf8, 0x36, 0x33, 0xc7, 0xb2, 0xf5, 0xea, 0x3c, 0xef, 0xac, 0xd9, 0xf0, 0xd9, + 0x63, 0x95, 0xb3, 0x95, 0x05, 0x46, 0xc7, 0xba, 0xe7, 0x54, 0xaf, 0xca, 0xd5, 0xbd, 0x9a, 0x69, 0xc5, 0xb3, 0x96, 0x1d, + 0xf9, 0x2b, 0x30, 0x0f, 0xdb, 0x95, 0xdf, 0x71, 0x7f, 0xc5, 0x8e, 0xe3, 0x5a, 0x22, 0xf7, 0xde, 0xd6, 0xd9, 0x1a, 0x59, + 0xd9, 0x4a, 0x30, 0xd1, 0xf3, 0xff, 0x53, 0xf3, 0x3f, 0x9a, 0x8b, 0xe0, 0xe7, 0x59, 0xc9, 0xce, 0x5b, 0x56, 0x31, 0x93, + 0xc1, 0xea, 0x15, 0xd0, 0x8e, 0x65, 0x57, 0x56, 0xec, 0x3a, 0xfb, 0xbb, 0xc6, 0xdb, 0xa8, 0xaa, 0x9f, 0x18, 0x9d, 0xb3, + 0x64, 0xb4, 0xec, 0xd3, 0xce, 0xff, 0xfd, 0xf2, 0x65, 0xf3, 0x47, 0xb1, 0xbb, 0xef, 0xdb, 0xfb, 0x67, 0xec, 0x78, 0x42, + 0xc6, 0x33, 0xb3, 0x4b, 0xed, 0xcc, 0xff, 0x3d, 0xeb, 0x1d, 0xf7, 0xd4, 0xb9, 0x31, 0x5b, 0xab, 0xef, 0x3e, 0xb9, 0xc9, + 0xcc, 0x64, 0x1c, 0x9b, 0xbf, 0xb9, 0x7a, 0x99, 0xfc, 0xdf, 0x3b, 0xff, 0x73, 0xf7, 0x56, 0xee, 0x57, 0xbd, 0x32, 0x3b, + 0x4b, 0xef, 0xfb, 0xfb, 0x8b, 0x7d, 0xc3, 0xd3, 0x9a, 0xba, 0xe7, 0x89, 0xf2, 0x7f, 0x97, 0xfe, 0xbf, 0xfc, 0xbf, 0x6f, + 0x7f, 0xe9, 0xa9, 0x4a, 0xe6, 0xfa, 0xff, 0xf2, 0xff, 0xe6, 0xfc, 0xf7, 0x47, 0x5c, 0xff, 0xef, 0xda, 0x5f, 0xde, 0x76, + 0xff, 0x3f, 0xfa, 0xb4, 0xf7, 0x29, 0xcf, 0x7a, 0xce, 0x78, 0xfe, 0xb7, 0xe7, 0x93, 0x77, 0x56, 0x43, 0x7f, 0xff, 0xf3, + 0xde, 0xa7, 0xd4, 0x83, 0xe7, 0xed, 0xfb, 0xa1, 0x36, 0x00, 0xf9, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x76, 0xbe, 0xa9, 0x7f, 0x66, 0xc5, 0xf7, 0xc8, 0xa8, 0xcf, 0xb9, 0xcf, 0x04, 0x62, 0x23, 0x75, 0xce, + 0xac, 0xf8, 0x9e, 0x1f, 0x9d, 0x6f, 0x5b, 0xc2, 0xfb, 0xc6, 0x8a, 0xcb, 0x36, 0xec, 0x49, 0x55, 0x7f, 0x48, 0x15, 0xa4, + 0x77, 0xcc, 0xcd, 0x01, 0xf2, 0xff, 0x94, 0x0a, 0x69, 0x20, 0xff, 0xf2, 0x0f, 0xf2, 0x2f, 0xff, 0x20, 0xff, 0xf2, 0x0f, + 0x6f, 0xbf, 0xff, 0x7f, 0xa7, 0x99, 0x6b, 0xf6, 0xd5, 0x29, 0x06, 0xcf, 0xfe, 0x63, 0x47, 0x87, 0xea, 0x65, 0x6d, 0x78, + 0xdc, 0xf0, 0x8c, 0x10, 0xce, 0xca, 0xff, 0x35, 0xcf, 0xf8, 0x57, 0xf3, 0xaf, 0xff, 0x0f, 0x6f, 0xba, 0x1a, 0x89, 0xbc, + 0xff, 0x27, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x95, 0x7f, 0xff, 0xd3, 0x0e, 0x20, 0xff, 0xc0, 0xc7, 0xe5, 0xff, 0x6f }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle sunnyFontRecs[189] = { + { 4, 4, 4 , 16 }, + { 16, 4, 2 , 10 }, + { 26, 4, 5 , 3 }, + { 39, 4, 7 , 10 }, + { 54, 4, 7 , 13 }, + { 69, 4, 7 , 10 }, + { 84, 4, 7 , 10 }, + { 99, 4, 2 , 3 }, + { 109, 4, 3 , 12 }, + { 120, 4, 3 , 12 }, + { 131, 4, 5 , 6 }, + { 144, 4, 6 , 5 }, + { 158, 4, 2 , 4 }, + { 168, 4, 5 , 1 }, + { 181, 4, 2 , 2 }, + { 191, 4, 4 , 10 }, + { 203, 4, 6 , 10 }, + { 217, 4, 4 , 10 }, + { 229, 4, 6 , 10 }, + { 243, 4, 6 , 10 }, + { 257, 4, 6 , 10 }, + { 271, 4, 6 , 10 }, + { 285, 4, 6 , 10 }, + { 299, 4, 6 , 10 }, + { 313, 4, 6 , 10 }, + { 327, 4, 6 , 10 }, + { 341, 4, 2 , 6 }, + { 351, 4, 2 , 8 }, + { 361, 4, 7 , 7 }, + { 376, 4, 5 , 3 }, + { 389, 4, 7 , 7 }, + { 404, 4, 6 , 10 }, + { 418, 4, 7 , 12 }, + { 433, 4, 7 , 10 }, + { 448, 4, 7 , 10 }, + { 463, 4, 7 , 10 }, + { 478, 4, 7 , 10 }, + { 493, 4, 7 , 10 }, + { 4, 28, 7 , 10 }, + { 19, 28, 7 , 10 }, + { 34, 28, 7 , 10 }, + { 49, 28, 2 , 10 }, + { 59, 28, 5 , 10 }, + { 72, 28, 7 , 10 }, + { 87, 28, 6 , 10 }, + { 101, 28, 9 , 10 }, + { 118, 28, 7 , 10 }, + { 133, 28, 7 , 10 }, + { 148, 28, 7 , 10 }, + { 163, 28, 7 , 12 }, + { 178, 28, 7 , 10 }, + { 193, 28, 7 , 10 }, + { 208, 28, 6 , 10 }, + { 222, 28, 7 , 10 }, + { 237, 28, 7 , 10 }, + { 252, 28, 8 , 10 }, + { 268, 28, 7 , 10 }, + { 283, 28, 6 , 10 }, + { 297, 28, 7 , 10 }, + { 312, 28, 4 , 12 }, + { 324, 28, 4 , 10 }, + { 336, 28, 4 , 12 }, + { 348, 28, 6 , 3 }, + { 362, 28, 7 , 1 }, + { 377, 28, 4 , 3 }, + { 389, 28, 6 , 7 }, + { 403, 28, 6 , 10 }, + { 417, 28, 6 , 7 }, + { 431, 28, 6 , 10 }, + { 445, 28, 6 , 7 }, + { 459, 28, 4 , 10 }, + { 471, 28, 6 , 9 }, + { 485, 28, 6 , 10 }, + { 499, 28, 2 , 10 }, + { 4, 52, 5 , 12 }, + { 17, 52, 6 , 10 }, + { 31, 52, 3 , 10 }, + { 42, 52, 8 , 7 }, + { 58, 52, 6 , 7 }, + { 72, 52, 6 , 7 }, + { 86, 52, 6 , 9 }, + { 100, 52, 6 , 9 }, + { 114, 52, 5 , 7 }, + { 127, 52, 6 , 7 }, + { 141, 52, 4 , 10 }, + { 153, 52, 6 , 7 }, + { 167, 52, 6 , 7 }, + { 181, 52, 8 , 7 }, + { 197, 52, 6 , 7 }, + { 211, 52, 6 , 9 }, + { 225, 52, 6 , 7 }, + { 239, 52, 5 , 12 }, + { 252, 52, 2 , 12 }, + { 262, 52, 5 , 12 }, + { 275, 52, 7 , 3 }, + { 290, 52, 2 , 9 }, + { 300, 52, 6 , 11 }, + { 314, 52, 7 , 10 }, + { 329, 52, 7 , 9 }, + { 344, 52, 6 , 10 }, + { 358, 52, 7 , 11 }, + { 373, 52, 6 , 12 }, + { 387, 52, 6 , 10 }, + { 401, 52, 7 , 10 }, + { 416, 52, 5 , 5 }, + { 429, 52, 7 , 6 }, + { 444, 52, 6 , 3 }, + { 458, 52, 7 , 10 }, + { 473, 52, 0 , 0 }, + { 481, 52, 4 , 4 }, + { 493, 52, 6 , 7 }, + { 4, 76, 4 , 5 }, + { 16, 76, 4 , 5 }, + { 28, 76, 7 , 11 }, + { 43, 76, 6 , 9 }, + { 57, 76, 7 , 12 }, + { 72, 76, 2 , 2 }, + { 82, 76, 6 , 10 }, + { 96, 76, 3 , 5 }, + { 107, 76, 4 , 5 }, + { 119, 76, 7 , 6 }, + { 134, 76, 9 , 10 }, + { 151, 76, 8 , 7 }, + { 167, 76, 6 , 11 }, + { 181, 76, 6 , 11 }, + { 195, 76, 7 , 11 }, + { 210, 76, 7 , 11 }, + { 225, 76, 7 , 11 }, + { 240, 76, 7 , 11 }, + { 255, 76, 7 , 11 }, + { 270, 76, 7 , 11 }, + { 285, 76, 9 , 10 }, + { 302, 76, 7 , 12 }, + { 317, 76, 7 , 11 }, + { 332, 76, 7 , 11 }, + { 347, 76, 7 , 11 }, + { 362, 76, 7 , 11 }, + { 377, 76, 3 , 11 }, + { 388, 76, 3 , 11 }, + { 399, 76, 5 , 11 }, + { 412, 76, 5 , 11 }, + { 425, 76, 8 , 10 }, + { 441, 76, 7 , 11 }, + { 456, 76, 7 , 11 }, + { 471, 76, 7 , 11 }, + { 486, 76, 7 , 11 }, + { 4, 100, 7 , 11 }, + { 19, 100, 7 , 11 }, + { 34, 100, 7 , 7 }, + { 49, 100, 7 , 13 }, + { 64, 100, 7 , 11 }, + { 79, 100, 7 , 11 }, + { 94, 100, 7 , 11 }, + { 109, 100, 7 , 11 }, + { 124, 100, 6 , 11 }, + { 138, 100, 7 , 10 }, + { 153, 100, 7 , 10 }, + { 168, 100, 6 , 10 }, + { 182, 100, 6 , 10 }, + { 196, 100, 6 , 10 }, + { 210, 100, 6 , 10 }, + { 224, 100, 6 , 10 }, + { 238, 100, 6 , 11 }, + { 252, 100, 8 , 7 }, + { 268, 100, 6 , 9 }, + { 282, 100, 6 , 10 }, + { 296, 100, 6 , 10 }, + { 310, 100, 6 , 10 }, + { 324, 100, 6 , 10 }, + { 338, 100, 3 , 10 }, + { 349, 100, 3 , 10 }, + { 360, 100, 5 , 10 }, + { 373, 100, 5 , 10 }, + { 386, 100, 6 , 10 }, + { 400, 100, 6 , 10 }, + { 414, 100, 6 , 10 }, + { 428, 100, 6 , 10 }, + { 442, 100, 6 , 10 }, + { 456, 100, 6 , 10 }, + { 470, 100, 6 , 10 }, + { 484, 100, 6 , 7 }, + { 4, 124, 7 , 11 }, + { 19, 124, 6 , 10 }, + { 33, 124, 6 , 10 }, + { 47, 124, 6 , 10 }, + { 61, 124, 6 , 10 }, + { 75, 124, 6 , 12 }, + { 89, 124, 6 , 12 }, + { 103, 124, 6 , 12 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo sunnyFontGlyphs[189] = { + { 32, 0, 0, 4, { 0 }}, + { 33, 0, 2, 3, { 0 }}, + { 34, 0, 2, 6, { 0 }}, + { 35, 0, 2, 8, { 0 }}, + { 36, 0, 1, 8, { 0 }}, + { 37, 0, 2, 8, { 0 }}, + { 38, 0, 2, 8, { 0 }}, + { 39, 0, 2, 3, { 0 }}, + { 40, 0, 2, 4, { 0 }}, + { 41, 0, 2, 4, { 0 }}, + { 42, 0, 4, 6, { 0 }}, + { 43, 0, 6, 7, { 0 }}, + { 44, 0, 10, 3, { 0 }}, + { 45, 0, 8, 6, { 0 }}, + { 46, 0, 10, 3, { 0 }}, + { 47, 0, 2, 5, { 0 }}, + { 48, 0, 2, 7, { 0 }}, + { 49, 0, 2, 7, { 0 }}, + { 50, 0, 2, 7, { 0 }}, + { 51, 0, 2, 7, { 0 }}, + { 52, 0, 2, 7, { 0 }}, + { 53, 0, 2, 7, { 0 }}, + { 54, 0, 2, 7, { 0 }}, + { 55, 0, 2, 7, { 0 }}, + { 56, 0, 2, 7, { 0 }}, + { 57, 0, 2, 7, { 0 }}, + { 58, 0, 4, 3, { 0 }}, + { 59, 0, 4, 3, { 0 }}, + { 60, 0, 4, 8, { 0 }}, + { 61, 0, 6, 6, { 0 }}, + { 62, 0, 4, 8, { 0 }}, + { 63, 0, 2, 7, { 0 }}, + { 64, 0, 2, 8, { 0 }}, + { 65, 0, 2, 8, { 0 }}, + { 66, 0, 2, 8, { 0 }}, + { 67, 0, 2, 8, { 0 }}, + { 68, 0, 2, 8, { 0 }}, + { 69, 0, 2, 8, { 0 }}, + { 70, 0, 2, 8, { 0 }}, + { 71, 0, 2, 8, { 0 }}, + { 72, 0, 2, 8, { 0 }}, + { 73, 0, 2, 3, { 0 }}, + { 74, 0, 2, 6, { 0 }}, + { 75, 0, 2, 8, { 0 }}, + { 76, 0, 2, 7, { 0 }}, + { 77, 0, 2, 10, { 0 }}, + { 78, 0, 2, 8, { 0 }}, + { 79, 0, 2, 8, { 0 }}, + { 80, 0, 2, 8, { 0 }}, + { 81, 0, 2, 8, { 0 }}, + { 82, 0, 2, 8, { 0 }}, + { 83, 0, 2, 8, { 0 }}, + { 84, 0, 2, 7, { 0 }}, + { 85, 0, 2, 8, { 0 }}, + { 86, 0, 2, 8, { 0 }}, + { 87, 0, 2, 9, { 0 }}, + { 88, 0, 2, 8, { 0 }}, + { 89, 0, 2, 7, { 0 }}, + { 90, 0, 2, 8, { 0 }}, + { 91, 0, 2, 5, { 0 }}, + { 92, 0, 2, 5, { 0 }}, + { 93, 0, 2, 5, { 0 }}, + { 94, 0, 2, 7, { 0 }}, + { 95, 0, 14, 8, { 0 }}, + { 96, 0, 2, 5, { 0 }}, + { 97, 0, 5, 7, { 0 }}, + { 98, 0, 2, 7, { 0 }}, + { 99, 0, 5, 7, { 0 }}, + { 100, 0, 2, 7, { 0 }}, + { 101, 0, 5, 7, { 0 }}, + { 102, 0, 2, 5, { 0 }}, + { 103, 0, 5, 7, { 0 }}, + { 104, 0, 2, 7, { 0 }}, + { 105, 0, 2, 3, { 0 }}, + { 106, 0, 2, 6, { 0 }}, + { 107, 0, 2, 7, { 0 }}, + { 108, 0, 2, 4, { 0 }}, + { 109, 0, 5, 9, { 0 }}, + { 110, 0, 5, 7, { 0 }}, + { 111, 0, 5, 7, { 0 }}, + { 112, 0, 5, 7, { 0 }}, + { 113, 0, 5, 7, { 0 }}, + { 114, 0, 5, 6, { 0 }}, + { 115, 0, 5, 7, { 0 }}, + { 116, 0, 2, 5, { 0 }}, + { 117, 0, 5, 7, { 0 }}, + { 118, 0, 5, 7, { 0 }}, + { 119, 0, 5, 9, { 0 }}, + { 120, 0, 5, 7, { 0 }}, + { 121, 0, 5, 7, { 0 }}, + { 122, 0, 5, 7, { 0 }}, + { 123, 0, 2, 6, { 0 }}, + { 124, 0, 2, 3, { 0 }}, + { 125, 0, 2, 6, { 0 }}, + { 126, 0, 6, 8, { 0 }}, + { 161, 0, 5, 3, { 0 }}, + { 162, 0, 3, 7, { 0 }}, + { 163, 0, 2, 8, { 0 }}, + { 8364, 0, 3, 8, { 0 }}, + { 165, 0, 2, 7, { 0 }}, + { 352, 0, 1, 8, { 0 }}, + { 167, 0, 2, 7, { 0 }}, + { 353, 0, 2, 7, { 0 }}, + { 169, 0, 2, 8, { 0 }}, + { 170, 0, 2, 6, { 0 }}, + { 171, 0, 6, 8, { 0 }}, + { 172, 0, 7, 7, { 0 }}, + { 174, 0, 2, 8, { 0 }}, + { 175, 0, 0, 0, { 0 }}, + { 176, 0, 2, 5, { 0 }}, + { 177, 0, 4, 7, { 0 }}, + { 178, 0, 2, 5, { 0 }}, + { 179, 0, 2, 5, { 0 }}, + { 381, 0, 1, 8, { 0 }}, + { 181, 0, 5, 7, { 0 }}, + { 182, 0, 2, 8, { 0 }}, + { 183, 0, 6, 3, { 0 }}, + { 382, 0, 2, 7, { 0 }}, + { 185, 0, 2, 4, { 0 }}, + { 186, 0, 2, 5, { 0 }}, + { 187, 0, 6, 8, { 0 }}, + { 338, 0, 2, 10, { 0 }}, + { 339, 0, 5, 9, { 0 }}, + { 376, 0, 1, 7, { 0 }}, + { 191, 0, 3, 7, { 0 }}, + { 192, 0, 1, 8, { 0 }}, + { 193, 0, 1, 8, { 0 }}, + { 194, 0, 1, 8, { 0 }}, + { 195, 0, 1, 8, { 0 }}, + { 196, 0, 1, 8, { 0 }}, + { 197, 0, 1, 8, { 0 }}, + { 198, 0, 2, 10, { 0 }}, + { 199, 0, 2, 8, { 0 }}, + { 200, 0, 1, 8, { 0 }}, + { 201, 0, 1, 8, { 0 }}, + { 202, 0, 1, 8, { 0 }}, + { 203, 0, 1, 8, { 0 }}, + { 204, 0, 1, 4, { 0 }}, + { 205, 0, 1, 4, { 0 }}, + { 206, 0, 1, 6, { 0 }}, + { 207, 0, 1, 6, { 0 }}, + { 208, 0, 2, 9, { 0 }}, + { 209, 0, 1, 8, { 0 }}, + { 210, 0, 1, 8, { 0 }}, + { 211, 0, 1, 8, { 0 }}, + { 212, 0, 1, 8, { 0 }}, + { 213, 0, 1, 8, { 0 }}, + { 214, 0, 1, 8, { 0 }}, + { 215, 0, 5, 8, { 0 }}, + { 216, 0, 1, 8, { 0 }}, + { 217, 0, 1, 8, { 0 }}, + { 218, 0, 1, 8, { 0 }}, + { 219, 0, 1, 8, { 0 }}, + { 220, 0, 1, 8, { 0 }}, + { 221, 0, 1, 7, { 0 }}, + { 222, 0, 2, 8, { 0 }}, + { 223, 0, 2, 8, { 0 }}, + { 224, 0, 2, 7, { 0 }}, + { 225, 0, 2, 7, { 0 }}, + { 226, 0, 2, 7, { 0 }}, + { 227, 0, 2, 7, { 0 }}, + { 228, 0, 2, 7, { 0 }}, + { 229, 0, 1, 7, { 0 }}, + { 230, 0, 5, 9, { 0 }}, + { 231, 0, 5, 7, { 0 }}, + { 232, 0, 2, 7, { 0 }}, + { 233, 0, 2, 7, { 0 }}, + { 234, 0, 2, 7, { 0 }}, + { 235, 0, 2, 7, { 0 }}, + { 236, 0, 2, 4, { 0 }}, + { 237, 0, 2, 4, { 0 }}, + { 238, 0, 2, 6, { 0 }}, + { 239, 0, 2, 6, { 0 }}, + { 240, 0, 2, 7, { 0 }}, + { 241, 0, 2, 7, { 0 }}, + { 242, 0, 2, 7, { 0 }}, + { 243, 0, 2, 7, { 0 }}, + { 244, 0, 2, 7, { 0 }}, + { 245, 0, 2, 7, { 0 }}, + { 246, 0, 2, 7, { 0 }}, + { 247, 0, 4, 7, { 0 }}, + { 248, 0, 3, 8, { 0 }}, + { 249, 0, 2, 7, { 0 }}, + { 250, 0, 2, 7, { 0 }}, + { 251, 0, 2, 7, { 0 }}, + { 252, 0, 2, 7, { 0 }}, + { 253, 0, 2, 7, { 0 }}, + { 254, 0, 2, 7, { 0 }}, + { 255, 0, 2, 7, { 0 }}, +}; + +// Style loading function: Sunny +static void GuiLoadStyleSunny(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < SUNNY_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(sunnyStyleProps[i].controlId, sunnyStyleProps[i].propertyId, sunnyStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int sunnyFontDataSize = 0; + unsigned char *data = DecompressData(sunnyFontData, SUNNY_STYLE_FONT_ATLAS_COMP_SIZE, &sunnyFontDataSize); + Image imFont = { data, 512, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 16; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, sunnyFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, sunnyFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 510, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/style_sunny.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/style_sunny.png new file mode 100644 index 0000000..f826847 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/style_sunny.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/style_sunny.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/style_sunny.rgs new file mode 100644 index 0000000..5a53c50 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/style_sunny.rgs differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/style_sunny.txt.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/style_sunny.txt.rgs new file mode 100644 index 0000000..4743798 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/sunny/style_sunny.txt.rgs @@ -0,0 +1,43 @@ +# +# rgs style text file (v4.0) - raygui style file generated using rGuiStyler +# +# Provided info: +# f fontGenSize charsetFileName fontFileName +# p Property description +# +# WARNING: This style uses a custom font, must be provided with style file +# +f 16 charset.txt GenericMobileSystemNuevo.ttf +p 00 00 0x9c760aff DEFAULT_BORDER_COLOR_NORMAL +p 00 01 0x594006ff DEFAULT_BASE_COLOR_NORMAL +p 00 02 0xf6d519ff DEFAULT_TEXT_COLOR_NORMAL +p 00 03 0xf6ee89ff DEFAULT_BORDER_COLOR_FOCUSED +p 00 04 0xf5f3d1ff DEFAULT_BASE_COLOR_FOCUSED +p 00 05 0xf4cd19ff DEFAULT_TEXT_COLOR_FOCUSED +p 00 06 0xf7e580ff DEFAULT_BORDER_COLOR_PRESSED +p 00 07 0xf7f2c1ff DEFAULT_BASE_COLOR_PRESSED +p 00 08 0x52470aff DEFAULT_TEXT_COLOR_PRESSED +p 00 09 0xc0be92ff DEFAULT_BORDER_COLOR_DISABLED +p 00 10 0xd3d3a1ff DEFAULT_BASE_COLOR_DISABLED +p 00 11 0xbcbc89ff DEFAULT_TEXT_COLOR_DISABLED +p 00 16 0x00000010 TEXT_SIZE +p 00 17 0x00000000 TEXT_SPACING +p 00 18 0x725706ff LINE_COLOR +p 00 19 0xf0be4bff BACKGROUND_COLOR +p 00 20 0x00000018 TEXT_LINE_SPACING +p 01 02 0x504506ff LABEL_TEXT_COLOR_NORMAL +p 01 05 0xfdeb9bff LABEL_TEXT_COLOR_FOCUSED +p 01 08 0xf5e8a4ff LABEL_TEXT_COLOR_PRESSED +p 02 02 0xebc21fff BUTTON_TEXT_COLOR_NORMAL +p 03 02 0xebc21fff TOGGLE_TEXT_COLOR_NORMAL +p 04 02 0x81700fff SLIDER_TEXT_COLOR_NORMAL +p 04 05 0xf4e49aff SLIDER_TEXT_COLOR_FOCUSED +p 07 02 0xebc21fff COMBOBOX_TEXT_COLOR_NORMAL +p 08 02 0xefd87bff DROPDOWNBOX_TEXT_COLOR_NORMAL +p 08 05 0xd4b219ff DROPDOWNBOX_TEXT_COLOR_FOCUSED +p 09 02 0x7a680bff TEXTBOX_TEXT_COLOR_NORMAL +p 09 05 0xad931fff TEXTBOX_TEXT_COLOR_FOCUSED +p 10 02 0x62570eff VALUEBOX_TEXT_COLOR_NORMAL +p 10 05 0xf2df88ff VALUEBOX_TEXT_COLOR_FOCUSED +p 12 02 0xf4e798ff LISTVIEW_TEXT_COLOR_NORMAL +p 15 02 0xebc21fff STATUSBAR_TEXT_COLOR_NORMAL diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/Mecha.ttf b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/Mecha.ttf new file mode 100644 index 0000000..928f63a Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/Mecha.ttf differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/README.md b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/README.md new file mode 100644 index 0000000..a30bc1e --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/README.md @@ -0,0 +1,27 @@ +## style: terminal + +Start your terminal and type your commands! Feel the connection the data flow, that's your style! + +![terminal style table](style_terminal.png) + +## style: provided files + +Several options are provided to add the style to a `raygui` application, choose the one that better fits the project. + +| file name | description | +| :-------- | :---------- | +| `style_terminal.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) | +| `style_terminal.txt.rgs` | Text style file, no font data, requires external font provided | +| `style_terminal.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) | +| `style_terminal.h` | Embeddable style as code file, self-contained, includes font data | +| `style_terminal.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data | + +## screenshot + +![terminal style screen](screenshot.png) + +## about font + +"Mecha" font by Captain Falcon. + +100% free font, downloaded from dafont.com: [mecha-cf](https://www.dafont.com/mecha-cf.font) diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/charset.txt b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/charset.txt new file mode 100644 index 0000000..611a673 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/charset.txt @@ -0,0 +1 @@ + !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/screenshot.old.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/screenshot.old.png new file mode 100644 index 0000000..55142e2 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/screenshot.old.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/screenshot.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/screenshot.png new file mode 100644 index 0000000..36d17a5 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/screenshot.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/style_terminal.h b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/style_terminal.h new file mode 100644 index 0000000..d5e42f4 --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/style_terminal.h @@ -0,0 +1,569 @@ +////////////////////////////////////////////////////////////////////////////////// +// // +// StyleAsCode exporter v2.0 - Style data exported as a values array // +// // +// USAGE: On init call: GuiLoadStyleTerminal(); // +// // +// more info and bugs-report: github.com/raysan5/raygui // +// feedback and support: ray[at]raylibtech.com // +// // +// Copyright (c) 2020-2025 raylib technologies (@raylibtech) // +// // +////////////////////////////////////////////////////////////////////////////////// + +#define TERMINAL_STYLE_PROPS_COUNT 17 + +// Custom style name: Terminal +static const GuiStyleProp terminalStyleProps[TERMINAL_STYLE_PROPS_COUNT] = { + { 0, 0, (int)0x1c8d00ff }, // DEFAULT_BORDER_COLOR_NORMAL + { 0, 1, (int)0x161313ff }, // DEFAULT_BASE_COLOR_NORMAL + { 0, 2, (int)0x38f620ff }, // DEFAULT_TEXT_COLOR_NORMAL + { 0, 3, (int)0xc3fbc6ff }, // DEFAULT_BORDER_COLOR_FOCUSED + { 0, 4, (int)0x43bf2eff }, // DEFAULT_BASE_COLOR_FOCUSED + { 0, 5, (int)0xdcfadcff }, // DEFAULT_TEXT_COLOR_FOCUSED + { 0, 6, (int)0x1f5b19ff }, // DEFAULT_BORDER_COLOR_PRESSED + { 0, 7, (int)0x43ff28ff }, // DEFAULT_BASE_COLOR_PRESSED + { 0, 8, (int)0x1e6f15ff }, // DEFAULT_TEXT_COLOR_PRESSED + { 0, 9, (int)0x223b22ff }, // DEFAULT_BORDER_COLOR_DISABLED + { 0, 10, (int)0x182c18ff }, // DEFAULT_BASE_COLOR_DISABLED + { 0, 11, (int)0x244125ff }, // DEFAULT_TEXT_COLOR_DISABLED + { 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE + { 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING + { 0, 18, (int)0xe6fce3ff }, // DEFAULT_LINE_COLOR + { 0, 19, (int)0x0c1505ff }, // DEFAULT_BACKGROUND_COLOR + { 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING +}; + +// WARNING: This style uses a custom font: "Mecha.ttf" (size: 16, spacing: 0) + +#define TERMINAL_STYLE_FONT_ATLAS_COMP_SIZE 1860 + +// Font atlas image pixels data: DEFLATE compressed +static unsigned char terminalFontData[TERMINAL_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed, + 0xdd, 0x41, 0x92, 0xa4, 0x36, 0x10, 0x05, 0x50, 0xee, 0x7f, 0xe9, 0xf4, 0x62, 0x62, 0x16, 0x76, 0xb8, 0x1b, 0x94, 0x4a, + 0x89, 0x04, 0x9e, 0x5f, 0x78, 0xd3, 0xd5, 0x53, 0x4d, 0x01, 0xbf, 0x24, 0x84, 0x94, 0xc4, 0x01, 0x00, 0x00, 0x00, 0x7c, + 0x5e, 0xfc, 0xef, 0x4f, 0xe2, 0xc7, 0xdf, 0x8c, 0xcb, 0xef, 0xf3, 0xe7, 0xa7, 0xf1, 0xe3, 0x5f, 0xf9, 0xfb, 0xdf, 0x95, + 0x77, 0xba, 0xfe, 0x5b, 0x31, 0xb4, 0x75, 0x73, 0x5b, 0x95, 0x7b, 0x9f, 0xd1, 0xdf, 0xfe, 0x7d, 0x7b, 0xaa, 0xde, 0xad, + 0xf6, 0x95, 0xb1, 0xb3, 0x23, 0xbf, 0xe7, 0xae, 0x6e, 0x61, 0x6c, 0xdf, 0x2b, 0xc7, 0xa6, 0x7d, 0x1c, 0x0d, 0xf2, 0x7f, + 0x7e, 0xcc, 0x46, 0xf2, 0x14, 0xe9, 0xf4, 0x8e, 0x7f, 0x3b, 0xad, 0xfc, 0x0e, 0x1d, 0xdd, 0xc6, 0xdc, 0x3e, 0x89, 0x92, + 0xf7, 0x9f, 0xf9, 0x3b, 0x51, 0xb6, 0xd7, 0x72, 0xff, 0x26, 0x86, 0xdb, 0x88, 0xf9, 0x4f, 0x78, 0xbe, 0x8f, 0x63, 0xd1, + 0x71, 0xef, 0x99, 0xff, 0xfc, 0x51, 0xcb, 0x9f, 0x29, 0x57, 0xb7, 0x3c, 0xd7, 0xa6, 0xaf, 0x3a, 0x27, 0xe5, 0xff, 0xec, + 0x9b, 0xfa, 0xe7, 0x16, 0xb4, 0xa2, 0xdd, 0x90, 0xff, 0x5c, 0x06, 0x62, 0x22, 0x47, 0xbb, 0xf2, 0x5f, 0xdb, 0xd6, 0xc8, + 0xff, 0x33, 0xda, 0xff, 0xb3, 0x6d, 0xff, 0xf7, 0x79, 0x2b, 0xff, 0xd9, 0xa3, 0x90, 0x6d, 0xff, 0x63, 0x7a, 0xfb, 0x3b, + 0xe7, 0x7f, 0x74, 0xdc, 0x43, 0xfe, 0xcf, 0xaf, 0xe8, 0x73, 0xbf, 0x7d, 0xb6, 0x27, 0xe4, 0x7f, 0x5d, 0xfe, 0x7f, 0xeb, + 0xb3, 0x9d, 0xf5, 0xf4, 0x76, 0xe4, 0xff, 0xd8, 0x9e, 0xff, 0xb3, 0xeb, 0xa8, 0xeb, 0xfb, 0x62, 0xc7, 0x08, 0xd4, 0x91, + 0x1c, 0xdb, 0x89, 0xc1, 0x0c, 0xdf, 0xd3, 0x0b, 0x3b, 0xcb, 0x7f, 0x66, 0x4f, 0x66, 0xf2, 0x7f, 0x76, 0x5c, 0x8e, 0x5f, + 0x7a, 0x30, 0xab, 0xf6, 0x7e, 0x45, 0xfe, 0x67, 0x46, 0xe4, 0x9e, 0x9d, 0xff, 0x38, 0xd9, 0x57, 0x31, 0x31, 0xbe, 0xb9, + 0xb3, 0xcf, 0x30, 0xd3, 0x4f, 0xeb, 0x7b, 0x1c, 0xde, 0xd3, 0xff, 0x8f, 0xd6, 0xed, 0xbf, 0xfc, 0xcf, 0x5d, 0xff, 0xbf, + 0x2d, 0xff, 0xb1, 0xfd, 0x58, 0xc5, 0x85, 0x33, 0x56, 0xfe, 0xe7, 0xf6, 0xf0, 0x79, 0x8f, 0x23, 0x16, 0x5d, 0xbf, 0x74, + 0xcd, 0x7f, 0xee, 0xd3, 0x7d, 0xb1, 0xfd, 0x8f, 0x1b, 0x8f, 0x8f, 0xfc, 0xaf, 0xd8, 0x9b, 0x23, 0x77, 0xd8, 0x66, 0xe7, + 0x2f, 0xc8, 0xbf, 0xfc, 0xcb, 0x7f, 0xef, 0xfe, 0x7f, 0x0c, 0x8e, 0xdc, 0xc6, 0xe3, 0xc7, 0xff, 0xe2, 0x52, 0x6f, 0x69, + 0x7e, 0xb6, 0xe0, 0x78, 0x9f, 0x2b, 0xf7, 0x6e, 0xf9, 0xd9, 0x75, 0x4f, 0xb9, 0xfe, 0xdf, 0x39, 0x93, 0xf2, 0x28, 0x99, + 0x87, 0xb2, 0x7e, 0xfe, 0xdf, 0x33, 0xe7, 0x28, 0x77, 0xcf, 0x3f, 0xb0, 0x7a, 0x95, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x65, 0x0d, 0x4d, 0x94, 0xad, 0x7b, 0x8c, 0x16, 0x95, 0xe7, 0xf7, 0xd4, 0x58, + 0xbf, 0xb6, 0x87, 0xaa, 0xde, 0x71, 0xec, 0x59, 0x02, 0x63, 0xeb, 0x30, 0x73, 0x2b, 0xff, 0x56, 0xaf, 0x6e, 0x9b, 0x59, + 0xdd, 0x58, 0xb3, 0x65, 0x15, 0xb5, 0x2d, 0xee, 0x49, 0xc7, 0xca, 0x75, 0xe2, 0x71, 0x69, 0x75, 0x70, 0x6d, 0x92, 0x56, + 0xaf, 0xd8, 0xce, 0xac, 0x7d, 0xdf, 0x99, 0xff, 0xb1, 0x33, 0x70, 0xfc, 0x73, 0x46, 0x62, 0x35, 0x55, 0x6d, 0x0d, 0x98, + 0x63, 0xe9, 0xb9, 0x19, 0x8b, 0xd6, 0x90, 0x8d, 0xef, 0x83, 0x3d, 0xe9, 0x90, 0xff, 0x2f, 0xe7, 0x3f, 0x57, 0x23, 0x7b, + 0xc7, 0xb3, 0x50, 0xe4, 0x5f, 0xfe, 0xe5, 0xff, 0xad, 0xf9, 0x8f, 0xe2, 0xfe, 0x77, 0xbe, 0x5a, 0x47, 0xcd, 0x95, 0x55, + 0x6d, 0x4a, 0xe4, 0x5f, 0xfe, 0x7f, 0xef, 0x6d, 0xc7, 0xc5, 0x56, 0x6c, 0xa4, 0xc5, 0xdb, 0x59, 0xb3, 0x64, 0x5f, 0x15, + 0xad, 0xd1, 0x6f, 0x93, 0x28, 0x4c, 0xf0, 0x57, 0xf2, 0x9f, 0xaf, 0x7b, 0xbe, 0x67, 0xdc, 0x2b, 0xb3, 0xe5, 0x99, 0xda, + 0x57, 0xf5, 0xf9, 0x3f, 0x7b, 0x1e, 0x42, 0xe6, 0xfb, 0xe9, 0x5b, 0xf9, 0x1f, 0xfd, 0x6c, 0xf2, 0x7f, 0x6c, 0x7e, 0xb6, + 0xcc, 0xfd, 0x35, 0x16, 0x23, 0xd9, 0xd2, 0x57, 0x6d, 0x75, 0xa4, 0x46, 0xdb, 0xaa, 0x7e, 0x9e, 0xab, 0xd2, 0xf8, 0xde, + 0xfc, 0x47, 0xc1, 0x7d, 0xae, 0xb9, 0x56, 0x52, 0xfe, 0xe5, 0xff, 0x98, 0xac, 0xc0, 0xdb, 0x3d, 0xff, 0x2b, 0xae, 0xbf, + 0x2b, 0x9f, 0xe6, 0xfa, 0xcc, 0xf6, 0xff, 0x59, 0xf7, 0xff, 0xbe, 0x92, 0xff, 0xb3, 0x63, 0x79, 0x77, 0xfe, 0x3b, 0xd5, + 0x4c, 0xcd, 0x8c, 0x30, 0xce, 0xfc, 0x9b, 0x8e, 0xf9, 0xdf, 0x35, 0x9f, 0x47, 0xfe, 0x77, 0xe5, 0xff, 0xe7, 0xa7, 0x8d, + 0xcb, 0x7f, 0xaf, 0xfc, 0xaf, 0xeb, 0xff, 0x3f, 0x3b, 0xff, 0xeb, 0x7a, 0x5f, 0xab, 0xfb, 0x73, 0xb5, 0x5b, 0x9e, 0x99, + 0x01, 0xf7, 0xdb, 0xfc, 0xbb, 0x48, 0x57, 0x6d, 0xaf, 0x98, 0x87, 0x37, 0x33, 0x3b, 0x68, 0xf7, 0x95, 0x41, 0xf5, 0xbf, + 0xa9, 0x1f, 0xb3, 0xe8, 0x9b, 0x7f, 0x78, 0x46, 0xfe, 0xbf, 0xb0, 0xaf, 0x71, 0x3c, 0xee, 0x69, 0x59, 0x57, 0xfe, 0x3e, + 0xce, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xd3, 0x2a, 0xac, 0xaa, 0xba, 0x8d, 0x3b, + 0xab, 0x65, 0xe4, 0xd6, 0xf9, 0xc5, 0xe5, 0xba, 0x2e, 0x99, 0x55, 0xe4, 0x23, 0x6b, 0xf9, 0x6a, 0xd6, 0x34, 0xe6, 0xcf, + 0x81, 0x48, 0xad, 0x96, 0x3b, 0x3f, 0x53, 0x32, 0x35, 0xec, 0xd7, 0xcd, 0xb6, 0xff, 0xbd, 0x7e, 0x43, 0xbe, 0x92, 0xc8, + 0xaa, 0xf5, 0x05, 0x75, 0xf5, 0x9f, 0x8e, 0x82, 0xd5, 0x8a, 0xd9, 0x35, 0xf4, 0xf7, 0xe6, 0x7f, 0x74, 0xf5, 0xdb, 0xf5, + 0x9f, 0x55, 0xd4, 0x5b, 0x89, 0xc4, 0xca, 0xbc, 0xca, 0xfc, 0x57, 0x9c, 0xe3, 0x51, 0xf6, 0xbe, 0xb1, 0xb8, 0x4e, 0xc1, + 0x95, 0x56, 0xe2, 0xd9, 0x6b, 0xa2, 0xe2, 0xd5, 0xf9, 0xaf, 0xad, 0x96, 0x5b, 0xff, 0x9d, 0x90, 0xaf, 0x4f, 0x70, 0x5f, + 0xfe, 0xff, 0x6e, 0x57, 0x75, 0xfe, 0x33, 0xef, 0x5b, 0x53, 0xd9, 0x6a, 0x2e, 0xff, 0x3d, 0x56, 0xf6, 0xc5, 0xf2, 0x9e, + 0x47, 0x26, 0xff, 0x63, 0xfd, 0xb6, 0x15, 0xf9, 0xcf, 0x57, 0xe6, 0x39, 0x36, 0x65, 0xfd, 0x28, 0x4e, 0xf9, 0xfa, 0xfc, + 0xd7, 0x9f, 0x69, 0xf1, 0x9f, 0xff, 0xbb, 0xac, 0xb6, 0x7d, 0x4b, 0xfe, 0x73, 0xd5, 0x69, 0x66, 0xf3, 0x9f, 0xbd, 0xe2, + 0xbd, 0xbb, 0xfd, 0x5f, 0x73, 0x4d, 0xb0, 0x3e, 0xff, 0x91, 0xaa, 0x0c, 0xde, 0x27, 0xff, 0xb1, 0x20, 0xb9, 0xf2, 0x9f, + 0x6d, 0x03, 0xdf, 0x90, 0xff, 0xea, 0xe7, 0x7c, 0x74, 0xc8, 0x7f, 0x6e, 0xc4, 0x2b, 0x4a, 0x73, 0x1a, 0xed, 0xdb, 0xff, + 0x63, 0xdb, 0xf8, 0x5f, 0xff, 0xfc, 0x47, 0x49, 0xbf, 0xf0, 0xce, 0xfc, 0xd7, 0x57, 0xcb, 0xcd, 0x56, 0x0d, 0xbc, 0x3e, + 0xd6, 0xd7, 0xa7, 0xfd, 0xaf, 0xbf, 0x1e, 0x5e, 0xd1, 0xfe, 0x1f, 0x0b, 0xee, 0x52, 0xac, 0xbf, 0xaa, 0xee, 0x9f, 0xff, + 0xaa, 0xeb, 0xc2, 0xcc, 0x73, 0x93, 0x46, 0xef, 0xff, 0xc5, 0xe9, 0x59, 0x3c, 0x7a, 0xe7, 0x68, 0x3c, 0x4f, 0x31, 0xf8, + 0xf4, 0xa2, 0xfe, 0xd7, 0xff, 0x95, 0xed, 0xff, 0x9a, 0x51, 0xef, 0xae, 0xa3, 0xe9, 0xd7, 0x9e, 0x2f, 0xde, 0x63, 0x8b, + 0xf3, 0x4f, 0xdc, 0x8a, 0xed, 0x57, 0x56, 0x7d, 0x8e, 0xf1, 0xfc, 0x67, 0x5f, 0x93, 0xff, 0x8a, 0x8a, 0xd3, 0xf5, 0xed, + 0xe1, 0xf7, 0xe6, 0xbc, 0xcc, 0xdc, 0x75, 0xef, 0xb1, 0xb5, 0xd5, 0xe7, 0xc5, 0x3b, 0xf2, 0x5f, 0xf7, 0xd9, 0x63, 0xc9, + 0xb7, 0x4a, 0xa6, 0x96, 0x77, 0x2c, 0x9f, 0x0f, 0x23, 0xff, 0xcf, 0xcd, 0x7f, 0xdc, 0x70, 0xcf, 0xf0, 0x58, 0x3c, 0x1e, + 0xdd, 0x61, 0x0f, 0xef, 0xcd, 0x3f, 0xfd, 0xce, 0x88, 0xee, 0xf9, 0x5f, 0x3f, 0x2f, 0xf4, 0xcb, 0xed, 0x81, 0x2a, 0xf9, + 0x3c, 0xf1, 0x5a, 0x56, 0xfe, 0x73, 0xfd, 0x96, 0xd9, 0xf9, 0xff, 0x20, 0xff, 0xdf, 0xdd, 0xeb, 0xd0, 0x7f, 0x76, 0x03, + 0xf2, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xfb, 0x67, 0xbb, 0x45, 0x6a, 0x7d, 0x5b, 0x0c, 0x56, + 0x32, 0x88, 0x74, 0xa5, 0xf8, 0x6c, 0x7d, 0x8c, 0x18, 0x5c, 0xf7, 0x35, 0x5f, 0x37, 0xf8, 0xfa, 0xf3, 0x15, 0x66, 0xd6, + 0x0f, 0xae, 0x3f, 0x8e, 0x75, 0x15, 0xd6, 0xeb, 0x8f, 0x52, 0xe6, 0xef, 0x47, 0x79, 0xed, 0xb5, 0xfe, 0x99, 0x99, 0xdf, + 0xcf, 0x99, 0x95, 0xbe, 0xb5, 0x67, 0xd4, 0xb5, 0x63, 0x5b, 0xb7, 0xba, 0x33, 0x26, 0x92, 0x3e, 0x3e, 0x4f, 0xfb, 0xf7, + 0xaa, 0x9f, 0x5d, 0x8f, 0x63, 0x2e, 0x4b, 0x51, 0xba, 0x06, 0x37, 0xf7, 0xd7, 0x9f, 0xb6, 0xaf, 0xaf, 0x57, 0x01, 0xd8, + 0xdd, 0x5f, 0xc8, 0x3f, 0x35, 0x28, 0x6e, 0x9f, 0x8b, 0xbf, 0xae, 0xa2, 0x4e, 0x5d, 0xad, 0xe2, 0xbb, 0x8f, 0xe3, 0x71, + 0xfa, 0x0c, 0x93, 0x68, 0xb8, 0xbe, 0xe5, 0xac, 0xff, 0x18, 0x2d, 0xf7, 0x75, 0x5c, 0xee, 0x23, 0xe6, 0xf3, 0x9f, 0x7f, + 0x3e, 0x53, 0x14, 0x57, 0xe6, 0xcd, 0x57, 0xc7, 0xac, 0xde, 0xfa, 0x7c, 0xfb, 0x9f, 0xb9, 0x52, 0x88, 0xe5, 0x9f, 0xaa, + 0xf6, 0x3b, 0x39, 0x4e, 0x6a, 0xb9, 0xae, 0x3e, 0x2b, 0x56, 0xbc, 0x12, 0x1b, 0xce, 0xad, 0xdc, 0xf5, 0xde, 0xb5, 0x33, + 0x64, 0x26, 0xff, 0x7d, 0x8f, 0xcd, 0xd1, 0xe6, 0x95, 0xdd, 0xf9, 0x7f, 0xee, 0x2b, 0xef, 0xc9, 0x7f, 0x9f, 0xb3, 0xef, + 0xb7, 0xcf, 0x33, 0xfb, 0xac, 0xc2, 0x0e, 0x47, 0xe0, 0xac, 0x4e, 0xec, 0x5b, 0xf3, 0x1f, 0x3f, 0x8e, 0x0c, 0xf6, 0xff, + 0x4e, 0xfe, 0xb9, 0x5f, 0xf0, 0xb4, 0xfc, 0x57, 0xb6, 0xcb, 0x15, 0x6d, 0xf9, 0xde, 0x6b, 0x66, 0xed, 0xbf, 0xf6, 0xff, + 0xdb, 0xf9, 0xbf, 0xff, 0x2a, 0x6c, 0x6f, 0x66, 0xfa, 0xed, 0xb3, 0x3e, 0xf9, 0x1f, 0x19, 0xf3, 0x92, 0xff, 0xb7, 0xe7, + 0xff, 0x09, 0xdf, 0x4d, 0xb3, 0xf7, 0xff, 0xde, 0x31, 0xfe, 0x57, 0xf5, 0x8a, 0xf6, 0x7f, 0x6e, 0x8c, 0xfd, 0xee, 0x6d, + 0xcb, 0x1f, 0xf3, 0xb7, 0x1c, 0x85, 0xd1, 0x3e, 0x80, 0xfe, 0xbf, 0xfc, 0xbf, 0x27, 0xff, 0x47, 0x7a, 0xf6, 0xc1, 0xb3, + 0xae, 0x33, 0x46, 0x8e, 0xc7, 0x73, 0xf2, 0x5f, 0x79, 0xc7, 0xee, 0x29, 0xe3, 0x7f, 0x4f, 0xfb, 0x66, 0x78, 0x63, 0xfe, + 0xef, 0xbd, 0xd7, 0xda, 0x63, 0xe6, 0xef, 0x33, 0xfb, 0x32, 0x4f, 0xce, 0xff, 0xb3, 0xfb, 0x64, 0xc7, 0x6d, 0x57, 0x85, + 0x51, 0xb8, 0xa7, 0x79, 0x46, 0xfe, 0x63, 0x53, 0xfe, 0x47, 0xc6, 0x06, 0xde, 0x9d, 0xff, 0xf1, 0xd6, 0x2a, 0x6e, 0x1f, + 0x63, 0x96, 0xff, 0xbb, 0xf3, 0xbf, 0x7f, 0xeb, 0x77, 0xf5, 0xc4, 0x62, 0x49, 0xd2, 0xc7, 0x8f, 0xc9, 0x13, 0xfb, 0xa4, + 0x3b, 0xb7, 0x4d, 0xfe, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xef, 0xcc, 0x00, 0x1e, 0x7b, 0xb5, + 0x43, 0x05, 0xfd, 0x23, 0x5d, 0x6d, 0xbd, 0xee, 0xf3, 0x1e, 0x89, 0xaa, 0xee, 0x99, 0x6d, 0xe8, 0x5c, 0x41, 0xdf, 0xac, + 0xdb, 0xb7, 0x7e, 0x03, 0xf4, 0xae, 0xa0, 0x7f, 0x5e, 0xe5, 0x63, 0xfd, 0xe7, 0xad, 0x9c, 0x3f, 0xdf, 0xbb, 0x82, 0x7e, + 0xbf, 0xb5, 0xab, 0xf4, 0xfb, 0x26, 0xd9, 0x59, 0x41, 0x7f, 0xbc, 0xbf, 0x71, 0x6c, 0xdc, 0xae, 0x6c, 0x35, 0x83, 0xae, + 0x15, 0xf4, 0xbb, 0xaf, 0x05, 0xe3, 0xfe, 0xb5, 0x59, 0x63, 0xcf, 0xb4, 0xa8, 0xaa, 0xa0, 0xf1, 0xb4, 0x0a, 0xfa, 0x67, + 0x19, 0x7b, 0x52, 0x9d, 0x6c, 0xf9, 0xb7, 0xfe, 0xf7, 0xbe, 0xfc, 0xf7, 0xad, 0x93, 0x91, 0xad, 0x52, 0xd3, 0xbb, 0x82, + 0xa6, 0xfc, 0xcb, 0xbf, 0xfc, 0xaf, 0xaa, 0x91, 0x20, 0xff, 0x3c, 0x3d, 0xff, 0x3b, 0x2b, 0xe8, 0xa8, 0xa0, 0xb9, 0xbb, + 0x22, 0xd0, 0x21, 0xff, 0xae, 0xff, 0x1f, 0xf1, 0x04, 0x3d, 0xf9, 0x5f, 0xf3, 0x8a, 0xfc, 0x7f, 0xfd, 0xde, 0x9f, 0x0a, + 0xda, 0x2b, 0xf3, 0x1f, 0x4d, 0xc7, 0xff, 0xf6, 0xdf, 0xf1, 0xe1, 0x89, 0xf9, 0xd7, 0xff, 0xcf, 0xe7, 0xe2, 0xfe, 0x0a, + 0x9a, 0xf9, 0x34, 0xcb, 0xbf, 0xfe, 0x7f, 0xc5, 0xfc, 0x9f, 0x9a, 0xb6, 0x47, 0x05, 0xcd, 0xb9, 0x6d, 0x93, 0x7f, 0xd0, + 0x2b, 0xd4, 0xff, 0x07, 0xbd, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xf9, 0xf3, 0x9f, 0xfd, 0x00, 0xf2, 0x0f, 0x7c, 0x2e, 0xff, 0xff, 0x00 }; + +// Font glyphs rectangles data (on atlas) +static const Rectangle terminalFontRecs[189] = { + { 4, 4, 4 , 16 }, + { 16, 4, 1 , 11 }, + { 25, 4, 3 , 3 }, + { 36, 4, 6 , 11 }, + { 50, 4, 5 , 11 }, + { 63, 4, 5 , 11 }, + { 76, 4, 5 , 11 }, + { 89, 4, 1 , 2 }, + { 98, 4, 2 , 13 }, + { 108, 4, 2 , 13 }, + { 118, 4, 3 , 3 }, + { 129, 4, 5 , 5 }, + { 142, 4, 1 , 3 }, + { 151, 4, 5 , 1 }, + { 164, 4, 1 , 1 }, + { 173, 4, 6 , 12 }, + { 187, 4, 5 , 11 }, + { 200, 4, 2 , 11 }, + { 210, 4, 5 , 11 }, + { 223, 4, 5 , 11 }, + { 236, 4, 5 , 11 }, + { 249, 4, 5 , 11 }, + { 262, 4, 5 , 11 }, + { 275, 4, 5 , 11 }, + { 288, 4, 5 , 11 }, + { 301, 4, 5 , 11 }, + { 314, 4, 1 , 8 }, + { 323, 4, 1 , 10 }, + { 332, 4, 4 , 5 }, + { 344, 4, 5 , 3 }, + { 357, 4, 4 , 5 }, + { 369, 4, 5 , 11 }, + { 382, 4, 11 , 11 }, + { 401, 4, 5 , 11 }, + { 414, 4, 5 , 11 }, + { 427, 4, 5 , 11 }, + { 440, 4, 5 , 11 }, + { 453, 4, 5 , 11 }, + { 466, 4, 5 , 11 }, + { 479, 4, 5 , 11 }, + { 492, 4, 5 , 11 }, + { 4, 28, 1 , 11 }, + { 13, 28, 5 , 11 }, + { 26, 28, 5 , 11 }, + { 39, 28, 5 , 11 }, + { 52, 28, 7 , 11 }, + { 67, 28, 5 , 11 }, + { 80, 28, 5 , 11 }, + { 93, 28, 5 , 11 }, + { 106, 28, 5 , 13 }, + { 119, 28, 5 , 11 }, + { 132, 28, 5 , 11 }, + { 145, 28, 5 , 11 }, + { 158, 28, 5 , 11 }, + { 171, 28, 5 , 11 }, + { 184, 28, 7 , 11 }, + { 199, 28, 5 , 11 }, + { 212, 28, 5 , 11 }, + { 225, 28, 5 , 11 }, + { 238, 28, 2 , 13 }, + { 248, 28, 6 , 12 }, + { 262, 28, 2 , 13 }, + { 272, 28, 5 , 4 }, + { 285, 28, 5 , 1 }, + { 298, 28, 2 , 2 }, + { 308, 28, 5 , 8 }, + { 321, 28, 5 , 11 }, + { 334, 28, 5 , 8 }, + { 347, 28, 5 , 11 }, + { 360, 28, 5 , 8 }, + { 373, 28, 4 , 11 }, + { 385, 28, 5 , 10 }, + { 398, 28, 5 , 11 }, + { 411, 28, 1 , 11 }, + { 420, 28, 1 , 13 }, + { 429, 28, 5 , 11 }, + { 442, 28, 1 , 11 }, + { 451, 28, 7 , 8 }, + { 466, 28, 5 , 8 }, + { 479, 28, 5 , 8 }, + { 492, 28, 5 , 10 }, + { 4, 52, 5 , 10 }, + { 17, 52, 4 , 8 }, + { 29, 52, 5 , 8 }, + { 42, 52, 3 , 11 }, + { 53, 52, 5 , 8 }, + { 66, 52, 5 , 8 }, + { 79, 52, 7 , 8 }, + { 94, 52, 5 , 8 }, + { 107, 52, 5 , 10 }, + { 120, 52, 5 , 8 }, + { 133, 52, 3 , 13 }, + { 144, 52, 1 , 15 }, + { 153, 52, 3 , 13 }, + { 164, 52, 5 , 3 }, + { 177, 52, 1 , 11 }, + { 186, 52, 5 , 11 }, + { 199, 52, 5 , 10 }, + { 212, 52, 5 , 10 }, + { 225, 52, 5 , 10 }, + { 238, 52, 0 , 0 }, + { 246, 52, 0 , 0 }, + { 254, 52, 0 , 0 }, + { 262, 52, 7 , 8 }, + { 277, 52, 0 , 0 }, + { 285, 52, 0 , 0 }, + { 293, 52, 5 , 3 }, + { 306, 52, 7 , 8 }, + { 321, 52, 5 , 1 }, + { 334, 52, 3 , 3 }, + { 345, 52, 5 , 7 }, + { 358, 52, 0 , 0 }, + { 366, 52, 0 , 0 }, + { 374, 52, 0 , 0 }, + { 382, 52, 5 , 10 }, + { 395, 52, 7 , 11 }, + { 410, 52, 1 , 1 }, + { 419, 52, 0 , 0 }, + { 427, 52, 0 , 0 }, + { 435, 52, 0 , 0 }, + { 443, 52, 0 , 0 }, + { 451, 52, 0 , 0 }, + { 459, 52, 0 , 0 }, + { 467, 52, 5 , 13 }, + { 480, 52, 5 , 11 }, + { 493, 52, 5 , 14 }, + { 4, 76, 5 , 14 }, + { 17, 76, 5 , 14 }, + { 30, 76, 5 , 14 }, + { 43, 76, 5 , 13 }, + { 56, 76, 5 , 13 }, + { 69, 76, 9 , 11 }, + { 86, 76, 5 , 13 }, + { 99, 76, 5 , 14 }, + { 112, 76, 5 , 14 }, + { 125, 76, 5 , 14 }, + { 138, 76, 5 , 13 }, + { 151, 76, 2 , 14 }, + { 161, 76, 2 , 14 }, + { 171, 76, 3 , 14 }, + { 182, 76, 3 , 13 }, + { 193, 76, 5 , 11 }, + { 206, 76, 5 , 14 }, + { 219, 76, 5 , 14 }, + { 232, 76, 5 , 14 }, + { 245, 76, 5 , 14 }, + { 258, 76, 5 , 14 }, + { 271, 76, 5 , 13 }, + { 284, 76, 5 , 5 }, + { 297, 76, 5 , 13 }, + { 310, 76, 5 , 14 }, + { 323, 76, 5 , 14 }, + { 336, 76, 5 , 14 }, + { 349, 76, 5 , 13 }, + { 362, 76, 5 , 14 }, + { 375, 76, 5 , 11 }, + { 388, 76, 5 , 11 }, + { 401, 76, 5 , 11 }, + { 414, 76, 5 , 11 }, + { 427, 76, 5 , 11 }, + { 440, 76, 5 , 11 }, + { 453, 76, 5 , 10 }, + { 466, 76, 5 , 10 }, + { 479, 76, 9 , 8 }, + { 496, 76, 5 , 10 }, + { 4, 100, 5 , 11 }, + { 17, 100, 5 , 11 }, + { 30, 100, 5 , 11 }, + { 43, 100, 5 , 10 }, + { 56, 100, 2 , 11 }, + { 66, 100, 2 , 11 }, + { 76, 100, 3 , 11 }, + { 87, 100, 3 , 10 }, + { 98, 100, 5 , 11 }, + { 111, 100, 5 , 11 }, + { 124, 100, 5 , 11 }, + { 137, 100, 5 , 11 }, + { 150, 100, 5 , 11 }, + { 163, 100, 5 , 11 }, + { 176, 100, 5 , 10 }, + { 189, 100, 5 , 5 }, + { 202, 100, 5 , 10 }, + { 215, 100, 5 , 11 }, + { 228, 100, 5 , 11 }, + { 241, 100, 5 , 11 }, + { 254, 100, 5 , 10 }, + { 267, 100, 5 , 13 }, + { 280, 100, 4 , 8 }, + { 292, 100, 5 , 12 }, +}; + +// Font glyphs info data +// NOTE: No glyphs.image data provided +static const GlyphInfo terminalFontGlyphs[189] = { + { 32, 0, 0, 4, { 0 }}, + { 33, 1, 3, 3, { 0 }}, + { 34, 1, 3, 5, { 0 }}, + { 35, 1, 3, 8, { 0 }}, + { 36, 1, 3, 7, { 0 }}, + { 37, 1, 3, 7, { 0 }}, + { 38, 1, 3, 7, { 0 }}, + { 39, 1, 3, 3, { 0 }}, + { 40, 1, 2, 4, { 0 }}, + { 41, 1, 2, 4, { 0 }}, + { 42, 1, 3, 5, { 0 }}, + { 43, 1, 7, 7, { 0 }}, + { 44, 1, 13, 3, { 0 }}, + { 45, 1, 9, 7, { 0 }}, + { 46, 1, 13, 3, { 0 }}, + { 47, 1, 2, 8, { 0 }}, + { 48, 1, 3, 7, { 0 }}, + { 49, 1, 3, 4, { 0 }}, + { 50, 1, 3, 7, { 0 }}, + { 51, 1, 3, 7, { 0 }}, + { 52, 1, 3, 7, { 0 }}, + { 53, 1, 3, 7, { 0 }}, + { 54, 1, 3, 7, { 0 }}, + { 55, 1, 3, 7, { 0 }}, + { 56, 1, 3, 7, { 0 }}, + { 57, 1, 3, 7, { 0 }}, + { 58, 1, 6, 3, { 0 }}, + { 59, 1, 6, 3, { 0 }}, + { 60, 1, 7, 6, { 0 }}, + { 61, 1, 8, 7, { 0 }}, + { 62, 1, 7, 6, { 0 }}, + { 63, 1, 3, 7, { 0 }}, + { 64, 2, 3, 15, { 0 }}, + { 65, 1, 3, 7, { 0 }}, + { 66, 1, 3, 7, { 0 }}, + { 67, 1, 3, 7, { 0 }}, + { 68, 1, 3, 7, { 0 }}, + { 69, 1, 3, 7, { 0 }}, + { 70, 1, 3, 7, { 0 }}, + { 71, 1, 3, 7, { 0 }}, + { 72, 1, 3, 7, { 0 }}, + { 73, 1, 3, 3, { 0 }}, + { 74, 1, 3, 7, { 0 }}, + { 75, 1, 3, 7, { 0 }}, + { 76, 1, 3, 7, { 0 }}, + { 77, 1, 3, 9, { 0 }}, + { 78, 1, 3, 7, { 0 }}, + { 79, 1, 3, 7, { 0 }}, + { 80, 1, 3, 7, { 0 }}, + { 81, 1, 3, 7, { 0 }}, + { 82, 1, 3, 7, { 0 }}, + { 83, 1, 3, 7, { 0 }}, + { 84, 1, 3, 7, { 0 }}, + { 85, 1, 3, 7, { 0 }}, + { 86, 1, 3, 7, { 0 }}, + { 87, 1, 3, 9, { 0 }}, + { 88, 1, 3, 7, { 0 }}, + { 89, 1, 3, 7, { 0 }}, + { 90, 1, 3, 7, { 0 }}, + { 91, 1, 2, 4, { 0 }}, + { 92, 1, 2, 8, { 0 }}, + { 93, 1, 2, 4, { 0 }}, + { 94, 1, 3, 7, { 0 }}, + { 95, 1, 15, 7, { 0 }}, + { 96, 1, 0, 4, { 0 }}, + { 97, 1, 6, 7, { 0 }}, + { 98, 1, 3, 7, { 0 }}, + { 99, 1, 6, 7, { 0 }}, + { 100, 1, 3, 7, { 0 }}, + { 101, 1, 6, 7, { 0 }}, + { 102, 1, 3, 6, { 0 }}, + { 103, 1, 6, 7, { 0 }}, + { 104, 1, 3, 7, { 0 }}, + { 105, 1, 3, 3, { 0 }}, + { 106, 1, 3, 3, { 0 }}, + { 107, 1, 3, 7, { 0 }}, + { 108, 1, 3, 3, { 0 }}, + { 109, 1, 6, 9, { 0 }}, + { 110, 1, 6, 7, { 0 }}, + { 111, 1, 6, 7, { 0 }}, + { 112, 1, 6, 7, { 0 }}, + { 113, 1, 6, 7, { 0 }}, + { 114, 1, 6, 6, { 0 }}, + { 115, 1, 6, 7, { 0 }}, + { 116, 1, 3, 5, { 0 }}, + { 117, 1, 6, 7, { 0 }}, + { 118, 1, 6, 7, { 0 }}, + { 119, 1, 6, 9, { 0 }}, + { 120, 1, 6, 7, { 0 }}, + { 121, 1, 6, 7, { 0 }}, + { 122, 1, 6, 7, { 0 }}, + { 123, 1, 2, 5, { 0 }}, + { 124, 1, 1, 3, { 0 }}, + { 125, 1, 2, 5, { 0 }}, + { 126, 1, 8, 7, { 0 }}, + { 161, 1, 3, 3, { 0 }}, + { 162, 1, 3, 7, { 0 }}, + { 163, 1, 3, 7, { 0 }}, + { 8364, 1, 3, 7, { 0 }}, + { 165, 1, 3, 7, { 0 }}, + { 352, 0, 0, 0, { 0 }}, + { 167, 0, 0, 0, { 0 }}, + { 353, 0, 0, 0, { 0 }}, + { 169, 1, 3, 9, { 0 }}, + { 170, 0, 0, 0, { 0 }}, + { 171, 0, 0, 0, { 0 }}, + { 172, 1, 8, 7, { 0 }}, + { 174, 1, 3, 9, { 0 }}, + { 175, 1, 1, 7, { 0 }}, + { 176, 1, 0, 5, { 0 }}, + { 177, 1, 7, 7, { 0 }}, + { 178, 0, 0, 0, { 0 }}, + { 179, 0, 0, 0, { 0 }}, + { 381, 0, 0, 0, { 0 }}, + { 181, 1, 6, 7, { 0 }}, + { 182, 1, 3, 9, { 0 }}, + { 183, 1, 8, 3, { 0 }}, + { 382, 0, 0, 0, { 0 }}, + { 185, 0, 0, 0, { 0 }}, + { 186, 0, 0, 0, { 0 }}, + { 187, 0, 0, 0, { 0 }}, + { 338, 0, 0, 0, { 0 }}, + { 339, 0, 0, 0, { 0 }}, + { 376, 1, 1, 7, { 0 }}, + { 191, 1, 3, 7, { 0 }}, + { 192, 1, 0, 7, { 0 }}, + { 193, 1, 0, 7, { 0 }}, + { 194, 1, 0, 7, { 0 }}, + { 195, 1, 0, 7, { 0 }}, + { 196, 1, 1, 7, { 0 }}, + { 197, 1, 1, 7, { 0 }}, + { 198, 1, 3, 11, { 0 }}, + { 199, 1, 3, 7, { 0 }}, + { 200, 1, 0, 7, { 0 }}, + { 201, 1, 0, 7, { 0 }}, + { 202, 1, 0, 7, { 0 }}, + { 203, 1, 1, 7, { 0 }}, + { 204, 0, 0, 3, { 0 }}, + { 205, 1, 0, 3, { 0 }}, + { 206, 0, 0, 3, { 0 }}, + { 207, 0, 1, 3, { 0 }}, + { 208, 1, 3, 7, { 0 }}, + { 209, 1, 0, 7, { 0 }}, + { 210, 1, 0, 7, { 0 }}, + { 211, 1, 0, 7, { 0 }}, + { 212, 1, 0, 7, { 0 }}, + { 213, 1, 0, 7, { 0 }}, + { 214, 1, 1, 7, { 0 }}, + { 215, 1, 7, 7, { 0 }}, + { 216, 1, 2, 7, { 0 }}, + { 217, 1, 0, 7, { 0 }}, + { 218, 1, 0, 7, { 0 }}, + { 219, 1, 0, 7, { 0 }}, + { 220, 1, 1, 7, { 0 }}, + { 221, 1, 0, 7, { 0 }}, + { 222, 1, 3, 7, { 0 }}, + { 223, 1, 3, 7, { 0 }}, + { 224, 1, 3, 7, { 0 }}, + { 225, 1, 3, 7, { 0 }}, + { 226, 1, 3, 7, { 0 }}, + { 227, 1, 3, 7, { 0 }}, + { 228, 1, 4, 7, { 0 }}, + { 229, 1, 4, 7, { 0 }}, + { 230, 1, 6, 11, { 0 }}, + { 231, 1, 6, 7, { 0 }}, + { 232, 1, 3, 7, { 0 }}, + { 233, 1, 3, 7, { 0 }}, + { 234, 1, 3, 7, { 0 }}, + { 235, 1, 4, 7, { 0 }}, + { 236, 0, 3, 3, { 0 }}, + { 237, 1, 3, 3, { 0 }}, + { 238, 0, 3, 3, { 0 }}, + { 239, 0, 4, 3, { 0 }}, + { 240, 1, 3, 7, { 0 }}, + { 241, 1, 3, 7, { 0 }}, + { 242, 1, 3, 7, { 0 }}, + { 243, 1, 3, 7, { 0 }}, + { 244, 1, 3, 7, { 0 }}, + { 245, 1, 3, 7, { 0 }}, + { 246, 1, 4, 7, { 0 }}, + { 247, 1, 7, 7, { 0 }}, + { 248, 1, 5, 7, { 0 }}, + { 249, 1, 3, 7, { 0 }}, + { 250, 1, 3, 7, { 0 }}, + { 251, 1, 3, 7, { 0 }}, + { 252, 1, 4, 7, { 0 }}, + { 253, 1, 3, 7, { 0 }}, + { 254, 1, 6, 6, { 0 }}, + { 255, 1, 4, 7, { 0 }}, +}; + +// Style loading function: Terminal +static void GuiLoadStyleTerminal(void) +{ + // Load style properties provided + // NOTE: Default properties are propagated + for (int i = 0; i < TERMINAL_STYLE_PROPS_COUNT; i++) + { + GuiSetStyle(terminalStyleProps[i].controlId, terminalStyleProps[i].propertyId, terminalStyleProps[i].propertyValue); + } + + // Custom font loading + // NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function + int terminalFontDataSize = 0; + unsigned char *data = DecompressData(terminalFontData, TERMINAL_STYLE_FONT_ATLAS_COMP_SIZE, &terminalFontDataSize); + Image imFont = { data, 512, 256, 1, 2 }; + + Font font = { 0 }; + font.baseSize = 16; + font.glyphCount = 189; + + // Load texture from image + font.texture = LoadTextureFromImage(imFont); + UnloadImage(imFont); // Uncompressed image data can be unloaded from memory + + // Copy char recs data from global fontRecs + // NOTE: Required to avoid issues if trying to free font + font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle)); + memcpy(font.recs, terminalFontRecs, font.glyphCount*sizeof(Rectangle)); + + // Copy font char info data from global fontChars + // NOTE: Required to avoid issues if trying to free font + font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo)); + memcpy(font.glyphs, terminalFontGlyphs, font.glyphCount*sizeof(GlyphInfo)); + + GuiSetFont(font); + + // Setup a white rectangle on the font to be used on shapes drawing, + // it makes possible to draw shapes and text (full UI) in a single draw call + Rectangle fontWhiteRec = { 510, 254, 1, 1 }; + SetShapesTexture(font.texture, fontWhiteRec); + + //----------------------------------------------------------------- + + // TODO: Custom user style setup: Set specific properties here (if required) + // i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT +} diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/style_terminal.png b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/style_terminal.png new file mode 100644 index 0000000..0b88867 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/style_terminal.png differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/style_terminal.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/style_terminal.rgs new file mode 100644 index 0000000..6cea868 Binary files /dev/null and b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/style_terminal.rgs differ diff --git a/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/style_terminal.txt.rgs b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/style_terminal.txt.rgs new file mode 100644 index 0000000..fc996de --- /dev/null +++ b/zig-pkg/N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF/styles/terminal/style_terminal.txt.rgs @@ -0,0 +1,27 @@ +# +# rgs style text file (v4.0) - raygui style file generated using rGuiStyler +# +# Provided info: +# f fontGenSize charsetFileName fontFileName +# p Property description +# +# WARNING: This style uses a custom font, must be provided with style file +# +f 16 charset.txt Mecha.ttf +p 00 00 0x1c8d00ff DEFAULT_BORDER_COLOR_NORMAL +p 00 01 0x161313ff DEFAULT_BASE_COLOR_NORMAL +p 00 02 0x38f620ff DEFAULT_TEXT_COLOR_NORMAL +p 00 03 0xc3fbc6ff DEFAULT_BORDER_COLOR_FOCUSED +p 00 04 0x43bf2eff DEFAULT_BASE_COLOR_FOCUSED +p 00 05 0xdcfadcff DEFAULT_TEXT_COLOR_FOCUSED +p 00 06 0x1f5b19ff DEFAULT_BORDER_COLOR_PRESSED +p 00 07 0x43ff28ff DEFAULT_BASE_COLOR_PRESSED +p 00 08 0x1e6f15ff DEFAULT_TEXT_COLOR_PRESSED +p 00 09 0x223b22ff DEFAULT_BORDER_COLOR_DISABLED +p 00 10 0x182c18ff DEFAULT_BASE_COLOR_DISABLED +p 00 11 0x244125ff DEFAULT_TEXT_COLOR_DISABLED +p 00 16 0x00000010 TEXT_SIZE +p 00 17 0x00000000 TEXT_SPACING +p 00 18 0xe6fce3ff LINE_COLOR +p 00 19 0x0c1505ff BACKGROUND_COLOR +p 00 20 0x00000018 TEXT_LINE_SPACING diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/.circleci/config.yml b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/.circleci/config.yml new file mode 100644 index 0000000..aebb789 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/.circleci/config.yml @@ -0,0 +1,354 @@ +version: 2.1 + +orbs: + win: circleci/windows@5.0 + +executors: + ubuntu: + docker: + - image: buildpack-deps:focal + mac_arm64: + environment: + EMSDK_NOTTY: "1" + # Without this, any `brew install` command will result in self-update of + # brew itself which takes more than 4 minutes. + HOMEBREW_NO_AUTO_UPDATE: "1" + macos: + xcode: "13.4.1" + resource_class: macos.m1.medium.gen1 + linux_arm64: + machine: + image: ubuntu-2004:2023.07.1 + resource_class: arm.medium + +commands: + setup-macos: + steps: + - checkout + - run: + name: Install CMake + command: brew install cmake + test-macos: + steps: + - run: + name: test.sh + command: test/test.sh + - run: + name: test.py + command: | + source emsdk_env.sh + test/test.py + test-bazel-linux: + steps: + - checkout + - run: + name: install bazelisk + command: | + wget https://github.com/bazelbuild/bazelisk/releases/download/v1.25.0/bazelisk-linux-amd64 + chmod +x bazelisk-linux-amd64 + mv bazelisk-linux-amd64 /usr/local/bin/bazel + - run: test/test_bazel.sh + test-bazel-mac: + steps: + - checkout + - run: + name: install bazelisk + command: | + brew install bazelisk + - run: test/test_bazel_mac.sh + test-bazel-windows: + steps: + - checkout + - run: + name: Download Bazelisk + shell: powershell.exe + command: | + $ProgressPreference = "SilentlyContinue" + Invoke-WebRequest -Uri https://github.com/bazelbuild/bazelisk/releases/download/v1.10.1/bazelisk-windows-amd64.exe -OutFile ( New-Item -Path "temp\bazel\bazel.exe" -Force ) + - run: + name: Run Tests + shell: powershell.exe + command: | + $env:Path += ";C:\Python27amd64;$pwd\temp\bazel" + .\test\test_bazel.ps1 + +jobs: + flake8: + executor: ubuntu + steps: + - checkout + - run: + name: install pip + command: | + apt-get update -q + apt-get install -q -y python3-pip + - run: python3 -m pip install --upgrade pip + - run: python3 -m pip install flake8==7.1.1 + - run: python3 -m flake8 --show-source --statistics --extend-exclude=./scripts + + test-linux: + executor: ubuntu + environment: + EMSDK_NOTTY: "1" + # This is needed because the old gcc-7 that is installed on debian/bionic + # generates warnings about unused variables when doing C++17 + # destructuring: + # https://github.com/WebAssembly/binaryen/issues/4353 + CXXFLAGS: "-Wno-unused-variable" + # I don't know why circleci VMs pretent to have 36 cores but its a lie. + EMSDK_NUM_CORES: "4" + steps: + - checkout + - run: + name: Install debian packages + command: apt-get update -q && apt-get install -q -y cmake build-essential openjdk-8-jre-headless ksh zsh + - run: test/test_node_path.sh + - run: test/test.sh + - run: test/test_source_env.sh + - run: + name: test.py + command: | + source emsdk_env.sh + test/test.py + test-linux-arm64: + executor: linux_arm64 + steps: + - checkout + - run: + name: Install debian packages + command: sudo apt-get update -q && sudo apt-get install -q cmake build-essential openjdk-8-jre-headless + - run: test/test.sh + test-mac-arm64: + executor: mac_arm64 + steps: + - setup-macos + - test-macos + test-windows: + executor: + name: win/server-2019 + shell: bash.exe + environment: + # We need python installed before we can test anytyhing. + # There seems to be undocument copy of python installed here. Hopefully + # if this disappears there will be another way of getting a re-installed + # version. + PYTHON_BIN: "C:\\Python27amd64" + PYTHONUNBUFFERED: "1" + EMSDK_NOTTY: "1" + steps: + - checkout + - run: + name: Add python to bash path + command: echo "export PATH=\"$PATH:/c/python27amd64/\"" >> $BASH_ENV + - run: + name: Install latest + shell: cmd.exe + command: test\test.bat + - run: + name: test.py + command: | + source emsdk_env.sh + python test/test.py + + - run: + name: flagless (process/shell) test + shell: powershell.exe + command: | + test/test_activation.ps1 + + - run: + name: --permanent test + shell: powershell.exe + command: | + $env:PERMANENT_FLAG="--permanent" + test/test_activation.ps1 + + - run: + name: --system test + shell: powershell.exe + command: | + $env:SYSTEM_FLAG="--system" + test/test_activation.ps1 + + - run: + name: Process/Shell PATH preservation test + shell: powershell.exe + command: | + test/test_path_preservation.ps1 + + - run: + name: User PATH preservation test + shell: powershell.exe + command: | + $env:PERMANENT_FLAG="--permanent" + test/test_path_preservation.ps1 + + - run: + name: System PATH preservation test + shell: powershell.exe + command: | + $env:SYSTEM_FLAG="--system" + test/test_path_preservation.ps1 + + build-docker-image-x64: + executor: ubuntu + steps: + - checkout + - run: + name: install docker + command: | + apt-get update -q + apt-get install -q -y ca-certificates curl gnupg lsb-release + mkdir -p /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg + echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null + apt-get update -q + apt-get install -q -y docker-ce docker-ce-cli containerd.io docker-compose-plugin + - setup_remote_docker + # Build the `latest` version of EMSDK as docker image + - run: + name: build + command: make -C ./docker version=latest build + - run: + name: test + command: make -C ./docker version=latest test + + publish-docker-image-x64: + executor: ubuntu + steps: + - checkout + - run: + name: install docker + command: | + apt-get update -q + apt-get install -q -y ca-certificates curl gnupg lsb-release + mkdir -p /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg + echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null + apt-get update -q + apt-get install -q -y docker-ce docker-ce-cli containerd.io docker-compose-plugin + - setup_remote_docker + - run: + name: build + command: make -C ./docker version=${CIRCLE_TAG} build + - run: + name: test + command: make -C ./docker version=${CIRCLE_TAG} test + - run: + name: push image + command: | + docker login -u "$DOCKER_USER" -p "$DOCKER_PASS" + make -C ./docker version=${CIRCLE_TAG} alias=latest push + + publish-docker-image-arm64: + executor: linux_arm64 + steps: + - checkout + - run: + name: build + command: make -C ./docker version=${CIRCLE_TAG} build + - run: + name: test + command: make -C ./docker version=${CIRCLE_TAG} test + - run: + name: push image + command: | + docker login -u "$DOCKER_USER" -p "$DOCKER_PASS" + make -C ./docker version=${CIRCLE_TAG} alias=${CIRCLE_TAG}-arm64 only_alias=true push + + test-bazel7-linux: + executor: ubuntu + environment: + USE_BAZEL_VERSION: "7.x" + steps: + - test-bazel-linux + + test-bazel-latest-linux: + executor: ubuntu + steps: + - test-bazel-linux + + test-bazel7-mac-arm64: + executor: mac_arm64 + environment: + USE_BAZEL_VERSION: "7.x" + steps: + - test-bazel-mac + + test-bazel-latest-mac-arm64: + executor: mac_arm64 + steps: + - test-bazel-mac + + test-bazel7-windows: + executor: + name: win/server-2019 + shell: powershell.exe -ExecutionPolicy Bypass + environment: + PYTHONUNBUFFERED: "1" + EMSDK_NOTTY: "1" + # For some reason version resolution with "7.x" does not work on Windows, + # so we have to specify a full version. + USE_BAZEL_VERSION: "7.6.1" + steps: + - test-bazel-windows + + test-bazel-latest-windows: + executor: + name: win/server-2019 + shell: powershell.exe -ExecutionPolicy Bypass + environment: + PYTHONUNBUFFERED: "1" + EMSDK_NOTTY: "1" + steps: + - test-bazel-windows + +workflows: + flake8: + jobs: + - flake8 + test-linux: + jobs: + - test-linux + test-linux-arm64: + jobs: + - test-linux-arm64 + test-mac-arm64: + jobs: + - test-mac-arm64 + test-windows: + jobs: + - test-windows + build-docker-image: + jobs: + - build-docker-image-x64 + - publish-docker-image-x64: + filters: + branches: + ignore: /.*/ + tags: + only: /.*/ + - publish-docker-image-arm64: + filters: + branches: + ignore: /.*/ + tags: + only: /.*/ + test-bazel7-linux: + jobs: + - test-bazel7-linux + test-bazel-latest-linux: + jobs: + - test-bazel-latest-linux + test-bazel7-mac-arm64: + jobs: + - test-bazel7-mac-arm64 + test-bazel-latest-mac-arm64: + jobs: + - test-bazel-latest-mac-arm64 + test-bazel7-windows: + jobs: + - test-bazel7-windows + test-bazel-latest-windows: + jobs: + - test-bazel-latest-windows diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/.dockerignore b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/.dockerignore new file mode 100644 index 0000000..cf12f58 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/.dockerignore @@ -0,0 +1,21 @@ +# Ignore everything +* + +# Allow the entrypoint/test script inside the Docker container +!/docker/entrypoint.sh +!/docker/test_dockerimage.sh + +# Allow license file +!LICENSE + +# Allow necessary build files in top-level directory +!emscripten-releases-tags.json +!emsdk +!emsdk.py +!emsdk_env.sh +!emsdk_manifest.json + +# Allow files required to install legacy versions +!legacy-binaryen-tags.txt +!legacy-emscripten-tags.txt +!llvm-tags-64bit.txt diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/.flake8 b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/.flake8 new file mode 100644 index 0000000..ec94dda --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/.flake8 @@ -0,0 +1,24 @@ +[flake8] +extend-exclude = + ./.*, + ./binaryen, + ./clang, + ./crunch, + ./downloads, + ./emscripten, + ./fastcomp-clang, + ./fastcomp, + ./git, + ./gnu, + ./llvm, + ./node, + ./python, + ./releases, + ./temp, + ./upstream, + +# E111: Indentation is not a multiple of four +# E114: Indentation is not a multiple of four (comment) +extend-ignore = E111, E114 + +max-line-length = 326 diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/.github/stale.yml b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/.github/stale.yml new file mode 100644 index 0000000..1807a00 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/.github/stale.yml @@ -0,0 +1,18 @@ +# Number of days of inactivity before an issue becomes stale +daysUntilStale: 365 +# Number of days of inactivity before a stale issue is closed +daysUntilClose: 30 +# Issues with these labels will never be considered stale +exemptLabels: + - pinned + - security +# Label to use when marking an issue as stale +staleLabel: wontfix +# Comment to post when marking an issue as stale. Set to `false` to disable +markComment: > + This issue has been automatically marked as stale because there has been no + activity in the past year. It will be closed automatically if no further + activity occurs in the next 30 days. Feel free to re-open at any time if this + issue is still relevant. +# Comment to post when closing a stale issue. Set to `false` to disable +closeComment: false diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/.github/workflows/create-release.yml b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/.github/workflows/create-release.yml new file mode 100644 index 0000000..265a361 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/.github/workflows/create-release.yml @@ -0,0 +1,40 @@ +name: Create Release PR + +on: + workflow_dispatch: + inputs: + lto-sha: + required: true + type: string + nonlto-sha: + required: true + type: string + +jobs: + create-release-pr: + runs-on: ubuntu-latest + steps: + - name: Checkout repo + uses: actions/checkout@v4 + - name: Run create_release.py + run: python3 scripts/create_release.py -r ${{ inputs.lto-sha }} -a ${{ inputs.nonlto-sha }} --gh-action + - name: Create PR + id: cpr + uses: peter-evans/create-pull-request@v6 + with: + token: ${{ secrets.EMSCRIPTEN_BOT_TOKEN }} + title: Release ${{ env.RELEASE_VERSION }} + commit-message: | + Release ${{ env.RELEASE_VERSION }} + team-reviewers: release-reviewers + labels: release + body: | + With emscripten-releases revisions: + https://chromium.googlesource.com/emscripten-releases/+/${{ inputs.lto-sha }} (LTO) + https://chromium.googlesource.com/emscripten-releases/+/${{ inputs.nonlto-sha }} (asserts) + branch: release_${{ env.RELEASE_VERSION }} + delete-branch: true + - name: Enable auto-merge + run: gh pr merge --squash --auto "${{ steps.cpr.outputs.pull-request-number }}" + env: + GH_TOKEN: ${{ secrets.EMSCRIPTEN_BOT_TOKEN }} diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/.github/workflows/tag-release.yml b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/.github/workflows/tag-release.yml new file mode 100644 index 0000000..1475e87 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/.github/workflows/tag-release.yml @@ -0,0 +1,78 @@ +# When a release commit created by create-release.yml is landed, create the +# corresponding tag. +name: Create release tag + +on: + push: + paths: + - emscripten-releases-tags.json + - .github/workflows/tag-release.yml + branches: + - main + workflow_dispatch: + +jobs: + tag-release: + # Only activate for commits created by the create-release.yml workflow. + # The assumption is that when manual changes happen, we want to handle + # tagging manually too. + name: Check for release commit and create tag + # The author is emscripten-bot when triggered from Chromium CI, and github-actions when manually triggered. + if: ${{ github.event.head_commit.author.username == 'github-actions[bot]' || github.event.head_commit.author.username == 'emscripten-bot' }} + runs-on: ubuntu-latest + outputs: + is_release: ${{ steps.create-tag.outputs.result }} + steps: + - name: Match message and create tag + id: create-tag + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.EMSCRIPTEN_BOT_TOKEN }} + # A commit with the message of the form 'Release X.Y.Z' is expected + # to have been created by create_release.py and update the latest + # release in emscripten-releases-tags.json + script: | + const message = `${{ github.event.head_commit.message }}` + const regex = /Release ([0-9]+.[0-9]+.[0-9]+)/; + const match = message.match(regex); + let is_release = false; + if (match) { + const release = match[1]; + console.log(`Matched release ${release}`); + await github.rest.git.createRef({ + owner: context.repo.owner, + repo: context.repo.repo, + ref: `refs/tags/${release}`, + sha: context.sha + }); + is_release = true; + } else { + console.log(`Commit message: '${message}' did not match pattern`); + } + return is_release; + + dispatch-emscripten-tag: + name: Dispatch workflow to tag emscripten repo + runs-on: ubuntu-latest + needs: tag-release + if: ${{ needs.tag-release.outputs.is_release == 'true' }} + steps: + - name: Checkout repo + uses: actions/checkout@v4 + - name: Find emscripten revision + # get_emscripten_revision_info.py sets env.EMSCRIPTEN_HASH to the + # emscripten hash associated with the latest release in + # emscripten-releases-tags.json + run: python3 scripts/get_emscripten_revision_info.py + - name: Dispatch emscripten workflow + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.EMSCRIPTEN_BOT_TOKEN }} + script: | + await github.rest.actions.createWorkflowDispatch({ + owner: context.repo.owner, + repo: 'emscripten', + workflow_id: 'tag-release.yml', + ref: 'main', + inputs: { 'release-sha': '${{ env.EMSCRIPTEN_HASH }}' } + }); diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/.gitignore b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/.gitignore new file mode 100644 index 0000000..d181c30 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/.gitignore @@ -0,0 +1,35 @@ +*.pyc +__pycache__ + +# Support for --embedded configs +/.emscripten +/.emscripten.old +/.emscripten_cache +/.emscripten_cache__last_clear +/.emscripten_sanity +/.emscripten_sanity_wasm + +# Tags files that get generated at runtime +/emscripten-releases-tot.txt + +# File that get download/extracted by emsdk itself +/ccache +/gnu +/upstream +/fastcomp +/fastcomp-clang/ +/llvm +/ninja +/releases +/clang +/emscripten +/git +/node +/python +/temp +/downloads +/crunch +/java +/mingw +/spidermonkey +/binaryen diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/LICENSE b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/LICENSE new file mode 100644 index 0000000..1b8cf86 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2018 Emscripten authors (see AUTHORS in Emscripten) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +---------------------------------------------------------------------------- + +This is the MIT/Expat Licence. For more information see: + +1. http://www.opensource.org/licenses/mit-license.php + +2. http://en.wikipedia.org/wiki/MIT_License diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/README.md b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/README.md new file mode 100644 index 0000000..c98222e --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/README.md @@ -0,0 +1,245 @@ +Emscripten SDK +============== + +[![CircleCI](https://circleci.com/gh/emscripten-core/emsdk/tree/main.svg?style=svg)](https://circleci.com/gh/emscripten-core/emsdk/tree/main) + +The Emscripten toolchain is distributed as a standalone Emscripten SDK. The SDK +provides all the required tools, such as Clang, Python and Node.js along with an +update mechanism that enables migrating to newer Emscripten versions as they are +released. + +You can also set up Emscripten from source, without the pre-built SDK, see +"Installing from Source" below. + +## Downloads / How do I get the latest Emscripten build? + +To get started with Emscripten development, see the [Emscripten website +documentation](https://emscripten.org/docs/getting_started/downloads.html). + +That explains how to use the emsdk to get the latest binary builds (without +compiling from source). Basically, that amounts to + +``` +git pull +./emsdk install latest +./emsdk activate latest +``` + +## SDK Concepts + +The Emscripten SDK is effectively a small package manager for tools that are +used in conjunction with Emscripten. The following glossary highlights the +important concepts to help understanding the internals of the SDK: + +* **Tool**: The basic unit of software bundled in the SDK. A Tool has a name and + a version. For example, 'clang-3.2-32bit' is a Tool that contains the 32-bit + version of the Clang v3.2 compiler. +* **SDK**: A set of tools. For example, 'sdk-1.5.6-32bit' is an SDK consisting + of the tools `clang-3.2-32bit`, `node-0.10.17-32bit`, `python-2.7.5.1-32bit` + and `emscripten-1.5.6`. +* **Active Tool/SDK**: Emscripten SDK stores compiler configuration in a file + called `.emscripten` within the emsdk directory. This file points to paths + for Emscripten, Python, Clang and so on. If the configuration file points to a + Tool in a specific directory, then that tool is denoted as being + **active**. This mechanism allows switching between different installed + tools and SDKs. +* **emsdk**: This is the name of the manager script that Emscripten SDK is + accessed through. Most operations are of the form `emsdk `. + +## System Requirements + +Using the emsdk pre-compiled packages requires only the minimal set of +dependencies lists below. When building from source a wider set of tools +include git, cmake, and a host compiler are required. See: +https://emscripten.org/docs/building_from_source/toolchain_what_is_needed.html. + +### Mac OS X + +- For Intel-based Macs, macOS 10.13 or newer. For ARM64 M1 based Macs, macOS + 11.0 or newer. +- `java`: For running closure compiler (optional). After installing emscripten + via emsdk, typing 'emcc --help' should pop up a OS X dialog "Java is not + installed. To open java, you need a Java SE 6 runtime. Would you like to + install one now?" that will automatically download a Java runtime to the + system. + +### Linux + +- `python`: Version 3.9.2 or above. +- `java`: For running closure compiler (optional) + +The emsdk pre-compiled binaries are built against Ubuntu/Focal 20.04 LTS and +therefore depend on system libraries compatible with versions of `glibc` and +`libstdc++` present in that release. If your linux distribution is very old +you may not be able to use the pre-compiled binaries packages. + +### Windows + +- `java`: For running closure compiler (optional) + +## Uninstalling the Emscripten SDK + +To remove the Emscripten SDK, simply delete the emsdk directory. + +## SDK Maintenance + +The following tasks are common with the Emscripten SDK: + +### How do I work the emsdk utility? + +Run `emsdk help` or just `emsdk` to get information about all available commands. + +### How do I check the installation status and version of the SDK and tools? + +To get a list of all currently installed tools and SDK versions, and all +available tools, run `emsdk list`. +* A line will be printed for each tool/SDK that is available for installation. +* The text `INSTALLED` will be shown for each tool that has already been + installed. +* If a tool/SDK is currently active, a star * will be shown next to it. +* If a tool/SDK is currently active, but the terminal your are calling emsdk + from does not have `PATH` and environment set up to utilize that tool, a star + in parentheses (\*) will be shown next to it. Run `emsdk_env.bat` (Windows) or + `source ./emsdk_env.sh` (Linux and OS X) to set up the environment for the + calling terminal. + +### How do I install a tool/SDK version? + +Run the command `emsdk install ` to download and install a new +tool or an SDK version. + +### How do I remove a tool or an SDK? + +Run the command `emsdk uninstall ` to delete the given tool or +SDK from the local hard drive completely. + +### How do I check for updates to the Emscripten SDK? + +`emsdk update` will fetch package information for all the new tools and +SDK versions. After that, run `emsdk install ` to install a new +version. + +### How do I install an old Emscripten compiler version? + +Emsdk contains a history of old compiler versions that you can use to maintain +your migration path. Type `emsdk list --old` to get a list of archived tool and +SDK versions, and `emsdk install ` to install it. + +### I want to build from source! + +Some Emsdk Tool and SDK targets refer to packages that are precompiled, and +no compilation is needed when installing them. Other Emsdk Tools and SDK +targets come "from source", meaning that they will fetch the source repositories +using git, and compile the package on demand. + +When you run `emsdk list`, it will group the Tools and SDKs under these two +categories. + +To obtain and build latest wasm SDK from source, run + +``` +emsdk install sdk-main-64bit +emsdk activate sdk-main-64bit +``` + +You can use this target for example to bootstrap developing patches to LLVM, +Binaryen or Emscripten. (After initial installation, use `git remote add` +in the cloned tree to add your own fork to push changes as patches) + +If you only intend to contribute to Emscripten repository, and not to LLVM +or Binaryen, you can also use precompiled versions of them, and only git +clone the Emscripten repository. For more details, see + +https://emscripten.org/docs/contributing/developers_guide.html?highlight=developer#setting-up + +### When working on git branches compiled from source, how do I update to a newer compiler version? + +Unlike tags and precompiled versions, a few of the SDK packages are based on +"moving" git branches and compiled from source (e.g. sdk-main, +sdk-main, emscripten-main, binaryen-main). Because of that, the +compiled versions will eventually go out of date as new commits are introduced +to the development branches. To update an old compiled installation of one of +this branches, simply reissue the "emsdk install" command on that tool/SDK. This +will `git pull` the latest changes to the branch and issue an incremental +recompilation of the target in question. This way you can keep calling `emsdk +install` to keep an Emscripten installation up to date with a given git branch. + +Note though that if the previously compiled branch is very old, sometimes CMake +gets confused and is unable to properly rebuild a project. This has happened in +the past e.g. when LLVM migrated to requiring a newer CMake version. In cases of +any odd compilation errors, it is advised to try deleting the intermediate build +directory to clear the build (e.g. "emsdk/clang/fastcomp/build_xxx/") before +reissuing `emsdk install`. + +### How do I change the currently active SDK version? + +You can toggle between different tools and SDK versions by running `emsdk +activate `. Activating a tool will set up `~/.emscripten` to +point to that particular tool. On Windows, you can pass the option `--permanent` to +the `activate` command to register the environment permanently for the current user. Use `--system` to do this for all users. + +### How do I track the latest Emscripten development with the SDK? + +A common and supported use case of the Emscripten SDK is to enable the workflow +where you directly interact with the github repositories. This allows you to +obtain new features and latest fixes immediately as they are pushed to the +github repository, without having to wait for release to be tagged. You do not +need a github account or a fork of Emscripten to do this. To switch to using the +latest git development branch `main`, run the following: + + emsdk install git-1.9.4 # Install git. Skip if the system already has it. + emsdk install sdk-main-64bit # Clone+pull the latest emscripten-core/emscripten/main. + emsdk activate sdk-main-64bit # Set the main SDK as the currently active one. + +### How do I use my own Emscripten github fork with the SDK? + +It is also possible to use your own fork of the Emscripten repository via the +SDK. This is achieved with standard git machinery, so if you are already +acquainted with working on multiple remotes in a git clone, these steps should +be familiar to you. This is useful in the case when you want to make your own +modifications to the Emscripten toolchain, but still keep using the SDK +environment and tools. To set up your own fork as the currently active +Emscripten toolchain, first install the `sdk-main` SDK like shown in the +previous section, and then run the following commands in the emsdk directory: + + cd emscripten/main + # Add a git remote link to your own repository. + git remote add myremote https://github.com/mygituseraccount/emscripten.git + # Obtain the changes in your link. + git fetch myremote + # Switch the emscripten-main tool to use your fork. + git checkout -b mymain --track myremote/main + +In this way you can utilize the Emscripten SDK tools while using your own git +fork. You can switch back and forth between remotes via the `git checkout` +command as usual. + +### How do I use Emscripten SDK with a custom version of python, java, node.js or some other tool? + +The provided Emscripten SDK targets are metapackages that refer to a specific +set of tools that have been tested to work together. For example, +`sdk-1.35.0-64bit` is an alias to the individual packages `clang-e1.35.0-64bit`, +`node-4.1.1-64bit`, `python-2.7.5.3-64bit` and `emscripten-1.35.0`. This means +that if you install this version of the SDK, both python and node.js will be +installed inside emsdk as well. If you want to use your own/system python or +node.js instead, you can opt to install emsdk by specifying the individual set +of packages that you want to use. For example, `emsdk install +clang-e1.35.0-64bit emscripten-1.35.0` will only install the Emscripten +LLVM/Clang compiler and the Emscripten frontend without supplying python and +node.js. + +### My installation fails with "fatal error: ld terminated with signal 9 [Killed]"? + +This may happen if the system runs out of memory. If you are attempting to build +one of the packages from source and are running in a virtual OS or may have +relatively little RAM and disk space available, then the build might fail. Try +feeding your computer more memory. Another thing to try is to force emsdk +install to build in a singlethreaded mode, which will require less RAM +simultaneously. To do this, pass the `-j1` flag to the `emsdk install` command. + +### How do I run Emscripten on 32-bit systems or non-x86-64 systems? + +Emscripten SDK releases are no longer packaged or maintained for 32-bit systems. +If you want to run Emscripten on a 32-bit system, you can try manually building +the compiler. Follow the steps in the above section "Building an Emscripten tag +or branch from source" to get started. diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/SECURITY.md b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/SECURITY.md new file mode 100644 index 0000000..4617728 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/SECURITY.md @@ -0,0 +1,16 @@ +# Security Policy + +If you have discovered a security vulnerability in this project, please report it +privately. **Do not disclose it as a public issue.** This gives us time to work with you +to fix the issue before public exposure, reducing the chance that the exploit will be +used before a patch is released. + +Please submit the report as a [security bug on the Chromium tracker](https://bugs.chromium.org/p/chromium/issues/entry?template=Security%20Bug). + +Please provide the following information in your report: + +- A description of the vulnerability and its impact +- How to reproduce the issue +- Make it clear that it's an Emscripten SDK bug. + +We ask that you give us 90 days to work on a fix before public exposure. diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/.bazelrc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/.bazelrc new file mode 100644 index 0000000..fbd75a7 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/.bazelrc @@ -0,0 +1 @@ +build --incompatible_enable_cc_toolchain_resolution diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/.gitignore b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/.gitignore new file mode 100644 index 0000000..a6ef824 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/.gitignore @@ -0,0 +1 @@ +/bazel-* diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/BUILD b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/BUILD new file mode 100644 index 0000000..387dc66 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/BUILD @@ -0,0 +1,19 @@ +package(default_visibility = ["//visibility:public"]) + +filegroup(name = "empty") + +platform( + name = "platform_wasm", + constraint_values = [ + "@platforms//cpu:wasm32", + "@platforms//os:emscripten", + ], +) + +platform( + name = "platform_wasi", + constraint_values = [ + "@platforms//cpu:wasm32", + "@platforms//os:wasi", + ], +) diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/MODULE.bazel b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/MODULE.bazel new file mode 100644 index 0000000..5240178 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/MODULE.bazel @@ -0,0 +1,79 @@ +module( + name = "emsdk", + version = "4.0.9", +) + +bazel_dep(name = "platforms", version = "0.0.11") +bazel_dep(name = "bazel_skylib", version = "1.7.1") +bazel_dep(name = "aspect_rules_js", version = "1.42.0") +bazel_dep(name = "rules_nodejs", version = "6.3.2") +bazel_dep(name = "rules_cc", version = "0.1.1") +bazel_dep(name = "rules_python", version = "1.3.0") + +python = use_extension("@rules_python//python/extensions:python.bzl", "python") +python.toolchain( + python_version = "3.13", +) + +node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node") +node.toolchain(node_version = "20.18.0") +use_repo(node, "nodejs") + +emscripten_deps = use_extension( + "//:emscripten_deps.bzl", + "emscripten_deps", +) +use_repo(emscripten_deps, "emscripten_bin_linux") +use_repo(emscripten_deps, "emscripten_bin_linux_arm64") +use_repo(emscripten_deps, "emscripten_bin_mac") +use_repo(emscripten_deps, "emscripten_bin_mac_arm64") +use_repo(emscripten_deps, "emscripten_bin_win") + +npm = use_extension( + "@aspect_rules_js//npm:extensions.bzl", + "npm", +) +npm.npm_translate_lock( + name = "emscripten_npm_linux", + data = ["@emscripten_bin_linux//:emscripten/package.json"], + npm_package_lock = "@emscripten_bin_linux//:emscripten/package-lock.json", +) +npm.npm_translate_lock( + name = "emscripten_npm_linux_arm64", + data = ["@emscripten_bin_linux_arm64//:emscripten/package.json"], + npm_package_lock = "@emscripten_bin_linux_arm64//:emscripten/package-lock.json", +) +npm.npm_translate_lock( + name = "emscripten_npm_mac", + data = ["@emscripten_bin_mac//:emscripten/package.json"], + npm_package_lock = "@emscripten_bin_mac//:emscripten/package-lock.json", +) +npm.npm_translate_lock( + name = "emscripten_npm_mac_arm64", + data = ["@emscripten_bin_mac_arm64//:emscripten/package.json"], + npm_package_lock = "@emscripten_bin_mac_arm64//:emscripten/package-lock.json", +) +npm.npm_translate_lock( + name = "emscripten_npm_win", + data = ["@emscripten_bin_win//:emscripten/package.json"], + npm_package_lock = "@emscripten_bin_win//:emscripten/package-lock.json", +) +use_repo( + npm, + "emscripten_npm_linux", + "emscripten_npm_linux_arm64", + "emscripten_npm_mac", + "emscripten_npm_mac_arm64", + "emscripten_npm_win", +) + +emscripten_cache = use_extension("//:emscripten_cache.bzl", "emscripten_cache") +use_repo(emscripten_cache, "emscripten_cache") + +register_toolchains( + "//emscripten_toolchain:cc-toolchain-wasm-emscripten_linux", + "//emscripten_toolchain:cc-toolchain-wasm-emscripten_linux_arm64", + "//emscripten_toolchain:cc-toolchain-wasm-emscripten_mac", + "//emscripten_toolchain:cc-toolchain-wasm-emscripten_mac_arm64", + "//emscripten_toolchain:cc-toolchain-wasm-emscripten_win", +) diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/MODULE.bazel.lock b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/MODULE.bazel.lock new file mode 100644 index 0000000..69ca244 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/MODULE.bazel.lock @@ -0,0 +1,3696 @@ +{ + "lockFileVersion": 18, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", + "https://bcr.bazel.build/modules/aspect_bazel_lib/1.42.3/MODULE.bazel": "e4529e12d8cd5b828e2b5960d07d3ec032541740d419d7d5b859cabbf5b056f9", + "https://bcr.bazel.build/modules/aspect_bazel_lib/1.42.3/source.json": "80cb66069ad626e0921555cd2bf278286fd7763fae2450e564e351792e8303f4", + "https://bcr.bazel.build/modules/aspect_rules_js/1.42.0/MODULE.bazel": "f19e6b4a16f77f8cf3728eac1f60dbfd8e043517fd4f4dbf17a75a6c50936d62", + "https://bcr.bazel.build/modules/aspect_rules_js/1.42.0/source.json": "abbb3eac3b6af76b8ce230a9a901c6d08d93f4f5ffd55314bf630827dddee57e", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/source.json": "3e8379efaaef53ce35b7b8ba419df829315a880cb0a030e5bb45c96d6d5ecb5f", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/source.json": "f121b43eeefc7c29efbd51b83d08631e2347297c95aac9764a701f2a6a2bb953", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", + "https://bcr.bazel.build/modules/platforms/0.0.11/source.json": "f7e188b79ebedebfe75e9e1d098b8845226c7992b307e28e1496f23112e8fc29", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", + "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/source.json": "d61627377bd7dd1da4652063e368d9366fc9a73920bfa396798ad92172cf645c", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.6.1/MODULE.bazel": "f4808e2ab5b0197f094cabce9f4b006a27766beb6a9975931da07099560ca9c2", + "https://bcr.bazel.build/modules/rules_java/8.6.1/source.json": "f18d9ad3c4c54945bf422ad584fa6c5ca5b3116ff55a5b1bc77e5c1210be5960", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_nodejs/5.8.2/MODULE.bazel": "6bc03c8f37f69401b888023bf511cb6ee4781433b0cb56236b2e55a21e3a026a", + "https://bcr.bazel.build/modules/rules_nodejs/6.3.2/MODULE.bazel": "42e8d5254b6135f890fecca7c8d7f95a7d27a45f8275b276f66ec337767530ef", + "https://bcr.bazel.build/modules/rules_nodejs/6.3.2/source.json": "80e0a68eb81772f1631f8b69014884eebc2474b3b3025fd19a5240ae4f76f9c9", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/source.json": "bd82e5d7b9ce2d31e380dd9f50c111d678c3bdaca190cb76b0e1c71b05e1ba8a", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", + "https://bcr.bazel.build/modules/rules_python/1.3.0/MODULE.bazel": "8361d57eafb67c09b75bf4bbe6be360e1b8f4f18118ab48037f2bd50aa2ccb13", + "https://bcr.bazel.build/modules/rules_python/1.3.0/source.json": "25932f917cd279c7baefa6cb1d3fa8750a7a29de522024449b19af6eab51f4a0", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/source.json": "7f27af3c28037d9701487c4744b5448d26537cc66cdef0d8df7ae85411f8de95", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.5.4/MODULE.bazel": "6569966df04610b8520957cb8e97cf2e9faac2c0309657c537ab51c16c18a2a4", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/MODULE.bazel": "af322bc08976524477c79d1e45e241b6efbeb918c497e8840b8ab116802dda79", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/source.json": "2be409ac3c7601245958cd4fcdff4288be79ed23bd690b4b951f500d54ee6e7d", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "//:emscripten_cache.bzl%emscripten_cache": { + "general": { + "bzlTransitiveDigest": "uqDvXmpTNqW4+ie/Fk+xC3TrFrKvL+9hNtoP51Kt2oo=", + "usagesDigest": "hMVKvInxunfDgmxewLpCIKhgZsrX3FDbi457LYnniZ8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "emscripten_cache": { + "repoRuleId": "@@//:emscripten_cache.bzl%_emscripten_cache_repository", + "attributes": { + "configuration": [], + "targets": [] + } + } + }, + "recordedRepoMappingEntries": [] + } + }, + "//:emscripten_deps.bzl%emscripten_deps": { + "general": { + "bzlTransitiveDigest": "h0wQ3PSRx/Q9n+izTifYO8L728OTd9B5YbLOWcobVYE=", + "usagesDigest": "/x8y7Sw52S7o089fbMUUat1GlyVBrfKFc31+LteokYI=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "emscripten_bin_linux": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang\",\n \"bin/clang++\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang\",\n \"bin/llvm-ar\",\n \"bin/llvm-dwarfdump\",\n \"bin/llvm-nm\",\n \"bin/llvm-objcopy\",\n \"bin/wasm-ctor-eval\",\n \"bin/wasm-emscripten-finalize\",\n \"bin/wasm-ld\",\n \"bin/wasm-metadce\",\n \"bin/wasm-opt\",\n \"bin/wasm-split\",\n \"bin/wasm2js\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n", + "sha256": "27fc220a9ad98d323cad73531ff563e9838c9e1205f51ee2a5632bb4266a35d2", + "strip_prefix": "install", + "type": "tar.xz", + "url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/linux/14767574a5c37ff9526a253a65ddbe0811cb3667/wasm-binaries.tar.xz" + } + }, + "emscripten_bin_linux_arm64": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang\",\n \"bin/clang++\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang\",\n \"bin/llvm-ar\",\n \"bin/llvm-dwarfdump\",\n \"bin/llvm-nm\",\n \"bin/llvm-objcopy\",\n \"bin/wasm-ctor-eval\",\n \"bin/wasm-emscripten-finalize\",\n \"bin/wasm-ld\",\n \"bin/wasm-metadce\",\n \"bin/wasm-opt\",\n \"bin/wasm-split\",\n \"bin/wasm2js\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n", + "sha256": "2d03f8eb3f81dd94821658eefbb442a92b0b7601f4cfb08590590fd7bc467ef8", + "strip_prefix": "install", + "type": "tar.xz", + "url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/linux/14767574a5c37ff9526a253a65ddbe0811cb3667/wasm-binaries-arm64.tar.xz" + } + }, + "emscripten_bin_mac": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang\",\n \"bin/clang++\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang\",\n \"bin/llvm-ar\",\n \"bin/llvm-dwarfdump\",\n \"bin/llvm-nm\",\n \"bin/llvm-objcopy\",\n \"bin/wasm-ctor-eval\",\n \"bin/wasm-emscripten-finalize\",\n \"bin/wasm-ld\",\n \"bin/wasm-metadce\",\n \"bin/wasm-opt\",\n \"bin/wasm-split\",\n \"bin/wasm2js\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n", + "sha256": "c06048915595726fc2e2da6a8db3134581a6287645fb818802a9734ff9785e77", + "strip_prefix": "install", + "type": "tar.xz", + "url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/mac/14767574a5c37ff9526a253a65ddbe0811cb3667/wasm-binaries.tar.xz" + } + }, + "emscripten_bin_mac_arm64": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang\",\n \"bin/clang++\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang\",\n \"bin/llvm-ar\",\n \"bin/llvm-dwarfdump\",\n \"bin/llvm-nm\",\n \"bin/llvm-objcopy\",\n \"bin/wasm-ctor-eval\",\n \"bin/wasm-emscripten-finalize\",\n \"bin/wasm-ld\",\n \"bin/wasm-metadce\",\n \"bin/wasm-opt\",\n \"bin/wasm-split\",\n \"bin/wasm2js\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n", + "sha256": "35d743453d0f91857b09f00d721037bb46753aaeae373bd7f64746338db11770", + "strip_prefix": "install", + "type": "tar.xz", + "url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/mac/14767574a5c37ff9526a253a65ddbe0811cb3667/wasm-binaries-arm64.tar.xz" + } + }, + "emscripten_bin_win": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang.exe\",\n \"bin/clang++.exe\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang.exe\",\n \"bin/llvm-ar.exe\",\n \"bin/llvm-dwarfdump.exe\",\n \"bin/llvm-nm.exe\",\n \"bin/llvm-objcopy.exe\",\n \"bin/wasm-ctor-eval.exe\",\n \"bin/wasm-emscripten-finalize.exe\",\n \"bin/wasm-ld.exe\",\n \"bin/wasm-metadce.exe\",\n \"bin/wasm-opt.exe\",\n \"bin/wasm-split.exe\",\n \"bin/wasm2js.exe\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar.exe\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n", + "sha256": "3b576e825b26426bb72854ed98752df3fcb58cc3ab1dc116566e328b79a8abb3", + "strip_prefix": "install", + "type": "zip", + "url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/win/14767574a5c37ff9526a253a65ddbe0811cb3667/wasm-binaries.zip" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "", + "bazel_tools", + "bazel_tools" + ], + [ + "bazel_tools", + "rules_cc", + "rules_cc+" + ] + ] + } + }, + "@@aspect_bazel_lib+//lib:extensions.bzl%toolchains": { + "general": { + "bzlTransitiveDigest": "nrCBrZBQH3Dq30TXMpPMV6lWpEDozX0S0kCia4Lrpj0=", + "usagesDigest": "1c7PNX163TGNqWzfejRnWpH/hiT4/GRG0kYxuez0Uz0=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "copy_directory_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "copy_directory_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "copy_directory_freebsd_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo", + "attributes": { + "platform": "freebsd_amd64" + } + }, + "copy_directory_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "copy_directory_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "copy_directory_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "copy_directory_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_toolchains_repo", + "attributes": { + "user_repository_name": "copy_directory" + } + }, + "copy_to_directory_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "copy_to_directory_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "copy_to_directory_freebsd_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo", + "attributes": { + "platform": "freebsd_amd64" + } + }, + "copy_to_directory_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "copy_to_directory_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "copy_to_directory_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "copy_to_directory_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_toolchains_repo", + "attributes": { + "user_repository_name": "copy_to_directory" + } + }, + "jq_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo", + "attributes": { + "platform": "darwin_amd64", + "version": "1.6" + } + }, + "jq_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo", + "attributes": { + "platform": "darwin_arm64", + "version": "1.6" + } + }, + "jq_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo", + "attributes": { + "platform": "linux_amd64", + "version": "1.6" + } + }, + "jq_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo", + "attributes": { + "platform": "windows_amd64", + "version": "1.6" + } + }, + "jq": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_host_alias_repo", + "attributes": {} + }, + "jq_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_toolchains_repo", + "attributes": { + "user_repository_name": "jq" + } + }, + "yq_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "darwin_amd64", + "version": "4.25.2" + } + }, + "yq_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "darwin_arm64", + "version": "4.25.2" + } + }, + "yq_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "linux_amd64", + "version": "4.25.2" + } + }, + "yq_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "linux_arm64", + "version": "4.25.2" + } + }, + "yq_linux_s390x": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "linux_s390x", + "version": "4.25.2" + } + }, + "yq_linux_ppc64le": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "linux_ppc64le", + "version": "4.25.2" + } + }, + "yq_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "windows_amd64", + "version": "4.25.2" + } + }, + "yq": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_host_alias_repo", + "attributes": {} + }, + "yq_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_toolchains_repo", + "attributes": { + "user_repository_name": "yq" + } + }, + "coreutils_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_platform_repo", + "attributes": { + "platform": "darwin_amd64", + "version": "0.0.16" + } + }, + "coreutils_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_platform_repo", + "attributes": { + "platform": "darwin_arm64", + "version": "0.0.16" + } + }, + "coreutils_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_platform_repo", + "attributes": { + "platform": "linux_amd64", + "version": "0.0.16" + } + }, + "coreutils_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_platform_repo", + "attributes": { + "platform": "linux_arm64", + "version": "0.0.16" + } + }, + "coreutils_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_platform_repo", + "attributes": { + "platform": "windows_amd64", + "version": "0.0.16" + } + }, + "coreutils_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_toolchains_repo", + "attributes": { + "user_repository_name": "coreutils" + } + }, + "bsd_tar_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "bsd_tar_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "bsd_tar_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "bsd_tar_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "bsd_tar_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "bsd_tar_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%tar_toolchains_repo", + "attributes": { + "user_repository_name": "bsd_tar" + } + }, + "expand_template_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "expand_template_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "expand_template_freebsd_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo", + "attributes": { + "platform": "freebsd_amd64" + } + }, + "expand_template_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "expand_template_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "expand_template_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "expand_template_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_toolchains_repo", + "attributes": { + "user_repository_name": "expand_template" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_bazel_lib+", + "aspect_bazel_lib", + "aspect_bazel_lib+" + ], + [ + "aspect_bazel_lib+", + "bazel_skylib", + "bazel_skylib+" + ], + [ + "aspect_bazel_lib+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@aspect_rules_js+//npm:extensions.bzl%pnpm": { + "general": { + "bzlTransitiveDigest": "poAa/2uyrVSr9Hel1HD6GfFwqId27yXfePnG+3Dmt90=", + "usagesDigest": "yxkJioaKxOYkZAdkGoq2Cm79s4pW36Xwx7a8awQOU2E=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "pnpm": { + "repoRuleId": "@@aspect_rules_js+//npm/private:npm_import.bzl%npm_import_rule", + "attributes": { + "package": "pnpm", + "version": "8.6.7", + "root_package": "", + "link_workspace": "", + "link_packages": {}, + "integrity": "sha512-vRIWpD/L4phf9Bk2o/O2TDR8fFoJnpYrp2TKqTIZF/qZ2/rgL3qKXzHofHgbXsinwMoSEigz28sqk3pQ+yMEQQ==", + "url": "", + "commit": "", + "patch_args": [ + "-p0" + ], + "patches": [], + "custom_postinstall": "", + "npm_auth": "", + "npm_auth_basic": "", + "npm_auth_username": "", + "npm_auth_password": "", + "lifecycle_hooks": [], + "extra_build_content": "load(\"@aspect_rules_js//js:defs.bzl\", \"js_binary\")\njs_binary(name = \"pnpm\", data = glob([\"package/**\"]), entry_point = \"package/dist/pnpm.cjs\", visibility = [\"//visibility:public\"])", + "generate_bzl_library_targets": false, + "extract_full_archive": true + } + }, + "pnpm__links": { + "repoRuleId": "@@aspect_rules_js+//npm/private:npm_import.bzl%npm_import_links", + "attributes": { + "package": "pnpm", + "version": "8.6.7", + "dev": false, + "root_package": "", + "link_packages": {}, + "deps": {}, + "transitive_closure": {}, + "lifecycle_build_target": false, + "lifecycle_hooks_env": [], + "lifecycle_hooks_execution_requirements": [ + "no-sandbox" + ], + "lifecycle_hooks_use_default_shell_env": false, + "bins": {}, + "package_visibility": [ + "//visibility:public" + ], + "replace_package": "" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_bazel_lib+", + "bazel_skylib", + "bazel_skylib+" + ], + [ + "aspect_bazel_lib+", + "bazel_tools", + "bazel_tools" + ], + [ + "aspect_rules_js+", + "aspect_bazel_lib", + "aspect_bazel_lib+" + ], + [ + "aspect_rules_js+", + "bazel_features", + "bazel_features+" + ], + [ + "aspect_rules_js+", + "bazel_skylib", + "bazel_skylib+" + ], + [ + "aspect_rules_js+", + "bazel_tools", + "bazel_tools" + ], + [ + "bazel_features+", + "bazel_features_globals", + "bazel_features++version_extension+bazel_features_globals" + ], + [ + "bazel_features+", + "bazel_features_version", + "bazel_features++version_extension+bazel_features_version" + ], + [ + "bazel_features+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@pybind11_bazel+//:python_configure.bzl%extension": { + "general": { + "bzlTransitiveDigest": "d4N/SZrl3ONcmzE98rcV0Fsro0iUbjNQFTIiLiGuH+k=", + "usagesDigest": "fycyB39YnXIJkfWCIXLUKJMZzANcuLy9ZE73hRucjFk=", + "recordedFileInputs": { + "@@pybind11_bazel+//MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e" + }, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "local_config_python": { + "repoRuleId": "@@pybind11_bazel+//:python_configure.bzl%python_configure", + "attributes": {} + }, + "pybind11": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "build_file": "@@pybind11_bazel+//:pybind11.BUILD", + "strip_prefix": "pybind11-2.11.1", + "urls": [ + "https://github.com/pybind/pybind11/archive/v2.11.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "pybind11_bazel+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_fuzzing+//fuzzing/private:extensions.bzl%non_module_dependencies": { + "general": { + "bzlTransitiveDigest": "mGiTB79hRNjmeDTQdzkpCHyzXhErMbufeAmySBt7s5s=", + "usagesDigest": "wy6ISK6UOcBEjj/mvJ/S3WeXoO67X+1llb9yPyFtPgc=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "platforms": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz", + "https://github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz" + ], + "sha256": "8150406605389ececb6da07cbcb509d5637a3ab9a24bc69b1101531367d89d74" + } + }, + "rules_python": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "d70cd72a7a4880f0000a6346253414825c19cdd40a28289bdf67b8e6480edff8", + "strip_prefix": "rules_python-0.28.0", + "url": "https://github.com/bazelbuild/rules_python/releases/download/0.28.0/rules_python-0.28.0.tar.gz" + } + }, + "bazel_skylib": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd55a062e763b9349921f0f5db8c3933288dc8ba4f76dd9416aac68acee3cb94", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz", + "https://github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz" + ] + } + }, + "com_google_absl": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "urls": [ + "https://github.com/abseil/abseil-cpp/archive/refs/tags/20240116.1.zip" + ], + "strip_prefix": "abseil-cpp-20240116.1", + "integrity": "sha256-7capMWOvWyoYbUaHF/b+I2U6XLMaHmky8KugWvfXYuk=" + } + }, + "rules_fuzzing_oss_fuzz": { + "repoRuleId": "@@rules_fuzzing+//fuzzing/private/oss_fuzz:repository.bzl%oss_fuzz_repository", + "attributes": {} + }, + "honggfuzz": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "build_file": "@@rules_fuzzing+//:honggfuzz.BUILD", + "sha256": "6b18ba13bc1f36b7b950c72d80f19ea67fbadc0ac0bb297ec89ad91f2eaa423e", + "url": "https://github.com/google/honggfuzz/archive/2.5.zip", + "strip_prefix": "honggfuzz-2.5" + } + }, + "rules_fuzzing_jazzer": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_jar", + "attributes": { + "sha256": "ee6feb569d88962d59cb59e8a31eb9d007c82683f3ebc64955fd5b96f277eec2", + "url": "https://repo1.maven.org/maven2/com/code-intelligence/jazzer/0.20.1/jazzer-0.20.1.jar" + } + }, + "rules_fuzzing_jazzer_api": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_jar", + "attributes": { + "sha256": "f5a60242bc408f7fa20fccf10d6c5c5ea1fcb3c6f44642fec5af88373ae7aa1b", + "url": "https://repo1.maven.org/maven2/com/code-intelligence/jazzer-api/0.20.1/jazzer-api-0.20.1.jar" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_fuzzing+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_java+//java:rules_java_deps.bzl%compatibility_proxy": { + "general": { + "bzlTransitiveDigest": "84xJEZ1jnXXwo8BXMprvBm++rRt4jsTu9liBxz0ivps=", + "usagesDigest": "jTQDdLDxsS43zuRmg1faAjIEPWdLAbDAowI1pInQSoo=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "compatibility_proxy": { + "repoRuleId": "@@rules_java+//java:rules_java_deps.bzl%_compatibility_proxy_repo_rule", + "attributes": {} + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_java+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "sFhcgPbDQehmbD1EOXzX4H1q/CD5df8zwG4kp4jbvr8=", + "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "com_github_jetbrains_kotlin_git": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository", + "attributes": { + "urls": [ + "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip" + ], + "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88" + } + }, + "com_github_jetbrains_kotlin": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository", + "attributes": { + "git_repository_name": "com_github_jetbrains_kotlin_git", + "compiler_version": "1.9.23" + } + }, + "com_github_google_ksp": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository", + "attributes": { + "urls": [ + "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip" + ], + "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d", + "strip_version": "1.9.23-1.0.20" + } + }, + "com_github_pinterest_ktlint": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985", + "urls": [ + "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint" + ], + "executable": true + } + }, + "rules_android": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + "strip_prefix": "rules_android-0.1.1", + "urls": [ + "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_kotlin+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_nodejs+//nodejs:extensions.bzl%node": { + "general": { + "bzlTransitiveDigest": "rphcryfYrOY/P3emfTskC/GY5YuHcwMl2B2ncjaM8lY=", + "usagesDigest": "02fIHVSGNmq3/4pf3KaxTES2ZYYjuW75/2q5dmj9+p0=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "nodejs_linux_amd64": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.18.0", + "include_headers": false, + "platform": "linux_amd64" + } + }, + "nodejs_linux_arm64": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.18.0", + "include_headers": false, + "platform": "linux_arm64" + } + }, + "nodejs_linux_s390x": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.18.0", + "include_headers": false, + "platform": "linux_s390x" + } + }, + "nodejs_linux_ppc64le": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.18.0", + "include_headers": false, + "platform": "linux_ppc64le" + } + }, + "nodejs_darwin_amd64": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.18.0", + "include_headers": false, + "platform": "darwin_amd64" + } + }, + "nodejs_darwin_arm64": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.18.0", + "include_headers": false, + "platform": "darwin_arm64" + } + }, + "nodejs_windows_amd64": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.18.0", + "include_headers": false, + "platform": "windows_amd64" + } + }, + "nodejs": { + "repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_repo_host_os_alias.bzl%nodejs_repo_host_os_alias", + "attributes": { + "user_node_repository_name": "nodejs" + } + }, + "nodejs_host": { + "repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_repo_host_os_alias.bzl%nodejs_repo_host_os_alias", + "attributes": { + "user_node_repository_name": "nodejs" + } + }, + "nodejs_toolchains": { + "repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_toolchains_repo.bzl%nodejs_toolchains_repo", + "attributes": { + "user_node_repository_name": "nodejs" + } + } + }, + "recordedRepoMappingEntries": [] + } + }, + "@@rules_python+//python/extensions:pip.bzl%pip": { + "general": { + "bzlTransitiveDigest": "Y1+Nq7F10jItATWoJUqrIUjUtsCs4cqQw9XXIyl9S3A=", + "usagesDigest": "F5jSeup4ZspeKK83+fXZFbblRp0MSGdobyZdSKc8xP8=", + "recordedFileInputs": { + "@@protobuf+//python/requirements.txt": "983be60d3cec4b319dcab6d48aeb3f5b2f7c3350f26b3a9e97486c37967c73c5", + "@@rules_fuzzing+//fuzzing/requirements.txt": "ab04664be026b632a0d2a2446c4f65982b7654f5b6851d2f9d399a19b7242a5b", + "@@rules_python+//tools/publish/requirements_darwin.txt": "095d4a4f3d639dce831cd493367631cd51b53665292ab20194bac2c0c6458fa8", + "@@rules_python+//tools/publish/requirements_linux.txt": "d576e0d8542df61396a9b38deeaa183c24135ed5e8e73bb9622f298f2671811e", + "@@rules_python+//tools/publish/requirements_windows.txt": "d18538a3982beab378fd5687f4db33162ee1ece69801f9a451661b1b64286b76" + }, + "recordedDirentsInputs": {}, + "envVariables": { + "RULES_PYTHON_REPO_DEBUG": null, + "RULES_PYTHON_REPO_DEBUG_VERBOSITY": null + }, + "generatedRepoSpecs": { + "pip_deps_310_numpy": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_10_host//:python", + "repo": "pip_deps_310", + "requirement": "numpy<=1.26.1" + } + }, + "pip_deps_310_setuptools": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_10_host//:python", + "repo": "pip_deps_310", + "requirement": "setuptools<=70.3.0" + } + }, + "pip_deps_311_numpy": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "pip_deps_311", + "requirement": "numpy<=1.26.1" + } + }, + "pip_deps_311_setuptools": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "pip_deps_311", + "requirement": "setuptools<=70.3.0" + } + }, + "pip_deps_312_numpy": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_12_host//:python", + "repo": "pip_deps_312", + "requirement": "numpy<=1.26.1" + } + }, + "pip_deps_312_setuptools": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_12_host//:python", + "repo": "pip_deps_312", + "requirement": "setuptools<=70.3.0" + } + }, + "pip_deps_38_numpy": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_8_host//:python", + "repo": "pip_deps_38", + "requirement": "numpy<=1.26.1" + } + }, + "pip_deps_38_setuptools": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_8_host//:python", + "repo": "pip_deps_38", + "requirement": "setuptools<=70.3.0" + } + }, + "pip_deps_39_numpy": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_9_host//:python", + "repo": "pip_deps_39", + "requirement": "numpy<=1.26.1" + } + }, + "pip_deps_39_setuptools": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_9_host//:python", + "repo": "pip_deps_39", + "requirement": "setuptools<=70.3.0" + } + }, + "rules_fuzzing_py_deps_310_absl_py": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_10_host//:python", + "repo": "rules_fuzzing_py_deps_310", + "requirement": "absl-py==2.0.0 --hash=sha256:9a28abb62774ae4e8edbe2dd4c49ffcd45a6a848952a5eccc6a49f3f0fc1e2f3" + } + }, + "rules_fuzzing_py_deps_310_six": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_10_host//:python", + "repo": "rules_fuzzing_py_deps_310", + "requirement": "six==1.16.0 --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + } + }, + "rules_fuzzing_py_deps_311_absl_py": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_fuzzing_py_deps_311", + "requirement": "absl-py==2.0.0 --hash=sha256:9a28abb62774ae4e8edbe2dd4c49ffcd45a6a848952a5eccc6a49f3f0fc1e2f3" + } + }, + "rules_fuzzing_py_deps_311_six": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_fuzzing_py_deps_311", + "requirement": "six==1.16.0 --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + } + }, + "rules_fuzzing_py_deps_312_absl_py": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_12_host//:python", + "repo": "rules_fuzzing_py_deps_312", + "requirement": "absl-py==2.0.0 --hash=sha256:9a28abb62774ae4e8edbe2dd4c49ffcd45a6a848952a5eccc6a49f3f0fc1e2f3" + } + }, + "rules_fuzzing_py_deps_312_six": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_12_host//:python", + "repo": "rules_fuzzing_py_deps_312", + "requirement": "six==1.16.0 --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + } + }, + "rules_fuzzing_py_deps_38_absl_py": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_8_host//:python", + "repo": "rules_fuzzing_py_deps_38", + "requirement": "absl-py==2.0.0 --hash=sha256:9a28abb62774ae4e8edbe2dd4c49ffcd45a6a848952a5eccc6a49f3f0fc1e2f3" + } + }, + "rules_fuzzing_py_deps_38_six": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_8_host//:python", + "repo": "rules_fuzzing_py_deps_38", + "requirement": "six==1.16.0 --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + } + }, + "rules_fuzzing_py_deps_39_absl_py": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_9_host//:python", + "repo": "rules_fuzzing_py_deps_39", + "requirement": "absl-py==2.0.0 --hash=sha256:9a28abb62774ae4e8edbe2dd4c49ffcd45a6a848952a5eccc6a49f3f0fc1e2f3" + } + }, + "rules_fuzzing_py_deps_39_six": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_9_host//:python", + "repo": "rules_fuzzing_py_deps_39", + "requirement": "six==1.16.0 --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + } + }, + "rules_python_publish_deps_311_backports_tarfile_py3_none_any_77e284d7": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "backports.tarfile-1.2.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "backports-tarfile==1.2.0", + "sha256": "77e284d754527b01fb1e6fa8a1afe577858ebe4e9dad8919e34c862cb399bc34", + "urls": [ + "https://files.pythonhosted.org/packages/b9/fa/123043af240e49752f1c4bd24da5053b6bd00cad78c2be53c0d1e8b975bc/backports.tarfile-1.2.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_backports_tarfile_sdist_d75e02c2": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "backports_tarfile-1.2.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "backports-tarfile==1.2.0", + "sha256": "d75e02c268746e1b8144c278978b6e98e85de6ad16f8e4b0844a154557eca991", + "urls": [ + "https://files.pythonhosted.org/packages/86/72/cd9b395f25e290e633655a100af28cb253e4393396264a98bd5f5951d50f/backports_tarfile-1.2.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_certifi_py3_none_any_922820b5": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "certifi-2024.8.30-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "certifi==2024.8.30", + "sha256": "922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8", + "urls": [ + "https://files.pythonhosted.org/packages/12/90/3c9ff0512038035f59d279fddeb79f5f1eccd8859f06d6163c58798b9487/certifi-2024.8.30-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_certifi_sdist_bec941d2": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "certifi-2024.8.30.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "certifi==2024.8.30", + "sha256": "bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9", + "urls": [ + "https://files.pythonhosted.org/packages/b0/ee/9b19140fe824b367c04c5e1b369942dd754c4c5462d5674002f75c4dedc1/certifi-2024.8.30.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_aarch64_a1ed2dd2": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cffi==1.17.1", + "sha256": "a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41", + "urls": [ + "https://files.pythonhosted.org/packages/2e/ea/70ce63780f096e16ce8588efe039d3c4f91deb1dc01e9c73a287939c79a6/cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_s390x_a24ed04c": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cffi==1.17.1", + "sha256": "a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6", + "urls": [ + "https://files.pythonhosted.org/packages/62/12/ce8710b5b8affbcdd5c6e367217c242524ad17a02fe5beec3ee339f69f85/cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" + ] + } + }, + "rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_x86_64_610faea7": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cffi==1.17.1", + "sha256": "610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d", + "urls": [ + "https://files.pythonhosted.org/packages/ff/6b/d45873c5e0242196f042d555526f92aa9e0c32355a1be1ff8c27f077fd37/cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_cffi_cp311_cp311_musllinux_1_1_aarch64_a9b15d49": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cffi==1.17.1", + "sha256": "a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6", + "urls": [ + "https://files.pythonhosted.org/packages/1a/52/d9a0e523a572fbccf2955f5abe883cfa8bcc570d7faeee06336fbd50c9fc/cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_cffi_cp311_cp311_musllinux_1_1_x86_64_fc48c783": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cffi==1.17.1", + "sha256": "fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b", + "urls": [ + "https://files.pythonhosted.org/packages/f8/4a/34599cac7dfcd888ff54e801afe06a19c17787dfd94495ab0c8d35fe99fb/cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_cffi_sdist_1c39c601": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "cffi-1.17.1.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cffi==1.17.1", + "sha256": "1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", + "urls": [ + "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_10_9_universal2_0d99dd8f": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c", + "urls": [ + "https://files.pythonhosted.org/packages/9c/61/73589dcc7a719582bf56aae309b6103d2762b526bffe189d635a7fcfd998/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_10_9_x86_64_c57516e5": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944", + "urls": [ + "https://files.pythonhosted.org/packages/77/d5/8c982d58144de49f59571f940e329ad6e8615e1e82ef84584c5eeb5e1d72/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_11_0_arm64_6dba5d19": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee", + "urls": [ + "https://files.pythonhosted.org/packages/bf/19/411a64f01ee971bed3231111b69eb56f9331a769072de479eae7de52296d/charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_aarch64_bf4475b8": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c", + "urls": [ + "https://files.pythonhosted.org/packages/4c/92/97509850f0d00e9f14a46bc751daabd0ad7765cff29cdfb66c68b6dad57f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_s390x_8ff4e7cd": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea", + "urls": [ + "https://files.pythonhosted.org/packages/13/bc/87c2c9f2c144bedfa62f894c3007cd4530ba4b5351acb10dc786428a50f0/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_x86_64_3710a975": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc", + "urls": [ + "https://files.pythonhosted.org/packages/eb/5b/6f10bad0f6461fa272bfbbdf5d0023b5fb9bc6217c92bf068fa5a99820f5/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_aarch64_47334db7": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594", + "urls": [ + "https://files.pythonhosted.org/packages/d7/a1/493919799446464ed0299c8eef3c3fad0daf1c3cd48bff9263c731b0d9e2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_s390x_63bc5c4a": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129", + "urls": [ + "https://files.pythonhosted.org/packages/8d/c9/27e41d481557be53d51e60750b85aa40eaf52b841946b3cdeff363105737/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_x86_64_bcb4f8ea": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236", + "urls": [ + "https://files.pythonhosted.org/packages/ee/44/4f62042ca8cdc0cabf87c0fc00ae27cd8b53ab68be3605ba6d071f742ad3/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_win_amd64_cee4373f": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27", + "urls": [ + "https://files.pythonhosted.org/packages/0b/6e/b13bd47fa9023b3699e94abf565b5a2f0b0be6e9ddac9812182596ee62e4/charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_py3_none_any_fe9f97fe": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", + "urls": [ + "https://files.pythonhosted.org/packages/bf/9b/08c0432272d77b04803958a4598a51e2a4b51c06640af8b8f0f908c18bf2/charset_normalizer-3.4.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_sdist_223217c3": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "charset_normalizer-3.4.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e", + "urls": [ + "https://files.pythonhosted.org/packages/f2/4f/e1808dc01273379acc506d18f1504eb2d299bd4131743b9fc54d7be4df1e/charset_normalizer-3.4.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_17_aarch64_846da004": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5", + "urls": [ + "https://files.pythonhosted.org/packages/2f/78/55356eb9075d0be6e81b59f45c7b48df87f76a20e73893872170471f3ee8/cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_17_x86_64_0f996e72": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4", + "urls": [ + "https://files.pythonhosted.org/packages/2a/2c/488776a3dc843f95f86d2f957ca0fc3407d0242b50bede7fad1e339be03f/cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_28_aarch64_f7b178f1": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7", + "urls": [ + "https://files.pythonhosted.org/packages/7c/04/2345ca92f7a22f601a9c62961741ef7dd0127c39f7310dffa0041c80f16f/cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_28_x86_64_c2e6fc39": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405", + "urls": [ + "https://files.pythonhosted.org/packages/ac/25/e715fa0bc24ac2114ed69da33adf451a38abb6f3f24ec207908112e9ba53/cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_cryptography_cp39_abi3_musllinux_1_2_aarch64_e1be4655": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16", + "urls": [ + "https://files.pythonhosted.org/packages/21/ce/b9c9ff56c7164d8e2edfb6c9305045fbc0df4508ccfdb13ee66eb8c95b0e/cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_cryptography_cp39_abi3_musllinux_1_2_x86_64_df6b6c6d": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73", + "urls": [ + "https://files.pythonhosted.org/packages/2a/33/b3682992ab2e9476b9c81fff22f02c8b0a1e6e1d49ee1750a67d85fd7ed2/cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_cryptography_sdist_315b9001": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "cryptography-43.0.3.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805", + "urls": [ + "https://files.pythonhosted.org/packages/0d/05/07b55d1fa21ac18c3a8c79f764e2514e6f6a9698f1be44994f5adf0d29db/cryptography-43.0.3.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_docutils_py3_none_any_dafca5b9": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "docutils-0.21.2-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "docutils==0.21.2", + "sha256": "dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2", + "urls": [ + "https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_docutils_sdist_3a6b1873": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "docutils-0.21.2.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "docutils==0.21.2", + "sha256": "3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f", + "urls": [ + "https://files.pythonhosted.org/packages/ae/ed/aefcc8cd0ba62a0560c3c18c33925362d46c6075480bfa4df87b28e169a9/docutils-0.21.2.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_idna_py3_none_any_946d195a": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "idna-3.10-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "idna==3.10", + "sha256": "946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", + "urls": [ + "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_idna_sdist_12f65c9b": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "idna-3.10.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "idna==3.10", + "sha256": "12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", + "urls": [ + "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_importlib_metadata_py3_none_any_45e54197": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "importlib_metadata-8.5.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "importlib-metadata==8.5.0", + "sha256": "45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b", + "urls": [ + "https://files.pythonhosted.org/packages/a0/d9/a1e041c5e7caa9a05c925f4bdbdfb7f006d1f74996af53467bc394c97be7/importlib_metadata-8.5.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_importlib_metadata_sdist_71522656": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "importlib_metadata-8.5.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "importlib-metadata==8.5.0", + "sha256": "71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7", + "urls": [ + "https://files.pythonhosted.org/packages/cd/12/33e59336dca5be0c398a7482335911a33aa0e20776128f038019f1a95f1b/importlib_metadata-8.5.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_jaraco_classes_py3_none_any_f662826b": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "jaraco.classes-3.4.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jaraco-classes==3.4.0", + "sha256": "f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790", + "urls": [ + "https://files.pythonhosted.org/packages/7f/66/b15ce62552d84bbfcec9a4873ab79d993a1dd4edb922cbfccae192bd5b5f/jaraco.classes-3.4.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_jaraco_classes_sdist_47a024b5": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "jaraco.classes-3.4.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jaraco-classes==3.4.0", + "sha256": "47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd", + "urls": [ + "https://files.pythonhosted.org/packages/06/c0/ed4a27bc5571b99e3cff68f8a9fa5b56ff7df1c2251cc715a652ddd26402/jaraco.classes-3.4.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_jaraco_context_py3_none_any_f797fc48": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "jaraco.context-6.0.1-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jaraco-context==6.0.1", + "sha256": "f797fc481b490edb305122c9181830a3a5b76d84ef6d1aef2fb9b47ab956f9e4", + "urls": [ + "https://files.pythonhosted.org/packages/ff/db/0c52c4cf5e4bd9f5d7135ec7669a3a767af21b3a308e1ed3674881e52b62/jaraco.context-6.0.1-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_jaraco_context_sdist_9bae4ea5": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "jaraco_context-6.0.1.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jaraco-context==6.0.1", + "sha256": "9bae4ea555cf0b14938dc0aee7c9f32ed303aa20a3b73e7dc80111628792d1b3", + "urls": [ + "https://files.pythonhosted.org/packages/df/ad/f3777b81bf0b6e7bc7514a1656d3e637b2e8e15fab2ce3235730b3e7a4e6/jaraco_context-6.0.1.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_jaraco_functools_py3_none_any_ad159f13": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "jaraco.functools-4.1.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jaraco-functools==4.1.0", + "sha256": "ad159f13428bc4acbf5541ad6dec511f91573b90fba04df61dafa2a1231cf649", + "urls": [ + "https://files.pythonhosted.org/packages/9f/4f/24b319316142c44283d7540e76c7b5a6dbd5db623abd86bb7b3491c21018/jaraco.functools-4.1.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_jaraco_functools_sdist_70f7e0e2": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "jaraco_functools-4.1.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jaraco-functools==4.1.0", + "sha256": "70f7e0e2ae076498e212562325e805204fc092d7b4c17e0e86c959e249701a9d", + "urls": [ + "https://files.pythonhosted.org/packages/ab/23/9894b3df5d0a6eb44611c36aec777823fc2e07740dabbd0b810e19594013/jaraco_functools-4.1.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_jeepney_py3_none_any_c0a454ad": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "jeepney-0.8.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jeepney==0.8.0", + "sha256": "c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755", + "urls": [ + "https://files.pythonhosted.org/packages/ae/72/2a1e2290f1ab1e06f71f3d0f1646c9e4634e70e1d37491535e19266e8dc9/jeepney-0.8.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_jeepney_sdist_5efe48d2": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "jeepney-0.8.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jeepney==0.8.0", + "sha256": "5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806", + "urls": [ + "https://files.pythonhosted.org/packages/d6/f4/154cf374c2daf2020e05c3c6a03c91348d59b23c5366e968feb198306fdf/jeepney-0.8.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_keyring_py3_none_any_5426f817": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "keyring-25.4.1-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "keyring==25.4.1", + "sha256": "5426f817cf7f6f007ba5ec722b1bcad95a75b27d780343772ad76b17cb47b0bf", + "urls": [ + "https://files.pythonhosted.org/packages/83/25/e6d59e5f0a0508d0dca8bb98c7f7fd3772fc943ac3f53d5ab18a218d32c0/keyring-25.4.1-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_keyring_sdist_b07ebc55": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "keyring-25.4.1.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "keyring==25.4.1", + "sha256": "b07ebc55f3e8ed86ac81dd31ef14e81ace9dd9c3d4b5d77a6e9a2016d0d71a1b", + "urls": [ + "https://files.pythonhosted.org/packages/a5/1c/2bdbcfd5d59dc6274ffb175bc29aa07ecbfab196830e0cfbde7bd861a2ea/keyring-25.4.1.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_markdown_it_py_py3_none_any_35521684": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "markdown_it_py-3.0.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "markdown-it-py==3.0.0", + "sha256": "355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", + "urls": [ + "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_markdown_it_py_sdist_e3f60a94": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "markdown-it-py-3.0.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "markdown-it-py==3.0.0", + "sha256": "e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", + "urls": [ + "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_mdurl_py3_none_any_84008a41": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "mdurl-0.1.2-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "mdurl==0.1.2", + "sha256": "84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", + "urls": [ + "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_mdurl_sdist_bb413d29": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "mdurl-0.1.2.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "mdurl==0.1.2", + "sha256": "bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", + "urls": [ + "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_more_itertools_py3_none_any_037b0d32": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "more_itertools-10.5.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "more-itertools==10.5.0", + "sha256": "037b0d3203ce90cca8ab1defbbdac29d5f993fc20131f3664dc8d6acfa872aef", + "urls": [ + "https://files.pythonhosted.org/packages/48/7e/3a64597054a70f7c86eb0a7d4fc315b8c1ab932f64883a297bdffeb5f967/more_itertools-10.5.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_more_itertools_sdist_5482bfef": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "more-itertools-10.5.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "more-itertools==10.5.0", + "sha256": "5482bfef7849c25dc3c6dd53a6173ae4795da2a41a80faea6700d9f5846c5da6", + "urls": [ + "https://files.pythonhosted.org/packages/51/78/65922308c4248e0eb08ebcbe67c95d48615cc6f27854b6f2e57143e9178f/more-itertools-10.5.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_macosx_10_12_x86_64_14c5a72e": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "14c5a72e9fe82aea5fe3072116ad4661af5cf8e8ff8fc5ad3450f123e4925e86", + "urls": [ + "https://files.pythonhosted.org/packages/b3/89/1daff5d9ba5a95a157c092c7c5f39b8dd2b1ddb4559966f808d31cfb67e0/nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_macosx_10_12_x86_64_7b7c2a3c": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "7b7c2a3c9eb1a827d42539aa64091640bd275b81e097cd1d8d82ef91ffa2e811", + "urls": [ + "https://files.pythonhosted.org/packages/2c/b6/42fc3c69cabf86b6b81e4c051a9b6e249c5ba9f8155590222c2622961f58/nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_aarch64_42c64511": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "42c64511469005058cd17cc1537578eac40ae9f7200bedcfd1fc1a05f4f8c200", + "urls": [ + "https://files.pythonhosted.org/packages/45/b9/833f385403abaf0023c6547389ec7a7acf141ddd9d1f21573723a6eab39a/nh3-0.2.18-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_armv7l_0411beb0": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "0411beb0589eacb6734f28d5497ca2ed379eafab8ad8c84b31bb5c34072b7164", + "urls": [ + "https://files.pythonhosted.org/packages/05/2b/85977d9e11713b5747595ee61f381bc820749daf83f07b90b6c9964cf932/nh3-0.2.18-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_ppc64_5f36b271": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "5f36b271dae35c465ef5e9090e1fdaba4a60a56f0bb0ba03e0932a66f28b9189", + "urls": [ + "https://files.pythonhosted.org/packages/72/f2/5c894d5265ab80a97c68ca36f25c8f6f0308abac649aaf152b74e7e854a8/nh3-0.2.18-cp37-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_s390x_19aaba96": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "19aaba96e0f795bd0a6c56291495ff59364f4300d4a39b29a0abc9cb3774a84b", + "urls": [ + "https://files.pythonhosted.org/packages/c2/a8/3bb02d0c60a03ad3a112b76c46971e9480efa98a8946677b5a59f60130ca/nh3-0.2.18-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_x86_64_de3ceed6": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "de3ceed6e661954871d6cd78b410213bdcb136f79aafe22aa7182e028b8c7307", + "urls": [ + "https://files.pythonhosted.org/packages/1b/63/6ab90d0e5225ab9780f6c9fb52254fa36b52bb7c188df9201d05b647e5e1/nh3-0.2.18-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_musllinux_1_2_aarch64_f0eca9ca": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-musllinux_1_2_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "f0eca9ca8628dbb4e916ae2491d72957fdd35f7a5d326b7032a345f111ac07fe", + "urls": [ + "https://files.pythonhosted.org/packages/a3/da/0c4e282bc3cff4a0adf37005fa1fb42257673fbc1bbf7d1ff639ec3d255a/nh3-0.2.18-cp37-abi3-musllinux_1_2_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_musllinux_1_2_armv7l_3a157ab1": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-musllinux_1_2_armv7l.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "3a157ab149e591bb638a55c8c6bcb8cdb559c8b12c13a8affaba6cedfe51713a", + "urls": [ + "https://files.pythonhosted.org/packages/de/81/c291231463d21da5f8bba82c8167a6d6893cc5419b0639801ee5d3aeb8a9/nh3-0.2.18-cp37-abi3-musllinux_1_2_armv7l.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_musllinux_1_2_x86_64_36c95d4b": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-musllinux_1_2_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "36c95d4b70530b320b365659bb5034341316e6a9b30f0b25fa9c9eff4c27a204", + "urls": [ + "https://files.pythonhosted.org/packages/eb/61/73a007c74c37895fdf66e0edcd881f5eaa17a348ff02f4bb4bc906d61085/nh3-0.2.18-cp37-abi3-musllinux_1_2_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_win_amd64_8ce0f819": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-win_amd64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "8ce0f819d2f1933953fca255db2471ad58184a60508f03e6285e5114b6254844", + "urls": [ + "https://files.pythonhosted.org/packages/26/8d/53c5b19c4999bdc6ba95f246f4ef35ca83d7d7423e5e38be43ad66544e5d/nh3-0.2.18-cp37-abi3-win_amd64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_sdist_94a16692": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "nh3-0.2.18.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "94a166927e53972a9698af9542ace4e38b9de50c34352b962f4d9a7d4c927af4", + "urls": [ + "https://files.pythonhosted.org/packages/62/73/10df50b42ddb547a907deeb2f3c9823022580a7a47281e8eae8e003a9639/nh3-0.2.18.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_pkginfo_py3_none_any_889a6da2": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "pkginfo-1.10.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pkginfo==1.10.0", + "sha256": "889a6da2ed7ffc58ab5b900d888ddce90bce912f2d2de1dc1c26f4cb9fe65097", + "urls": [ + "https://files.pythonhosted.org/packages/56/09/054aea9b7534a15ad38a363a2bd974c20646ab1582a387a95b8df1bfea1c/pkginfo-1.10.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_pkginfo_sdist_5df73835": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "pkginfo-1.10.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pkginfo==1.10.0", + "sha256": "5df73835398d10db79f8eecd5cd86b1f6d29317589ea70796994d49399af6297", + "urls": [ + "https://files.pythonhosted.org/packages/2f/72/347ec5be4adc85c182ed2823d8d1c7b51e13b9a6b0c1aae59582eca652df/pkginfo-1.10.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_pycparser_py3_none_any_c3702b6d": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "pycparser-2.22-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pycparser==2.22", + "sha256": "c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", + "urls": [ + "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_pycparser_sdist_491c8be9": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "pycparser-2.22.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pycparser==2.22", + "sha256": "491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", + "urls": [ + "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_pygments_py3_none_any_b8e6aca0": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "pygments-2.18.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pygments==2.18.0", + "sha256": "b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a", + "urls": [ + "https://files.pythonhosted.org/packages/f7/3f/01c8b82017c199075f8f788d0d906b9ffbbc5a47dc9918a945e13d5a2bda/pygments-2.18.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_pygments_sdist_786ff802": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "pygments-2.18.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pygments==2.18.0", + "sha256": "786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199", + "urls": [ + "https://files.pythonhosted.org/packages/8e/62/8336eff65bcbc8e4cb5d05b55faf041285951b6e80f33e2bff2024788f31/pygments-2.18.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_pywin32_ctypes_py3_none_any_8a151337": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_windows_x86_64" + ], + "filename": "pywin32_ctypes-0.2.3-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pywin32-ctypes==0.2.3", + "sha256": "8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8", + "urls": [ + "https://files.pythonhosted.org/packages/de/3d/8161f7711c017e01ac9f008dfddd9410dff3674334c233bde66e7ba65bbf/pywin32_ctypes-0.2.3-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_pywin32_ctypes_sdist_d162dc04": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "pywin32-ctypes-0.2.3.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pywin32-ctypes==0.2.3", + "sha256": "d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755", + "urls": [ + "https://files.pythonhosted.org/packages/85/9f/01a1a99704853cb63f253eea009390c88e7131c67e66a0a02099a8c917cb/pywin32-ctypes-0.2.3.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_readme_renderer_py3_none_any_2fbca89b": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "readme_renderer-44.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "readme-renderer==44.0", + "sha256": "2fbca89b81a08526aadf1357a8c2ae889ec05fb03f5da67f9769c9a592166151", + "urls": [ + "https://files.pythonhosted.org/packages/e1/67/921ec3024056483db83953ae8e48079ad62b92db7880013ca77632921dd0/readme_renderer-44.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_readme_renderer_sdist_8712034e": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "readme_renderer-44.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "readme-renderer==44.0", + "sha256": "8712034eabbfa6805cacf1402b4eeb2a73028f72d1166d6f5cb7f9c047c5d1e1", + "urls": [ + "https://files.pythonhosted.org/packages/5a/a9/104ec9234c8448c4379768221ea6df01260cd6c2ce13182d4eac531c8342/readme_renderer-44.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_requests_py3_none_any_70761cfe": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "requests-2.32.3-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "requests==2.32.3", + "sha256": "70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", + "urls": [ + "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_requests_sdist_55365417": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "requests-2.32.3.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "requests==2.32.3", + "sha256": "55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", + "urls": [ + "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_requests_toolbelt_py2_none_any_cccfdd66": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "requests_toolbelt-1.0.0-py2.py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "requests-toolbelt==1.0.0", + "sha256": "cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", + "urls": [ + "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_requests_toolbelt_sdist_7681a0a3": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "requests-toolbelt-1.0.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "requests-toolbelt==1.0.0", + "sha256": "7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6", + "urls": [ + "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_rfc3986_py2_none_any_50b1502b": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "rfc3986-2.0.0-py2.py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "rfc3986==2.0.0", + "sha256": "50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd", + "urls": [ + "https://files.pythonhosted.org/packages/ff/9a/9afaade874b2fa6c752c36f1548f718b5b83af81ed9b76628329dab81c1b/rfc3986-2.0.0-py2.py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_rfc3986_sdist_97aacf9d": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "rfc3986-2.0.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "rfc3986==2.0.0", + "sha256": "97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c", + "urls": [ + "https://files.pythonhosted.org/packages/85/40/1520d68bfa07ab5a6f065a186815fb6610c86fe957bc065754e47f7b0840/rfc3986-2.0.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_rich_py3_none_any_6049d5e6": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "rich-13.9.4-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "rich==13.9.4", + "sha256": "6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90", + "urls": [ + "https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_rich_sdist_43959497": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "rich-13.9.4.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "rich==13.9.4", + "sha256": "439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098", + "urls": [ + "https://files.pythonhosted.org/packages/ab/3a/0316b28d0761c6734d6bc14e770d85506c986c85ffb239e688eeaab2c2bc/rich-13.9.4.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_secretstorage_py3_none_any_f356e662": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "SecretStorage-3.3.3-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "secretstorage==3.3.3", + "sha256": "f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99", + "urls": [ + "https://files.pythonhosted.org/packages/54/24/b4293291fa1dd830f353d2cb163295742fa87f179fcc8a20a306a81978b7/SecretStorage-3.3.3-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_secretstorage_sdist_2403533e": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "SecretStorage-3.3.3.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "secretstorage==3.3.3", + "sha256": "2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77", + "urls": [ + "https://files.pythonhosted.org/packages/53/a4/f48c9d79cb507ed1373477dbceaba7401fd8a23af63b837fa61f1dcd3691/SecretStorage-3.3.3.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_twine_py3_none_any_215dbe7b": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "twine-5.1.1-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "twine==5.1.1", + "sha256": "215dbe7b4b94c2c50a7315c0275d2258399280fbb7d04182c7e55e24b5f93997", + "urls": [ + "https://files.pythonhosted.org/packages/5d/ec/00f9d5fd040ae29867355e559a94e9a8429225a0284a3f5f091a3878bfc0/twine-5.1.1-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_twine_sdist_9aa08251": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "twine-5.1.1.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "twine==5.1.1", + "sha256": "9aa0825139c02b3434d913545c7b847a21c835e11597f5255842d457da2322db", + "urls": [ + "https://files.pythonhosted.org/packages/77/68/bd982e5e949ef8334e6f7dcf76ae40922a8750aa2e347291ae1477a4782b/twine-5.1.1.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_urllib3_py3_none_any_ca899ca0": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "urllib3-2.2.3-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "urllib3==2.2.3", + "sha256": "ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac", + "urls": [ + "https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_urllib3_sdist_e7d814a8": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "urllib3-2.2.3.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "urllib3==2.2.3", + "sha256": "e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9", + "urls": [ + "https://files.pythonhosted.org/packages/ed/63/22ba4ebfe7430b76388e7cd448d5478814d3032121827c12a2cc287e2260/urllib3-2.2.3.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_zipp_py3_none_any_a817ac80": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "zipp-3.20.2-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "zipp==3.20.2", + "sha256": "a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350", + "urls": [ + "https://files.pythonhosted.org/packages/62/8b/5ba542fa83c90e09eac972fc9baca7a88e7e7ca4b221a89251954019308b/zipp-3.20.2-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_zipp_sdist_bc9eb26f": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "zipp-3.20.2.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "zipp==3.20.2", + "sha256": "bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29", + "urls": [ + "https://files.pythonhosted.org/packages/54/bf/5c0000c44ebc80123ecbdddba1f5dcd94a5ada602a9c225d84b5aaa55e86/zipp-3.20.2.tar.gz" + ] + } + }, + "pip_deps": { + "repoRuleId": "@@rules_python+//python/private/pypi:hub_repository.bzl%hub_repository", + "attributes": { + "repo_name": "pip_deps", + "extra_hub_aliases": {}, + "whl_map": { + "numpy": "{\"pip_deps_310_numpy\":[{\"version\":\"3.10\"}],\"pip_deps_311_numpy\":[{\"version\":\"3.11\"}],\"pip_deps_312_numpy\":[{\"version\":\"3.12\"}],\"pip_deps_38_numpy\":[{\"version\":\"3.8\"}],\"pip_deps_39_numpy\":[{\"version\":\"3.9\"}]}", + "setuptools": "{\"pip_deps_310_setuptools\":[{\"version\":\"3.10\"}],\"pip_deps_311_setuptools\":[{\"version\":\"3.11\"}],\"pip_deps_312_setuptools\":[{\"version\":\"3.12\"}],\"pip_deps_38_setuptools\":[{\"version\":\"3.8\"}],\"pip_deps_39_setuptools\":[{\"version\":\"3.9\"}]}" + }, + "packages": [ + "numpy", + "setuptools" + ], + "groups": {} + } + }, + "rules_fuzzing_py_deps": { + "repoRuleId": "@@rules_python+//python/private/pypi:hub_repository.bzl%hub_repository", + "attributes": { + "repo_name": "rules_fuzzing_py_deps", + "extra_hub_aliases": {}, + "whl_map": { + "absl_py": "{\"rules_fuzzing_py_deps_310_absl_py\":[{\"version\":\"3.10\"}],\"rules_fuzzing_py_deps_311_absl_py\":[{\"version\":\"3.11\"}],\"rules_fuzzing_py_deps_312_absl_py\":[{\"version\":\"3.12\"}],\"rules_fuzzing_py_deps_38_absl_py\":[{\"version\":\"3.8\"}],\"rules_fuzzing_py_deps_39_absl_py\":[{\"version\":\"3.9\"}]}", + "six": "{\"rules_fuzzing_py_deps_310_six\":[{\"version\":\"3.10\"}],\"rules_fuzzing_py_deps_311_six\":[{\"version\":\"3.11\"}],\"rules_fuzzing_py_deps_312_six\":[{\"version\":\"3.12\"}],\"rules_fuzzing_py_deps_38_six\":[{\"version\":\"3.8\"}],\"rules_fuzzing_py_deps_39_six\":[{\"version\":\"3.9\"}]}" + }, + "packages": [ + "absl_py", + "six" + ], + "groups": {} + } + }, + "rules_python_publish_deps": { + "repoRuleId": "@@rules_python+//python/private/pypi:hub_repository.bzl%hub_repository", + "attributes": { + "repo_name": "rules_python_publish_deps", + "extra_hub_aliases": {}, + "whl_map": { + "backports_tarfile": "{\"rules_python_publish_deps_311_backports_tarfile_py3_none_any_77e284d7\":[{\"filename\":\"backports.tarfile-1.2.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_backports_tarfile_sdist_d75e02c2\":[{\"filename\":\"backports_tarfile-1.2.0.tar.gz\",\"version\":\"3.11\"}]}", + "certifi": "{\"rules_python_publish_deps_311_certifi_py3_none_any_922820b5\":[{\"filename\":\"certifi-2024.8.30-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_certifi_sdist_bec941d2\":[{\"filename\":\"certifi-2024.8.30.tar.gz\",\"version\":\"3.11\"}]}", + "cffi": "{\"rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_aarch64_a1ed2dd2\":[{\"filename\":\"cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_s390x_a24ed04c\":[{\"filename\":\"cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_x86_64_610faea7\":[{\"filename\":\"cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cffi_cp311_cp311_musllinux_1_1_aarch64_a9b15d49\":[{\"filename\":\"cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cffi_cp311_cp311_musllinux_1_1_x86_64_fc48c783\":[{\"filename\":\"cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cffi_sdist_1c39c601\":[{\"filename\":\"cffi-1.17.1.tar.gz\",\"version\":\"3.11\"}]}", + "charset_normalizer": "{\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_10_9_universal2_0d99dd8f\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_10_9_x86_64_c57516e5\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_11_0_arm64_6dba5d19\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_aarch64_bf4475b8\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_s390x_8ff4e7cd\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_x86_64_3710a975\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_aarch64_47334db7\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_s390x_63bc5c4a\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_x86_64_bcb4f8ea\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_win_amd64_cee4373f\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_py3_none_any_fe9f97fe\":[{\"filename\":\"charset_normalizer-3.4.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_sdist_223217c3\":[{\"filename\":\"charset_normalizer-3.4.0.tar.gz\",\"version\":\"3.11\"}]}", + "cryptography": "{\"rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_17_aarch64_846da004\":[{\"filename\":\"cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_17_x86_64_0f996e72\":[{\"filename\":\"cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_28_aarch64_f7b178f1\":[{\"filename\":\"cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_28_x86_64_c2e6fc39\":[{\"filename\":\"cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cryptography_cp39_abi3_musllinux_1_2_aarch64_e1be4655\":[{\"filename\":\"cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cryptography_cp39_abi3_musllinux_1_2_x86_64_df6b6c6d\":[{\"filename\":\"cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cryptography_sdist_315b9001\":[{\"filename\":\"cryptography-43.0.3.tar.gz\",\"version\":\"3.11\"}]}", + "docutils": "{\"rules_python_publish_deps_311_docutils_py3_none_any_dafca5b9\":[{\"filename\":\"docutils-0.21.2-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_docutils_sdist_3a6b1873\":[{\"filename\":\"docutils-0.21.2.tar.gz\",\"version\":\"3.11\"}]}", + "idna": "{\"rules_python_publish_deps_311_idna_py3_none_any_946d195a\":[{\"filename\":\"idna-3.10-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_idna_sdist_12f65c9b\":[{\"filename\":\"idna-3.10.tar.gz\",\"version\":\"3.11\"}]}", + "importlib_metadata": "{\"rules_python_publish_deps_311_importlib_metadata_py3_none_any_45e54197\":[{\"filename\":\"importlib_metadata-8.5.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_importlib_metadata_sdist_71522656\":[{\"filename\":\"importlib_metadata-8.5.0.tar.gz\",\"version\":\"3.11\"}]}", + "jaraco_classes": "{\"rules_python_publish_deps_311_jaraco_classes_py3_none_any_f662826b\":[{\"filename\":\"jaraco.classes-3.4.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_jaraco_classes_sdist_47a024b5\":[{\"filename\":\"jaraco.classes-3.4.0.tar.gz\",\"version\":\"3.11\"}]}", + "jaraco_context": "{\"rules_python_publish_deps_311_jaraco_context_py3_none_any_f797fc48\":[{\"filename\":\"jaraco.context-6.0.1-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_jaraco_context_sdist_9bae4ea5\":[{\"filename\":\"jaraco_context-6.0.1.tar.gz\",\"version\":\"3.11\"}]}", + "jaraco_functools": "{\"rules_python_publish_deps_311_jaraco_functools_py3_none_any_ad159f13\":[{\"filename\":\"jaraco.functools-4.1.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_jaraco_functools_sdist_70f7e0e2\":[{\"filename\":\"jaraco_functools-4.1.0.tar.gz\",\"version\":\"3.11\"}]}", + "jeepney": "{\"rules_python_publish_deps_311_jeepney_py3_none_any_c0a454ad\":[{\"filename\":\"jeepney-0.8.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_jeepney_sdist_5efe48d2\":[{\"filename\":\"jeepney-0.8.0.tar.gz\",\"version\":\"3.11\"}]}", + "keyring": "{\"rules_python_publish_deps_311_keyring_py3_none_any_5426f817\":[{\"filename\":\"keyring-25.4.1-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_keyring_sdist_b07ebc55\":[{\"filename\":\"keyring-25.4.1.tar.gz\",\"version\":\"3.11\"}]}", + "markdown_it_py": "{\"rules_python_publish_deps_311_markdown_it_py_py3_none_any_35521684\":[{\"filename\":\"markdown_it_py-3.0.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_markdown_it_py_sdist_e3f60a94\":[{\"filename\":\"markdown-it-py-3.0.0.tar.gz\",\"version\":\"3.11\"}]}", + "mdurl": "{\"rules_python_publish_deps_311_mdurl_py3_none_any_84008a41\":[{\"filename\":\"mdurl-0.1.2-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_mdurl_sdist_bb413d29\":[{\"filename\":\"mdurl-0.1.2.tar.gz\",\"version\":\"3.11\"}]}", + "more_itertools": "{\"rules_python_publish_deps_311_more_itertools_py3_none_any_037b0d32\":[{\"filename\":\"more_itertools-10.5.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_more_itertools_sdist_5482bfef\":[{\"filename\":\"more-itertools-10.5.0.tar.gz\",\"version\":\"3.11\"}]}", + "nh3": "{\"rules_python_publish_deps_311_nh3_cp37_abi3_macosx_10_12_x86_64_14c5a72e\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_macosx_10_12_x86_64_7b7c2a3c\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_aarch64_42c64511\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_armv7l_0411beb0\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_ppc64_5f36b271\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_s390x_19aaba96\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_x86_64_de3ceed6\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_musllinux_1_2_aarch64_f0eca9ca\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-musllinux_1_2_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_musllinux_1_2_armv7l_3a157ab1\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-musllinux_1_2_armv7l.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_musllinux_1_2_x86_64_36c95d4b\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-musllinux_1_2_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_win_amd64_8ce0f819\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-win_amd64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_sdist_94a16692\":[{\"filename\":\"nh3-0.2.18.tar.gz\",\"version\":\"3.11\"}]}", + "pkginfo": "{\"rules_python_publish_deps_311_pkginfo_py3_none_any_889a6da2\":[{\"filename\":\"pkginfo-1.10.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_pkginfo_sdist_5df73835\":[{\"filename\":\"pkginfo-1.10.0.tar.gz\",\"version\":\"3.11\"}]}", + "pycparser": "{\"rules_python_publish_deps_311_pycparser_py3_none_any_c3702b6d\":[{\"filename\":\"pycparser-2.22-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_pycparser_sdist_491c8be9\":[{\"filename\":\"pycparser-2.22.tar.gz\",\"version\":\"3.11\"}]}", + "pygments": "{\"rules_python_publish_deps_311_pygments_py3_none_any_b8e6aca0\":[{\"filename\":\"pygments-2.18.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_pygments_sdist_786ff802\":[{\"filename\":\"pygments-2.18.0.tar.gz\",\"version\":\"3.11\"}]}", + "pywin32_ctypes": "{\"rules_python_publish_deps_311_pywin32_ctypes_py3_none_any_8a151337\":[{\"filename\":\"pywin32_ctypes-0.2.3-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_pywin32_ctypes_sdist_d162dc04\":[{\"filename\":\"pywin32-ctypes-0.2.3.tar.gz\",\"version\":\"3.11\"}]}", + "readme_renderer": "{\"rules_python_publish_deps_311_readme_renderer_py3_none_any_2fbca89b\":[{\"filename\":\"readme_renderer-44.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_readme_renderer_sdist_8712034e\":[{\"filename\":\"readme_renderer-44.0.tar.gz\",\"version\":\"3.11\"}]}", + "requests": "{\"rules_python_publish_deps_311_requests_py3_none_any_70761cfe\":[{\"filename\":\"requests-2.32.3-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_requests_sdist_55365417\":[{\"filename\":\"requests-2.32.3.tar.gz\",\"version\":\"3.11\"}]}", + "requests_toolbelt": "{\"rules_python_publish_deps_311_requests_toolbelt_py2_none_any_cccfdd66\":[{\"filename\":\"requests_toolbelt-1.0.0-py2.py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_requests_toolbelt_sdist_7681a0a3\":[{\"filename\":\"requests-toolbelt-1.0.0.tar.gz\",\"version\":\"3.11\"}]}", + "rfc3986": "{\"rules_python_publish_deps_311_rfc3986_py2_none_any_50b1502b\":[{\"filename\":\"rfc3986-2.0.0-py2.py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_rfc3986_sdist_97aacf9d\":[{\"filename\":\"rfc3986-2.0.0.tar.gz\",\"version\":\"3.11\"}]}", + "rich": "{\"rules_python_publish_deps_311_rich_py3_none_any_6049d5e6\":[{\"filename\":\"rich-13.9.4-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_rich_sdist_43959497\":[{\"filename\":\"rich-13.9.4.tar.gz\",\"version\":\"3.11\"}]}", + "secretstorage": "{\"rules_python_publish_deps_311_secretstorage_py3_none_any_f356e662\":[{\"filename\":\"SecretStorage-3.3.3-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_secretstorage_sdist_2403533e\":[{\"filename\":\"SecretStorage-3.3.3.tar.gz\",\"version\":\"3.11\"}]}", + "twine": "{\"rules_python_publish_deps_311_twine_py3_none_any_215dbe7b\":[{\"filename\":\"twine-5.1.1-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_twine_sdist_9aa08251\":[{\"filename\":\"twine-5.1.1.tar.gz\",\"version\":\"3.11\"}]}", + "urllib3": "{\"rules_python_publish_deps_311_urllib3_py3_none_any_ca899ca0\":[{\"filename\":\"urllib3-2.2.3-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_urllib3_sdist_e7d814a8\":[{\"filename\":\"urllib3-2.2.3.tar.gz\",\"version\":\"3.11\"}]}", + "zipp": "{\"rules_python_publish_deps_311_zipp_py3_none_any_a817ac80\":[{\"filename\":\"zipp-3.20.2-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_zipp_sdist_bc9eb26f\":[{\"filename\":\"zipp-3.20.2.tar.gz\",\"version\":\"3.11\"}]}" + }, + "packages": [ + "backports_tarfile", + "certifi", + "charset_normalizer", + "docutils", + "idna", + "importlib_metadata", + "jaraco_classes", + "jaraco_context", + "jaraco_functools", + "keyring", + "markdown_it_py", + "mdurl", + "more_itertools", + "nh3", + "pkginfo", + "pygments", + "readme_renderer", + "requests", + "requests_toolbelt", + "rfc3986", + "rich", + "twine", + "urllib3", + "zipp" + ], + "groups": {} + } + } + }, + "moduleExtensionMetadata": { + "useAllRepos": "NO", + "reproducible": false + }, + "recordedRepoMappingEntries": [ + [ + "bazel_features+", + "bazel_features_globals", + "bazel_features++version_extension+bazel_features_globals" + ], + [ + "bazel_features+", + "bazel_features_version", + "bazel_features++version_extension+bazel_features_version" + ], + [ + "rules_python+", + "bazel_features", + "bazel_features+" + ], + [ + "rules_python+", + "bazel_skylib", + "bazel_skylib+" + ], + [ + "rules_python+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_python+", + "pypi__build", + "rules_python++internal_deps+pypi__build" + ], + [ + "rules_python+", + "pypi__click", + "rules_python++internal_deps+pypi__click" + ], + [ + "rules_python+", + "pypi__colorama", + "rules_python++internal_deps+pypi__colorama" + ], + [ + "rules_python+", + "pypi__importlib_metadata", + "rules_python++internal_deps+pypi__importlib_metadata" + ], + [ + "rules_python+", + "pypi__installer", + "rules_python++internal_deps+pypi__installer" + ], + [ + "rules_python+", + "pypi__more_itertools", + "rules_python++internal_deps+pypi__more_itertools" + ], + [ + "rules_python+", + "pypi__packaging", + "rules_python++internal_deps+pypi__packaging" + ], + [ + "rules_python+", + "pypi__pep517", + "rules_python++internal_deps+pypi__pep517" + ], + [ + "rules_python+", + "pypi__pip", + "rules_python++internal_deps+pypi__pip" + ], + [ + "rules_python+", + "pypi__pip_tools", + "rules_python++internal_deps+pypi__pip_tools" + ], + [ + "rules_python+", + "pypi__pyproject_hooks", + "rules_python++internal_deps+pypi__pyproject_hooks" + ], + [ + "rules_python+", + "pypi__setuptools", + "rules_python++internal_deps+pypi__setuptools" + ], + [ + "rules_python+", + "pypi__tomli", + "rules_python++internal_deps+pypi__tomli" + ], + [ + "rules_python+", + "pypi__wheel", + "rules_python++internal_deps+pypi__wheel" + ], + [ + "rules_python+", + "pypi__zipp", + "rules_python++internal_deps+pypi__zipp" + ], + [ + "rules_python+", + "pythons_hub", + "rules_python++python+pythons_hub" + ], + [ + "rules_python++python+pythons_hub", + "python_3_10_host", + "rules_python++python+python_3_10_host" + ], + [ + "rules_python++python+pythons_hub", + "python_3_11_host", + "rules_python++python+python_3_11_host" + ], + [ + "rules_python++python+pythons_hub", + "python_3_12_host", + "rules_python++python+python_3_12_host" + ], + [ + "rules_python++python+pythons_hub", + "python_3_13_host", + "rules_python++python+python_3_13_host" + ], + [ + "rules_python++python+pythons_hub", + "python_3_8_host", + "rules_python++python+python_3_8_host" + ], + [ + "rules_python++python+pythons_hub", + "python_3_9_host", + "rules_python++python+python_3_9_host" + ] + ] + } + }, + "@@rules_python+//python/uv:uv.bzl%uv": { + "general": { + "bzlTransitiveDigest": "Xpqjnjzy6zZ90Es9Wa888ZLHhn7IsNGbph/e6qoxzw8=", + "usagesDigest": "vJ5RHUxAnV24M5swNGiAnkdxMx3Hp/iOLmNANTC5Xc8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "uv": { + "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo", + "attributes": { + "toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'", + "toolchain_names": [ + "none" + ], + "toolchain_implementations": { + "none": "'@@rules_python+//python:none'" + }, + "toolchain_compatible_with": { + "none": [ + "@platforms//:incompatible" + ] + }, + "toolchain_target_settings": {} + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_python+", + "platforms", + "platforms" + ] + ] + } + } + } +} diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/README.md b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/README.md new file mode 100644 index 0000000..b53e6ec --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/README.md @@ -0,0 +1,90 @@ +# Bazel Emscripten toolchain + +## Setup Instructions + +Support for depending on emsdk with a WORKSPACE file was removed and last available in [emsdk version 4.0.6](https://github.com/emscripten-core/emsdk/tree/24fc909c0da13ef641d5ae75e89b5a97f25e37aa). Now we only support inclusion as a bzlmod module. + +In your `MODULE.bazel` file, put: +```starlark +emsdk_version = "4.0.6" +bazel_dep(name = "emsdk", version = emsdk_version) +git_override( + module_name = "emsdk", + remote = "https://github.com/emscripten-core/emsdk.git", + strip_prefix = "bazel", + tag = emsdk_version, +) +``` + +You can use a different version of this SDK by changing it in your `MODULE.bazel` file. The Emscripten version is by default the same as the SDK version, but you can use a different one as well by adding to your `MODULE.bazel`: + +``` +emscripten_deps = use_extension( + "@emsdk//:emscripten_deps.bzl", + "emscripten_deps", +) +emscripten_deps.config(version = "4.0.1") +``` + +## Building + +Put the following line into your `.bazelrc`: + +``` +build --incompatible_enable_cc_toolchain_resolution +``` + +Then write a new rule wrapping your `cc_binary`. + +```starlark +load("@rules_cc//cc:defs.bzl", "cc_binary") +load("@emsdk//emscripten_toolchain:wasm_rules.bzl", "wasm_cc_binary") + +cc_binary( + name = "hello-world", + srcs = ["hello-world.cc"], +) + +wasm_cc_binary( + name = "hello-world-wasm", + cc_target = ":hello-world", +) +``` + +Now you can run `bazel build :hello-world-wasm`. The result of this build will +be the individual files produced by emscripten. Note that some of these files +may be empty. This is because bazel has no concept of optional outputs for +rules. + +`wasm_cc_binary` uses transition to use emscripten toolchain on `cc_target` +and all of its dependencies, and does not require amending `.bazelrc`. This +is the preferred way, since it also unpacks the resulting tarball. + +The Emscripten cache shipped by default does not include LTO, 64-bit or PIC +builds of the system libraries and ports. If you wish to use these features you +will need to declare the cache in your `MODULE.bazel` as follows. Note +that the configuration consists of the same flags that can be passed to +embuilder. If `targets` is not set, all system libraries and ports will be +built, i.e., the `ALL` option to embuilder. + +```starlark +emscripten_cache = use_extension( + "@emsdk//:emscripten_cache.bzl", + "emscripten_cache", +) +emscripten_cache.configuration(flags = ["--lto"]) +emscripten_cache.targets(targets = [ + "crtbegin", + "libprintf_long_double-debug", + "libstubs-debug", + "libnoexit", + "libc-debug", + "libdlmalloc", + "libcompiler_rt", + "libc++-noexcept", + "libc++abi-debug-noexcept", + "libsockets" +]) +``` + +See `test_external/` for an example using [embind](https://emscripten.org/docs/porting/connecting_cpp_and_javascript/embind.html). diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/bazelrc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/bazelrc new file mode 100644 index 0000000..d1c8aef --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/bazelrc @@ -0,0 +1,2 @@ +build:wasm --incompatible_enable_cc_toolchain_resolution +build:wasm --platforms=@emsdk//:platform_wasm diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_build_file.bzl b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_build_file.bzl new file mode 100644 index 0000000..0d7aff2 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_build_file.bzl @@ -0,0 +1,93 @@ +"""A templated build file for emscripten repositories""" + +EMSCRIPTEN_BUILD_FILE_CONTENT_TEMPLATE = """ +package(default_visibility = ['//visibility:public']) + +filegroup( + name = "all", + srcs = glob(["**"]), +) + +filegroup( + name = "includes", + srcs = glob([ + "emscripten/cache/sysroot/include/c++/v1/**", + "emscripten/cache/sysroot/include/compat/**", + "emscripten/cache/sysroot/include/**", + "lib/clang/**/include/**", + ]), +) + +filegroup( + name = "emcc_common", + srcs = [ + "emscripten/emcc.py", + "emscripten/embuilder.py", + "emscripten/emscripten-version.txt", + "emscripten/cache/sysroot_install.stamp", + "emscripten/src/settings.js", + "emscripten/src/settings_internal.js", + ] + glob( + include = [ + "emscripten/third_party/**", + "emscripten/tools/**", + ], + exclude = [ + "**/__pycache__/**", + ], + ), +) + +filegroup( + name = "compiler_files", + srcs = [ + "bin/clang{bin_extension}", + "bin/clang++{bin_extension}", + ":emcc_common", + ":includes", + ], +) + +filegroup( + name = "linker_files", + srcs = [ + "bin/clang{bin_extension}", + "bin/llvm-ar{bin_extension}", + "bin/llvm-dwarfdump{bin_extension}", + "bin/llvm-nm{bin_extension}", + "bin/llvm-objcopy{bin_extension}", + "bin/wasm-ctor-eval{bin_extension}", + "bin/wasm-emscripten-finalize{bin_extension}", + "bin/wasm-ld{bin_extension}", + "bin/wasm-metadce{bin_extension}", + "bin/wasm-opt{bin_extension}", + "bin/wasm-split{bin_extension}", + "bin/wasm2js{bin_extension}", + ":emcc_common", + ] + glob( + include = [ + "emscripten/cache/sysroot/lib/**", + "emscripten/node_modules/**", + "emscripten/src/**", + ], + ), +) + +filegroup( + name = "ar_files", + srcs = [ + "bin/llvm-ar{bin_extension}", + "emscripten/emar.py", + "emscripten/emscripten-version.txt", + "emscripten/src/settings.js", + "emscripten/src/settings_internal.js", + ] + glob( + include = [ + "emscripten/tools/**", + ], + exclude = [ + "**/__pycache__/**", + ], + ), +) +""" diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_cache.bzl b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_cache.bzl new file mode 100644 index 0000000..945c19c --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_cache.bzl @@ -0,0 +1,113 @@ +BUILD_FILE_CONTENT_TEMPLATE = """ +package(default_visibility = ['//visibility:public']) +exports_files(['emscripten_config']) +""" + +EMBUILDER_CONFIG_TEMPLATE = """ +CACHE = '{cache}' +BINARYEN_ROOT = '{binaryen_root}' +LLVM_ROOT = '{llvm_root}' +""" + +def get_root_and_script_ext(repository_ctx): + if repository_ctx.os.name.startswith("linux"): + if "amd64" in repository_ctx.os.arch or "x86_64" in repository_ctx.os.arch: + return (repository_ctx.path(Label("@emscripten_bin_linux//:BUILD.bazel")).dirname, "") + elif "aarch64" in repository_ctx.os.arch: + return (repository_ctx.path(Label("@emscripten_bin_linux_arm64//:BUILD.bazel")).dirname, "") + else: + fail("Unsupported architecture for Linux") + elif repository_ctx.os.name.startswith("mac"): + if "amd64" in repository_ctx.os.arch or "x86_64" in repository_ctx.os.arch: + return (repository_ctx.path(Label("@emscripten_bin_mac//:BUILD.bazel")).dirname, "") + elif "aarch64" in repository_ctx.os.arch: + return (repository_ctx.path(Label("@emscripten_bin_mac_arm64//:BUILD.bazel")).dirname, "") + else: + fail("Unsupported architecture for MacOS") + elif repository_ctx.os.name.startswith("windows"): + return (repository_ctx.path(Label("@emscripten_bin_win//:BUILD.bazel")).dirname, ".bat") + else: + fail("Unsupported operating system") + +def _emscripten_cache_repository_impl(repository_ctx): + # Read the default emscripten configuration file + default_config = repository_ctx.read( + repository_ctx.path( + Label("@emsdk//emscripten_toolchain:default_config"), + ), + ) + + if repository_ctx.attr.targets or repository_ctx.attr.configuration: + root, script_ext = get_root_and_script_ext(repository_ctx) + llvm_root = root.get_child("bin") + cache = repository_ctx.path("cache") + + # Create configuration file + embuilder_config_content = EMBUILDER_CONFIG_TEMPLATE.format( + cache = cache, + binaryen_root = root, + llvm_root = llvm_root, + ) + repository_ctx.file("embuilder_config", embuilder_config_content) + embuilder_config_path = repository_ctx.path("embuilder_config") + embuilder_path = "{}{}".format(root.get_child("emscripten").get_child("embuilder"), script_ext) + + # Prepare the command line + if repository_ctx.attr.targets: + targets = repository_ctx.attr.targets + else: + # If no targets are requested, build everything + targets = ["ALL"] + flags = ["--em-config", embuilder_config_path] + repository_ctx.attr.configuration + embuilder_args = [embuilder_path] + flags + ["build"] + targets + + # Run embuilder + repository_ctx.report_progress("Building secondary cache") + result = repository_ctx.execute( + embuilder_args, + quiet = True, + environment = { + "EM_IGNORE_SANITY": "1", + "EM_NODE_JS": "empty", + }, + ) + if result.return_code != 0: + fail("Embuilder exited with a non-zero return code") + + # Override Emscripten's cache with the secondary cache + default_config += "CACHE = '{}'\n".format(cache) + + # Create the configuration file for the toolchain and export + repository_ctx.file("emscripten_config", default_config) + repository_ctx.file("BUILD.bazel", BUILD_FILE_CONTENT_TEMPLATE) + +_emscripten_cache_repository = repository_rule( + implementation = _emscripten_cache_repository_impl, + attrs = { + "configuration": attr.string_list(), + "targets": attr.string_list(), + }, +) + +def _emscripten_cache_impl(ctx): + all_configuration = [] + all_targets = [] + for mod in ctx.modules: + for configuration in mod.tags.configuration: + all_configuration += configuration.flags + for targets in mod.tags.targets: + all_targets += targets.targets + + _emscripten_cache_repository( + name = "emscripten_cache", + configuration = all_configuration, + targets = all_targets, + ) + +emscripten_cache = module_extension( + tag_classes = { + "configuration": tag_class(attrs = {"flags": attr.string_list()}), + "targets": tag_class(attrs = {"targets": attr.string_list()}), + }, + implementation = _emscripten_cache_impl, +) diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_deps.bzl b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_deps.bzl new file mode 100644 index 0000000..79dca52 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_deps.bzl @@ -0,0 +1,99 @@ +load(":remote_emscripten_repository.bzl", "remote_emscripten_repository") +load(":revisions.bzl", "EMSCRIPTEN_TAGS") + +def _parse_version(v): + return [int(u) for u in v.split(".")] + +def _empty_repository_impl(ctx): + ctx.file("MODULE.bazel", """module(name = "{}")""".format(ctx.name)) + ctx.file("BUILD.bazel", "") + +_empty_repository = repository_rule( + implementation = _empty_repository_impl, +) + +def emscripten_repo_name(name): + return "emscripten_bin_{}".format(name) + +def _emscripten_deps_impl(ctx): + version = None + + for mod in ctx.modules: + for config in mod.tags.config: + if config.version and version != None: + fail("More than one emscripten version specified!") + version = config.version + if version == None: + version = "latest" + + if version == "latest": + version = reversed(sorted(EMSCRIPTEN_TAGS.keys(), key = _parse_version))[0] + + revision = EMSCRIPTEN_TAGS[version] + + emscripten_url = "https://storage.googleapis.com/webassembly/emscripten-releases-builds/{}/{}/wasm-binaries{}.{}" + + remote_emscripten_repository( + name = emscripten_repo_name("linux"), + bin_extension = "", + sha256 = revision.sha_linux, + strip_prefix = "install", + type = "tar.xz", + url = emscripten_url.format("linux", revision.hash, "", "tar.xz"), + ) + + # Not all versions have a linux/arm64 release: https://github.com/emscripten-core/emsdk/issues/547 + if hasattr(revision, "sha_linux_arm64"): + remote_emscripten_repository( + name = emscripten_repo_name("linux_arm64"), + bin_extension = "", + sha256 = revision.sha_linux_arm64, + strip_prefix = "install", + type = "tar.xz", + url = emscripten_url.format("linux", revision.hash, "-arm64", "tar.xz"), + ) + else: + _empty_repository( + name = emscripten_repo_name("linux_arm64"), + ) + + remote_emscripten_repository( + name = emscripten_repo_name("mac"), + bin_extension = "", + sha256 = revision.sha_mac, + strip_prefix = "install", + type = "tar.xz", + url = emscripten_url.format("mac", revision.hash, "", "tar.xz"), + ) + + remote_emscripten_repository( + name = emscripten_repo_name("mac_arm64"), + bin_extension = "", + sha256 = revision.sha_mac_arm64, + strip_prefix = "install", + type = "tar.xz", + url = emscripten_url.format("mac", revision.hash, "-arm64", "tar.xz"), + ) + + remote_emscripten_repository( + name = emscripten_repo_name("win"), + bin_extension = ".exe", + sha256 = revision.sha_win, + strip_prefix = "install", + type = "zip", + url = emscripten_url.format("win", revision.hash, "", "zip"), + ) + +emscripten_deps = module_extension( + tag_classes = { + "config": tag_class( + attrs = { + "version": attr.string( + doc = "Version to use. 'latest' to use latest.", + values = ["latest"] + EMSCRIPTEN_TAGS.keys(), + ), + }, + ), + }, + implementation = _emscripten_deps_impl, +) diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/BUILD.bazel b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/BUILD.bazel new file mode 100644 index 0000000..ebbc2e9 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/BUILD.bazel @@ -0,0 +1,43 @@ +load("//:emscripten_deps.bzl", "emscripten_repo_name") +load("//:remote_emscripten_repository.bzl", "create_toolchains", "emscripten_toolchain_name") +load("@rules_python//python:py_binary.bzl", "py_binary") + +package(default_visibility = ["//visibility:public"]) + +# dlmalloc.bc is implicitly added by the emscripten toolchain +cc_library(name = "malloc") + +create_toolchains( + name = emscripten_toolchain_name("linux"), + repo_name = emscripten_repo_name("linux"), + exec_compatible_with = [ "@platforms//os:linux", "@platforms//cpu:x86_64"], +) + +create_toolchains( + name = emscripten_toolchain_name("linux_arm64"), + repo_name = emscripten_repo_name("linux_arm64"), + exec_compatible_with = ["@platforms//os:linux", "@platforms//cpu:arm64"], +) + +create_toolchains( + name = emscripten_toolchain_name("mac"), + repo_name = emscripten_repo_name("mac"), + exec_compatible_with = ["@platforms//os:macos", "@platforms//cpu:x86_64"], +) + +create_toolchains( + name = emscripten_toolchain_name("mac_arm64"), + repo_name = emscripten_repo_name("mac_arm64"), + exec_compatible_with = ["@platforms//os:macos", "@platforms//cpu:arm64"], +) + +create_toolchains( + name = emscripten_toolchain_name("win"), + repo_name = emscripten_repo_name("win"), + exec_compatible_with = ["@platforms//os:windows", "@platforms//cpu:x86_64"], +) + +py_binary( + name = "wasm_binary", + srcs = ["wasm_binary.py"], +) diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/default_config b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/default_config new file mode 100644 index 0000000..8107fe4 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/default_config @@ -0,0 +1,16 @@ +import os +import platform + +ROOT_DIR = os.environ["ROOT_DIR"] +EMSCRIPTEN_ROOT = os.environ["EMSCRIPTEN"] +BINARYEN_ROOT = os.path.join(ROOT_DIR, os.environ["EM_BIN_PATH"]) +LLVM_ROOT = os.path.join(BINARYEN_ROOT, "bin") +NODE_JS = os.path.join(ROOT_DIR, os.environ["NODE_JS_PATH"]) +FROZEN_CACHE = True + +# This works around an issue with Bazel RBE where the symlinks in node_modules/.bin +# are uploaded as the linked files, which means the cli.js cannot load its +# dependencies from the expected locations. +# See https://github.com/emscripten-core/emscripten/pull/16640 for more +CLOSURE_COMPILER = [NODE_JS, os.path.join(EMSCRIPTEN_ROOT, "node_modules", + "google-closure-compiler", "cli.js")] diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/emar.bat b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/emar.bat new file mode 100644 index 0000000..c806808 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/emar.bat @@ -0,0 +1,5 @@ +@ECHO OFF + +call %~dp0\env.bat + +py -3 %EMSCRIPTEN%\emar.py %* diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/emar.sh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/emar.sh new file mode 100755 index 0000000..b4ead6e --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/emar.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +source $(dirname $0)/env.sh + +exec python3 $EMSCRIPTEN/emar.py "$@" diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/emcc.bat b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/emcc.bat new file mode 100644 index 0000000..4088bc4 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/emcc.bat @@ -0,0 +1,5 @@ +@ECHO OFF + +call %~dp0\env.bat + +py -3 %EMSCRIPTEN%\emcc.py %* diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/emcc.sh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/emcc.sh new file mode 100755 index 0000000..5fdaf9c --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/emcc.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +source $(dirname $0)/env.sh + +exec python3 $EMSCRIPTEN/emcc.py "$@" diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/emcc_link.bat b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/emcc_link.bat new file mode 100644 index 0000000..f49cb0d --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/emcc_link.bat @@ -0,0 +1,5 @@ +@ECHO OFF + +call %~dp0\env.bat + +py -3 %~dp0\link_wrapper.py %* diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/emcc_link.sh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/emcc_link.sh new file mode 100755 index 0000000..44f3235 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/emcc_link.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +source $(dirname $0)/env.sh + +exec python3 $(dirname $0)/link_wrapper.py "$@" diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/env.bat b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/env.bat new file mode 100644 index 0000000..c791ff7 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/env.bat @@ -0,0 +1,6 @@ +@ECHO OFF + +set ROOT_DIR=%EXT_BUILD_ROOT% +if "%ROOT_DIR%"=="" set ROOT_DIR=%CD% +set EMSCRIPTEN=%ROOT_DIR%\%EM_BIN_PATH%\emscripten +set EM_CONFIG=%ROOT_DIR%\%EM_CONFIG_PATH% diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/env.sh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/env.sh new file mode 100755 index 0000000..b2a6bd6 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/env.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +export ROOT_DIR=${EXT_BUILD_ROOT:-$(pwd -P)} +export EMSCRIPTEN=$ROOT_DIR/$EM_BIN_PATH/emscripten +export EM_CONFIG=$ROOT_DIR/$EM_CONFIG_PATH diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/link_wrapper.py b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/link_wrapper.py new file mode 100755 index 0000000..6a6fe2f --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/link_wrapper.py @@ -0,0 +1,167 @@ +#!/usr/bin/env python +"""wrapper around emcc link step. + +This wrapper currently serves the following purposes. + +1. When building with --config=wasm the final output is multiple files, usually + at least one .js and one .wasm file. Since the cc_binary link step only + allows a single output, we must tar up the outputs into a single file. + +2. Add quotes around arguments that need them in the response file to work + around a bazel quirk. + +3. Ensure the external_debug_info section of the wasm points at the correct + bazel path. +""" + +from __future__ import print_function + +import argparse +import os +import subprocess +import sys + +# Only argument should be @path/to/parameter/file +assert sys.argv[1][0] == '@', sys.argv +param_filename = sys.argv[1][1:] +param_file_args = [line.strip() for line in open(param_filename, 'r').readlines()] + +# Re-write response file if needed. +if any(' ' in a for a in param_file_args): + new_param_filename = param_filename + '.modified' + with open(new_param_filename, 'w') as f: + for param in param_file_args: + if ' ' in param: + f.write('"%s"' % param) + else: + f.write(param) + f.write('\n') + sys.argv[1] = '@' + new_param_filename + +emcc_py = os.path.join(os.environ['EMSCRIPTEN'], 'emcc.py') +rtn = subprocess.call([sys.executable, emcc_py] + sys.argv[1:]) +if rtn != 0: + sys.exit(1) + +# Parse the arguments that we gave to the linker to determine what the output +# file is named and what the output format is. +parser = argparse.ArgumentParser(add_help=False) +parser.add_argument('-o') +parser.add_argument('--oformat') +options = parser.parse_known_args(param_file_args)[0] +output_file = options.o +oformat = options.oformat +outdir = os.path.normpath(os.path.dirname(output_file)) +base_name = os.path.basename(output_file) + +# The output file name is the name of the build rule that was built. +# Add an appropriate file extension based on --oformat. +if oformat is not None: + base_name_split = os.path.splitext(base_name) + + # If the output name has no extension, give it the appropriate extension. + if not base_name_split[1]: + os.replace(output_file, output_file + '.' + oformat) + + # If the output name does have an extension and it matches the output format, + # change the base_name so it doesn't have an extension. + elif base_name_split[1] == '.' + oformat: + base_name = base_name_split[0] + + # If the output name does have an extension and it does not match the output + # format, change the base_name so it doesn't have an extension and rename + # the output_file so it has the proper extension. + # Note that if you do something like name your build rule "foo.js" and pass + # "--oformat=html", emscripten will write to the same file for both the js and + # html output, overwriting the js output entirely with the html. + # Please don't do that. + else: + base_name = base_name_split[0] + os.replace(output_file, os.path.join(outdir, base_name + '.' + oformat)) + +files = [] +extensions = [ + '.js', + '.wasm', + '.wasm.map', + '.js.mem', + '.fetch.js', + '.worker.js', + '.data', + '.js.symbols', + '.wasm.debug.wasm', + '.html', + '.aw.js' +] + +for ext in extensions: + filename = base_name + ext + if os.path.exists(os.path.join(outdir, filename)): + files.append(filename) + +wasm_base = os.path.join(outdir, base_name + '.wasm') +if os.path.exists(wasm_base + '.debug.wasm') and os.path.exists(wasm_base): + # If we have a .wasm.debug.wasm file and a .wasm file, we need to rewrite the + # section in the .wasm file that refers to it. The path that's in there + # is the blaze output path; we want it to be just the filename. + + llvm_objcopy = os.path.join( + os.environ['EM_BIN_PATH'], 'bin/llvm-objcopy') + # First, check to make sure the .wasm file has the header that needs to be + # rewritten. + rtn = subprocess.call([ + llvm_objcopy, + '--dump-section=external_debug_info=/dev/null', + wasm_base], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + if rtn == 0: + # If llvm-objcopy did not return an error, the external_debug_info section + # must exist, so we're good to continue. + + # Next we need to convert length of the filename to LEB128. + # Start by converting the length of the filename to a bit string. + bit_string = '{0:b}'.format(len(base_name + '.wasm.debug.wasm')) + + # Pad the bit string with 0s so that its length is a multiple of 7. + while len(bit_string) % 7 != 0: + bit_string = '0' + bit_string + + # Break up our bit string into chunks of 7. + # We do this backwards because the final format is little-endian. + final_bytes = bytearray() + for i in reversed(range(0, len(bit_string), 7)): + binary_part = bit_string[i:i + 7] + if i != 0: + # Every chunk except the last one needs to be prepended with '1'. + # The length of each chunk is 7, so that one has an implicit '0'. + binary_part = '1' + binary_part + final_bytes.append(int(binary_part, 2)) + # Finally, add the actual filename. + final_bytes.extend((base_name + '.wasm.debug.wasm').encode()) + + # Write our length + filename bytes to a temp file. + with open(base_name + '_debugsection.tmp', 'wb+') as f: + f.write(final_bytes) + f.close() + + # First delete the old section. + subprocess.check_call([ + llvm_objcopy, + wasm_base, + '--remove-section=external_debug_info']) + # Rewrite section with the new size and filename from the temp file. + subprocess.check_call([ + llvm_objcopy, + wasm_base, + '--add-section=external_debug_info=' + base_name + '_debugsection.tmp']) + +# Make sure we have at least one output file. +if not len(files): + print('emcc.py did not appear to output any known files!') + sys.exit(1) + +# cc_binary must output exactly one file; put all the output files in a tarball. +cmd = ['tar', 'cf', base_name + '.tar'] + files +subprocess.check_call(cmd, cwd=outdir) +os.replace(os.path.join(outdir, base_name + '.tar'), output_file) + +sys.exit(0) diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/toolchain.bzl b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/toolchain.bzl new file mode 100644 index 0000000..ae2939f --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/toolchain.bzl @@ -0,0 +1,1147 @@ +"""This module encapsulates logic to create emscripten_cc_toolchain_config rule.""" + +load( + "@bazel_tools//tools/cpp:cc_toolchain_config_lib.bzl", + "action_config", + "env_entry", + "env_set", + "feature", + "feature_set", + "flag_group", + "tool", + "tool_path", + "variable_with_value", + "with_feature_set", + _flag_set = "flag_set", +) +load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "ACTION_NAMES") + +def flag_set(flags = None, features = None, not_features = None, **kwargs): + """Extension to flag_set which allows for a "simple" form. + + The simple form allows specifying flags as a simple list instead of a flag_group + if enable_if or expand_if semantics are not required. + + Similarly, the simple form allows passing features/not_features if they are a simple + list of semantically "and" features. + (i.e. "asan" and "dbg", rather than "asan" or "dbg") + + Args: + flags: list, set of flags + features: list, set of features required to be enabled. + not_features: list, set of features required to not be enabled. + **kwargs: The rest of the args for flag_set. + + Returns: + flag_set + """ + if flags: + if kwargs.get("flag_groups"): + fail("Cannot set flags and flag_groups") + else: + kwargs["flag_groups"] = [flag_group(flags = flags)] + + if features or not_features: + if kwargs.get("with_features"): + fail("Cannot set features/not_feature and with_features") + kwargs["with_features"] = [with_feature_set( + features = features or [], + not_features = not_features or [], + )] + return _flag_set(**kwargs) + +CROSSTOOL_DEFAULT_WARNINGS = [ + "-Wall", +] + +def _impl(ctx): + target_cpu = ctx.attr.cpu + toolchain_identifier = "emscripten-" + target_cpu + target_system_name = target_cpu + "-unknown-emscripten" + + host_system_name = "i686-unknown-linux-gnu" + + target_libc = "musl/js" + + abi_version = "emscripten_syscalls" + + compiler = "emscripten" + abi_libc_version = "default" + + cc_target_os = "emscripten" + + emscripten_dir = ctx.attr.emscripten_binaries.label.workspace_root + + nodejs_path = ctx.file.nodejs_bin.path + + builtin_sysroot = emscripten_dir + "/emscripten/cache/sysroot" + + emcc_script = "emcc.%s" % ctx.attr.script_extension + emcc_link_script = "emcc_link.%s" % ctx.attr.script_extension + emar_script = "emar.%s" % ctx.attr.script_extension + + ################################################################ + # Tools + ################################################################ + clang_tool = tool(path = emcc_script) + clif_match_tool = tool(path = "dummy_clif_matcher") + link_tool = tool(path = emcc_link_script) + archive_tool = tool(path = emar_script) + strip_tool = tool(path = "NOT_USED_STRIP_TOOL") + + #### Legacy tool paths (much of this is redundant with action_configs, but + #### these are still used for some things) + tool_paths = [ + tool_path(name = "ar", path = emar_script), + tool_path(name = "cpp", path = "/bin/false"), + tool_path(name = "gcc", path = emcc_script), + tool_path(name = "gcov", path = "/bin/false"), + tool_path(name = "ld", path = emcc_link_script), + tool_path(name = "nm", path = "NOT_USED"), + tool_path(name = "objdump", path = "/bin/false"), + tool_path(name = "strip", path = "NOT_USED"), + ] + + ################################################################ + # Action Configs + ################################################################ + + cpp_compile_action = action_config( + action_name = ACTION_NAMES.cpp_compile, + tools = [clang_tool], + ) + + cpp_module_compile_action = action_config( + action_name = ACTION_NAMES.cpp_module_compile, + tools = [clang_tool], + ) + + cpp_module_codegen_action = action_config( + action_name = ACTION_NAMES.cpp_module_codegen, + tools = [clang_tool], + ) + + clif_match_action = action_config( + action_name = ACTION_NAMES.clif_match, + tools = [clif_match_tool], + ) + + cpp_link_dynamic_library_action = action_config( + action_name = ACTION_NAMES.cpp_link_dynamic_library, + tools = [link_tool], + ) + + strip_action = action_config( + action_name = ACTION_NAMES.strip, + tools = [strip_tool], + ) + + preprocess_assemble_action = action_config( + action_name = ACTION_NAMES.preprocess_assemble, + tools = [clang_tool], + ) + + cpp_header_parsing_action = action_config( + action_name = ACTION_NAMES.cpp_header_parsing, + tools = [clang_tool], + ) + + cpp_link_static_library_action = action_config( + action_name = ACTION_NAMES.cpp_link_static_library, + enabled = True, + flag_sets = [ + flag_set( + flag_groups = [ + flag_group( + flags = ["rcsD", "%{output_execpath}"], + expand_if_available = "output_execpath", + ), + ], + ), + flag_set( + flag_groups = [ + flag_group( + iterate_over = "libraries_to_link", + flag_groups = [ + flag_group( + flags = ["%{libraries_to_link.name}"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file", + ), + ), + flag_group( + flags = ["%{libraries_to_link.object_files}"], + iterate_over = "libraries_to_link.object_files", + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file_group", + ), + ), + ], + expand_if_available = "libraries_to_link", + ), + ], + ), + flag_set( + flag_groups = [ + flag_group( + flags = ["@%{linker_param_file}"], + expand_if_available = "linker_param_file", + ), + ], + ), + ], + tools = [archive_tool], + ) + + c_compile_action = action_config( + action_name = ACTION_NAMES.c_compile, + tools = [clang_tool], + ) + + linkstamp_compile_action = action_config( + action_name = ACTION_NAMES.linkstamp_compile, + tools = [clang_tool], + ) + + assemble_action = action_config( + action_name = ACTION_NAMES.assemble, + tools = [clang_tool], + ) + + cpp_link_executable_action = action_config( + action_name = ACTION_NAMES.cpp_link_executable, + tools = [link_tool], + ) + + cpp_link_nodeps_dynamic_library_action = action_config( + action_name = ACTION_NAMES.cpp_link_nodeps_dynamic_library, + tools = [link_tool], + ) + + action_configs = [ + strip_action, + c_compile_action, + cpp_compile_action, + linkstamp_compile_action, + assemble_action, + preprocess_assemble_action, + cpp_header_parsing_action, + cpp_module_compile_action, + cpp_module_codegen_action, + cpp_link_executable_action, + cpp_link_dynamic_library_action, + cpp_link_nodeps_dynamic_library_action, + cpp_link_static_library_action, + clif_match_action, + ] + + all_compile_actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.clif_match, + ACTION_NAMES.lto_backend, + ] + + all_cpp_compile_actions = [ + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.clif_match, + ] + + preprocessor_compile_actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.clif_match, + ] + + all_link_actions = [ + ACTION_NAMES.cpp_link_executable, + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ] + + ################################################################ + # Features + ################################################################ + + features = [ + # This set of magic "feature"s are important configuration information for blaze. + feature(name = "no_legacy_features", enabled = True), + feature( + name = "has_configured_linker_path", + enabled = True, + ), + + # Blaze requests this feature by default, but we don't care. + feature(name = "dependency_file"), + + # Blaze requests this feature by default, but we don't care. + feature(name = "random_seed"), + + # Formerly "needsPic" attribute + feature(name = "supports_pic", enabled = False), + + # Blaze requests this feature by default. + # Blaze also tests if this feature is supported, before setting the "pic" build-variable. + feature(name = "pic"), + + # Blaze requests this feature by default. + # Blaze also tests if this feature is supported before setting preprocessor_defines + # (...but why?) + feature(name = "preprocessor_defines"), + + # Blaze requests this feature by default. + # Blaze also tests if this feature is supported before setting includes. (...but why?) + feature(name = "include_paths"), + + # Blaze tests if this feature is enabled in order to create implicit + # "nodeps" .so outputs from cc_library rules. + feature(name = "supports_dynamic_linker", enabled = False), + + # Blaze requests this feature when linking a cc_binary which is + # "dynamic" aka linked against nodeps-dynamic-library cc_library + # outputs. + feature(name = "dynamic_linking_mode"), + + #### Configuration features + feature( + name = "crosstool_cpu", + enabled = True, + implies = ["crosstool_cpu_" + target_cpu], + ), + feature( + name = "crosstool_cpu_asmjs", + provides = ["variant:crosstool_cpu"], + ), + feature( + name = "crosstool_cpu_wasm", + provides = ["variant:crosstool_cpu"], + ), + + # These 3 features will be automatically enabled by blaze in the + # corresponding build mode. + feature( + name = "opt", + provides = ["variant:crosstool_build_mode"], + ), + feature( + name = "dbg", + provides = ["variant:crosstool_build_mode"], + ), + feature( + name = "fastbuild", + provides = ["variant:crosstool_build_mode"], + ), + + # Feature to prevent 'command line too long' issues + feature( + name = "archive_param_file", + enabled = True, + ), + feature( + name = "compiler_param_file", + enabled = True, + ), + + #### User-settable features + + # Set if enabling exceptions. + feature(name = "exceptions"), + + # This feature overrides the default optimization to prefer execution speed + # over binary size (like clang -O3). + feature( + name = "optimized_for_speed", + provides = ["variant:crosstool_optimization_mode"], + ), + + # This feature overrides the default optimization to prefer binary size over + # execution speed (like clang -Oz). + feature( + name = "optimized_for_size", + provides = ["variant:crosstool_optimization_mode"], + ), + + # Convenience aliases / alt-spellings. + feature( + name = "optimize_for_speed", + implies = ["optimized_for_speed"], + ), + feature( + name = "optimize_for_size", + implies = ["optimized_for_size"], + ), + + # This feature allows easier use of profiling tools by preserving mangled + # C++ names. This does everything profiling_funcs does and more. + feature(name = "profiling"), + + # This feature emits only enough debug info for function names to appear + # in profiles. + feature(name = "profiling_funcs"), + + # This feature allows source maps to be generated. + feature( + name = "source_maps", + implies = ["full_debug_info"], + ), + feature( + name = "dwarf_debug_info", + implies = ["profiling"], + ), + + # Turns on full debug info (-g4). + feature(name = "full_debug_info"), + + # Enables the use of "Emscripten" Pthread implementation. + # https://kripken.github.io/emscripten-site/docs/porting/pthreads.html + # https://github.com/kripken/emscripten/wiki/Pthreads-with-WebAssembly + feature(name = "use_pthreads"), + + # If enabled, the runtime will exit when main() completes. + feature(name = "exit_runtime"), + + # Primarily for toolchain maintainers: + feature(name = "emcc_debug"), + feature(name = "emcc_debug_link"), + feature( + name = "llvm_backend", + requires = [feature_set(features = ["crosstool_cpu_wasm"])], + enabled = True, + ), + + # Remove once flag is flipped. + # See https://github.com/bazelbuild/bazel/issues/7687 + feature( + name = "do_not_split_linking_cmdline", + ), + + # Adds simd support, only available with the llvm backend. + feature( + name = "wasm_simd", + requires = [feature_set(features = ["llvm_backend"])], + ), + # Adds relaxed-simd support, only available with the llvm backend. + feature( + name = "wasm_relaxed_simd", + requires = [feature_set(features = ["llvm_backend"])], + ), + feature( + name = "precise_long_double_printf", + enabled = True, + ), + feature( + name = "wasm_warnings_as_errors", + enabled = False, + ), + + # ASan and UBSan. See also: + # https://emscripten.org/docs/debugging/Sanitizers.html + feature(name = "wasm_asan"), + feature(name = "wasm_ubsan"), + feature( + name = "output_format_js", + enabled = True, + ), + feature( + name = "wasm_standalone", + ), + ] + + crosstool_default_flag_sets = [ + # Compile, Link, and CC_FLAGS make variable + flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.clif_match, + ACTION_NAMES.cpp_link_executable, + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ], + flag_groups = [ + flag_group( + flags = ["--sysroot=%{sysroot}"], + expand_if_available = "sysroot", + ), + ], + ), + # Compile + Link + flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.clif_match, + ACTION_NAMES.cpp_link_executable, + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ], + # This forces color diagnostics even on Forge (where we don't have an + # attached terminal). + flags = [ + "-fdiagnostics-color", + ], + ), + # C++ compiles (and implicitly link) + flag_set( + actions = all_cpp_compile_actions, + flags = [ + "-fno-exceptions", + ], + not_features = ["exceptions"], + ), + flag_set( + actions = all_cpp_compile_actions, + flags = [ + "-fexceptions", + ], + features = ["exceptions"], + ), + # All compiles (and implicitly link) + flag_set( + actions = all_compile_actions + + all_link_actions, + flags = [ + "-fno-strict-aliasing", + "-funsigned-char", + "-no-canonical-prefixes", + ], + ), + # Language Features + flag_set( + actions = all_cpp_compile_actions, + flags = ["-std=gnu++17", "-nostdinc", "-nostdinc++"], + ), + + # Emscripten-specific settings: + flag_set( + actions = all_compile_actions + all_link_actions, + flags = ["-s", "WASM=0"], + features = ["crosstool_cpu_asmjs"], + ), + flag_set( + actions = all_compile_actions + + all_link_actions, + flags = ["-s", "USE_PTHREADS=1"], + features = ["use_pthreads"], + ), + flag_set( + actions = all_link_actions, + flags = ["-s", "EXIT_RUNTIME=1"], + features = ["exit_runtime"], + ), + flag_set( + actions = all_compile_actions + all_link_actions, + flags = ["-pthread"], + features = ["llvm_backend", "use_pthreads"], + ), + flag_set( + actions = all_compile_actions + all_link_actions, + flags = ["-msimd128"], + features = ["wasm_simd"], + ), + flag_set( + actions = all_compile_actions + all_link_actions, + flags = ["-msimd128", "-mrelaxed-simd"], + features = ["wasm_relaxed_simd"], + ), + flag_set( + actions = all_link_actions, + flags = ["-s", "PRINTF_LONG_DOUBLE=1"], + features = ["precise_long_double_printf"], + ), + flag_set( + actions = all_link_actions, + flags = ["--oformat=js"], + features = ["output_format_js"], + ), + + # Opt + flag_set( + actions = preprocessor_compile_actions, + flags = ["-DNDEBUG"], + features = ["opt"], + ), + flag_set( + actions = all_compile_actions, + flags = ["-fomit-frame-pointer"], + features = ["opt"], + ), + flag_set( + actions = all_compile_actions + + all_link_actions, + flags = ["-O2"], + features = ["opt"], + ), + + # Users can override opt-level with semantic names... + flag_set( + actions = all_compile_actions + + all_link_actions, + flags = ["-Oz"], + features = ["optimized_for_size", "opt"], + ), + flag_set( + actions = all_compile_actions + + all_link_actions, + flags = ["-O3"], + features = ["optimized_for_speed", "opt"], + ), + + # Fastbuild + flag_set( + actions = all_compile_actions, + flags = ["-fomit-frame-pointer"], + features = ["fastbuild"], + ), + flag_set( + actions = all_compile_actions + + all_link_actions, + flags = ["-O0"], + features = ["fastbuild"], + ), + + # Dbg + flag_set( + actions = all_compile_actions, + flags = ["-fno-omit-frame-pointer"], + features = ["dbg"], + ), + flag_set( + actions = all_compile_actions + + all_link_actions, + flags = ["-g", "-O0"], + features = ["dbg"], + ), + flag_set( + actions = all_compile_actions + + all_link_actions, + flags = [ + "-g", + "-fsanitize=address", + "-O1", + "-DADDRESS_SANITIZER=1", + "-fno-omit-frame-pointer", + ], + features = ["wasm_asan"], + ), + flag_set( + actions = all_compile_actions + + all_link_actions, + flags = [ + "-g4", + "-fsanitize=undefined", + "-O1", + "-DUNDEFINED_BEHAVIOR_SANITIZER=1", + "-fno-omit-frame-pointer", + "-fno-sanitize=vptr", + ], + features = ["wasm_ubsan"], + ), + + # Profiling provides full debug info and a special --profiling flag + # to control name mangling + flag_set( + actions = all_link_actions, + flags = ["--profiling"], + features = ["profiling"], + ), + flag_set( + actions = all_link_actions, + flags = ["--profiling_funcs"], + features = ["profiling_funcs"], + ), + flag_set( + actions = all_compile_actions + + all_link_actions, + flags = ["-g4"], + features = ["full_debug_info"], + ), + flag_set( + actions = all_link_actions, + flags = ["-gseparate-dwarf"], + features = ["dwarf_debug_info"], + ), + flag_set( + actions = all_compile_actions + + all_link_actions, + flags = ["-fdebug-compilation-dir=."], + features = ["dwarf_debug_info"], + ), + # Generic warning flag list + flag_set( + actions = all_compile_actions, + flags = CROSSTOOL_DEFAULT_WARNINGS, + ), + + # Defines and Includes and Paths and such + flag_set( + actions = all_compile_actions, + flag_groups = [ + flag_group(flags = ["-fPIC"], expand_if_available = "pic"), + ], + ), + flag_set( + actions = preprocessor_compile_actions, + flag_groups = [ + flag_group( + flags = ["-D%{preprocessor_defines}"], + iterate_over = "preprocessor_defines", + ), + ], + ), + flag_set( + actions = preprocessor_compile_actions, + flag_groups = [ + flag_group( + flags = ["-include", "%{includes}"], + iterate_over = "includes", + expand_if_available = "includes", + ), + ], + ), + flag_set( + actions = preprocessor_compile_actions, + flag_groups = [ + flag_group( + flags = ["-iquote", "%{quote_include_paths}"], + iterate_over = "quote_include_paths", + ), + flag_group( + flags = ["-I%{include_paths}"], + iterate_over = "include_paths", + ), + flag_group( + flags = ["-isystem", "%{system_include_paths}"], + iterate_over = "system_include_paths", + ), + ], + ), + + ## Linking options (not libs -- those go last) + + # Generic link options + flag_set( + actions = [ + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ], + flags = ["-shared"], + ), + + # Linker search paths and objects: + flag_set( + actions = all_link_actions, + flag_groups = [ + flag_group( + iterate_over = "runtime_library_search_directories", + flag_groups = [ + flag_group( + flags = [ + "-Wl,-rpath,$EXEC_ORIGIN/%{runtime_library_search_directories}", + ], + expand_if_true = "is_cc_test", + ), + flag_group( + flags = [ + "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}", + ], + expand_if_false = "is_cc_test", + ), + ], + expand_if_available = "runtime_library_search_directories", + ), + ], + ), + flag_set( + actions = all_link_actions, + flag_groups = [ + flag_group( + flags = ["-L%{library_search_directories}"], + iterate_over = "library_search_directories", + expand_if_available = "library_search_directories", + ), + ], + ), + flag_set( + actions = all_link_actions, + flag_groups = [ + flag_group( + # This is actually a list of object files from the linkstamp steps + flags = ["%{linkstamp_paths}"], + iterate_over = "linkstamp_paths", + expand_if_available = "linkstamp_paths", + ), + ], + ), + flag_set( + actions = all_link_actions, + flag_groups = [ + flag_group( + flags = ["@%{thinlto_param_file}"], + expand_if_available = "libraries_to_link", + expand_if_true = "thinlto_param_file", + ), + flag_group( + iterate_over = "libraries_to_link", + flag_groups = [ + flag_group( + flags = ["-Wl,--start-lib"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file_group", + ), + ), + flag_group( + flags = ["-Wl,-whole-archive"], + expand_if_true = "libraries_to_link.is_whole_archive", + ), + flag_group( + flags = ["%{libraries_to_link.object_files}"], + iterate_over = "libraries_to_link.object_files", + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file_group", + ), + ), + flag_group( + flags = ["%{libraries_to_link.name}"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file", + ), + ), + flag_group( + flags = ["%{libraries_to_link.name}"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "interface_library", + ), + ), + flag_group( + flags = ["%{libraries_to_link.name}"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "static_library", + ), + ), + flag_group( + flags = ["-l%{libraries_to_link.name}"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "dynamic_library", + ), + ), + flag_group( + flags = ["-l:%{libraries_to_link.name}"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "versioned_dynamic_library", + ), + ), + flag_group( + flags = ["-Wl,-no-whole-archive"], + expand_if_true = "libraries_to_link.is_whole_archive", + ), + flag_group( + flags = ["-Wl,--end-lib"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file_group", + ), + ), + ], + expand_if_available = "libraries_to_link", + ), + ], + ), + + # Configure the header parsing and preprocessing. + flag_set( + actions = [ACTION_NAMES.cpp_header_parsing], + flags = ["-xc++-header", "-fsyntax-only"], + features = ["parse_headers"], + ), + + # Note: user compile flags should be nearly last -- you probably + # don't want to put any more features after this! + flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.clif_match, + ], + flag_groups = [ + flag_group( + flags = ["%{user_compile_flags}"], + iterate_over = "user_compile_flags", + expand_if_available = "user_compile_flags", + ), + ], + ), + flag_set( + actions = all_link_actions, + flag_groups = [ + flag_group( + flags = ["%{user_link_flags}"], + iterate_over = "user_link_flags", + expand_if_available = "user_link_flags", + ), + ], + ), + ## Options which need to go late -- after all the user options -- go here. + flag_set( + # One might hope that these options would only be needed for C++ + # compiles. But, sadly, users compile ".c" files with custom + # copts=["-x", "c++"], and expect that to be able to find C++ stdlib + # headers. It might be worth pondering how blaze could support this sort + # of use-case better. + actions = preprocessor_compile_actions + + [ACTION_NAMES.cc_flags_make_variable], + flags = [ + "-iwithsysroot" + "/include/c++/v1", + "-iwithsysroot" + "/include/compat", + "-iwithsysroot" + "/include", + "-isystem", + emscripten_dir + "/lib/clang/21/include", + ], + ), + # Inputs and outputs + flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.clif_match, + ], + flag_groups = [ + flag_group( + flags = ["-MD", "-MF", "%{dependency_file}"], + expand_if_available = "dependency_file", + ), + ], + ), + flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.clif_match, + ], + flag_groups = [ + flag_group( + flags = ["-c", "%{source_file}"], + expand_if_available = "source_file", + ), + ], + ), + flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.clif_match, + ], + flag_groups = [ + flag_group( + flags = ["-S"], + expand_if_available = "output_assembly_file", + ), + flag_group( + flags = ["-E"], + expand_if_available = "output_preprocess_file", + ), + flag_group( + flags = ["-o", "%{output_file}"], + expand_if_available = "output_file", + ), + ], + ), + flag_set( + actions = all_link_actions, + flag_groups = [ + flag_group( + flags = ["-o", "%{output_execpath}"], + expand_if_available = "output_execpath", + ), + ], + ), + # And finally, the params file! + flag_set( + actions = all_link_actions, + flag_groups = [ + flag_group( + flags = ["@%{linker_param_file}"], + expand_if_available = "linker_param_file", + ), + ], + ), + flag_set( + actions = all_compile_actions, + flags = [ + "-Wno-builtin-macro-redefined", + # Genrules may not escape quotes enough for these, so + # don't put them into $(CC_FLAGS): + '-D__DATE__="redacted"', + '-D__TIMESTAMP__="redacted"', + '-D__TIME__="redacted"', + ], + ), + flag_set( + actions = all_compile_actions, + flags = ["-Werror"], + features = ["wasm_warnings_as_errors"], + ), + flag_set( + actions = all_link_actions, + flags = ["-sSTANDALONE_WASM"], + features = ["wasm_standalone"], + ), + ] + + crosstool_default_env_sets = [ + # Globals + env_set( + actions = all_compile_actions + + all_link_actions + + [ACTION_NAMES.cpp_link_static_library], + env_entries = [ + env_entry( + key = "EM_BIN_PATH", + value = emscripten_dir, + ), + env_entry( + key = "EM_CONFIG_PATH", + value = ctx.file.em_config.path, + ), + env_entry( + key = "NODE_JS_PATH", + value = nodejs_path, + ), + ], + ), + # Use llvm backend. Off by default, enabled via --features=llvm_backend + env_set( + actions = all_compile_actions + + all_link_actions + + [ACTION_NAMES.cpp_link_static_library], + env_entries = [env_entry(key = "EMCC_WASM_BACKEND", value = "1")], + with_features = [with_feature_set(features = ["llvm_backend"])], + ), + # Debug compile and link. Off by default, enabled via --features=emcc_debug + env_set( + actions = all_compile_actions, + env_entries = [env_entry(key = "EMCC_DEBUG", value = "1")], + with_features = [with_feature_set(features = ["emcc_debug"])], + ), + + # Debug only link step. Off by default, enabled via --features=emcc_debug_link + env_set( + actions = all_link_actions, + env_entries = [env_entry(key = "EMCC_DEBUG", value = "1")], + with_features = [ + with_feature_set(features = ["emcc_debug"]), + with_feature_set(features = ["emcc_debug_link"]), + ], + ), + ] + + crosstool_default_flags_feature = feature( + name = "crosstool_default_flags", + enabled = True, + flag_sets = crosstool_default_flag_sets, + env_sets = crosstool_default_env_sets, + ) + + features.append(crosstool_default_flags_feature) + + cxx_builtin_include_directories = [ + emscripten_dir + "/emscripten/cache/sysroot/include/c++/v1", + emscripten_dir + "/emscripten/cache/sysroot/include/compat", + emscripten_dir + "/emscripten/cache/sysroot/include", + emscripten_dir + "/lib/clang/21/include", + ] + + artifact_name_patterns = [] + + make_variables = [] + + return cc_common.create_cc_toolchain_config_info( + ctx = ctx, + features = features, + action_configs = action_configs, + artifact_name_patterns = artifact_name_patterns, + cxx_builtin_include_directories = cxx_builtin_include_directories, + toolchain_identifier = toolchain_identifier, + host_system_name = host_system_name, + target_system_name = target_system_name, + target_cpu = target_cpu, + target_libc = target_libc, + compiler = compiler, + abi_version = abi_version, + abi_libc_version = abi_libc_version, + tool_paths = tool_paths, + make_variables = make_variables, + builtin_sysroot = builtin_sysroot, + cc_target_os = cc_target_os, + ) + +emscripten_cc_toolchain_config_rule = rule( + implementation = _impl, + attrs = { + "cpu": attr.string(mandatory = True, values = ["asmjs", "wasm"]), + "em_config": attr.label(mandatory = True, allow_single_file = True), + "emscripten_binaries": attr.label(mandatory = True, cfg = "exec"), + "nodejs_bin": attr.label(mandatory = True, allow_single_file = True), + "script_extension": attr.string(mandatory = True, values = ["sh", "bat"]), + }, + provides = [CcToolchainConfigInfo], +) diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/wasm_binary.py b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/wasm_binary.py new file mode 100644 index 0000000..d7d6142 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/wasm_binary.py @@ -0,0 +1,56 @@ +"""Unpackages a bazel emscripten archive for use in a bazel BUILD rule. + +This script will take a tar archive containing the output of the emscripten +toolchain. This file contains any output files produced by a wasm_cc_binary or a +cc_binary built with --config=wasm. The files are extracted into the given +output paths. + +The contents of the archive are expected to match the given outputs extnames. + +This script and its accompanying Bazel rule should allow you to extract a +WebAssembly binary into a larger web application. +""" + +import argparse +import os +import tarfile + + +def ensure(f): + if not os.path.exists(f): + with open(f, 'w'): + pass + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--archive', help='The archive to extract from.') + parser.add_argument('--outputs', help='Comma separated list of files that should be extracted from the archive. Only the extname has to match a file in the archive.') + parser.add_argument('--allow_empty_outputs', help='If an output listed in --outputs does not exist, create it anyways.', action='store_true') + args = parser.parse_args() + + args.archive = os.path.normpath(args.archive) + args.outputs = args.outputs.split(",") + + tar = tarfile.open(args.archive) + + for member in tar.getmembers(): + extname = '.' + member.name.split('.', 1)[1] + for idx, output in enumerate(args.outputs): + if output.endswith(extname): + member_file = tar.extractfile(member) + with open(output, "wb") as output_file: + output_file.write(member_file.read()) + args.outputs.pop(idx) + break + + for output in args.outputs: + extname = '.' + output.split('.', 1)[1] + if args.allow_empty_outputs: + ensure(output) + else: + print("[ERROR] Archive does not contain file with extname: %s" % extname) + + +if __name__ == '__main__': + main() diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/wasm_cc_binary.bzl b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/wasm_cc_binary.bzl new file mode 100644 index 0000000..3cc6014 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/wasm_cc_binary.bzl @@ -0,0 +1,231 @@ +"""wasm_cc_binary rule for compiling C++ targets to WebAssembly. +""" + +def _wasm_transition_impl(settings, attr): + _ignore = (settings, attr) + + features = list(settings["//command_line_option:features"]) + linkopts = list(settings["//command_line_option:linkopt"]) + + if attr.threads == "emscripten": + # threads enabled + features.append("use_pthreads") + elif attr.threads == "off": + # threads disabled + features.append("-use_pthreads") + + if attr.exit_runtime == True: + features.append("exit_runtime") + + if attr.backend == "llvm": + features.append("llvm_backend") + elif attr.backend == "emscripten": + features.append("-llvm_backend") + + if attr.simd: + features.append("wasm_simd") + + platform = "@emsdk//:platform_wasm" + if attr.standalone: + platform = "@emsdk//:platform_wasi" + features.append("wasm_standalone") + + return { + "//command_line_option:compiler": "emscripten", + "//command_line_option:cpu": "wasm", + "//command_line_option:features": features, + "//command_line_option:dynamic_mode": "off", + "//command_line_option:linkopt": linkopts, + "//command_line_option:platforms": [platform], + # This is hardcoded to an empty cc_library because the malloc library + # is implicitly added by the emscripten toolchain + "//command_line_option:custom_malloc": "@emsdk//emscripten_toolchain:malloc", + } + +_wasm_transition = transition( + implementation = _wasm_transition_impl, + inputs = [ + "//command_line_option:features", + "//command_line_option:linkopt", + ], + outputs = [ + "//command_line_option:compiler", + "//command_line_option:cpu", + "//command_line_option:features", + "//command_line_option:dynamic_mode", + "//command_line_option:linkopt", + "//command_line_option:platforms", + "//command_line_option:custom_malloc", + ], +) + +_ALLOW_OUTPUT_EXTNAMES = [ + ".js", + ".wasm", + ".wasm.map", + ".worker.js", + ".js.mem", + ".data", + ".fetch.js", + ".js.symbols", + ".wasm.debug.wasm", + ".html", + ".aw.js", +] + +_WASM_BINARY_COMMON_ATTRS = { + "backend": attr.string( + default = "_default", + values = ["_default", "emscripten", "llvm"], + ), + "cc_target": attr.label( + cfg = _wasm_transition, + mandatory = True, + ), + "exit_runtime": attr.bool( + default = False, + ), + "threads": attr.string( + default = "_default", + values = ["_default", "emscripten", "off"], + ), + "simd": attr.bool( + default = False, + ), + "standalone": attr.bool( + default = False, + ), + "_allowlist_function_transition": attr.label( + default = "@bazel_tools//tools/allowlists/function_transition_allowlist", + ), + "_wasm_binary_extractor": attr.label( + executable = True, + allow_files = True, + cfg = "exec", + default = Label("@emsdk//emscripten_toolchain:wasm_binary"), + ), +} + +def _wasm_cc_binary_impl(ctx): + args = ctx.actions.args() + cc_target = ctx.attr.cc_target[0] + + for output in ctx.outputs.outputs: + valid_extname = False + for allowed_extname in _ALLOW_OUTPUT_EXTNAMES: + if output.path.endswith(allowed_extname): + valid_extname = True + break + if not valid_extname: + fail("Invalid output '{}'. Allowed extnames: {}".format(output.basename, ", ".join(_ALLOW_OUTPUT_EXTNAMES))) + + args.add_all("--archive", ctx.files.cc_target) + args.add_joined("--outputs", ctx.outputs.outputs, join_with = ",") + + ctx.actions.run( + inputs = ctx.files.cc_target, + outputs = ctx.outputs.outputs, + arguments = [args], + executable = ctx.executable._wasm_binary_extractor, + ) + + return [ + DefaultInfo( + files = depset(ctx.outputs.outputs), + # This is needed since rules like web_test usually have a data + # dependency on this target. + data_runfiles = ctx.runfiles(transitive_files = depset(ctx.outputs.outputs)), + ), + OutputGroupInfo(_wasm_tar = cc_target.files), + ] + +def _wasm_cc_binary_legacy_impl(ctx): + cc_target = ctx.attr.cc_target[0] + outputs = [ + ctx.outputs.loader, + ctx.outputs.wasm, + ctx.outputs.map, + ctx.outputs.mem, + ctx.outputs.fetch, + ctx.outputs.worker, + ctx.outputs.data, + ctx.outputs.symbols, + ctx.outputs.dwarf, + ctx.outputs.html, + ctx.outputs.audio_worklet, + ] + + args = ctx.actions.args() + args.add("--allow_empty_outputs") + args.add_all("--archive", ctx.files.cc_target) + args.add_joined("--outputs", outputs, join_with = ",") + + ctx.actions.run( + inputs = ctx.files.cc_target, + outputs = outputs, + arguments = [args], + executable = ctx.executable._wasm_binary_extractor, + ) + + return [ + DefaultInfo( + executable = ctx.outputs.wasm, + files = depset(outputs), + # This is needed since rules like web_test usually have a data + # dependency on this target. + data_runfiles = ctx.runfiles(transitive_files = depset(outputs)), + ), + OutputGroupInfo(_wasm_tar = cc_target.files), + ] + +_wasm_cc_binary = rule( + implementation = _wasm_cc_binary_impl, + attrs = dict( + _WASM_BINARY_COMMON_ATTRS, + outputs = attr.output_list( + allow_empty = False, + mandatory = True, + ), + ), +) + +def _wasm_binary_legacy_outputs(name, cc_target): + basename = cc_target.name + basename = basename.split(".")[0] + outputs = { + "loader": "{}/{}.js".format(name, basename), + "wasm": "{}/{}.wasm".format(name, basename), + "map": "{}/{}.wasm.map".format(name, basename), + "mem": "{}/{}.js.mem".format(name, basename), + "fetch": "{}/{}.fetch.js".format(name, basename), + "worker": "{}/{}.worker.js".format(name, basename), + "data": "{}/{}.data".format(name, basename), + "symbols": "{}/{}.js.symbols".format(name, basename), + "dwarf": "{}/{}.wasm.debug.wasm".format(name, basename), + "html": "{}/{}.html".format(name, basename), + "audio_worklet": "{}/{}.aw.js".format(name, basename) + } + + return outputs + +_wasm_cc_binary_legacy = rule( + implementation = _wasm_cc_binary_legacy_impl, + attrs = _WASM_BINARY_COMMON_ATTRS, + outputs = _wasm_binary_legacy_outputs, +) + +# Wraps a C++ Blaze target, extracting the appropriate files. +# +# This rule will transition to the emscripten toolchain in order +# to build the the cc_target as a WebAssembly binary. +# +# Args: +# name: The name of the rule. +# cc_target: The cc_binary or cc_library to extract files from. +def wasm_cc_binary(outputs = None, **kwargs): + # for backwards compatibility if no outputs are set the deprecated + # implementation is used. + if not outputs: + _wasm_cc_binary_legacy(**kwargs) + else: + _wasm_cc_binary(outputs = outputs, **kwargs) diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/wasm_rules.bzl b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/wasm_rules.bzl new file mode 100644 index 0000000..f8dce22 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/emscripten_toolchain/wasm_rules.bzl @@ -0,0 +1,6 @@ +"""Rules related to C++ and WebAssembly. +""" + +load(":wasm_cc_binary.bzl", _wasm_cc_binary = "wasm_cc_binary") + +wasm_cc_binary = _wasm_cc_binary diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/hello-world/BUILD b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/hello-world/BUILD new file mode 100644 index 0000000..07fbed5 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/hello-world/BUILD @@ -0,0 +1,23 @@ +load("@rules_cc//cc:defs.bzl", "cc_binary") +load("//emscripten_toolchain:wasm_rules.bzl", "wasm_cc_binary") + +cc_binary( + name = "hello-world", + srcs = ["hello-world.cc"], +) + +cc_binary( + name = "hello-world-simd", + srcs = ["hello-world-simd.cc"], +) + +wasm_cc_binary( + name = "hello-world-wasm", + cc_target = ":hello-world", +) + +wasm_cc_binary( + name = "hello-world-wasm-simd", + cc_target = ":hello-world-simd", + simd = True, +) diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/hello-world/hello-world-simd.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/hello-world/hello-world-simd.cc new file mode 100644 index 0000000..649adab --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/hello-world/hello-world-simd.cc @@ -0,0 +1,10 @@ +#include + +void multiply_arrays(int* out, int* in_a, int* in_b, int size) { + for (int i = 0; i < size; i += 4) { + v128_t a = wasm_v128_load(&in_a[i]); + v128_t b = wasm_v128_load(&in_b[i]); + v128_t prod = wasm_i32x4_mul(a, b); + wasm_v128_store(&out[i], prod); + } +} diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/hello-world/hello-world.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/hello-world/hello-world.cc new file mode 100644 index 0000000..ee72c53 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/hello-world/hello-world.cc @@ -0,0 +1,6 @@ +#include + +int main(int argc, char** argv) { + std::cout << "hello world!" << std::endl; + return 0; +} diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/remote_emscripten_repository.bzl b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/remote_emscripten_repository.bzl new file mode 100644 index 0000000..819a048 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/remote_emscripten_repository.bzl @@ -0,0 +1,148 @@ +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +load(":emscripten_build_file.bzl", "EMSCRIPTEN_BUILD_FILE_CONTENT_TEMPLATE") +load(":revisions.bzl", "EMSCRIPTEN_TAGS") +load("//emscripten_toolchain:toolchain.bzl", "emscripten_cc_toolchain_config_rule") + +def remote_emscripten_repository( + name, + bin_extension, + **kwargs, +): + """Imports an Emscripten from an http archive + + Args: + name: A unique name for this Emscripten repository. + bin_extension: Extension for the binaries in this Emscripten repository + **kwargs: Args for http_archive. Refer to http_archive documentation for more info. + """ + http_archive( + name = name, + build_file_content = EMSCRIPTEN_BUILD_FILE_CONTENT_TEMPLATE.format(bin_extension = bin_extension), + **kwargs + ) + +def emscripten_toolchain_name(name): + return "emscripten_{}".format(name) + +def _get_name_and_target(name): + return name, ":" + name + +def create_toolchains(name, repo_name, exec_compatible_with): + """Creates toolchain definition for an Emscripten + + Register the toolchains defined by this macro via + `register_toolchains("//:cc-toolchain-wasm-")` + + Args: + name: A unique name for this Emscripten toolchain + repo_name: The name of the Emscripten repository for this toolchain + exec_compatible_with: Execute platform constraints for the Emscripten toolchain associated + with this repository. + **kwargs: Args for http_archive. Refer to http_archive documentation for more info. + """ + common_files_name, common_files_target = _get_name_and_target("common_files_" + name) + compiler_files_name, compiler_files_target = _get_name_and_target("compiler_files_" + name) + linker_files_name, linker_files_target = _get_name_and_target("linker_files_" + name) + ar_files_name, ar_files_target = _get_name_and_target("ar_files_" + name) + all_files_name, all_files_target = _get_name_and_target("all_files_" + name) + cc_wasm_name, cc_wasm_target = _get_name_and_target("cc-compiler-wasm-" + name) + + wasm_name = "wasm-" + name + + # These are file groups defined by the build_file_content on the Emscripten http_archive + remote_repo = "@{}//".format(repo_name) + repo_compiler_files_target = remote_repo + ":compiler_files" + repo_linker_files_target = remote_repo + ":linker_files" + repo_ar_files_target = remote_repo + ":ar_files" + + native.filegroup( + name = common_files_name, + srcs = [ + "@emscripten_cache//:emscripten_config", + "@emsdk//emscripten_toolchain:env.sh", + "@emsdk//emscripten_toolchain:env.bat", + "@nodejs//:node_files", + ], + ) + + native.filegroup( + name = compiler_files_name, + srcs = [ + "@emsdk//emscripten_toolchain:emcc.sh", + "@emsdk//emscripten_toolchain:emcc.bat", + repo_compiler_files_target, + common_files_target, + ], + ) + + native.filegroup( + name = linker_files_name, + srcs = [ + "@emsdk//emscripten_toolchain:emcc_link.sh", + "@emsdk//emscripten_toolchain:emcc_link.bat", + "link_wrapper.py", + repo_linker_files_target, + common_files_target, + ], + ) + + native.filegroup( + name = ar_files_name, + srcs = [ + "@emsdk//emscripten_toolchain:emar.sh", + "@emsdk//emscripten_toolchain:emar.bat", + repo_ar_files_target, + common_files_target, + ], + ) + + native.filegroup( + name = all_files_name, + srcs = [ + ar_files_target, + compiler_files_target, + linker_files_target, + ], + ) + + emscripten_cc_toolchain_config_rule( + name = wasm_name, + cpu = "wasm", + em_config = "@emscripten_cache//:emscripten_config", + emscripten_binaries = repo_compiler_files_target, + nodejs_bin = "@nodejs//:node", + script_extension = select({ + "@bazel_tools//src/conditions:host_windows": "bat", + "//conditions:default": "sh", + }), + ) + + native.cc_toolchain( + name = cc_wasm_name, + all_files = all_files_target, + ar_files = ar_files_target, + as_files = ":empty", + compiler_files = compiler_files_target, + dwp_files = ":empty", + linker_files = linker_files_target, + objcopy_files = ":empty", + strip_files = ":empty", + toolchain_config = wasm_name, + toolchain_identifier = "emscripten-wasm-" + name, + ) + + native.toolchain( + name = "cc-toolchain-wasm-" + name, + target_compatible_with = ["@platforms//cpu:wasm32"], + exec_compatible_with = exec_compatible_with, + toolchain = cc_wasm_target, + toolchain_type = "@bazel_tools//tools/cpp:toolchain_type", + ) + + native.cc_toolchain_suite( + name = "everything-" + name, + toolchains = { + "wasm": cc_wasm_target, + "wasm|emscripten": cc_wasm_target, + }, + ) diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/revisions.bzl b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/revisions.bzl new file mode 100644 index 0000000..e954235 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/revisions.bzl @@ -0,0 +1,773 @@ +# This file is automatically updated by emsdk/scripts/update_bazel_workspace.py +# DO NOT MODIFY + +EMSCRIPTEN_TAGS = { + "4.0.9": struct( + hash = "cb2a69bce627bd2247624c71fc12907cb8785d2f", + sha_linux = "c6fd245138e6bbdd8349963cb4045c557d657e4be0ea44155375633c689c8be9", + sha_linux_arm64 = "872d7f5870f1bfc523a446ca66ab1b47009a96be33c398dbbb12a56597e46ab5", + sha_mac = "7efb0a6ddcb915aeca9f8685db909ae7799452894876fc1223a78d5c3288ff2d", + sha_mac_arm64 = "b97f3cda61211dd83b31ef9ea92e83d416a9422192cf3ee484fffe11e5d6e5b9", + sha_win = "e6e409ae564c041691f2fecd690431a9935401f8ab6afe284b222546887e84c5", + ), + "4.0.8": struct( + hash = "56f86607aeb458086e72f23188789be2ee0e971a", + sha_linux = "7b50b2b40f80d4531ae29a0a5b902eca41552e04815f59880a122ac81e8f269d", + sha_linux_arm64 = "d6e3ab0cdec2e6983235322f600f248d313bfce4a6a69ef16cdfdc330ff748b8", + sha_mac = "e1b2e6d4797338ed884f9d8a8419f93fc42cfcdea5e8a8b29fe13c6fd3fe7f7a", + sha_mac_arm64 = "115b207304d5471b77fc7649904111f3bb5ed7998ad192cba6cfc5fd0b2d78cb", + sha_win = "9ca65cb49287f448216c2eac12dacff9808ae827d5de267aaf2bd65f6d4f233e", + ), + "4.0.7": struct( + hash = "ef4e9cedeac3332e4738087567552063f4f250d3", + sha_linux = "60079078b1ecc4e96ab01c4189aceeff9049a1bb2544123295e9841b91a9410d", + sha_linux_arm64 = "caa10ae2d2b01eb290957e96636f0a6861e7305c8d991c762379542208415793", + sha_mac = "d588cc31b7db0d876f1d45f4d0c656d5e205d049c0bb27209cad04cfebe19309", + sha_mac_arm64 = "c0153cc053d8961e094447c3e706cb8f379c263bee64202fd78251fe018fb014", + sha_win = "7974b6e11164c2c94ddb252c9728d21de321094421f5d0856702e65c06751e54", + ), + "4.0.6": struct( + hash = "14767574a5c37ff9526a253a65ddbe0811cb3667", + sha_linux = "27fc220a9ad98d323cad73531ff563e9838c9e1205f51ee2a5632bb4266a35d2", + sha_linux_arm64 = "2d03f8eb3f81dd94821658eefbb442a92b0b7601f4cfb08590590fd7bc467ef8", + sha_mac = "c06048915595726fc2e2da6a8db3134581a6287645fb818802a9734ff9785e77", + sha_mac_arm64 = "35d743453d0f91857b09f00d721037bb46753aaeae373bd7f64746338db11770", + sha_win = "3b576e825b26426bb72854ed98752df3fcb58cc3ab1dc116566e328b79a8abb3", + ), + "4.0.5": struct( + hash = "d7f8ff5e2ca3539c33fae81e98f7c56ef9fa1239", + sha_linux = "fdd4d9d6b37e845039b207baaef60cd98fb594ea13a3e6d622c2dcd8f2a48ac6", + sha_linux_arm64 = "0007aec32eee609b91f35c32481ec060ea7dac7151e36344bbcae419907f9240", + sha_mac = "f4e5a6c57ad9de59bff73463972213a299af2bb419dafbdd3959947fa801a342", + sha_mac_arm64 = "b8b93190fa17afe32a5eaa7120b807767b1c9d6e1d4ae6b9a2c6adb231758683", + sha_win = "3b8ed9e298a6d58fee841f5c3f1d3e7b2dff104cc7df314cd329f4c05d470be0", + ), + "4.0.4": struct( + hash = "ea71afcf5a172125179a07ff1731de6e81c92222", + sha_linux = "f05dab4a6a13a5fe6972e95e918d1483e687faf468e1a653deaa8d7956a97a3a", + sha_linux_arm64 = "95a421f304a7209c6f259754ad15aea5bbbbb1838139b51837aeb2c184fa4a89", + sha_mac = "d8b44aae37224ae76572ad84b60a2adaa126826332864fb689944d5130705d8d", + sha_mac_arm64 = "ade1c1a0c2e5893c6f74079beeae8b7e2a0c3f3b7ae88891064104fd985dfc2b", + sha_win = "342cf9dfb83e95bf678d07e460e093ea61a609d34b4603d9be06d4f31784409d", + ), + "4.0.3": struct( + hash = "de2109f0e5e7278d470da11de526aed16c527722", + sha_linux = "6480f51d0c24130424c696bf83e9774f42246a0109c8d48b59f4520fdfadb928", + sha_linux_arm64 = "76b1511d550b4f47276b93581ae5122063acbca7c960703637657388cf178636", + sha_mac = "f40851b816b31b3ca3214ebf61cc152625a05c24f43e2b13c2ad9b9e5dca73c0", + sha_mac_arm64 = "6d8ac5ad1f59f71de0927eb2c595dab2f21d9946ca293434359a6db2ab06a138", + sha_win = "3702e4a518057520d4ad9e7cd63a01a829770d090551e00f19f417f55b0170d3", + ), + "4.0.2": struct( + hash = "cc8eba40de8235f9c33d92463018f87b3edaa09e", + sha_linux = "3c0e3940240709388c24a4262680c18bb1d5979f2337abe53db00fb039606c44", + sha_linux_arm64 = "21ed0c31c1fc972e3509fcb140e0323061b5f2b173fe56d1f8961df2a37e4c11", + sha_mac = "e1bd96ec790968adf583d348158375b76ee0287e348954c3393c82565475b07b", + sha_mac_arm64 = "e5bf9a5efabc114b42636abcea07a1e02d3a9406cd399a29ccbc730586dce465", + sha_win = "78010f8e2f7bb6868bb20e3fc32e24d45e6fca749c388c2d25bea9845512338d", + ), + "4.0.1": struct( + hash = "5ff495a591978fdf8a16f2d172be3616f3150d1e", + sha_linux = "7b2b64b1bc15555696f78cbcb54c8d75832222d1578270ff5f56a8024c9a0dbc", + sha_linux_arm64 = "5c046a22b933de14be6b2522b75796afffe3940a19422eee483b7f3f1a226d66", + sha_mac = "d089eba9c3cad675bbd7d3318aec166ebe5ba984a6c5291136c09c68324d9818", + sha_mac_arm64 = "c8359b334bad71719e8d29e796ca7b63891e0305987b2572eb5a2f020e34f773", + sha_win = "9cf861339327f3657281c5c8c18aa723323acffe3b3d1c3807b9d4576d097e0e", + ), + "4.0.0": struct( + hash = "3ebc04a3dab24522a5bf8ced3ce3caea816558f6", + sha_linux = "6836988f0b7ee6ce3df5192dd4375b9eee55be78847ce31cf1d2abfb00f1e991", + sha_linux_arm64 = "d4e6e04b7e2fa1bdffc9c07ab4e0a3f66bde75adb06ebf9cc66a341907b17db4", + sha_mac = "4123e9ff6a699dac303c4fe22529ae0d618c118fcd8267df590363b0fc98c91d", + sha_mac_arm64 = "4b5fb7cc4f5f8526aaa41c8560a00ad6782b97cd3894d856beb635f05a825613", + sha_win = "6b1e5aee4b4a4274712566c845888bdf4eced09a5aaa64c1796cda57cd2854c4", + ), + "3.1.74": struct( + hash = "c2655005234810c7c42e02a18e4696554abe0352", + sha_linux = "a987bb4cded4f29437e8589accac204ce3c134feaaaf251bb97d0fdf450dce65", + sha_linux_arm64 = "c7fcc532eb7ee1dc7df0eacb49128ded12e4d55a973b8a2a5215da8bb6c4027c", + sha_mac = "04f848f40bd19220a43abde2dd1012d95bf1f89c618c0f631b83d18357e2bb65", + sha_mac_arm64 = "fc71758a5bfb02b8a5c2dd21d6bfc34aa3c64698f6105e204a1f4d11f6d67603", + sha_win = "603b0515e0367ee2718b2f360ef0194663d23a91236910d5f4a90ac4d745a4f2", + ), + "3.1.73": struct( + hash = "b363a836e75a245c548b7a6a021822d8c9e4c6df", + sha_linux = "4f3bc91cffec9096c3d3ccb11c222e1c2cb7734a0ff9a92d192e171849e68f28", + sha_linux_arm64 = "e6fb8a32889d4e4a3ac3e45d8012641369251ddd1255ada132ff6c70ab62b932", + sha_mac = "8d52ec080834f49996534de26772800dee048ec9bf148bb508be95887e267735", + sha_mac_arm64 = "58e6c984c5a1fb71e0871f0c3bb9e32d41e7553260c6eeb38800a4612623a99d", + sha_win = "d76003fad2146ad1f2289e8b251fbc359406ced0857f141a41f15149c2138302", + ), + "3.1.72": struct( + hash = "7a360458327cd24c2a7aab428bdbcb5bca8810e4", + sha_linux = "be094d6dd27c27a64116e9c0165d6cade5d329f5137e56696773e98e1df83fa7", + sha_linux_arm64 = "5dba64454809d72d53c432f3c91830d69d413ebd9dcd0ce18df5a79a3af235a6", + sha_mac = "52f713c118717814d2371912ab9019a3605b7d6acc627f3842e6aa7d3ffff7bf", + sha_mac_arm64 = "644593539684f59c635c7eae2e743f5e4e27b1d665f9c71c23dcefd4c2448b3c", + sha_win = "c72623fb68f109d8f122036f25b9fc75353bd1ce28995d9920277d4be4a1d99c", + ), + "3.1.71": struct( + hash = "7ee0f9488f152e9e9cf0d4d243970e03742f1a5c", + sha_linux = "43f87aa84a73697b905d2a13c89d016af8ec66bed792f37dd5a0059529abee12", + sha_linux_arm64 = "d25f5e57b2e7557df39cd9dec3b0283fb086f66c800af3d9a3f70f36c5fc6b14", + sha_mac = "8dac015c03c4f2e594d8bca25fe35d1e4d808aea81705121e852aff0464c4a9d", + sha_mac_arm64 = "a7797c3d210eda29f88eede261fc8f0aabf22c7b05214916b5b50a1271e9f0b8", + sha_win = "dfe77eaf22278ca975519f0497c8b336c86e52461c478060418fe67b39b6e87c", + ), + "3.1.70": struct( + hash = "6fa6145af41e835f3d13edf7d308c08e4573357a", + sha_linux = "c29b4a2c6addd5aafa613768d34273a23d8fcd1753c685ff61099506710cd8d7", + sha_linux_arm64 = "b13386975023a06f19057daef3896d480229b144d1e97f8764ed2f3e0fcb7d37", + sha_mac = "bc0edcaaaa19daeda9164d38d36c5f7d7b4b4e1eb7695ad58e776336c571fcc4", + sha_mac_arm64 = "e470d5eeb570850d66a79bd4c06064b9b3a1e90c7c2101e1a444ebcd6466fe5a", + sha_win = "f0118d71fd67583ddcfd39af2ed8bec3d18152fb6aadee085ebec5bcaf4ac4f5", + ), + "3.1.69": struct( + hash = "8fe01288bc35668c13316324336ea00195dfb814", + sha_linux = "24a786666e6f48ed3c3944b44df5cf146c45cf4faece4cb2686312a3d052a00c", + sha_linux_arm64 = "48e670501d215ac5b6b2680c900c517d9028dbc4de43be5dd6f25211a3640f2b", + sha_mac = "8503fe87dd2f30abff2550e9d6eb8aadeaf30fd3c6972d635b31e67f82e155f7", + sha_mac_arm64 = "995c7b3c84458edf6b8945e81405320c64a25dfe79eaa427fc1fe9a680f56b4f", + sha_win = "3839e0a581ae7b19156f004762a8221585e9a0d6237e468b13a878d1947636c5", + ), + "3.1.68": struct( + hash = "b52d8c9150dc7d4c8e4a7a08c7a9b4006c9abe49", + sha_linux = "1f2bcb47d85eb31d90fa797b3513221adc50f0656bb37f0962a40fd0f49fcf6a", + sha_linux_arm64 = "de346e7a489aa27a442215945d154d58a0d35c608b6150b2992af0e70c04e1c5", + sha_mac = "b180711544d783121370d2c894703f99d370a864ab147730f82fd59b88fa3481", + sha_mac_arm64 = "5e9b6242b56edc8cb404cbaf6c8bd7eb1f0f168b55b580bd92652f98c5d286f4", + sha_win = "824d37e8a0845f44e4c1111e8365640eea28944f1bdbd1e9e3fea0279b68baea", + ), + "3.1.67": struct( + hash = "4ae62984ea36ef0e5bfcbd0ed9b62f04bee6426a", + sha_linux = "535b64822916c80124363a5c7a5bd0cafd703f166d5155c0ad0e464e4a879091", + sha_linux_arm64 = "04c5f959702d8c1e5c000752b562271c224dee593e81144280840fed06e36cd9", + sha_mac = "692b8fdc79a47332ba9881966c72517eedf15b2da7bed37a535dfec55e6bbd9c", + sha_mac_arm64 = "ac26753f59fa9c8e92be9c91666014ad9400c91fbd37064105d1b5fcae503985", + sha_win = "8c6af8046ed47386018e42d18b53f57fad0926306dd4315d7f09dfae844b3dd3", + ), + "3.1.66": struct( + hash = "243eae09cf5c20c4fde51a620b92f483255c8214", + sha_linux = "b10eac37c978b28da2f1f34cdd8a7759c0ed5e5a2d8eb4f4e6790209de33dbf7", + sha_linux_arm64 = "9c78a470f74c24fc1fde2c8d86583ed98847b6cbdd87cd0b36ff2d6b4799d950", + sha_mac = "64fd0603ccbf949967cb0dfd8f1b0b25e018abf8bfe813b53596c4fc78751027", + sha_mac_arm64 = "fd6250f25101957f56086d292263379880c4b3329819a021008b2058f92ef67b", + sha_win = "b24f65a1a1111d8ace6ba47b55e07681cd0620f7bf711d1018ee262c9501defc", + ), + "3.1.65": struct( + hash = "fdcf56c75a1d27fdff6525a7e03423595485ca19", + sha_linux = "b2b7de13d37c4c5126e6c6a077e6019ebacc78ef1fb1b35b9035f03975f5ffaa", + sha_linux_arm64 = "f838af6495408f3c0a14d233171b4919b62e445c62805a22dea1875cb709a116", + sha_mac = "cc50b829a21a041979e0941cfd2047d30a06e3c4a8fd9f662ecdc12a0ab40535", + sha_mac_arm64 = "db4430db6a085d6ed5284917e632541dad3ce0a9464659fb674055247ad059d0", + sha_win = "e72ae4ec3231d9a492eadbf77ff28c13efd90307a69df04234792e67a001d05e", + ), + "3.1.64": struct( + hash = "fd61bacaf40131f74987e649a135f1dd559aff60", + sha_linux = "c39de24beca60fd580f6dff0eca0e275016042a30234588b19eda82397e299f3", + sha_linux_arm64 = "61b412135630a60c5517278dc83930e06f80fa286fcc2bb6366c4f620c86e4e0", + sha_mac = "2644772be398c8095621b3d0fe9ff2d122b18b7b0963c0eb702639d94dfb8e90", + sha_mac_arm64 = "47449057c345a09aa8750be1a357c364ffea9f8a066066cb341a7a2a14bac96a", + sha_win = "eb5b59afb420915daab4c383e5f73d456cc14776dce02fdc852c46522cda5531", + ), + "3.1.63": struct( + hash = "aeb36a44b29e8ca9f4c7efbb4735b69003ac2bb9", + sha_linux = "2a38ac1ea2fe3b7169879f0f666ea278f344cbb5db6e34421b9554939559109c", + sha_linux_arm64 = "f1dd5fe4cd22e89b1f5bfd216f1245f9f40f6ea76651a7f66e925a68ff6f18b8", + sha_mac = "7e192b84aecfade22817b5b38f0c69d1f795a9b990308188d39ed1d218692cd3", + sha_mac_arm64 = "751ef26a3682f5f23dfdc1c2f80cd0604a32cad61e6373c823de774722ecb9af", + sha_win = "947f8e867e781750d374d659644897f2345a133ad3d0f9ade23afcb81eeaddd3", + ), + "3.1.62": struct( + hash = "d52176ac8e07c47c1773bb2776ebd91e3886c3af", + sha_linux = "fd303a2b2a85c4b3ab8aa29595d70c5fde9df71c5254d56ed19d54e9ee98e881", + sha_linux_arm64 = "233c0df77644472cd322b45b2d7cf709e6c338799b46f6ec5d5f39ca4dbe8aef", + sha_mac = "d9cfef7ba8f44bf21be715244d0d5f909f1ccc2a481a301b3c01d12d1babc049", + sha_mac_arm64 = "de5484d60c858aaa8b93ba6485924adffe734cf4f8296765c089900cf9ce0701", + sha_win = "7455680bf9c19a26fe4868111ac01401023b0f92e862d3cabadf7950b87707fd", + ), + "3.1.61": struct( + hash = "28e4a74b579b4157bda5fc34f23c7d3905a8bd6c", + sha_linux = "e3e20e09219fd47a0019bb3252e17db4a00ded39b39b41634bc73f840a8ff2be", + sha_linux_arm64 = "a6b858601ca09fb7bb6ddf1a5ffb1a4130454c936ad046d45fef183037828c46", + sha_mac = "1fe69a3c42fb2857b80c8e77bfab780cb212ed7cf81ae57c0c4d235504df5269", + sha_mac_arm64 = "4ba702eea409e2d4bfabc73a68919217d3993e7585d95734e3e40a3c9ce1bd21", + sha_win = "bbafba849ff072a61dd34a8ffc0c85eed20a417854a3ca751b092e3565a92581", + ), + "3.1.60": struct( + hash = "87709b5747de5b1993fe314285528bf4b65c23e1", + sha_linux = "ff5eb062165920c7cb69935d396f13e9f8ca5b13f2d7f3af2759bcacb5e877e2", + sha_linux_arm64 = "2c291942df4868d3f65b31dd964bda9736bfddcd6a7886158963f797d1b45cf5", + sha_mac = "45586fab1bad65a4293ea8939dafb5ec711ba92ae7b4d1edbaae3b4486f398b5", + sha_mac_arm64 = "8dc27416a378ad07285d380f68717cfe0db1ea6252fdb1ad012af95e4d3f342e", + sha_win = "f3147ef2d4ca48ea2624039969fd0529d0bacb63bf49ee4809c681902768b973", + ), + "3.1.59": struct( + hash = "e20ee09a8a740544c4bc6de5d4ba5f81f74b74d6", + sha_linux = "ae59d1946cb92e1651cbb904fe824b3f07b39f42fa25f582116b5aaa226fa239", + sha_linux_arm64 = "25b918d6d5ee2af7ef6b28e089dc21d2dc419dca76c8079bb638cb20459eb9e5", + sha_mac = "af175bd559cb80459749e504da314af0163291f195461bf4d376d6980c4c60c3", + sha_mac_arm64 = "e17553bca5d00b30c920595e785281627e973f9e7e14c5dc0a73c355ccafe113", + sha_win = "bb54256fc3b7824cb75d5474f887d9bf8e1e63c15b351bdfbed898aa293ee4ab", + ), + "3.1.58": struct( + hash = "a4d4afb626c5010f6ccda4638b8d77579a63782e", + sha_linux = "b188249ecb939dadc679aaf2d3d9afd0fe19ab942f91b7bc926b4f252915dd1a", + sha_linux_arm64 = "4aedc8ca641b40d9bd82d85b1dc3458fe1afc9a132da06a09384a5f89c058969", + sha_mac = "2092aa4bef3b9f88d3f343b042a417ba617d4e04454656d8f2e101ba53f854e8", + sha_mac_arm64 = "7a9a15845257629b7602d15bdf7633a8e10472b0fa9b3d9ee7149938aa2f2039", + sha_win = "9fe76b6189566d56f0cf9aecbd23a006778530aa87184a900f5662e39ce7272a", + ), + "3.1.57": struct( + hash = "523b29e1b99a61069a2fa9f9d3cc9be1c4c53d4d", + sha_linux = "5bc444132258d4404d396f2044a4a334064ad0f1022555cad5ec72804a98ba5a", + sha_linux_arm64 = "f0022413afcc1610deff10921b3f5938bf4d01eba46ce96655f2295bdd84bd6a", + sha_mac = "31ddccb68c86f0a45332982938c49505158860ed4f7e8ccef72a48382e0e3c96", + sha_mac_arm64 = "cc5fdb65b339464f99b9c731cc63c233ec9577268886a856fa49f227ca2a56d1", + sha_win = "b53555420bb9b6e31c153e4c59427000ec692be17ae900f659a9b774d1ecebed", + ), + "3.1.56": struct( + hash = "9d106be887796484c4aaffc9dc45f48a8810f336", + sha_linux = "52338cca556002251e5e7d738adb1870d14331ddf463e613af02028b64e05a82", + sha_mac = "fc5cca6a9db571ecb2974bf0d4e12f1bc6068726271464586cf7e8723004b4c6", + sha_mac_arm64 = "aed728d09d801c4a33210505874ce066269292e7809a7d6a6414146be01545f1", + sha_win = "cd5fbe94fb0bcf01badc10eace48eddbca22b34f31229e3d70c68ade7bcdd571", + ), + "3.1.55": struct( + hash = "f5557e3b7166d05bddb5977e363ec48cd06e9d32", + sha_linux = "2a1cccc2f6db801219eb966d00af78a026af7822055064092387e7eba18e75ad", + sha_mac = "f1f8f4ebd086d0cd8bd54c41c6a0e86bbb26d7b8020484fef3dba67cd9e6906c", + sha_mac_arm64 = "7533b7a1beaa692a4f1e57b91c456b13e6bcc367dc9a414cb066350e8a2058c7", + sha_win = "204984cbb755f9aa09c21b49129d908f59617a60d5aebd8742097a9a2c196abb", + ), + "3.1.54": struct( + hash = "aa1588cd28c250a60457b5ed342557c762f416e3", + sha_linux = "5c8db804abe1ac7ddaa99a6997683cf9fa9004de655b32b5b612d59a94bd59d0", + sha_mac = "e6d2b8c6983767c7ced83d40b87081a221f05bab08d0fa4f0c6de652547c8a9f", + sha_mac_arm64 = "83764751ee5c7b42529e1df168695d4a51a23c9c165f3f90693baa9bd9256efa", + sha_win = "c0a1c9f3e1dfc9bb2e600501aea999f53b34a16f82da387317fdcae7e9c2a79b", + ), + "3.1.53": struct( + hash = "e5523d57a0e0dcf80f3b101bbc23613fcc3101aa", + sha_linux = "1025c0c738fbaedf3f8fcffee23bef71c8d04a95b30ea8a69a47231fb35d1c8b", + sha_mac = "318dc0cc51a237040bc1cb0a9e7d6c214196c8a100b50d0e298cf3ea7c365dbe", + sha_mac_arm64 = "e346ef588f7cfe1e41623de2257a11ecf8381fbd3bde63a8773b3a663411ea12", + sha_win = "af7f7175ab0b3c1e9121c713764e8ac1d970b6dbee8a84602b4a69cc5ec5940d", + ), + "3.1.52": struct( + hash = "ce2097fb81953331e65543c20b437475f218127c", + sha_linux = "1c0cd572067c6348cea5e347b9ef7c5460493ca3f0d84bb991689731d0e140ef", + sha_mac = "5d9c801f9cfe81337d65969e174e0b3ef4cf2b47eb548ff4695abe3a2e69ba70", + sha_mac_arm64 = "7ce8fef7542437c85412143cb59b13b8804bb06243a106d2d342c7d9132edc8e", + sha_win = "82ed01d965f5c2765191c67da5baecd2d3ce3f82a8cf30fc47fcd56d47826cf6", + ), + "3.1.51": struct( + hash = "4f416d92fbff66ce79901cfc8263768f1b25dd3e", + sha_linux = "09af08eb562cccf85770e4b8e368acb5accb1759fe3bc436b8fad80c27f90c79", + sha_mac = "b12201caf9ff2b981349edebd2d2c022ff000c74241ef96305b831abbd4f9450", + sha_mac_arm64 = "65fbee020cf965f9216607bad56215795529cbe8cef318fadcb33141dd6b5e82", + sha_win = "65c2d005a6be80723fa795ea724d4db9960601cf7d59d880f2882ecd45c8ad2b", + ), + "3.1.50": struct( + hash = "2ce4170cef5ce46f337f9fd907b614a8db772c7d", + sha_linux = "8822050b999286694cd4ffc7d959a8ea3137e3a910121d78b5377439ede9b598", + sha_mac = "39ce2f689be348b558df9c2c988b03472d43f8ac0827624397f7c0bb56a1e893", + sha_mac_arm64 = "5a9fa8de121db400bb46e716d861283b938ad87257d7c48f99dd5557100bd3ea", + sha_win = "29096f5596d93dbf620a9547fd1ecec8f54f3f52d49b13f09959d852310220db", + ), + "3.1.49": struct( + hash = "bd0a2e230466dadb36efc71aa7271f17c6c35420", + sha_linux = "18f452f8bdcd13e0d3a65c569180d1b83579775eadb8069cb32bca1f2e751751", + sha_mac = "c5275eab15e42abb3a42bbe1cfe38ee1b852febc78f65f5605b8972a7bee672f", + sha_mac_arm64 = "10a722e2c7dcc97236f70f2d68b23a7975800ebf27ec4fdf76deddf483b1c6d6", + sha_win = "4361fc18faaf70a2dc342c219b13c39a8196e9a48e6897d08c7b0dca6ba6525d", + ), + "3.1.48": struct( + hash = "694434b6d47c5f6eff2c8fbd9eeb016c977ae9dc", + sha_linux = "689fffcb60f93a60a7bb52cc205ead43ab31f252753cfef39ae2074f6a442634", + sha_mac = "8ac2a3f32b4cba0d84ca5a1fe1db883dbfc2731432833ab5a7e6967c5f4ab7dc", + sha_mac_arm64 = "10dd40f94fe5c5f8c4efc838d1623cafe98c629d4c7872ad8c15cd7b0836f281", + sha_win = "9276435ea7c402c18572a4301d6a26426eac73414b0ed5cb3e721044a50f651d", + ), + "3.1.47": struct( + hash = "39ade279e75e6d17dd6b7eb9fba2006e61fe966b", + sha_linux = "bdc50abe5c7d4b4f14acea4ec36b270e86770cea2da4b0c393b80a692dc7eb7a", + sha_mac = "6a3a116707037d75a967a7d971894d8ace74a2a230aa50ba55e88e7cd7b94953", + sha_mac_arm64 = "b13d228e6a1c89c13a1500fff07dcf093fb01fa621d458496d4a6d7f05cfd600", + sha_win = "66a6c4f0cda4ace14a86d3e59d20685d35211854d21670632b0566ac73638245", + ), + "3.1.46": struct( + hash = "21644188d5c473e92f1d7df2f9f60c758a78a486", + sha_linux = "75cbf14629b06e417b597d3f897ad7d881c53762380aca2f0dd85f1b15891511", + sha_mac = "06f45608381203d501141be632cab960aa105626c3a0f7a48657b79728103880", + sha_mac_arm64 = "c2a85b509a91663b390f77d51fba775421d42456211466fd3757f9dede7af9e4", + sha_win = "1ed3a3f36dee5d373ebea213fc723b3eeb7d6ba4c43da6a951ea0d76f265f234", + ), + "3.1.45": struct( + hash = "2b7c5fb8ffeac3315deb1f82ab7bf8da544f84a1", + sha_linux = "1c0576765f8b34603eead6f2bd4bc77bf68ea2f0a39ed4c144514103e85bc7d9", + sha_mac = "87f63ebb2f9807435016b238bbf46ccb94c919ec0786b46463cd788634391b0c", + sha_mac_arm64 = "29e698772c0e00c21ce120dd1db1586f5c65507168babff148c2e628add6e72a", + sha_win = "891d49f8828f715ef621d55fe202de4929bbdc89b69101fd33963571458a7f47", + ), + "3.1.44": struct( + hash = "b90507fcf011da61bacfca613569d882f7749552", + sha_linux = "5ffa2bab560a9cda6db6ee041a635d10e1ef26c8fc63675d682917b8d3d53263", + sha_mac = "291b2653f7576f8354f0267047e47a5ddef11223c89d5be399d04618f13b3832", + sha_mac_arm64 = "ad1625821b49ccbbe733596223fdf99fd786470d679f2c9dfabd4a1a7b929282", + sha_win = "8b61f60ef169b1c20207361067c40192c83b96cdbdb2f4cff21dfb20b9ee528d", + ), + "3.1.43": struct( + hash = "bf3c159888633d232c0507f4c76cc156a43c32dc", + sha_linux = "147a67a3454783b8c351780ec0111329d1e6fbb1d2fcdfe1c035e1c0997e0701", + sha_mac = "d84896c6d1ba0fbd9a5e5c5830b3ac4a02da5e683e9d8c7172f4c3ffdfaa0392", + sha_mac_arm64 = "d684f0bfc655f61e76cec29fdaad1668f3d21a229fdd908267f400691468328d", + sha_win = "a335f5f5b070cf354f1ca8e0afb23c06ae5f9ffb2c501124da7fcaea09a7db6d", + ), + "3.1.42": struct( + hash = "9d73bf4bd5b5c9ce6e51be0ed5ce6599fcb28e9e", + sha_linux = "aaa076e64dd511b0d874c348f8dab80a2f9ade0887ba74845fd02c40bbf9e68f", + sha_mac = "4715002394c5d444243c77ca231883eb999cf3313c4869cf0ae288d911f80f89", + sha_mac_arm64 = "84dede714edd81362ed2a2f79b91b1bd9cd544f219f937582e616d73bf0ea7f9", + sha_win = "4c704f4a4927aa537c2815a72915b7591c163ae8f0dbaedc167e810dd2a4a83d", + ), + "3.1.41": struct( + hash = "eb71265ef0ab905620015adbfedacf88c5dbf021", + sha_linux = "493ec8bd3f3ea3d6d616de01d6dac9c2af696978c6c44d453757ab2f8a666656", + sha_mac = "bb088e7b8f83b6bae02a0992eae61351e4e97bd033f8c8937cdaea0cb961ac9e", + sha_mac_arm64 = "aaba2de03a6dcc0db90e61e5e405a52aa47124e5ef21953d052ca015ce5ee773", + sha_win = "c7afbf2dfb6040990bd40bd72c726ada36e3e6f1985c4b62db7296465dd0778f", + ), + "3.1.40": struct( + hash = "c3122846bb040798aab975f61008c37eb19476de", + sha_linux = "5501e750c92f5a54b27ee101f6816e7416f154cb4181b73fd0be3faae947016c", + sha_mac = "052d6236ce49eaf3aa02b3c4d367b5ed4fb78209c1f1e64d48beb79e9c0b7131", + sha_mac_arm64 = "c8af68f904367938bac255f5e64ed271021b289bb135dc77ab3b58b87e1ea5b2", + sha_win = "3ec21ca18b56f7d3953da2e0d468154fcaaf30b5ac663d9ad00c41540923a099", + ), + "3.1.39": struct( + hash = "1b56b171b627af0841cf8d4d8c0160c6cb6d855f", + sha_linux = "7ec6e15a2da2701243f89af7744403ee011211e59e4f0a6fd8ced544e72e917d", + sha_mac = "dad7d270207aaffb8b8ef584cf0579bbad144879ea6f00ec9a8080adf22130dc", + sha_mac_arm64 = "c5e474ca661348d0339c785e25ad81845d49dab19d5e3e84eef2393e623e0bac", + sha_win = "a04f898b9d54dd2dc95fb697a92a1b65d07102a4cc36a02dea44c448fad83472", + ), + "3.1.38": struct( + hash = "03ecb526947f6a3702a0d083083799fe410d3893", + sha_linux = "e2812859fa32b6019f688dd66f2fa48efbfb5594da9a43b876fd4fe4ca474c20", + sha_mac = "a88c4b9eeb5dedb0d9af3b6b84bd45c486de567fbeba1675edb2d7d196e0013b", + sha_mac_arm64 = "0e5d1519ccc1163c13ee93d85f70ef6a520464f59ca3795c47cc7c44ab0f5f49", + sha_win = "bcdea031961a4f3c23008d53e083770d19751dd2a2aa71cacdea8462d09548be", + ), + "3.1.37": struct( + hash = "7c905cfc1ca6699f6ccb288ae174902cfbdcf0a2", + sha_linux = "9ff44ef69d3f389adcacbb9b95331da72cffdf6e9431c8beb6ebf7aedb77499c", + sha_mac = "accfe90322b6449933c3d8e1346024e2e2e3bef7b101942294f995b2c8e1b60f", + sha_mac_arm64 = "a0461e234c08bd7ddd7a86b49b52ccc853ebe4ce0fb5b4314e9de0193c32514a", + sha_win = "e026ea2570e747d0640829c62abddcdc14a4acffe31180110971750b80042d7a", + ), + "3.1.36": struct( + hash = "adedc0750c4a89b65bee866edab24298cb8d6677", + sha_linux = "55d3cc557a83716f7a7fe121a07dbd59ed4b5d425051e22c902570e3e0ea6c4c", + sha_mac = "6643fcef0f928cd730b894f0c2c3343eeef870576e43e56428a7a8247c7bc921", + sha_mac_arm64 = "2e8d9103cd0ba7a2b143927196a630b091b981006c908d7d36995a210a04d73b", + sha_win = "69a197f6fc153d9f98ced539564683cb13ff0ef144d3d4fbddf643e33b5f860c", + ), + "3.1.35": struct( + hash = "671550b5bdceee7bdb21493714f9a815aa5149a9", + sha_linux = "9d4b5dcb719d39e59b646ecf7c409db20c5cb6b9575f5362ffb49a9e66290819", + sha_mac = "01ea06c1f4a6c980bfdc812f9599a8ef424a975c89d5c288c9e6f2fa5e5ef5ad", + sha_mac_arm64 = "f6480ee21c80fe062e0f9d8555f8bdef621601634b9bd1e5ad07b90777ff5e4b", + sha_win = "cd26088365433ce1263a11898406c2f9284e55c2c7f23b26170c2a172c52f0b1", + ), + "3.1.34": struct( + hash = "2fdd6b9e5b67d5b62f84d0501a876513ff118ef1", + sha_linux = "dd3713f077072dcdb811f934d6685187daa47c424039e31cba83633c8d1681b1", + sha_mac = "3824609ee9b7c9919e29b19775d495a16778adb981867901f4bc503fe2f65d7d", + sha_mac_arm64 = "72728637171df46e7cd22f90537dd6faf1d4809ed1befc504ff96768c82f0e0f", + sha_win = "7538d1a1e0d586bd0723f595557551b05d724a5803132949a6fafb8b056af995", + ), + "3.1.33": struct( + hash = "49b960bd03b3a9da478a08541ce6eafe792a58a8", + sha_linux = "eab02b3f4b7c076974452ba602f908a36adf597afa15b16095b441f191ede1bb", + sha_linux_arm64 = "5e15af6affcf37c9ce6c304b4aeccb87a2758e1ef029dbc996f9d77d7444378e", + sha_mac = "b8dad3cddb19c1daf9dae99020bd17b903ae9649cfc58e433ea4951e758804de", + sha_mac_arm64 = "fbf03d06c7503f091191e440b8ea577d65b3261167cdb47359d053f12888974b", + sha_win = "031f951668eaeea39bd9363abb3f514efc3401506374984fa9b1d7ba3130a62f", + ), + "3.1.32": struct( + hash = "29ad1037cd6b99e5d8a1bd75bc188c1e9a6fda8d", + sha_linux = "25fa252e9fc674d1bcef35b3a10dd85024aa93c843b8067f8d917e5151968ffc", + sha_mac = "7881714e7738eb183b5a421bb2b907e96359e791ad0a622be6e7f5690a16b9d6", + sha_mac_arm64 = "04eede7352aca4b6fc1c111a8b31d00e8aa40547c3cd062ff9be4ffe1ed98d95", + sha_win = "22c3429eb1e6051bda46e9c02c14eca1ae3749ba8c411fbd5a3b51e3b9623161", + ), + "3.1.31": struct( + hash = "1eec24930cb2f56f6d9cd10ffcb031e27ea4157a", + sha_linux = "5952523c0c58cfc7c8839c1d3fe42ff34af5d8721231306ee432063dfacf96ca", + sha_mac = "13482cf3cb29f423f2037b9dc2b9e4ff72d0a49fcd471bbaa9b76d9f86f31d82", + sha_mac_arm64 = "654a35af16be5eeb2082e68fb36190fe76de28fa2da75ac0d2197482a203f39a", + sha_win = "493c29f5a505ccd9687036ee4c580d190b1c32b286be0e751a78e68997cec8b2", + ), + "3.1.30": struct( + hash = "dc1fdcfd3f5b9d29cb1ebdf15e6e845bef9b0cc1", + sha_linux = "151d7afdfb728e1e55ed1d100e4d3fbd20925fd65f3c3b9e093061a2c89dcac7", + sha_mac = "f0cdbc676c58bce7a65572418fb1521665ed522d7d05ae90f0764b77801982bb", + sha_mac_arm64 = "fca4eaf8ff528bb9308e5e8d0cf2709713b99fc19d55c6578a6c8f3e66182f55", + sha_win = "3001101622d98b2af3e5209154f60bbe341d32f6178307c6c723e84b5fe08bdc", + ), + "3.1.29": struct( + hash = "d949f1b99a477d4b0b54d95413df3688afa69d0a", + sha_linux = "d3f274446924c27082603170fab60ba78a2fb51360e5578fab4d9b5adab0fa9a", + sha_mac = "ed224c296efd22437f298f0fe0852613b0b1d48810b1b6d87b6b7e6beb589fe2", + sha_mac_arm64 = "af9bb86a7996bbbb36820e93dbc7f537ac23070e8730439b1e49792c4fc008e9", + sha_win = "6203f80273565a2ee6734bd33ad7bc6940ef709cbd593e70d6489e96c02ced25", + ), + "3.1.28": struct( + hash = "30b9e46ddcea66e91530559379089002d8b692cf", + sha_linux = "c23426d8b6d94cea702542c39e3bcef9439425dd4bd03bcc172e291dbbe5ed0d", + sha_mac = "4cfb918fe3233a2b31e5734e85b2a365e634f4e8a83c4390e8595cb98ae6bd8c", + sha_mac_arm64 = "a47f1f09bc7bbd4952cf54445d4fbfae53623ecbfecee0506a637665c7b4ea4c", + sha_win = "4388d230871d5b1e15c2fd0db21a792ab2836f23d860475fe183c03c5db75c8c", + ), + "3.1.27": struct( + hash = "48ce0b44015d0182fc8c27aa9fbc0a4474b55982", + sha_linux = "4dc872260c8f42a8e20c8612b2255adbd466fec54cfbe37b46eca4eb34a2b03f", + sha_mac = "40c3326147b162b8357efdc72476faaa6686338cff3e176680e361c2511453e8", + sha_mac_arm64 = "7b87610de966b84353c8c1ded8e12c034b5b913c093210ebd3b26320e2ac2990", + sha_win = "39bbfcb09ba7feb214518a67b1ff6d38bae065b416b4483834e4fdaef2316f8c", + ), + "3.1.26": struct( + hash = "4f68bb2a505c727bcf58195cf4da20592a6e92c8", + sha_linux = "82d24d5619c814ae99ef7243de428600c02e96dfc49c36e44753b1fce626766e", + sha_mac = "7b645979d8901f3153507561bbec10ecfeb197dca5914228715a74b760cf7eec", + sha_mac_arm64 = "d9c647fd70588bae71303a6c923df8a44ffe63e168b375d35bf6ceda21258fa1", + sha_win = "1ad49d69634ce2d1fe04614c18060a903c102e1dbc9dfdef3a03e52c189b4c92", + ), + "3.1.25": struct( + hash = "ff6babb041d0f31575cc16d15ef82c6222ca99b8", + sha_linux = "c5ae6b4525845ea36bde89cbf4e1d03de87a2658862d76c6a53bbf8de7c67ff5", + sha_mac = "d2581aaa7207f0d9dd9949247f0706bda8561e805d67aec166ed4f3b39c3a3fa", + sha_mac_arm64 = "dbcb76036a09248c2a839872c27b87b6d4ccc81e57add4e2a6f5e560a2c530fc", + sha_win = "3a86d98d934456a74ed06388c1487d95a0d5a3f31777636453f22e61d57d7fb1", + ), + "3.1.24": struct( + hash = "54217a0950bb1dafe8808cc6207d378e323f9d74", + sha_linux = "20e8e5bd745e3ad69c03bb877091d2fbb0c7db1eab309de8f185e9821aea40f4", + sha_mac = "cfb897a980dd51fceb02ff143ad0fd8e5d299db640c5646d1547d522194545f2", + sha_mac_arm64 = "e87b0727343051312f82a6653cad4682a518dd9cb6575844c0cd6505d520fab6", + sha_win = "a0ea07f9014a912f13176fdbbc1ee7ab08104d45e7ca7e1c237505579b63d530", + ), + "3.1.23": struct( + hash = "bfd5e63a44ba4c8568cd8ac87c27b35e40732bf4", + sha_linux = "3b8d9e163d6afc8569deca0ba1d4042f80da7a31e23cee006c3faa9cbf2fbc31", + sha_mac = "fd1c79475e47fd2f06ee9ba189e68309e443c2d3c56fd28163d1cd6f77047075", + sha_mac_arm64 = "66e57ee0962ec31056674b5681f91bd62f85b0bf1238a8d5b160660c0bf47292", + sha_win = "7c30b281abcc0ffb9e7575197f1ac0598a94c6cec36547b81554a97b792a9e75", + ), + "3.1.22": struct( + hash = "990cee04a21caafc75955d736fb45791a7f2aeee", + sha_linux = "a310ed9f16c97a91c72564ca5f85c412cb99429d8001825663fda1b28c00346e", + sha_mac = "b19afaf414178781c4c91ee711ec4d9063b9736719e45ca2e8b45c2258df16be", + sha_mac_arm64 = "7c8212abf77f0307b6ff848bf9c6212f870506df6d074349f76401f30f9fcefe", + sha_win = "2c0cfe267d47f390d7e35a83545b1d5043e4a7fb77b838ee19b0fce65035f55d", + ), + "3.1.21": struct( + hash = "a16a8bca2466eb144f7c93fa899c0272c8815dc3", + sha_linux = "7045ddb3b37a2cc63cb1cf976019a6a3b7f8dbdc71254db0eee5b0452f94e9e7", + sha_linux_arm64 = "2852c8b108ec748d52d31dab3f4854bc6022df008019daff1c7e31ac00363b3f", + sha_mac = "2a8d3d3ad721fec81ca1a4a581e4183b6e732e9905beb874531851846a05a367", + sha_mac_arm64 = "cf788a7bdc38bb40d01f94b2d46acafb0e2f02d8ee3b3d69541c114e467ee37f", + sha_win = "81518bba13f41717ffe6990b6d4a5af635d0c9d0f71a8d3bc0980cd0bc8f5f66", + ), + "3.1.20": struct( + hash = "d92c8639f406582d70a5dde27855f74ecf602f45", + sha_linux = "3b606d133489aac8cdfff4f99ff14a35563b1fafe658aa23f83694f77ed9467a", + sha_mac = "cc9ea1696bdb3f28778bac1cf4587a34e90830e1c64976cd205fd73e77566cd8", + sha_mac_arm64 = "b976410bf4fa1af9896be1c736634bfb56b2ef0f3386cd3cf39616ce47445cc0", + sha_win = "1e6806ee240ab838ae7eee618c57efc793195c62e4d167136507efcfa66d6c6d", + ), + "3.1.19": struct( + hash = "4c3772879a04140298c3abde90962d5567b5e2fc", + sha_linux = "18d4a5bb93371fe1d4586db9804f673fff0c510d98713ec25b6bda1a8457230d", + sha_mac = "6adb721340cb93b7a3efafbfd1d283842a39bb6f1390630b0806c8af26b66840", + sha_mac_arm64 = "429c9e3a79d32380f3dfee52b1001963edaa2e3035fce9f52ca87b08e1a2f26e", + sha_win = "0368eefb28f42799ce897020d0d10a4a27e1b69b650575d94deb268e402a3632", + ), + "3.1.18": struct( + hash = "49d45744895c7d7e28acd94a385d7ee361653b4a", + sha_linux = "6ef373c4ff3cdf33d7beecea47d4eaee7795693f8ca9469f33785cb9c54f40bb", + sha_mac = "ad0e645abdb6d3f0b6c6ad0ee70761010a712949c9b0b193aefc78ecbc3f1710", + sha_mac_arm64 = "68d0a1ec3e83e0415e24133c59e64206b83686712434c8c2e6792547cf654b1c", + sha_win = "96829a228f7c08fabd37833f7361614785aa39aa865beef06890ee8ede58dc66", + ), + "3.1.17": struct( + hash = "d27fef2070c86a218965da8b8b5df8b4425aa3bb", + sha_linux = "562b3ba75ce77a917317bc697febb38194e85cfe07f4fec308c3b29c621f8f13", + sha_mac = "8a2bee8ea434049e40663a6d78d1c3584e5c32196fd85d6a10f3192d2e3aba4e", + sha_mac_arm64 = "5f60d3f351d06d862e853a294642d24243d6cb197e34c2f2602d80555c2eb014", + sha_win = "90b2ade825e07bb05831090dd64b5f5b01a4169a84a3ddec85fcd60be3b246a5", + ), + "3.1.16": struct( + hash = "fb1baf00423818052359cf9126e94bc71c39feb5", + sha_linux = "bdce7e58833069a98d7e0b4fd9d6fea7394770ec10339cc95ed9fe52ba39f3a7", + sha_mac = "d05f4e997324d7f7d8561436677687d296893d6414f53930184fab272e4c6158", + sha_mac_arm64 = "36ab8da30698558a567c5c1c0e130b59f08cf4b29c9c5242f4ea60b449ecff17", + sha_win = "e1324c22c914ab7f62fe6d38a550de25b2232a723c80393fa8884a260c07766d", + ), + "3.1.15": struct( + hash = "568a46a9fb7e1f1686a6f7216b3dc976f28d2a79", + sha_linux = "737db513047d12e95a12f4fbe05314f3af79ac955d1ea43fc83626337e307edc", + sha_mac = "f8993371a1ff713203023f0283054a31df5342ca287debc4e16d04d97e069aee", + sha_mac_arm64 = "c61a8efa8543a6c44e394a0685e7d4facb4c7dbb210c4c32d311b0002c4dec99", + sha_win = "235592467a0be6a537e03fb587aaee230aa2c889f2785cb9754eb44bfbf747ed", + ), + "3.1.14": struct( + hash = "ade9d780ff17c88d81aa13860361743e3c1e1396", + sha_linux = "e2c43068fb1985592db42183a13f85bbd9518b3747746e0003d70c7d770a0b2f", + sha_mac = "567e9548f3fa7c1aa717821af4aaa7849a0f7217cb55eb7f66a06c898808fd96", + sha_mac_arm64 = "df8319aba8bc0d0c40ebec3c8f45e507c2a51a57df24826d4cab6f6cd75017ac", + sha_win = "6bfec6bf6a01e483a57e91f7223340a425f6ff711cbd32a08ed78002810d7882", + ), + "3.1.13": struct( + hash = "bc44364b561cfde15c243a54e3b96ea12d7ea284", + sha_linux = "290f04300465cbb7c8e920f9986128b3f287b14b93627b0c6d069d534860c1b4", + sha_mac = "72b209a3e5800be155cf5b29bdaceb18aefceeba68f35ac719a483bd27d85705", + sha_mac_arm64 = "2bf90ed73454f58b810e09a776a34ddf7395f9ee45580f3a8fea53f74ba7ede2", + sha_win = "07fd730289c26f72ae4037fd25f608f6b9d36f1950677229b6c7d392957db3d2", + ), + "3.1.12": struct( + hash = "a8c3b314d61e2bb98581d522f858132b2fc21488", + sha_linux = "ac8ae46b2fe2fbef07077cdeefc8288d2a73e3189958f32b36f2d17d868275d0", + sha_mac = "c33afddd7c8f7a5293cb427ef26eb65f51fa3121d0577568824174227aa37ef3", + sha_mac_arm64 = "253feff779385d2499764cd988175446e21db8cbb9952746e96969c2a763924c", + sha_win = "04015fb6a1b4ad4d7c16587a7eeaabf19c5b35097f3e28efa029c0c67547067c", + ), + "3.1.11": struct( + hash = "8c3a799341c01148692c52fda73bbba5e89c5727", + sha_linux = "ba52cfd784362530866c9d554ddc62cfa3f0690f44007c0b3b36e189bb579d5e", + sha_mac = "c46548425e0bf4acd3c4275aff6a463c90ff1faf283ae7f5237d8c17bf84d779", + sha_mac_arm64 = "c5ae40c468955ed02b86c54061278d2b4075b1230612bae5910f836aa9c200b3", + sha_win = "74481a1998236fd9d296f367584934d5ab8bbf174446ceb647f714031671de98", + ), + "3.1.10": struct( + hash = "8bd05c7221b4ce34d4bedec40b672d94e681a765", + sha_linux = "f5a937383b5c9fa15071a31d679a2ddd5c03bc8952cbbd5bfbf7c0a86c2dae5a", + sha_mac = "e73491f2787cbda75e718c3947916b57259164eddd9b2db16b9c876d3deb16a9", + sha_mac_arm64 = "d7485ce3b13f183484af5163d7bec79ece9a1fdc5845f8152e36270e6f90cfd9", + sha_win = "dd75061405bc902ecd983bd3e4cfd6931a866e1c9de602c4458280cbeb271720", + ), + "3.1.9": struct( + hash = "edabe25af34554d19c046078f853999b074259ca", + sha_linux = "89fa75c981e47ad19942b8236d2604b2666dfd516a08626aaa1bfb0d657c87bf", + sha_mac = "6c7f59dd84d1484f1dfa041d71cc79fc97db8d15834b6220e5868bd9bd373a24", + sha_mac_arm64 = "13a258de0daaa3c09a53e21a67414cbf5fa5706f955767fe791a059ed5eb90bf", + sha_win = "0857b03919b948558f9a57d15cf2b220852cc070359c386da0e6e4831c7ac5e0", + ), + "3.1.8": struct( + hash = "8c9e0a76ebed2c5e88a718d43e8b62452def3771", + sha_linux = "6b170777eb523e62972ad458e533b1853cd0c4e02f6f2cf4cd68e109499ccd9b", + sha_mac = "ede01fe160c3b8443f53f94dbad530e0e7e8197a1b874c7bb9038b187279080c", + sha_mac_arm64 = "9ecc8678f948875e7f64defeababc0320f98e103547f395c390c01d76e5a1d64", + sha_win = "039d27d4ae43b50d0858dbc4dcf412f572351e98e1056d7fdcdf2aab1740557e", + ), + "3.1.7": struct( + hash = "d0e637fe48197587d981f79e8114757731d0c2a9", + sha_linux = "d941738a3c755d6d530bab66d38325515b9dbaa588d2db2b8a63b2a8a1961e52", + sha_mac = "597aacdb25d422094427014d3a97e8b91ec80df2255a66e0986414bf71aaf37d", + sha_mac_arm64 = "a0b2db0269c55e854d1007a59f95b8e5f14d32309e76f985ea9afe481b2bd6e6", + sha_win = "cb44339db27b694862efb37539d41eaff7253c93c0882cf7d9aaf4afeaa82912", + ), + "3.1.6": struct( + hash = "8791c3e936141cbc2dd72d76290ea9b2726d39f3", + sha_linux = "f43dfe707dff18fa7a08dbfe2fa3f8d46afb65ccba9bbe554465d83d5d80e388", + sha_mac = "13a01080ff042560b9a9b1b2c9fc5f8c154710bc41db8bbd907a9e53c286afd0", + sha_mac_arm64 = "7ae97e85593b037c345b539e7f8b8952b82c001be982219060c83f0834bb6827", + sha_win = "e7005c0a5439e532cb64f34ba90405792288a1ed8845cdafcedd3de5af6fd3f2", + ), + "3.1.5": struct( + hash = "2dee36c7163f7394ab9341854ef5281501dd97d0", + sha_linux = "6641703b7da1805aa5a8488d231ae7fedfe27f1a5a33e7d05a2ee5902ab84180", + sha_mac = "9dba57f09702a7eed53f3f71cdd8a4ed1202ca5a5f4449249c2d98a285b26f75", + sha_mac_arm64 = "0093b4d47c9eb9c8bab5b3048c68855255b5e5a8bfd78f4183424009489327e6", + sha_win = "849edc42b494f670df4763dbc8ebbb5464ac28787482668c3f6e27588a77cb3a", + ), + "3.1.4": struct( + hash = "39e60dda6945cfcd6487725bdb1361ae7975173f", + sha_linux = "4a57c0d60eeb4e021de61c8497f0b595a0a9db0235f1640a528de752409f4fcf", + sha_mac = "f28a9a4f42f67de1d5c4d8a288f29e5082bbf4fcb172e0c6e248695163372478", + sha_mac_arm64 = "be35043edad7a7022f7b174e8efc90e2db54ba4fd71288760bea4db082835f56", + sha_win = "d97ff247bdfc7e839610cbcd87d30a65018f964d183d5b852b6021d43c5d199a", + ), + "3.1.3": struct( + hash = "2ddc66235392b37e5b33477fd86cbe01a14b8aa2", + sha_linux = "8b840819eb88f9178c11bad25859ce448a0559e485823a863a6add21380636ca", + sha_mac = "0cb3f9bfbcc744233eae9d20036155738409405eacf8a3d4f9beefc5919d809a", + sha_mac_arm64 = "ee2772f380419df17d154e00388a16bcddc78c7af035c16a2ee534d6ecf099aa", + sha_win = "c0549e1dbaa581ae66934c38beebd4250cd450cc2778e9a602cd9431bc81bc37", + ), + "3.1.2": struct( + hash = "6626e25d6d866cf283147ca68d54ac9326fe399f", + sha_linux = "4fb53364a2ba1de8978445aa26b2204bfd215b41da5d7df04f231040b197010a", + sha_mac = "a8e347accb1ff402d96a128912ac8cda1731611c9f89095fee0ad39a6a18bbc3", + sha_mac_arm64 = "4374f5c852d0403b0a3b0e9dc8a3856a340e9d82ecf0f20aa8b36c6179d31fc8", + sha_win = "e96f6ab8252fefa42f461676311d4c4e2d96fdc2e876ece07d9d7a49ef31aef0", + ), + "3.1.1": struct( + hash = "5ee64de9809592480da01372880ea11debd6c740", + sha_linux = "ba94c5ecabacbedc89665a742c37c4c132c739aea46aa66fd744cb72b260c870", + sha_mac = "8b5f8cec55af0e6816a08d8d1e8b873f96d0e0504fdd6e8deb2fc024957d1aa7", + sha_win = "6cbe976aff6155cf1c48707f0520b5aa6a7770860e9b1964bfca3e5923ce7225", + ), + "3.1.0": struct( + hash = "562e3a0af169e6dea5e6dbecac2255d67c2c8b94", + sha_linux = "0714344e32e244e6d44d9ea75937633ab1338e417a232fb66d6dcd7d4b704e8c", + sha_mac = "f6c1cad729ed799e1df09eacf5aa80cce9861d69ec6d9581c17e4ba8d9b064ce", + sha_win = "756c41cbcab4ae6077cca30834d16151392b8c19ab186c13d42d7d05d6d727cc", + ), + "3.0.1": struct( + hash = "91b7a67a486d2430e73423a38d950d8a550826ed", + sha_linux = "25fd430268596229c4ac38e188d7c2b31f75c2ec8172b1351d763e37c830c6af", + sha_mac = "52ec2204115b727cc4de38b5eeae147eead12b299b98e5a88653d12958cae4d4", + sha_win = "0e072736b471c9a07cdf534ba4da46b3b6545b63c8a6cbb0ef7d544251e15092", + ), + "3.0.0": struct( + hash = "7fbe748230f2ce99abbf975d9ad997699efb3153", + sha_linux = "10646b64daea15354f14f89f7e79937f420b77f31bda7c4b174de2474835950f", + sha_mac = "ebb17bc91c6a72ca06d17337d27aa1a2be4c9af4c68644c221712123f663b8ab", + sha_win = "0d4f2ff5d88a8eef5ed769ee4ffc5d5574143911d2e0079325cdc5206c9e9bb1", + ), + "2.0.34": struct( + hash = "d8fc1b92dbc0ce8d740a7adb937c5137ba4755e0", + sha_linux = "a6304e3a52c172eb178c6f9817d74aa3ee411e97ef00bcae0884377799c49954", + sha_mac = "975ae11000100362baf19d161fec04d82e1f7c9fb7d43c43864ddd65a47f1780", + sha_win = "8167a44bb895a0fdc153836bed91bf387be57f2dc1b8f103bf70e68923b61d39", + ), + "2.0.33": struct( + hash = "cef8850d57278271766fb2163eebcb07354018e7", + sha_linux = "958a0f4b1533e877c1a5ed3c13cb8baabc80e791d45858c2c94ac62325ada953", + sha_mac = "8ecb248653d44c3748e23c089cb9f0e3d4eee7cda13fdec27ec0113b896e34c4", + sha_mac_arm64 = "1ec6f3d7afa5e10f3af996e26d9c3a66f02ae49e48e512a4b5d6b7165c61290f", + sha_win = "6b6b2831f8b338488f787b4a8c34700277bf3988358dbb54426f017155603ac9", + ), + "2.0.32": struct( + hash = "74646397e3c5010824ad60d1de86c6bcbe334dff", + sha_linux = "236b3954e71d3bb30d347c655b9f47f2a091aa2e61046e1912c8da90152f4ca1", + sha_mac = "6a03267574534948e3b041e5d3e31bd757751ef17912eb6e90b96a47da03afb6", + sha_win = "2f8fbf0db097d67d0c364946faceec27c569c5c2d7b22068eef8db55645aba36", + ), + "2.0.31": struct( + hash = "597724ca3f6cd6e84bea73f1f519a3953b5c273d", + sha_linux = "ef70c7733aa0df41cb4c812f5a89bf6b2ed13ca8aa252872396c0be271156d9e", + sha_mac = "77e57c3e98758488ef676f8f58a85faa0bd65a1d326a91771ad83d7cb0e373ca", + sha_win = "541605b740afccd08a39f5ae815978f699f350d621a1b2dfba0763970b56aee4", + ), + "2.0.30": struct( + hash = "c69458f1bbf3ef5b8da4e934de210659cc9bca04", + sha_linux = "ee1c8270096a728966ae38af548047d1f64c18318e06ba75952e657136f02537", + sha_mac = "574a5819308eba6c8be6a780e26dff415a0e7178d3f44162dd8dca87eb40d4a7", + sha_win = "242d244f4f5f5af08e6e6ac9c143aebf1b7bb2a23fd2992350731e59acfee07c", + ), + "2.0.29": struct( + hash = "c2369dc425725fff86ba90a9007a4603ddf7941b", + sha_linux = "7df4a8f3e25820becadfa7f1fe0d78e764102ec3ee50c474ca1634ed90d48890", + sha_mac = "d998521ba95882a27792f0113ea2c972fbb891c240649f4c994f0260c0e1a213", + sha_win = "c64aa3f2af6503f6711b2322986a45784e00d7c7fe13ec3f5c4f740472d065a0", + ), + "2.0.28": struct( + hash = "866055ea639d64dfedc625d28ec981e47ce37168", + sha_linux = "7dca7704eb14e367bb67e9abc9eaf59e75f59b74e32422e04556de10897a9a86", + sha_mac = "370f76493e3805e2538290b698a381f04b6d78a77771e48fc0099cf89dad985f", + sha_win = "e913c50ea5f196d36971f7cf5b1cf9a9ca27ce0818aba56be3a66e31e95c0e5b", + ), + "2.0.27": struct( + hash = "1ac46e3b84955231ab4a4f4cbe0c7ac28c86b8cc", + sha_linux = "3e124e278de168cf22e03b93b2f14a65a86777e428cdaab7e5e1c2289eb41605", + sha_mac = "388262b9e1042ef9a3a1945d5a23dcd634c8042a225e8fdf80bcc2c1cb7e05cc", + sha_win = "762276a332432e717afb988310d21ae10e36facc1e05bfd77042a364fb43cc3c", + ), + "2.0.26": struct( + hash = "823d37b15d1ab61bc9ac0665ceef6951d3703842", + sha_linux = "996e16d368a99dd4dd12126acbcb8bea9a607b5257cc7b747c4afc2f036fd8cf", + sha_mac = "8b2d7e84cc449531e88034beb31da89a0b61ccaeaa1584ffb6da7842c6348fdc", + sha_win = "095e772764d7f8c0f8228bda4b8500ae43aac2303567da5cdc9f8623f70a5743", + ), + "2.0.25": struct( + hash = "f6f001b08fbb67935379cf13d17fd9bfdbaff791", + sha_linux = "06d8e2f3d4f4b35a57de9c15e62a559c941cfba1dd7ec02353d815904d912c3b", + sha_mac = "6541bf3a648aae7df84de424ff392dd1513ab5450203c84f72a6a03e321a301b", + sha_win = "267fbfa809ec0eb911c1962b1b9768675cb82228e694a5f9ef570232ee71db76", + ), + "2.0.24": struct( + hash = "6ab7fc5622a67e6111d07c4ba61c8d3c8fc33ed2", + sha_linux = "e5daa0e87f3afd2197e7975297cb0cd4c245edccb964ca5f1f32ee7d985bf440", + sha_mac = "e4b7f2a7b71d6ac4610ee7b14743570e0dfba3668dc6b4f984cbe7a135888527", + sha_win = "db2aad422a3ca2295be6101b0151eeee55dcea29ba1f31b4594c02ba46591cbe", + ), + "2.0.23": struct( + hash = "77b065ace39e6ab21446e13f92897f956c80476a", + sha_linux = "7713a9a5572d839aea9eaa84a7c4779d11c6c8818ee64a0f443b62081fae6d47", + sha_mac = "b793087462d581e25c8c267fca9d30519619e3272480862a56cc316a32c7afab", + sha_win = "b8885cbb41a39e4734861462e05ee58c7ff7562016a842bcee2603f229940e8b", + ), + "2.0.22": struct( + hash = "6465a9acb820207acf7da44661a7de52d0a1ae3c", + sha_linux = "c079781124e763c53c9fc73781fcee40296ce3314276836bc694f07bd331a859", + sha_mac = "ab95574dfc685b0300e37bea36aba413045bbfa2ab06b93eceb881670489eec1", + sha_win = "ba142e7e380596cba763e3a414de6511bcb86de48e4b48cf393b1ea449a24aaa", + ), + "2.0.21": struct( + hash = "72f4ec97fbc7ec16c15ae68a75b0a257b2835160", + sha_linux = "741264f33f96ba4b785ed0b133861ebdfefbaefab76ddcfe7bde6522829d6f70", + sha_mac = "b07c0d65ee7e2799170c6f3b2aacebfe070c2e4975088bcd1b3a4140fecd8418", + sha_win = "dc3cbf47aa4be52a92526f1790a013734ecbd407f7f36286ed0283c96355999a", + ), + "2.0.20": struct( + hash = "e0c15cd14170f407a9eb27fcbad22931dc67feb7", + sha_linux = "a196504fd1095836ca3961208338ff9e292be7729ea529bc19800aa7c966d34a", + sha_mac = "6cdbf17ed61486b38ea79d3f31d74483e7388d1e7468518dccba3f24e0ddd4c4", + sha_win = "4d22a32c219dbe18c55b635d014b9eaf7da60536171b7af37d9a8099fd33794b", + ), + "2.0.19": struct( + hash = "9b9ff2dabfb4a7fbacbc004c0bead12a60f9d05c", + sha_linux = "bd7c2a38ac88d219a1ab5003ddbf8fdc66a6ba55bc69f99077346edf2753b4ea", + sha_mac = "6cc44029c9052855a55938eb6496b5659da4b1ce9cb34502b740af5993a94f93", + sha_win = "a1fa8b1c387b9307f9b87c43dc83c0ff1bc04b9f29fbe4f39aff2dd946ca4b70", + ), + "2.0.18": struct( + hash = "c2ac7520fad29a7937ed60ab6a95b08eb374c7ba", + sha_linux = "e9f777de592f606b10104b2efe5179a7a8f44e3a9dffa1e3aaf73e05eb8893d7", + sha_mac = "86b1dd62e424e3788bf132292a694a25ca9b0875d06f50d0f5d424593697452c", + sha_win = "49ce07bda6be070251db44a08fcc05cae21ffdbd7522423a0c79bde635e87e28", + ), + "2.0.17": struct( + hash = "f5c45e60392b82f603e3a8039c62db294fab02d2", + sha_linux = "b40a4874057e4cace600f8ee9787dcbe236e3dc5b2fff5c2ecb0e867e426f99c", + sha_mac = "081f61abf7d5ac0ec31aaffc5550013d4093ea4ea39520b7a32b7448d2a6ee70", + sha_win = "45d06e597e6a1185a76200bd0481495e7298800a4805045d9cdbcce6311c91b2", + ), + "2.0.16": struct( + hash = "80d9674f2fafa6b9346d735c42d5c52b8cc8aa8e", + sha_linux = "e527638b224d9a30dc7e5fa4b9bd2eb2ab76ad306739ba8cacf5a5e333933a2a", + sha_mac = "061020eb0e3ee0611dc5a0008ccc7778168a4f838d49ca41c0aad8c52c1a01c9", + sha_win = "99364ed0388f928e0594f790662bf3a30c2894b0eff81797e1b64f62128561cb", + ), + "2.0.15": struct( + hash = "89202930a98fe7f9ed59b574469a9471b0bda7dd", + sha_linux = "7ff49fc63adf29970f6e7af1df445d7f554bdbbb2606db1cb5d3567ce69df1db", + sha_mac = "e35cced1514ad0da40584f8dd6f76aabf847ce0fa82c6dc8dd9442fb74ed6d0d", + sha_win = "31d5f8107c87833cea57edc57613bba4b36b16152772f744c5ad204594b4e666", + ), + "2.0.14": struct( + hash = "fc5562126762ab26c4757147a3b4c24e85a7289e", + sha_linux = "e466cd47ddd4bf0acd645412fdf08eda6d232484e48e5a2643e08062a7a4cf56", + sha_mac = "1c554c08459b7025638ca4eddba0d35babe8c26b202a70a74e9442d577896211", + sha_win = "428bc6094671937af96f26d803871fc5cd83d4d2b1c1df45fa6873a9bc5cac51", + ), + "2.0.13": struct( + hash = "ce0e4a4d1cab395ee5082a60ebb4f3891a94b256", + sha_linux = "8986ed886e111c661099c5147126b8a379a4040aab6a1f572fe01f0f9b99a343", + sha_mac = "88c91332c8c76fed14ebf0edc9a08f586012f54f04ad61e5b1b6d02bf96bdeab", + sha_win = "9fb3b945b7bd56e34d17ec04de4cce475f26c49d161aee9d9c0b8b1434591f88", + ), +} diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/.bazelrc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/.bazelrc new file mode 100644 index 0000000..fbd75a7 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/.bazelrc @@ -0,0 +1 @@ +build --incompatible_enable_cc_toolchain_resolution diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/.gitignore b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/.gitignore new file mode 100644 index 0000000..3e67f78 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/.gitignore @@ -0,0 +1,4 @@ +bazel-bin +bazel-out +bazel-test_external +bazel-testlogs \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/BUILD b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/BUILD new file mode 100644 index 0000000..e3a8e9e --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/BUILD @@ -0,0 +1,66 @@ +load("@emsdk//emscripten_toolchain:wasm_rules.bzl", "wasm_cc_binary") + +cc_binary( + name = "hello-world", + srcs = ["hello-world.cc"], +) + +wasm_cc_binary( + name = "hello-world-wasm", + cc_target = ":hello-world", + outputs = [ + "hello-world.js", + "hello-world.wasm", + ], +) + +BASE_LINKOPTS = [ + "--bind", # Enable embind + "-sMODULARIZE", + "--pre-js", + "hello-embind-interface.js", +] + +RELEASE_OPTS = [ + "--closure=1", # Run the closure compiler + # Tell closure about the externs file, so as not to minify our JS public API. + "--closure-args=--externs=$(location hello-embind-externs.js)" +] + +DEBUG_OPTS = [ + "--closure=0", # Do not use closure +] + +config_setting( + name = "release_opts", + values = {"compilation_mode": "opt"}, +) + +config_setting( + name = "debug_opts", + values = {"compilation_mode": "dbg"}, +) + +cc_binary( + name = "hello-embind", + srcs = ["hello-embind.cc"], + features = ["emcc_debug_link"], + additional_linker_inputs = [ + "hello-embind-externs.js", + "hello-embind-interface.js", + ], + linkopts = select({ + ":debug_opts": BASE_LINKOPTS + DEBUG_OPTS, + ":release_opts": BASE_LINKOPTS + RELEASE_OPTS, + "//conditions:default": BASE_LINKOPTS + RELEASE_OPTS, + }), + # This target won't build successfully on its own because of missing emscripten + # headers etc. Therefore, we hide it from wildcards. + tags = ["manual"], +) + +wasm_cc_binary( + name = "hello-embind-wasm", + cc_target = ":hello-embind", +) + diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/MODULE.bazel b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/MODULE.bazel new file mode 100644 index 0000000..78fdaeb --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/MODULE.bazel @@ -0,0 +1,6 @@ +bazel_dep(name = "rules_cc", version = "0.1.1") +bazel_dep(name = "emsdk") +local_path_override( + module_name = "emsdk", + path = "..", +) diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/MODULE.bazel.lock b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/MODULE.bazel.lock new file mode 100644 index 0000000..f374258 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/MODULE.bazel.lock @@ -0,0 +1,3696 @@ +{ + "lockFileVersion": 18, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", + "https://bcr.bazel.build/modules/aspect_bazel_lib/1.42.3/MODULE.bazel": "e4529e12d8cd5b828e2b5960d07d3ec032541740d419d7d5b859cabbf5b056f9", + "https://bcr.bazel.build/modules/aspect_bazel_lib/1.42.3/source.json": "80cb66069ad626e0921555cd2bf278286fd7763fae2450e564e351792e8303f4", + "https://bcr.bazel.build/modules/aspect_rules_js/1.42.0/MODULE.bazel": "f19e6b4a16f77f8cf3728eac1f60dbfd8e043517fd4f4dbf17a75a6c50936d62", + "https://bcr.bazel.build/modules/aspect_rules_js/1.42.0/source.json": "abbb3eac3b6af76b8ce230a9a901c6d08d93f4f5ffd55314bf630827dddee57e", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/source.json": "3e8379efaaef53ce35b7b8ba419df829315a880cb0a030e5bb45c96d6d5ecb5f", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/source.json": "f121b43eeefc7c29efbd51b83d08631e2347297c95aac9764a701f2a6a2bb953", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", + "https://bcr.bazel.build/modules/platforms/0.0.11/source.json": "f7e188b79ebedebfe75e9e1d098b8845226c7992b307e28e1496f23112e8fc29", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", + "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/source.json": "d61627377bd7dd1da4652063e368d9366fc9a73920bfa396798ad92172cf645c", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.6.1/MODULE.bazel": "f4808e2ab5b0197f094cabce9f4b006a27766beb6a9975931da07099560ca9c2", + "https://bcr.bazel.build/modules/rules_java/8.6.1/source.json": "f18d9ad3c4c54945bf422ad584fa6c5ca5b3116ff55a5b1bc77e5c1210be5960", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_nodejs/5.8.2/MODULE.bazel": "6bc03c8f37f69401b888023bf511cb6ee4781433b0cb56236b2e55a21e3a026a", + "https://bcr.bazel.build/modules/rules_nodejs/6.3.2/MODULE.bazel": "42e8d5254b6135f890fecca7c8d7f95a7d27a45f8275b276f66ec337767530ef", + "https://bcr.bazel.build/modules/rules_nodejs/6.3.2/source.json": "80e0a68eb81772f1631f8b69014884eebc2474b3b3025fd19a5240ae4f76f9c9", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/source.json": "bd82e5d7b9ce2d31e380dd9f50c111d678c3bdaca190cb76b0e1c71b05e1ba8a", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", + "https://bcr.bazel.build/modules/rules_python/1.3.0/MODULE.bazel": "8361d57eafb67c09b75bf4bbe6be360e1b8f4f18118ab48037f2bd50aa2ccb13", + "https://bcr.bazel.build/modules/rules_python/1.3.0/source.json": "25932f917cd279c7baefa6cb1d3fa8750a7a29de522024449b19af6eab51f4a0", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/source.json": "7f27af3c28037d9701487c4744b5448d26537cc66cdef0d8df7ae85411f8de95", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.5.4/MODULE.bazel": "6569966df04610b8520957cb8e97cf2e9faac2c0309657c537ab51c16c18a2a4", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/MODULE.bazel": "af322bc08976524477c79d1e45e241b6efbeb918c497e8840b8ab116802dda79", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/source.json": "2be409ac3c7601245958cd4fcdff4288be79ed23bd690b4b951f500d54ee6e7d", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "@@aspect_bazel_lib+//lib:extensions.bzl%toolchains": { + "general": { + "bzlTransitiveDigest": "nrCBrZBQH3Dq30TXMpPMV6lWpEDozX0S0kCia4Lrpj0=", + "usagesDigest": "1c7PNX163TGNqWzfejRnWpH/hiT4/GRG0kYxuez0Uz0=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "copy_directory_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "copy_directory_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "copy_directory_freebsd_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo", + "attributes": { + "platform": "freebsd_amd64" + } + }, + "copy_directory_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "copy_directory_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "copy_directory_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "copy_directory_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_toolchains_repo", + "attributes": { + "user_repository_name": "copy_directory" + } + }, + "copy_to_directory_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "copy_to_directory_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "copy_to_directory_freebsd_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo", + "attributes": { + "platform": "freebsd_amd64" + } + }, + "copy_to_directory_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "copy_to_directory_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "copy_to_directory_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "copy_to_directory_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_toolchains_repo", + "attributes": { + "user_repository_name": "copy_to_directory" + } + }, + "jq_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo", + "attributes": { + "platform": "darwin_amd64", + "version": "1.6" + } + }, + "jq_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo", + "attributes": { + "platform": "darwin_arm64", + "version": "1.6" + } + }, + "jq_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo", + "attributes": { + "platform": "linux_amd64", + "version": "1.6" + } + }, + "jq_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo", + "attributes": { + "platform": "windows_amd64", + "version": "1.6" + } + }, + "jq": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_host_alias_repo", + "attributes": {} + }, + "jq_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_toolchains_repo", + "attributes": { + "user_repository_name": "jq" + } + }, + "yq_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "darwin_amd64", + "version": "4.25.2" + } + }, + "yq_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "darwin_arm64", + "version": "4.25.2" + } + }, + "yq_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "linux_amd64", + "version": "4.25.2" + } + }, + "yq_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "linux_arm64", + "version": "4.25.2" + } + }, + "yq_linux_s390x": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "linux_s390x", + "version": "4.25.2" + } + }, + "yq_linux_ppc64le": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "linux_ppc64le", + "version": "4.25.2" + } + }, + "yq_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "windows_amd64", + "version": "4.25.2" + } + }, + "yq": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_host_alias_repo", + "attributes": {} + }, + "yq_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_toolchains_repo", + "attributes": { + "user_repository_name": "yq" + } + }, + "coreutils_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_platform_repo", + "attributes": { + "platform": "darwin_amd64", + "version": "0.0.16" + } + }, + "coreutils_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_platform_repo", + "attributes": { + "platform": "darwin_arm64", + "version": "0.0.16" + } + }, + "coreutils_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_platform_repo", + "attributes": { + "platform": "linux_amd64", + "version": "0.0.16" + } + }, + "coreutils_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_platform_repo", + "attributes": { + "platform": "linux_arm64", + "version": "0.0.16" + } + }, + "coreutils_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_platform_repo", + "attributes": { + "platform": "windows_amd64", + "version": "0.0.16" + } + }, + "coreutils_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_toolchains_repo", + "attributes": { + "user_repository_name": "coreutils" + } + }, + "bsd_tar_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "bsd_tar_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "bsd_tar_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "bsd_tar_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "bsd_tar_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "bsd_tar_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%tar_toolchains_repo", + "attributes": { + "user_repository_name": "bsd_tar" + } + }, + "expand_template_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "expand_template_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "expand_template_freebsd_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo", + "attributes": { + "platform": "freebsd_amd64" + } + }, + "expand_template_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "expand_template_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "expand_template_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "expand_template_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_toolchains_repo", + "attributes": { + "user_repository_name": "expand_template" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_bazel_lib+", + "aspect_bazel_lib", + "aspect_bazel_lib+" + ], + [ + "aspect_bazel_lib+", + "bazel_skylib", + "bazel_skylib+" + ], + [ + "aspect_bazel_lib+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@aspect_rules_js+//npm:extensions.bzl%pnpm": { + "general": { + "bzlTransitiveDigest": "poAa/2uyrVSr9Hel1HD6GfFwqId27yXfePnG+3Dmt90=", + "usagesDigest": "yxkJioaKxOYkZAdkGoq2Cm79s4pW36Xwx7a8awQOU2E=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "pnpm": { + "repoRuleId": "@@aspect_rules_js+//npm/private:npm_import.bzl%npm_import_rule", + "attributes": { + "package": "pnpm", + "version": "8.6.7", + "root_package": "", + "link_workspace": "", + "link_packages": {}, + "integrity": "sha512-vRIWpD/L4phf9Bk2o/O2TDR8fFoJnpYrp2TKqTIZF/qZ2/rgL3qKXzHofHgbXsinwMoSEigz28sqk3pQ+yMEQQ==", + "url": "", + "commit": "", + "patch_args": [ + "-p0" + ], + "patches": [], + "custom_postinstall": "", + "npm_auth": "", + "npm_auth_basic": "", + "npm_auth_username": "", + "npm_auth_password": "", + "lifecycle_hooks": [], + "extra_build_content": "load(\"@aspect_rules_js//js:defs.bzl\", \"js_binary\")\njs_binary(name = \"pnpm\", data = glob([\"package/**\"]), entry_point = \"package/dist/pnpm.cjs\", visibility = [\"//visibility:public\"])", + "generate_bzl_library_targets": false, + "extract_full_archive": true + } + }, + "pnpm__links": { + "repoRuleId": "@@aspect_rules_js+//npm/private:npm_import.bzl%npm_import_links", + "attributes": { + "package": "pnpm", + "version": "8.6.7", + "dev": false, + "root_package": "", + "link_packages": {}, + "deps": {}, + "transitive_closure": {}, + "lifecycle_build_target": false, + "lifecycle_hooks_env": [], + "lifecycle_hooks_execution_requirements": [ + "no-sandbox" + ], + "lifecycle_hooks_use_default_shell_env": false, + "bins": {}, + "package_visibility": [ + "//visibility:public" + ], + "replace_package": "" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_bazel_lib+", + "bazel_skylib", + "bazel_skylib+" + ], + [ + "aspect_bazel_lib+", + "bazel_tools", + "bazel_tools" + ], + [ + "aspect_rules_js+", + "aspect_bazel_lib", + "aspect_bazel_lib+" + ], + [ + "aspect_rules_js+", + "bazel_features", + "bazel_features+" + ], + [ + "aspect_rules_js+", + "bazel_skylib", + "bazel_skylib+" + ], + [ + "aspect_rules_js+", + "bazel_tools", + "bazel_tools" + ], + [ + "bazel_features+", + "bazel_features_globals", + "bazel_features++version_extension+bazel_features_globals" + ], + [ + "bazel_features+", + "bazel_features_version", + "bazel_features++version_extension+bazel_features_version" + ], + [ + "bazel_features+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@emsdk+//:emscripten_cache.bzl%emscripten_cache": { + "general": { + "bzlTransitiveDigest": "uqDvXmpTNqW4+ie/Fk+xC3TrFrKvL+9hNtoP51Kt2oo=", + "usagesDigest": "d45w3mu98tmYO95D//utIzVG+p8OPeGUpN0TgQMnLHA=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "emscripten_cache": { + "repoRuleId": "@@emsdk+//:emscripten_cache.bzl%_emscripten_cache_repository", + "attributes": { + "configuration": [], + "targets": [] + } + } + }, + "recordedRepoMappingEntries": [] + } + }, + "@@emsdk+//:emscripten_deps.bzl%emscripten_deps": { + "general": { + "bzlTransitiveDigest": "h0wQ3PSRx/Q9n+izTifYO8L728OTd9B5YbLOWcobVYE=", + "usagesDigest": "eqaMlu1tts7n29bG5zUl3DtA/9ARE+6aHrSK4X7kNno=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "emscripten_bin_linux": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang\",\n \"bin/clang++\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang\",\n \"bin/llvm-ar\",\n \"bin/llvm-dwarfdump\",\n \"bin/llvm-nm\",\n \"bin/llvm-objcopy\",\n \"bin/wasm-ctor-eval\",\n \"bin/wasm-emscripten-finalize\",\n \"bin/wasm-ld\",\n \"bin/wasm-metadce\",\n \"bin/wasm-opt\",\n \"bin/wasm-split\",\n \"bin/wasm2js\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n", + "sha256": "27fc220a9ad98d323cad73531ff563e9838c9e1205f51ee2a5632bb4266a35d2", + "strip_prefix": "install", + "type": "tar.xz", + "url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/linux/14767574a5c37ff9526a253a65ddbe0811cb3667/wasm-binaries.tar.xz" + } + }, + "emscripten_bin_linux_arm64": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang\",\n \"bin/clang++\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang\",\n \"bin/llvm-ar\",\n \"bin/llvm-dwarfdump\",\n \"bin/llvm-nm\",\n \"bin/llvm-objcopy\",\n \"bin/wasm-ctor-eval\",\n \"bin/wasm-emscripten-finalize\",\n \"bin/wasm-ld\",\n \"bin/wasm-metadce\",\n \"bin/wasm-opt\",\n \"bin/wasm-split\",\n \"bin/wasm2js\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n", + "sha256": "2d03f8eb3f81dd94821658eefbb442a92b0b7601f4cfb08590590fd7bc467ef8", + "strip_prefix": "install", + "type": "tar.xz", + "url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/linux/14767574a5c37ff9526a253a65ddbe0811cb3667/wasm-binaries-arm64.tar.xz" + } + }, + "emscripten_bin_mac": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang\",\n \"bin/clang++\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang\",\n \"bin/llvm-ar\",\n \"bin/llvm-dwarfdump\",\n \"bin/llvm-nm\",\n \"bin/llvm-objcopy\",\n \"bin/wasm-ctor-eval\",\n \"bin/wasm-emscripten-finalize\",\n \"bin/wasm-ld\",\n \"bin/wasm-metadce\",\n \"bin/wasm-opt\",\n \"bin/wasm-split\",\n \"bin/wasm2js\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n", + "sha256": "c06048915595726fc2e2da6a8db3134581a6287645fb818802a9734ff9785e77", + "strip_prefix": "install", + "type": "tar.xz", + "url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/mac/14767574a5c37ff9526a253a65ddbe0811cb3667/wasm-binaries.tar.xz" + } + }, + "emscripten_bin_mac_arm64": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang\",\n \"bin/clang++\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang\",\n \"bin/llvm-ar\",\n \"bin/llvm-dwarfdump\",\n \"bin/llvm-nm\",\n \"bin/llvm-objcopy\",\n \"bin/wasm-ctor-eval\",\n \"bin/wasm-emscripten-finalize\",\n \"bin/wasm-ld\",\n \"bin/wasm-metadce\",\n \"bin/wasm-opt\",\n \"bin/wasm-split\",\n \"bin/wasm2js\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n", + "sha256": "35d743453d0f91857b09f00d721037bb46753aaeae373bd7f64746338db11770", + "strip_prefix": "install", + "type": "tar.xz", + "url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/mac/14767574a5c37ff9526a253a65ddbe0811cb3667/wasm-binaries-arm64.tar.xz" + } + }, + "emscripten_bin_win": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang.exe\",\n \"bin/clang++.exe\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang.exe\",\n \"bin/llvm-ar.exe\",\n \"bin/llvm-dwarfdump.exe\",\n \"bin/llvm-nm.exe\",\n \"bin/llvm-objcopy.exe\",\n \"bin/wasm-ctor-eval.exe\",\n \"bin/wasm-emscripten-finalize.exe\",\n \"bin/wasm-ld.exe\",\n \"bin/wasm-metadce.exe\",\n \"bin/wasm-opt.exe\",\n \"bin/wasm-split.exe\",\n \"bin/wasm2js.exe\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar.exe\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n", + "sha256": "3b576e825b26426bb72854ed98752df3fcb58cc3ab1dc116566e328b79a8abb3", + "strip_prefix": "install", + "type": "zip", + "url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/win/14767574a5c37ff9526a253a65ddbe0811cb3667/wasm-binaries.zip" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "bazel_tools", + "rules_cc", + "rules_cc+" + ], + [ + "emsdk+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@pybind11_bazel+//:python_configure.bzl%extension": { + "general": { + "bzlTransitiveDigest": "d4N/SZrl3ONcmzE98rcV0Fsro0iUbjNQFTIiLiGuH+k=", + "usagesDigest": "fycyB39YnXIJkfWCIXLUKJMZzANcuLy9ZE73hRucjFk=", + "recordedFileInputs": { + "@@pybind11_bazel+//MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e" + }, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "local_config_python": { + "repoRuleId": "@@pybind11_bazel+//:python_configure.bzl%python_configure", + "attributes": {} + }, + "pybind11": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "build_file": "@@pybind11_bazel+//:pybind11.BUILD", + "strip_prefix": "pybind11-2.11.1", + "urls": [ + "https://github.com/pybind/pybind11/archive/v2.11.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "pybind11_bazel+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_fuzzing+//fuzzing/private:extensions.bzl%non_module_dependencies": { + "general": { + "bzlTransitiveDigest": "mGiTB79hRNjmeDTQdzkpCHyzXhErMbufeAmySBt7s5s=", + "usagesDigest": "wy6ISK6UOcBEjj/mvJ/S3WeXoO67X+1llb9yPyFtPgc=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "platforms": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz", + "https://github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz" + ], + "sha256": "8150406605389ececb6da07cbcb509d5637a3ab9a24bc69b1101531367d89d74" + } + }, + "rules_python": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "d70cd72a7a4880f0000a6346253414825c19cdd40a28289bdf67b8e6480edff8", + "strip_prefix": "rules_python-0.28.0", + "url": "https://github.com/bazelbuild/rules_python/releases/download/0.28.0/rules_python-0.28.0.tar.gz" + } + }, + "bazel_skylib": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd55a062e763b9349921f0f5db8c3933288dc8ba4f76dd9416aac68acee3cb94", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz", + "https://github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz" + ] + } + }, + "com_google_absl": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "urls": [ + "https://github.com/abseil/abseil-cpp/archive/refs/tags/20240116.1.zip" + ], + "strip_prefix": "abseil-cpp-20240116.1", + "integrity": "sha256-7capMWOvWyoYbUaHF/b+I2U6XLMaHmky8KugWvfXYuk=" + } + }, + "rules_fuzzing_oss_fuzz": { + "repoRuleId": "@@rules_fuzzing+//fuzzing/private/oss_fuzz:repository.bzl%oss_fuzz_repository", + "attributes": {} + }, + "honggfuzz": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "build_file": "@@rules_fuzzing+//:honggfuzz.BUILD", + "sha256": "6b18ba13bc1f36b7b950c72d80f19ea67fbadc0ac0bb297ec89ad91f2eaa423e", + "url": "https://github.com/google/honggfuzz/archive/2.5.zip", + "strip_prefix": "honggfuzz-2.5" + } + }, + "rules_fuzzing_jazzer": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_jar", + "attributes": { + "sha256": "ee6feb569d88962d59cb59e8a31eb9d007c82683f3ebc64955fd5b96f277eec2", + "url": "https://repo1.maven.org/maven2/com/code-intelligence/jazzer/0.20.1/jazzer-0.20.1.jar" + } + }, + "rules_fuzzing_jazzer_api": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_jar", + "attributes": { + "sha256": "f5a60242bc408f7fa20fccf10d6c5c5ea1fcb3c6f44642fec5af88373ae7aa1b", + "url": "https://repo1.maven.org/maven2/com/code-intelligence/jazzer-api/0.20.1/jazzer-api-0.20.1.jar" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_fuzzing+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_java+//java:rules_java_deps.bzl%compatibility_proxy": { + "general": { + "bzlTransitiveDigest": "84xJEZ1jnXXwo8BXMprvBm++rRt4jsTu9liBxz0ivps=", + "usagesDigest": "jTQDdLDxsS43zuRmg1faAjIEPWdLAbDAowI1pInQSoo=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "compatibility_proxy": { + "repoRuleId": "@@rules_java+//java:rules_java_deps.bzl%_compatibility_proxy_repo_rule", + "attributes": {} + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_java+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "sFhcgPbDQehmbD1EOXzX4H1q/CD5df8zwG4kp4jbvr8=", + "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "com_github_jetbrains_kotlin_git": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository", + "attributes": { + "urls": [ + "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip" + ], + "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88" + } + }, + "com_github_jetbrains_kotlin": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository", + "attributes": { + "git_repository_name": "com_github_jetbrains_kotlin_git", + "compiler_version": "1.9.23" + } + }, + "com_github_google_ksp": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository", + "attributes": { + "urls": [ + "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip" + ], + "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d", + "strip_version": "1.9.23-1.0.20" + } + }, + "com_github_pinterest_ktlint": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985", + "urls": [ + "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint" + ], + "executable": true + } + }, + "rules_android": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + "strip_prefix": "rules_android-0.1.1", + "urls": [ + "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_kotlin+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_nodejs+//nodejs:extensions.bzl%node": { + "general": { + "bzlTransitiveDigest": "rphcryfYrOY/P3emfTskC/GY5YuHcwMl2B2ncjaM8lY=", + "usagesDigest": "m7d0VXcsX/qS6DKMUBtdgjQzP2eMRHqsE4wv7dzr71I=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "nodejs_linux_amd64": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.18.0", + "include_headers": false, + "platform": "linux_amd64" + } + }, + "nodejs_linux_arm64": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.18.0", + "include_headers": false, + "platform": "linux_arm64" + } + }, + "nodejs_linux_s390x": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.18.0", + "include_headers": false, + "platform": "linux_s390x" + } + }, + "nodejs_linux_ppc64le": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.18.0", + "include_headers": false, + "platform": "linux_ppc64le" + } + }, + "nodejs_darwin_amd64": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.18.0", + "include_headers": false, + "platform": "darwin_amd64" + } + }, + "nodejs_darwin_arm64": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.18.0", + "include_headers": false, + "platform": "darwin_arm64" + } + }, + "nodejs_windows_amd64": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.18.0", + "include_headers": false, + "platform": "windows_amd64" + } + }, + "nodejs": { + "repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_repo_host_os_alias.bzl%nodejs_repo_host_os_alias", + "attributes": { + "user_node_repository_name": "nodejs" + } + }, + "nodejs_host": { + "repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_repo_host_os_alias.bzl%nodejs_repo_host_os_alias", + "attributes": { + "user_node_repository_name": "nodejs" + } + }, + "nodejs_toolchains": { + "repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_toolchains_repo.bzl%nodejs_toolchains_repo", + "attributes": { + "user_node_repository_name": "nodejs" + } + } + }, + "recordedRepoMappingEntries": [] + } + }, + "@@rules_python+//python/extensions:pip.bzl%pip": { + "general": { + "bzlTransitiveDigest": "Jbed6zJUJ6E78XRyOlnG1ryhBDvVeikdntPW1D40S/E=", + "usagesDigest": "fztm9ST3ki9E77tct2ZwJe0w38LvfMY8mRYp+YHxXQE=", + "recordedFileInputs": { + "@@protobuf+//python/requirements.txt": "983be60d3cec4b319dcab6d48aeb3f5b2f7c3350f26b3a9e97486c37967c73c5", + "@@rules_fuzzing+//fuzzing/requirements.txt": "ab04664be026b632a0d2a2446c4f65982b7654f5b6851d2f9d399a19b7242a5b", + "@@rules_python+//tools/publish/requirements_darwin.txt": "095d4a4f3d639dce831cd493367631cd51b53665292ab20194bac2c0c6458fa8", + "@@rules_python+//tools/publish/requirements_linux.txt": "d576e0d8542df61396a9b38deeaa183c24135ed5e8e73bb9622f298f2671811e", + "@@rules_python+//tools/publish/requirements_windows.txt": "d18538a3982beab378fd5687f4db33162ee1ece69801f9a451661b1b64286b76" + }, + "recordedDirentsInputs": {}, + "envVariables": { + "RULES_PYTHON_REPO_DEBUG": null, + "RULES_PYTHON_REPO_DEBUG_VERBOSITY": null + }, + "generatedRepoSpecs": { + "pip_deps_310_numpy": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_10_host//:python", + "repo": "pip_deps_310", + "requirement": "numpy<=1.26.1" + } + }, + "pip_deps_310_setuptools": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_10_host//:python", + "repo": "pip_deps_310", + "requirement": "setuptools<=70.3.0" + } + }, + "pip_deps_311_numpy": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "pip_deps_311", + "requirement": "numpy<=1.26.1" + } + }, + "pip_deps_311_setuptools": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "pip_deps_311", + "requirement": "setuptools<=70.3.0" + } + }, + "pip_deps_312_numpy": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_12_host//:python", + "repo": "pip_deps_312", + "requirement": "numpy<=1.26.1" + } + }, + "pip_deps_312_setuptools": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_12_host//:python", + "repo": "pip_deps_312", + "requirement": "setuptools<=70.3.0" + } + }, + "pip_deps_38_numpy": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_8_host//:python", + "repo": "pip_deps_38", + "requirement": "numpy<=1.26.1" + } + }, + "pip_deps_38_setuptools": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_8_host//:python", + "repo": "pip_deps_38", + "requirement": "setuptools<=70.3.0" + } + }, + "pip_deps_39_numpy": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_9_host//:python", + "repo": "pip_deps_39", + "requirement": "numpy<=1.26.1" + } + }, + "pip_deps_39_setuptools": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_9_host//:python", + "repo": "pip_deps_39", + "requirement": "setuptools<=70.3.0" + } + }, + "rules_fuzzing_py_deps_310_absl_py": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_10_host//:python", + "repo": "rules_fuzzing_py_deps_310", + "requirement": "absl-py==2.0.0 --hash=sha256:9a28abb62774ae4e8edbe2dd4c49ffcd45a6a848952a5eccc6a49f3f0fc1e2f3" + } + }, + "rules_fuzzing_py_deps_310_six": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_10_host//:python", + "repo": "rules_fuzzing_py_deps_310", + "requirement": "six==1.16.0 --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + } + }, + "rules_fuzzing_py_deps_311_absl_py": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_fuzzing_py_deps_311", + "requirement": "absl-py==2.0.0 --hash=sha256:9a28abb62774ae4e8edbe2dd4c49ffcd45a6a848952a5eccc6a49f3f0fc1e2f3" + } + }, + "rules_fuzzing_py_deps_311_six": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_fuzzing_py_deps_311", + "requirement": "six==1.16.0 --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + } + }, + "rules_fuzzing_py_deps_312_absl_py": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_12_host//:python", + "repo": "rules_fuzzing_py_deps_312", + "requirement": "absl-py==2.0.0 --hash=sha256:9a28abb62774ae4e8edbe2dd4c49ffcd45a6a848952a5eccc6a49f3f0fc1e2f3" + } + }, + "rules_fuzzing_py_deps_312_six": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_12_host//:python", + "repo": "rules_fuzzing_py_deps_312", + "requirement": "six==1.16.0 --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + } + }, + "rules_fuzzing_py_deps_38_absl_py": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_8_host//:python", + "repo": "rules_fuzzing_py_deps_38", + "requirement": "absl-py==2.0.0 --hash=sha256:9a28abb62774ae4e8edbe2dd4c49ffcd45a6a848952a5eccc6a49f3f0fc1e2f3" + } + }, + "rules_fuzzing_py_deps_38_six": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_8_host//:python", + "repo": "rules_fuzzing_py_deps_38", + "requirement": "six==1.16.0 --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + } + }, + "rules_fuzzing_py_deps_39_absl_py": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_9_host//:python", + "repo": "rules_fuzzing_py_deps_39", + "requirement": "absl-py==2.0.0 --hash=sha256:9a28abb62774ae4e8edbe2dd4c49ffcd45a6a848952a5eccc6a49f3f0fc1e2f3" + } + }, + "rules_fuzzing_py_deps_39_six": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_9_host//:python", + "repo": "rules_fuzzing_py_deps_39", + "requirement": "six==1.16.0 --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + } + }, + "rules_python_publish_deps_311_backports_tarfile_py3_none_any_77e284d7": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "backports.tarfile-1.2.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "backports-tarfile==1.2.0", + "sha256": "77e284d754527b01fb1e6fa8a1afe577858ebe4e9dad8919e34c862cb399bc34", + "urls": [ + "https://files.pythonhosted.org/packages/b9/fa/123043af240e49752f1c4bd24da5053b6bd00cad78c2be53c0d1e8b975bc/backports.tarfile-1.2.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_backports_tarfile_sdist_d75e02c2": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "backports_tarfile-1.2.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "backports-tarfile==1.2.0", + "sha256": "d75e02c268746e1b8144c278978b6e98e85de6ad16f8e4b0844a154557eca991", + "urls": [ + "https://files.pythonhosted.org/packages/86/72/cd9b395f25e290e633655a100af28cb253e4393396264a98bd5f5951d50f/backports_tarfile-1.2.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_certifi_py3_none_any_922820b5": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "certifi-2024.8.30-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "certifi==2024.8.30", + "sha256": "922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8", + "urls": [ + "https://files.pythonhosted.org/packages/12/90/3c9ff0512038035f59d279fddeb79f5f1eccd8859f06d6163c58798b9487/certifi-2024.8.30-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_certifi_sdist_bec941d2": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "certifi-2024.8.30.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "certifi==2024.8.30", + "sha256": "bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9", + "urls": [ + "https://files.pythonhosted.org/packages/b0/ee/9b19140fe824b367c04c5e1b369942dd754c4c5462d5674002f75c4dedc1/certifi-2024.8.30.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_aarch64_a1ed2dd2": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cffi==1.17.1", + "sha256": "a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41", + "urls": [ + "https://files.pythonhosted.org/packages/2e/ea/70ce63780f096e16ce8588efe039d3c4f91deb1dc01e9c73a287939c79a6/cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_s390x_a24ed04c": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cffi==1.17.1", + "sha256": "a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6", + "urls": [ + "https://files.pythonhosted.org/packages/62/12/ce8710b5b8affbcdd5c6e367217c242524ad17a02fe5beec3ee339f69f85/cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" + ] + } + }, + "rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_x86_64_610faea7": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cffi==1.17.1", + "sha256": "610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d", + "urls": [ + "https://files.pythonhosted.org/packages/ff/6b/d45873c5e0242196f042d555526f92aa9e0c32355a1be1ff8c27f077fd37/cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_cffi_cp311_cp311_musllinux_1_1_aarch64_a9b15d49": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cffi==1.17.1", + "sha256": "a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6", + "urls": [ + "https://files.pythonhosted.org/packages/1a/52/d9a0e523a572fbccf2955f5abe883cfa8bcc570d7faeee06336fbd50c9fc/cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_cffi_cp311_cp311_musllinux_1_1_x86_64_fc48c783": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cffi==1.17.1", + "sha256": "fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b", + "urls": [ + "https://files.pythonhosted.org/packages/f8/4a/34599cac7dfcd888ff54e801afe06a19c17787dfd94495ab0c8d35fe99fb/cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_cffi_sdist_1c39c601": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "cffi-1.17.1.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cffi==1.17.1", + "sha256": "1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", + "urls": [ + "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_10_9_universal2_0d99dd8f": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c", + "urls": [ + "https://files.pythonhosted.org/packages/9c/61/73589dcc7a719582bf56aae309b6103d2762b526bffe189d635a7fcfd998/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_10_9_x86_64_c57516e5": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944", + "urls": [ + "https://files.pythonhosted.org/packages/77/d5/8c982d58144de49f59571f940e329ad6e8615e1e82ef84584c5eeb5e1d72/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_11_0_arm64_6dba5d19": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee", + "urls": [ + "https://files.pythonhosted.org/packages/bf/19/411a64f01ee971bed3231111b69eb56f9331a769072de479eae7de52296d/charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_aarch64_bf4475b8": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c", + "urls": [ + "https://files.pythonhosted.org/packages/4c/92/97509850f0d00e9f14a46bc751daabd0ad7765cff29cdfb66c68b6dad57f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_s390x_8ff4e7cd": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea", + "urls": [ + "https://files.pythonhosted.org/packages/13/bc/87c2c9f2c144bedfa62f894c3007cd4530ba4b5351acb10dc786428a50f0/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_x86_64_3710a975": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc", + "urls": [ + "https://files.pythonhosted.org/packages/eb/5b/6f10bad0f6461fa272bfbbdf5d0023b5fb9bc6217c92bf068fa5a99820f5/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_aarch64_47334db7": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594", + "urls": [ + "https://files.pythonhosted.org/packages/d7/a1/493919799446464ed0299c8eef3c3fad0daf1c3cd48bff9263c731b0d9e2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_s390x_63bc5c4a": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129", + "urls": [ + "https://files.pythonhosted.org/packages/8d/c9/27e41d481557be53d51e60750b85aa40eaf52b841946b3cdeff363105737/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_x86_64_bcb4f8ea": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236", + "urls": [ + "https://files.pythonhosted.org/packages/ee/44/4f62042ca8cdc0cabf87c0fc00ae27cd8b53ab68be3605ba6d071f742ad3/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_win_amd64_cee4373f": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27", + "urls": [ + "https://files.pythonhosted.org/packages/0b/6e/b13bd47fa9023b3699e94abf565b5a2f0b0be6e9ddac9812182596ee62e4/charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_py3_none_any_fe9f97fe": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", + "urls": [ + "https://files.pythonhosted.org/packages/bf/9b/08c0432272d77b04803958a4598a51e2a4b51c06640af8b8f0f908c18bf2/charset_normalizer-3.4.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_sdist_223217c3": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "charset_normalizer-3.4.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e", + "urls": [ + "https://files.pythonhosted.org/packages/f2/4f/e1808dc01273379acc506d18f1504eb2d299bd4131743b9fc54d7be4df1e/charset_normalizer-3.4.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_17_aarch64_846da004": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5", + "urls": [ + "https://files.pythonhosted.org/packages/2f/78/55356eb9075d0be6e81b59f45c7b48df87f76a20e73893872170471f3ee8/cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_17_x86_64_0f996e72": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4", + "urls": [ + "https://files.pythonhosted.org/packages/2a/2c/488776a3dc843f95f86d2f957ca0fc3407d0242b50bede7fad1e339be03f/cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_28_aarch64_f7b178f1": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7", + "urls": [ + "https://files.pythonhosted.org/packages/7c/04/2345ca92f7a22f601a9c62961741ef7dd0127c39f7310dffa0041c80f16f/cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_28_x86_64_c2e6fc39": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405", + "urls": [ + "https://files.pythonhosted.org/packages/ac/25/e715fa0bc24ac2114ed69da33adf451a38abb6f3f24ec207908112e9ba53/cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_cryptography_cp39_abi3_musllinux_1_2_aarch64_e1be4655": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16", + "urls": [ + "https://files.pythonhosted.org/packages/21/ce/b9c9ff56c7164d8e2edfb6c9305045fbc0df4508ccfdb13ee66eb8c95b0e/cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_cryptography_cp39_abi3_musllinux_1_2_x86_64_df6b6c6d": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73", + "urls": [ + "https://files.pythonhosted.org/packages/2a/33/b3682992ab2e9476b9c81fff22f02c8b0a1e6e1d49ee1750a67d85fd7ed2/cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_cryptography_sdist_315b9001": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "cryptography-43.0.3.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805", + "urls": [ + "https://files.pythonhosted.org/packages/0d/05/07b55d1fa21ac18c3a8c79f764e2514e6f6a9698f1be44994f5adf0d29db/cryptography-43.0.3.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_docutils_py3_none_any_dafca5b9": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "docutils-0.21.2-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "docutils==0.21.2", + "sha256": "dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2", + "urls": [ + "https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_docutils_sdist_3a6b1873": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "docutils-0.21.2.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "docutils==0.21.2", + "sha256": "3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f", + "urls": [ + "https://files.pythonhosted.org/packages/ae/ed/aefcc8cd0ba62a0560c3c18c33925362d46c6075480bfa4df87b28e169a9/docutils-0.21.2.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_idna_py3_none_any_946d195a": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "idna-3.10-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "idna==3.10", + "sha256": "946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", + "urls": [ + "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_idna_sdist_12f65c9b": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "idna-3.10.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "idna==3.10", + "sha256": "12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", + "urls": [ + "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_importlib_metadata_py3_none_any_45e54197": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "importlib_metadata-8.5.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "importlib-metadata==8.5.0", + "sha256": "45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b", + "urls": [ + "https://files.pythonhosted.org/packages/a0/d9/a1e041c5e7caa9a05c925f4bdbdfb7f006d1f74996af53467bc394c97be7/importlib_metadata-8.5.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_importlib_metadata_sdist_71522656": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "importlib_metadata-8.5.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "importlib-metadata==8.5.0", + "sha256": "71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7", + "urls": [ + "https://files.pythonhosted.org/packages/cd/12/33e59336dca5be0c398a7482335911a33aa0e20776128f038019f1a95f1b/importlib_metadata-8.5.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_jaraco_classes_py3_none_any_f662826b": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "jaraco.classes-3.4.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jaraco-classes==3.4.0", + "sha256": "f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790", + "urls": [ + "https://files.pythonhosted.org/packages/7f/66/b15ce62552d84bbfcec9a4873ab79d993a1dd4edb922cbfccae192bd5b5f/jaraco.classes-3.4.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_jaraco_classes_sdist_47a024b5": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "jaraco.classes-3.4.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jaraco-classes==3.4.0", + "sha256": "47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd", + "urls": [ + "https://files.pythonhosted.org/packages/06/c0/ed4a27bc5571b99e3cff68f8a9fa5b56ff7df1c2251cc715a652ddd26402/jaraco.classes-3.4.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_jaraco_context_py3_none_any_f797fc48": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "jaraco.context-6.0.1-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jaraco-context==6.0.1", + "sha256": "f797fc481b490edb305122c9181830a3a5b76d84ef6d1aef2fb9b47ab956f9e4", + "urls": [ + "https://files.pythonhosted.org/packages/ff/db/0c52c4cf5e4bd9f5d7135ec7669a3a767af21b3a308e1ed3674881e52b62/jaraco.context-6.0.1-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_jaraco_context_sdist_9bae4ea5": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "jaraco_context-6.0.1.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jaraco-context==6.0.1", + "sha256": "9bae4ea555cf0b14938dc0aee7c9f32ed303aa20a3b73e7dc80111628792d1b3", + "urls": [ + "https://files.pythonhosted.org/packages/df/ad/f3777b81bf0b6e7bc7514a1656d3e637b2e8e15fab2ce3235730b3e7a4e6/jaraco_context-6.0.1.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_jaraco_functools_py3_none_any_ad159f13": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "jaraco.functools-4.1.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jaraco-functools==4.1.0", + "sha256": "ad159f13428bc4acbf5541ad6dec511f91573b90fba04df61dafa2a1231cf649", + "urls": [ + "https://files.pythonhosted.org/packages/9f/4f/24b319316142c44283d7540e76c7b5a6dbd5db623abd86bb7b3491c21018/jaraco.functools-4.1.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_jaraco_functools_sdist_70f7e0e2": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "jaraco_functools-4.1.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jaraco-functools==4.1.0", + "sha256": "70f7e0e2ae076498e212562325e805204fc092d7b4c17e0e86c959e249701a9d", + "urls": [ + "https://files.pythonhosted.org/packages/ab/23/9894b3df5d0a6eb44611c36aec777823fc2e07740dabbd0b810e19594013/jaraco_functools-4.1.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_jeepney_py3_none_any_c0a454ad": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "jeepney-0.8.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jeepney==0.8.0", + "sha256": "c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755", + "urls": [ + "https://files.pythonhosted.org/packages/ae/72/2a1e2290f1ab1e06f71f3d0f1646c9e4634e70e1d37491535e19266e8dc9/jeepney-0.8.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_jeepney_sdist_5efe48d2": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "jeepney-0.8.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jeepney==0.8.0", + "sha256": "5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806", + "urls": [ + "https://files.pythonhosted.org/packages/d6/f4/154cf374c2daf2020e05c3c6a03c91348d59b23c5366e968feb198306fdf/jeepney-0.8.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_keyring_py3_none_any_5426f817": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "keyring-25.4.1-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "keyring==25.4.1", + "sha256": "5426f817cf7f6f007ba5ec722b1bcad95a75b27d780343772ad76b17cb47b0bf", + "urls": [ + "https://files.pythonhosted.org/packages/83/25/e6d59e5f0a0508d0dca8bb98c7f7fd3772fc943ac3f53d5ab18a218d32c0/keyring-25.4.1-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_keyring_sdist_b07ebc55": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "keyring-25.4.1.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "keyring==25.4.1", + "sha256": "b07ebc55f3e8ed86ac81dd31ef14e81ace9dd9c3d4b5d77a6e9a2016d0d71a1b", + "urls": [ + "https://files.pythonhosted.org/packages/a5/1c/2bdbcfd5d59dc6274ffb175bc29aa07ecbfab196830e0cfbde7bd861a2ea/keyring-25.4.1.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_markdown_it_py_py3_none_any_35521684": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "markdown_it_py-3.0.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "markdown-it-py==3.0.0", + "sha256": "355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", + "urls": [ + "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_markdown_it_py_sdist_e3f60a94": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "markdown-it-py-3.0.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "markdown-it-py==3.0.0", + "sha256": "e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", + "urls": [ + "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_mdurl_py3_none_any_84008a41": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "mdurl-0.1.2-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "mdurl==0.1.2", + "sha256": "84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", + "urls": [ + "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_mdurl_sdist_bb413d29": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "mdurl-0.1.2.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "mdurl==0.1.2", + "sha256": "bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", + "urls": [ + "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_more_itertools_py3_none_any_037b0d32": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "more_itertools-10.5.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "more-itertools==10.5.0", + "sha256": "037b0d3203ce90cca8ab1defbbdac29d5f993fc20131f3664dc8d6acfa872aef", + "urls": [ + "https://files.pythonhosted.org/packages/48/7e/3a64597054a70f7c86eb0a7d4fc315b8c1ab932f64883a297bdffeb5f967/more_itertools-10.5.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_more_itertools_sdist_5482bfef": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "more-itertools-10.5.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "more-itertools==10.5.0", + "sha256": "5482bfef7849c25dc3c6dd53a6173ae4795da2a41a80faea6700d9f5846c5da6", + "urls": [ + "https://files.pythonhosted.org/packages/51/78/65922308c4248e0eb08ebcbe67c95d48615cc6f27854b6f2e57143e9178f/more-itertools-10.5.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_macosx_10_12_x86_64_14c5a72e": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "14c5a72e9fe82aea5fe3072116ad4661af5cf8e8ff8fc5ad3450f123e4925e86", + "urls": [ + "https://files.pythonhosted.org/packages/b3/89/1daff5d9ba5a95a157c092c7c5f39b8dd2b1ddb4559966f808d31cfb67e0/nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_macosx_10_12_x86_64_7b7c2a3c": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "7b7c2a3c9eb1a827d42539aa64091640bd275b81e097cd1d8d82ef91ffa2e811", + "urls": [ + "https://files.pythonhosted.org/packages/2c/b6/42fc3c69cabf86b6b81e4c051a9b6e249c5ba9f8155590222c2622961f58/nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_aarch64_42c64511": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "42c64511469005058cd17cc1537578eac40ae9f7200bedcfd1fc1a05f4f8c200", + "urls": [ + "https://files.pythonhosted.org/packages/45/b9/833f385403abaf0023c6547389ec7a7acf141ddd9d1f21573723a6eab39a/nh3-0.2.18-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_armv7l_0411beb0": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "0411beb0589eacb6734f28d5497ca2ed379eafab8ad8c84b31bb5c34072b7164", + "urls": [ + "https://files.pythonhosted.org/packages/05/2b/85977d9e11713b5747595ee61f381bc820749daf83f07b90b6c9964cf932/nh3-0.2.18-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_ppc64_5f36b271": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "5f36b271dae35c465ef5e9090e1fdaba4a60a56f0bb0ba03e0932a66f28b9189", + "urls": [ + "https://files.pythonhosted.org/packages/72/f2/5c894d5265ab80a97c68ca36f25c8f6f0308abac649aaf152b74e7e854a8/nh3-0.2.18-cp37-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_s390x_19aaba96": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "19aaba96e0f795bd0a6c56291495ff59364f4300d4a39b29a0abc9cb3774a84b", + "urls": [ + "https://files.pythonhosted.org/packages/c2/a8/3bb02d0c60a03ad3a112b76c46971e9480efa98a8946677b5a59f60130ca/nh3-0.2.18-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_x86_64_de3ceed6": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "de3ceed6e661954871d6cd78b410213bdcb136f79aafe22aa7182e028b8c7307", + "urls": [ + "https://files.pythonhosted.org/packages/1b/63/6ab90d0e5225ab9780f6c9fb52254fa36b52bb7c188df9201d05b647e5e1/nh3-0.2.18-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_musllinux_1_2_aarch64_f0eca9ca": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-musllinux_1_2_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "f0eca9ca8628dbb4e916ae2491d72957fdd35f7a5d326b7032a345f111ac07fe", + "urls": [ + "https://files.pythonhosted.org/packages/a3/da/0c4e282bc3cff4a0adf37005fa1fb42257673fbc1bbf7d1ff639ec3d255a/nh3-0.2.18-cp37-abi3-musllinux_1_2_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_musllinux_1_2_armv7l_3a157ab1": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-musllinux_1_2_armv7l.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "3a157ab149e591bb638a55c8c6bcb8cdb559c8b12c13a8affaba6cedfe51713a", + "urls": [ + "https://files.pythonhosted.org/packages/de/81/c291231463d21da5f8bba82c8167a6d6893cc5419b0639801ee5d3aeb8a9/nh3-0.2.18-cp37-abi3-musllinux_1_2_armv7l.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_musllinux_1_2_x86_64_36c95d4b": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-musllinux_1_2_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "36c95d4b70530b320b365659bb5034341316e6a9b30f0b25fa9c9eff4c27a204", + "urls": [ + "https://files.pythonhosted.org/packages/eb/61/73a007c74c37895fdf66e0edcd881f5eaa17a348ff02f4bb4bc906d61085/nh3-0.2.18-cp37-abi3-musllinux_1_2_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_win_amd64_8ce0f819": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-win_amd64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "8ce0f819d2f1933953fca255db2471ad58184a60508f03e6285e5114b6254844", + "urls": [ + "https://files.pythonhosted.org/packages/26/8d/53c5b19c4999bdc6ba95f246f4ef35ca83d7d7423e5e38be43ad66544e5d/nh3-0.2.18-cp37-abi3-win_amd64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_sdist_94a16692": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "nh3-0.2.18.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "94a166927e53972a9698af9542ace4e38b9de50c34352b962f4d9a7d4c927af4", + "urls": [ + "https://files.pythonhosted.org/packages/62/73/10df50b42ddb547a907deeb2f3c9823022580a7a47281e8eae8e003a9639/nh3-0.2.18.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_pkginfo_py3_none_any_889a6da2": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "pkginfo-1.10.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pkginfo==1.10.0", + "sha256": "889a6da2ed7ffc58ab5b900d888ddce90bce912f2d2de1dc1c26f4cb9fe65097", + "urls": [ + "https://files.pythonhosted.org/packages/56/09/054aea9b7534a15ad38a363a2bd974c20646ab1582a387a95b8df1bfea1c/pkginfo-1.10.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_pkginfo_sdist_5df73835": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "pkginfo-1.10.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pkginfo==1.10.0", + "sha256": "5df73835398d10db79f8eecd5cd86b1f6d29317589ea70796994d49399af6297", + "urls": [ + "https://files.pythonhosted.org/packages/2f/72/347ec5be4adc85c182ed2823d8d1c7b51e13b9a6b0c1aae59582eca652df/pkginfo-1.10.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_pycparser_py3_none_any_c3702b6d": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "pycparser-2.22-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pycparser==2.22", + "sha256": "c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", + "urls": [ + "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_pycparser_sdist_491c8be9": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "pycparser-2.22.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pycparser==2.22", + "sha256": "491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", + "urls": [ + "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_pygments_py3_none_any_b8e6aca0": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "pygments-2.18.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pygments==2.18.0", + "sha256": "b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a", + "urls": [ + "https://files.pythonhosted.org/packages/f7/3f/01c8b82017c199075f8f788d0d906b9ffbbc5a47dc9918a945e13d5a2bda/pygments-2.18.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_pygments_sdist_786ff802": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "pygments-2.18.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pygments==2.18.0", + "sha256": "786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199", + "urls": [ + "https://files.pythonhosted.org/packages/8e/62/8336eff65bcbc8e4cb5d05b55faf041285951b6e80f33e2bff2024788f31/pygments-2.18.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_pywin32_ctypes_py3_none_any_8a151337": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_windows_x86_64" + ], + "filename": "pywin32_ctypes-0.2.3-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pywin32-ctypes==0.2.3", + "sha256": "8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8", + "urls": [ + "https://files.pythonhosted.org/packages/de/3d/8161f7711c017e01ac9f008dfddd9410dff3674334c233bde66e7ba65bbf/pywin32_ctypes-0.2.3-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_pywin32_ctypes_sdist_d162dc04": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "pywin32-ctypes-0.2.3.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pywin32-ctypes==0.2.3", + "sha256": "d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755", + "urls": [ + "https://files.pythonhosted.org/packages/85/9f/01a1a99704853cb63f253eea009390c88e7131c67e66a0a02099a8c917cb/pywin32-ctypes-0.2.3.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_readme_renderer_py3_none_any_2fbca89b": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "readme_renderer-44.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "readme-renderer==44.0", + "sha256": "2fbca89b81a08526aadf1357a8c2ae889ec05fb03f5da67f9769c9a592166151", + "urls": [ + "https://files.pythonhosted.org/packages/e1/67/921ec3024056483db83953ae8e48079ad62b92db7880013ca77632921dd0/readme_renderer-44.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_readme_renderer_sdist_8712034e": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "readme_renderer-44.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "readme-renderer==44.0", + "sha256": "8712034eabbfa6805cacf1402b4eeb2a73028f72d1166d6f5cb7f9c047c5d1e1", + "urls": [ + "https://files.pythonhosted.org/packages/5a/a9/104ec9234c8448c4379768221ea6df01260cd6c2ce13182d4eac531c8342/readme_renderer-44.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_requests_py3_none_any_70761cfe": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "requests-2.32.3-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "requests==2.32.3", + "sha256": "70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", + "urls": [ + "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_requests_sdist_55365417": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "requests-2.32.3.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "requests==2.32.3", + "sha256": "55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", + "urls": [ + "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_requests_toolbelt_py2_none_any_cccfdd66": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "requests_toolbelt-1.0.0-py2.py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "requests-toolbelt==1.0.0", + "sha256": "cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", + "urls": [ + "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_requests_toolbelt_sdist_7681a0a3": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "requests-toolbelt-1.0.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "requests-toolbelt==1.0.0", + "sha256": "7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6", + "urls": [ + "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_rfc3986_py2_none_any_50b1502b": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "rfc3986-2.0.0-py2.py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "rfc3986==2.0.0", + "sha256": "50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd", + "urls": [ + "https://files.pythonhosted.org/packages/ff/9a/9afaade874b2fa6c752c36f1548f718b5b83af81ed9b76628329dab81c1b/rfc3986-2.0.0-py2.py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_rfc3986_sdist_97aacf9d": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "rfc3986-2.0.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "rfc3986==2.0.0", + "sha256": "97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c", + "urls": [ + "https://files.pythonhosted.org/packages/85/40/1520d68bfa07ab5a6f065a186815fb6610c86fe957bc065754e47f7b0840/rfc3986-2.0.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_rich_py3_none_any_6049d5e6": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "rich-13.9.4-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "rich==13.9.4", + "sha256": "6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90", + "urls": [ + "https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_rich_sdist_43959497": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "rich-13.9.4.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "rich==13.9.4", + "sha256": "439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098", + "urls": [ + "https://files.pythonhosted.org/packages/ab/3a/0316b28d0761c6734d6bc14e770d85506c986c85ffb239e688eeaab2c2bc/rich-13.9.4.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_secretstorage_py3_none_any_f356e662": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "SecretStorage-3.3.3-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "secretstorage==3.3.3", + "sha256": "f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99", + "urls": [ + "https://files.pythonhosted.org/packages/54/24/b4293291fa1dd830f353d2cb163295742fa87f179fcc8a20a306a81978b7/SecretStorage-3.3.3-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_secretstorage_sdist_2403533e": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "SecretStorage-3.3.3.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "secretstorage==3.3.3", + "sha256": "2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77", + "urls": [ + "https://files.pythonhosted.org/packages/53/a4/f48c9d79cb507ed1373477dbceaba7401fd8a23af63b837fa61f1dcd3691/SecretStorage-3.3.3.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_twine_py3_none_any_215dbe7b": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "twine-5.1.1-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "twine==5.1.1", + "sha256": "215dbe7b4b94c2c50a7315c0275d2258399280fbb7d04182c7e55e24b5f93997", + "urls": [ + "https://files.pythonhosted.org/packages/5d/ec/00f9d5fd040ae29867355e559a94e9a8429225a0284a3f5f091a3878bfc0/twine-5.1.1-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_twine_sdist_9aa08251": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "twine-5.1.1.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "twine==5.1.1", + "sha256": "9aa0825139c02b3434d913545c7b847a21c835e11597f5255842d457da2322db", + "urls": [ + "https://files.pythonhosted.org/packages/77/68/bd982e5e949ef8334e6f7dcf76ae40922a8750aa2e347291ae1477a4782b/twine-5.1.1.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_urllib3_py3_none_any_ca899ca0": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "urllib3-2.2.3-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "urllib3==2.2.3", + "sha256": "ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac", + "urls": [ + "https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_urllib3_sdist_e7d814a8": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "urllib3-2.2.3.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "urllib3==2.2.3", + "sha256": "e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9", + "urls": [ + "https://files.pythonhosted.org/packages/ed/63/22ba4ebfe7430b76388e7cd448d5478814d3032121827c12a2cc287e2260/urllib3-2.2.3.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_zipp_py3_none_any_a817ac80": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "zipp-3.20.2-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "zipp==3.20.2", + "sha256": "a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350", + "urls": [ + "https://files.pythonhosted.org/packages/62/8b/5ba542fa83c90e09eac972fc9baca7a88e7e7ca4b221a89251954019308b/zipp-3.20.2-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_zipp_sdist_bc9eb26f": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "zipp-3.20.2.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "zipp==3.20.2", + "sha256": "bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29", + "urls": [ + "https://files.pythonhosted.org/packages/54/bf/5c0000c44ebc80123ecbdddba1f5dcd94a5ada602a9c225d84b5aaa55e86/zipp-3.20.2.tar.gz" + ] + } + }, + "pip_deps": { + "repoRuleId": "@@rules_python+//python/private/pypi:hub_repository.bzl%hub_repository", + "attributes": { + "repo_name": "pip_deps", + "extra_hub_aliases": {}, + "whl_map": { + "numpy": "{\"pip_deps_310_numpy\":[{\"version\":\"3.10\"}],\"pip_deps_311_numpy\":[{\"version\":\"3.11\"}],\"pip_deps_312_numpy\":[{\"version\":\"3.12\"}],\"pip_deps_38_numpy\":[{\"version\":\"3.8\"}],\"pip_deps_39_numpy\":[{\"version\":\"3.9\"}]}", + "setuptools": "{\"pip_deps_310_setuptools\":[{\"version\":\"3.10\"}],\"pip_deps_311_setuptools\":[{\"version\":\"3.11\"}],\"pip_deps_312_setuptools\":[{\"version\":\"3.12\"}],\"pip_deps_38_setuptools\":[{\"version\":\"3.8\"}],\"pip_deps_39_setuptools\":[{\"version\":\"3.9\"}]}" + }, + "packages": [ + "numpy", + "setuptools" + ], + "groups": {} + } + }, + "rules_fuzzing_py_deps": { + "repoRuleId": "@@rules_python+//python/private/pypi:hub_repository.bzl%hub_repository", + "attributes": { + "repo_name": "rules_fuzzing_py_deps", + "extra_hub_aliases": {}, + "whl_map": { + "absl_py": "{\"rules_fuzzing_py_deps_310_absl_py\":[{\"version\":\"3.10\"}],\"rules_fuzzing_py_deps_311_absl_py\":[{\"version\":\"3.11\"}],\"rules_fuzzing_py_deps_312_absl_py\":[{\"version\":\"3.12\"}],\"rules_fuzzing_py_deps_38_absl_py\":[{\"version\":\"3.8\"}],\"rules_fuzzing_py_deps_39_absl_py\":[{\"version\":\"3.9\"}]}", + "six": "{\"rules_fuzzing_py_deps_310_six\":[{\"version\":\"3.10\"}],\"rules_fuzzing_py_deps_311_six\":[{\"version\":\"3.11\"}],\"rules_fuzzing_py_deps_312_six\":[{\"version\":\"3.12\"}],\"rules_fuzzing_py_deps_38_six\":[{\"version\":\"3.8\"}],\"rules_fuzzing_py_deps_39_six\":[{\"version\":\"3.9\"}]}" + }, + "packages": [ + "absl_py", + "six" + ], + "groups": {} + } + }, + "rules_python_publish_deps": { + "repoRuleId": "@@rules_python+//python/private/pypi:hub_repository.bzl%hub_repository", + "attributes": { + "repo_name": "rules_python_publish_deps", + "extra_hub_aliases": {}, + "whl_map": { + "backports_tarfile": "{\"rules_python_publish_deps_311_backports_tarfile_py3_none_any_77e284d7\":[{\"filename\":\"backports.tarfile-1.2.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_backports_tarfile_sdist_d75e02c2\":[{\"filename\":\"backports_tarfile-1.2.0.tar.gz\",\"version\":\"3.11\"}]}", + "certifi": "{\"rules_python_publish_deps_311_certifi_py3_none_any_922820b5\":[{\"filename\":\"certifi-2024.8.30-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_certifi_sdist_bec941d2\":[{\"filename\":\"certifi-2024.8.30.tar.gz\",\"version\":\"3.11\"}]}", + "cffi": "{\"rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_aarch64_a1ed2dd2\":[{\"filename\":\"cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_s390x_a24ed04c\":[{\"filename\":\"cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_x86_64_610faea7\":[{\"filename\":\"cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cffi_cp311_cp311_musllinux_1_1_aarch64_a9b15d49\":[{\"filename\":\"cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cffi_cp311_cp311_musllinux_1_1_x86_64_fc48c783\":[{\"filename\":\"cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cffi_sdist_1c39c601\":[{\"filename\":\"cffi-1.17.1.tar.gz\",\"version\":\"3.11\"}]}", + "charset_normalizer": "{\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_10_9_universal2_0d99dd8f\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_10_9_x86_64_c57516e5\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_11_0_arm64_6dba5d19\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_aarch64_bf4475b8\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_s390x_8ff4e7cd\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_x86_64_3710a975\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_aarch64_47334db7\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_s390x_63bc5c4a\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_x86_64_bcb4f8ea\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_win_amd64_cee4373f\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_py3_none_any_fe9f97fe\":[{\"filename\":\"charset_normalizer-3.4.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_sdist_223217c3\":[{\"filename\":\"charset_normalizer-3.4.0.tar.gz\",\"version\":\"3.11\"}]}", + "cryptography": "{\"rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_17_aarch64_846da004\":[{\"filename\":\"cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_17_x86_64_0f996e72\":[{\"filename\":\"cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_28_aarch64_f7b178f1\":[{\"filename\":\"cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_28_x86_64_c2e6fc39\":[{\"filename\":\"cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cryptography_cp39_abi3_musllinux_1_2_aarch64_e1be4655\":[{\"filename\":\"cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cryptography_cp39_abi3_musllinux_1_2_x86_64_df6b6c6d\":[{\"filename\":\"cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cryptography_sdist_315b9001\":[{\"filename\":\"cryptography-43.0.3.tar.gz\",\"version\":\"3.11\"}]}", + "docutils": "{\"rules_python_publish_deps_311_docutils_py3_none_any_dafca5b9\":[{\"filename\":\"docutils-0.21.2-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_docutils_sdist_3a6b1873\":[{\"filename\":\"docutils-0.21.2.tar.gz\",\"version\":\"3.11\"}]}", + "idna": "{\"rules_python_publish_deps_311_idna_py3_none_any_946d195a\":[{\"filename\":\"idna-3.10-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_idna_sdist_12f65c9b\":[{\"filename\":\"idna-3.10.tar.gz\",\"version\":\"3.11\"}]}", + "importlib_metadata": "{\"rules_python_publish_deps_311_importlib_metadata_py3_none_any_45e54197\":[{\"filename\":\"importlib_metadata-8.5.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_importlib_metadata_sdist_71522656\":[{\"filename\":\"importlib_metadata-8.5.0.tar.gz\",\"version\":\"3.11\"}]}", + "jaraco_classes": "{\"rules_python_publish_deps_311_jaraco_classes_py3_none_any_f662826b\":[{\"filename\":\"jaraco.classes-3.4.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_jaraco_classes_sdist_47a024b5\":[{\"filename\":\"jaraco.classes-3.4.0.tar.gz\",\"version\":\"3.11\"}]}", + "jaraco_context": "{\"rules_python_publish_deps_311_jaraco_context_py3_none_any_f797fc48\":[{\"filename\":\"jaraco.context-6.0.1-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_jaraco_context_sdist_9bae4ea5\":[{\"filename\":\"jaraco_context-6.0.1.tar.gz\",\"version\":\"3.11\"}]}", + "jaraco_functools": "{\"rules_python_publish_deps_311_jaraco_functools_py3_none_any_ad159f13\":[{\"filename\":\"jaraco.functools-4.1.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_jaraco_functools_sdist_70f7e0e2\":[{\"filename\":\"jaraco_functools-4.1.0.tar.gz\",\"version\":\"3.11\"}]}", + "jeepney": "{\"rules_python_publish_deps_311_jeepney_py3_none_any_c0a454ad\":[{\"filename\":\"jeepney-0.8.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_jeepney_sdist_5efe48d2\":[{\"filename\":\"jeepney-0.8.0.tar.gz\",\"version\":\"3.11\"}]}", + "keyring": "{\"rules_python_publish_deps_311_keyring_py3_none_any_5426f817\":[{\"filename\":\"keyring-25.4.1-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_keyring_sdist_b07ebc55\":[{\"filename\":\"keyring-25.4.1.tar.gz\",\"version\":\"3.11\"}]}", + "markdown_it_py": "{\"rules_python_publish_deps_311_markdown_it_py_py3_none_any_35521684\":[{\"filename\":\"markdown_it_py-3.0.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_markdown_it_py_sdist_e3f60a94\":[{\"filename\":\"markdown-it-py-3.0.0.tar.gz\",\"version\":\"3.11\"}]}", + "mdurl": "{\"rules_python_publish_deps_311_mdurl_py3_none_any_84008a41\":[{\"filename\":\"mdurl-0.1.2-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_mdurl_sdist_bb413d29\":[{\"filename\":\"mdurl-0.1.2.tar.gz\",\"version\":\"3.11\"}]}", + "more_itertools": "{\"rules_python_publish_deps_311_more_itertools_py3_none_any_037b0d32\":[{\"filename\":\"more_itertools-10.5.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_more_itertools_sdist_5482bfef\":[{\"filename\":\"more-itertools-10.5.0.tar.gz\",\"version\":\"3.11\"}]}", + "nh3": "{\"rules_python_publish_deps_311_nh3_cp37_abi3_macosx_10_12_x86_64_14c5a72e\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_macosx_10_12_x86_64_7b7c2a3c\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_aarch64_42c64511\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_armv7l_0411beb0\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_ppc64_5f36b271\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_s390x_19aaba96\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_x86_64_de3ceed6\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_musllinux_1_2_aarch64_f0eca9ca\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-musllinux_1_2_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_musllinux_1_2_armv7l_3a157ab1\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-musllinux_1_2_armv7l.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_musllinux_1_2_x86_64_36c95d4b\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-musllinux_1_2_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_win_amd64_8ce0f819\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-win_amd64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_sdist_94a16692\":[{\"filename\":\"nh3-0.2.18.tar.gz\",\"version\":\"3.11\"}]}", + "pkginfo": "{\"rules_python_publish_deps_311_pkginfo_py3_none_any_889a6da2\":[{\"filename\":\"pkginfo-1.10.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_pkginfo_sdist_5df73835\":[{\"filename\":\"pkginfo-1.10.0.tar.gz\",\"version\":\"3.11\"}]}", + "pycparser": "{\"rules_python_publish_deps_311_pycparser_py3_none_any_c3702b6d\":[{\"filename\":\"pycparser-2.22-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_pycparser_sdist_491c8be9\":[{\"filename\":\"pycparser-2.22.tar.gz\",\"version\":\"3.11\"}]}", + "pygments": "{\"rules_python_publish_deps_311_pygments_py3_none_any_b8e6aca0\":[{\"filename\":\"pygments-2.18.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_pygments_sdist_786ff802\":[{\"filename\":\"pygments-2.18.0.tar.gz\",\"version\":\"3.11\"}]}", + "pywin32_ctypes": "{\"rules_python_publish_deps_311_pywin32_ctypes_py3_none_any_8a151337\":[{\"filename\":\"pywin32_ctypes-0.2.3-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_pywin32_ctypes_sdist_d162dc04\":[{\"filename\":\"pywin32-ctypes-0.2.3.tar.gz\",\"version\":\"3.11\"}]}", + "readme_renderer": "{\"rules_python_publish_deps_311_readme_renderer_py3_none_any_2fbca89b\":[{\"filename\":\"readme_renderer-44.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_readme_renderer_sdist_8712034e\":[{\"filename\":\"readme_renderer-44.0.tar.gz\",\"version\":\"3.11\"}]}", + "requests": "{\"rules_python_publish_deps_311_requests_py3_none_any_70761cfe\":[{\"filename\":\"requests-2.32.3-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_requests_sdist_55365417\":[{\"filename\":\"requests-2.32.3.tar.gz\",\"version\":\"3.11\"}]}", + "requests_toolbelt": "{\"rules_python_publish_deps_311_requests_toolbelt_py2_none_any_cccfdd66\":[{\"filename\":\"requests_toolbelt-1.0.0-py2.py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_requests_toolbelt_sdist_7681a0a3\":[{\"filename\":\"requests-toolbelt-1.0.0.tar.gz\",\"version\":\"3.11\"}]}", + "rfc3986": "{\"rules_python_publish_deps_311_rfc3986_py2_none_any_50b1502b\":[{\"filename\":\"rfc3986-2.0.0-py2.py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_rfc3986_sdist_97aacf9d\":[{\"filename\":\"rfc3986-2.0.0.tar.gz\",\"version\":\"3.11\"}]}", + "rich": "{\"rules_python_publish_deps_311_rich_py3_none_any_6049d5e6\":[{\"filename\":\"rich-13.9.4-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_rich_sdist_43959497\":[{\"filename\":\"rich-13.9.4.tar.gz\",\"version\":\"3.11\"}]}", + "secretstorage": "{\"rules_python_publish_deps_311_secretstorage_py3_none_any_f356e662\":[{\"filename\":\"SecretStorage-3.3.3-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_secretstorage_sdist_2403533e\":[{\"filename\":\"SecretStorage-3.3.3.tar.gz\",\"version\":\"3.11\"}]}", + "twine": "{\"rules_python_publish_deps_311_twine_py3_none_any_215dbe7b\":[{\"filename\":\"twine-5.1.1-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_twine_sdist_9aa08251\":[{\"filename\":\"twine-5.1.1.tar.gz\",\"version\":\"3.11\"}]}", + "urllib3": "{\"rules_python_publish_deps_311_urllib3_py3_none_any_ca899ca0\":[{\"filename\":\"urllib3-2.2.3-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_urllib3_sdist_e7d814a8\":[{\"filename\":\"urllib3-2.2.3.tar.gz\",\"version\":\"3.11\"}]}", + "zipp": "{\"rules_python_publish_deps_311_zipp_py3_none_any_a817ac80\":[{\"filename\":\"zipp-3.20.2-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_zipp_sdist_bc9eb26f\":[{\"filename\":\"zipp-3.20.2.tar.gz\",\"version\":\"3.11\"}]}" + }, + "packages": [ + "backports_tarfile", + "certifi", + "charset_normalizer", + "docutils", + "idna", + "importlib_metadata", + "jaraco_classes", + "jaraco_context", + "jaraco_functools", + "keyring", + "markdown_it_py", + "mdurl", + "more_itertools", + "nh3", + "pkginfo", + "pygments", + "readme_renderer", + "requests", + "requests_toolbelt", + "rfc3986", + "rich", + "twine", + "urllib3", + "zipp" + ], + "groups": {} + } + } + }, + "moduleExtensionMetadata": { + "useAllRepos": "NO", + "reproducible": false + }, + "recordedRepoMappingEntries": [ + [ + "bazel_features+", + "bazel_features_globals", + "bazel_features++version_extension+bazel_features_globals" + ], + [ + "bazel_features+", + "bazel_features_version", + "bazel_features++version_extension+bazel_features_version" + ], + [ + "rules_python+", + "bazel_features", + "bazel_features+" + ], + [ + "rules_python+", + "bazel_skylib", + "bazel_skylib+" + ], + [ + "rules_python+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_python+", + "pypi__build", + "rules_python++internal_deps+pypi__build" + ], + [ + "rules_python+", + "pypi__click", + "rules_python++internal_deps+pypi__click" + ], + [ + "rules_python+", + "pypi__colorama", + "rules_python++internal_deps+pypi__colorama" + ], + [ + "rules_python+", + "pypi__importlib_metadata", + "rules_python++internal_deps+pypi__importlib_metadata" + ], + [ + "rules_python+", + "pypi__installer", + "rules_python++internal_deps+pypi__installer" + ], + [ + "rules_python+", + "pypi__more_itertools", + "rules_python++internal_deps+pypi__more_itertools" + ], + [ + "rules_python+", + "pypi__packaging", + "rules_python++internal_deps+pypi__packaging" + ], + [ + "rules_python+", + "pypi__pep517", + "rules_python++internal_deps+pypi__pep517" + ], + [ + "rules_python+", + "pypi__pip", + "rules_python++internal_deps+pypi__pip" + ], + [ + "rules_python+", + "pypi__pip_tools", + "rules_python++internal_deps+pypi__pip_tools" + ], + [ + "rules_python+", + "pypi__pyproject_hooks", + "rules_python++internal_deps+pypi__pyproject_hooks" + ], + [ + "rules_python+", + "pypi__setuptools", + "rules_python++internal_deps+pypi__setuptools" + ], + [ + "rules_python+", + "pypi__tomli", + "rules_python++internal_deps+pypi__tomli" + ], + [ + "rules_python+", + "pypi__wheel", + "rules_python++internal_deps+pypi__wheel" + ], + [ + "rules_python+", + "pypi__zipp", + "rules_python++internal_deps+pypi__zipp" + ], + [ + "rules_python+", + "pythons_hub", + "rules_python++python+pythons_hub" + ], + [ + "rules_python++python+pythons_hub", + "python_3_10_host", + "rules_python++python+python_3_10_host" + ], + [ + "rules_python++python+pythons_hub", + "python_3_11_host", + "rules_python++python+python_3_11_host" + ], + [ + "rules_python++python+pythons_hub", + "python_3_12_host", + "rules_python++python+python_3_12_host" + ], + [ + "rules_python++python+pythons_hub", + "python_3_13_host", + "rules_python++python+python_3_13_host" + ], + [ + "rules_python++python+pythons_hub", + "python_3_8_host", + "rules_python++python+python_3_8_host" + ], + [ + "rules_python++python+pythons_hub", + "python_3_9_host", + "rules_python++python+python_3_9_host" + ] + ] + } + }, + "@@rules_python+//python/uv:uv.bzl%uv": { + "general": { + "bzlTransitiveDigest": "Xpqjnjzy6zZ90Es9Wa888ZLHhn7IsNGbph/e6qoxzw8=", + "usagesDigest": "vJ5RHUxAnV24M5swNGiAnkdxMx3Hp/iOLmNANTC5Xc8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "uv": { + "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo", + "attributes": { + "toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'", + "toolchain_names": [ + "none" + ], + "toolchain_implementations": { + "none": "'@@rules_python+//python:none'" + }, + "toolchain_compatible_with": { + "none": [ + "@platforms//:incompatible" + ] + }, + "toolchain_target_settings": {} + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_python+", + "platforms", + "platforms" + ] + ] + } + } + } +} diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/hello-embind-externs.js b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/hello-embind-externs.js new file mode 100644 index 0000000..864d220 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/hello-embind-externs.js @@ -0,0 +1,2 @@ +// This file prevents customJSFunctionToTestClosure from being minified by the Closure compiler. +Module.customJSFunctionToTestClosure = function() {} \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/hello-embind-interface.js b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/hello-embind-interface.js new file mode 100644 index 0000000..ddc4d2f --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/hello-embind-interface.js @@ -0,0 +1,3 @@ +Module.customJSFunctionToTestClosure = function(firstParam, secondParam) { + console.log("This function adds two numbers to get", firstParam + secondParam); +} \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/hello-embind.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/hello-embind.cc new file mode 100644 index 0000000..d5bff5f --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/hello-embind.cc @@ -0,0 +1,16 @@ +#include + +using namespace emscripten; + +class HelloClass { + public: + static std::string SayHello(const std::string &name) { + return "Yo! " + name; + }; +}; + +EMSCRIPTEN_BINDINGS(Hello) { + emscripten::class_("HelloClass") + .constructor<>() + .class_function("SayHello", &HelloClass::SayHello); +} diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/hello-world.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/hello-world.cc new file mode 100644 index 0000000..ee72c53 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/hello-world.cc @@ -0,0 +1,6 @@ +#include + +int main(int argc, char** argv) { + std::cout << "hello world!" << std::endl; + return 0; +} diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/BUILD.bazel b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/BUILD.bazel new file mode 100644 index 0000000..4ffe247 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/BUILD.bazel @@ -0,0 +1,61 @@ +load("@emsdk//emscripten_toolchain:wasm_rules.bzl", "wasm_cc_binary") + +_TEST_TARGETS = [ + "long_command_line_file01", + "long_command_line_file02", + "long_command_line_file03", + "long_command_line_file04", + "long_command_line_file05", + "long_command_line_file06", + "long_command_line_file07", + "long_command_line_file08", + "long_command_line_file09", + "long_command_line_file10", + "long_command_line_file11", + "long_command_line_file12", + "long_command_line_file13", + "long_command_line_file14", + "long_command_line_file15", + "long_command_line_file16", + "long_command_line_file17", + "long_command_line_file18", + "long_command_line_file19", + "long_command_line_file20", +] + +_TEST_TARGET_SUFFIXES = [ + "a", + "b", + "c", + "d", + "e", + "f", + "g", + "h", + "i", + "j", +] + +[cc_library( + name = "{}_{}".format(target, suffix), + hdrs = ["include/{}.hh".format(target)], + # stripping include prefix to create more flags passed to emcc + strip_include_prefix = "include", + srcs = ["{}.cc".format(target)], +) for target in _TEST_TARGETS for suffix in _TEST_TARGET_SUFFIXES] + +cc_binary( + name = "long_command_line", + linkshared = True, + srcs = ["long_command_line.cc"], + deps = [":{}_{}".format(target, suffix) for target in _TEST_TARGETS for suffix in _TEST_TARGET_SUFFIXES], +) + +wasm_cc_binary( + name = "long_command_line_wasm", + cc_target = ":long_command_line", + outputs = [ + "long_command_line.js", + "long_command_line.wasm", + ], +) diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file01.hh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file01.hh new file mode 100644 index 0000000..8dd06ba --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file01.hh @@ -0,0 +1,3 @@ +#pragma once + +void f1(); diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file02.hh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file02.hh new file mode 100644 index 0000000..7a3a0ff --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file02.hh @@ -0,0 +1,3 @@ +#pragma once + +void f2(); diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file03.hh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file03.hh new file mode 100644 index 0000000..1688055 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file03.hh @@ -0,0 +1,3 @@ +#pragma once + +void f3(); diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file04.hh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file04.hh new file mode 100644 index 0000000..45ef1fc --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file04.hh @@ -0,0 +1,3 @@ +#pragma once + +void f4(); diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file05.hh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file05.hh new file mode 100644 index 0000000..707ad50 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file05.hh @@ -0,0 +1,3 @@ +#pragma once + +void f5(); diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file06.hh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file06.hh new file mode 100644 index 0000000..5d91450 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file06.hh @@ -0,0 +1,3 @@ +#pragma once + +void f6(); diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file07.hh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file07.hh new file mode 100644 index 0000000..b0bf811 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file07.hh @@ -0,0 +1,3 @@ +#pragma once + +void f7(); diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file08.hh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file08.hh new file mode 100644 index 0000000..994b7ea --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file08.hh @@ -0,0 +1,3 @@ +#pragma once + +void f8(); diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file09.hh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file09.hh new file mode 100644 index 0000000..90c1958 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file09.hh @@ -0,0 +1,3 @@ +#pragma once + +void f9(); diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file10.hh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file10.hh new file mode 100644 index 0000000..6a43881 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file10.hh @@ -0,0 +1,3 @@ +#pragma once + +void f10(); diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file11.hh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file11.hh new file mode 100644 index 0000000..878c939 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file11.hh @@ -0,0 +1,3 @@ +#pragma once + +void f11(); diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file12.hh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file12.hh new file mode 100644 index 0000000..b5e0bc3 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file12.hh @@ -0,0 +1,3 @@ +#pragma once + +void f12(); diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file13.hh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file13.hh new file mode 100644 index 0000000..634dcef --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file13.hh @@ -0,0 +1,3 @@ +#pragma once + +void f13(); diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file14.hh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file14.hh new file mode 100644 index 0000000..8fa9666 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file14.hh @@ -0,0 +1,3 @@ +#pragma once + +void f14(); diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file15.hh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file15.hh new file mode 100644 index 0000000..1f7b770 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file15.hh @@ -0,0 +1,3 @@ +#pragma once + +void f15(); diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file16.hh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file16.hh new file mode 100644 index 0000000..c9fa2fc --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file16.hh @@ -0,0 +1,3 @@ +#pragma once + +void f16(); diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file17.hh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file17.hh new file mode 100644 index 0000000..b959207 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file17.hh @@ -0,0 +1,3 @@ +#pragma once + +void f17(); diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file18.hh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file18.hh new file mode 100644 index 0000000..af0bacf --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file18.hh @@ -0,0 +1,3 @@ +#pragma once + +void f18(); diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file19.hh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file19.hh new file mode 100644 index 0000000..0ac9b4b --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file19.hh @@ -0,0 +1,3 @@ +#pragma once + +void f19(); diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file20.hh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file20.hh new file mode 100644 index 0000000..0f10c73 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/include/long_command_line_file20.hh @@ -0,0 +1,3 @@ +#pragma once + +void f20(); diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line.cc new file mode 100644 index 0000000..1ae13ab --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line.cc @@ -0,0 +1,43 @@ +#include "long_command_line_file01.hh" +#include "long_command_line_file02.hh" +#include "long_command_line_file03.hh" +#include "long_command_line_file04.hh" +#include "long_command_line_file05.hh" +#include "long_command_line_file06.hh" +#include "long_command_line_file07.hh" +#include "long_command_line_file08.hh" +#include "long_command_line_file09.hh" +#include "long_command_line_file10.hh" +#include "long_command_line_file11.hh" +#include "long_command_line_file12.hh" +#include "long_command_line_file13.hh" +#include "long_command_line_file14.hh" +#include "long_command_line_file15.hh" +#include "long_command_line_file16.hh" +#include "long_command_line_file17.hh" +#include "long_command_line_file18.hh" +#include "long_command_line_file19.hh" +#include "long_command_line_file20.hh" + +int main() { + f1(); + f2(); + f3(); + f4(); + f5(); + f6(); + f7(); + f8(); + f9(); + f10(); + f11(); + f12(); + f13(); + f14(); + f15(); + f16(); + f17(); + f18(); + f19(); + f20(); +} diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file01.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file01.cc new file mode 100644 index 0000000..3bf8d4a --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file01.cc @@ -0,0 +1,5 @@ +#include "long_command_line_file01.hh" + +#include + +void f1() { std::cout << "hello from f1()\n"; } diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file02.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file02.cc new file mode 100644 index 0000000..b8ac814 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file02.cc @@ -0,0 +1,5 @@ +#include "long_command_line_file02.hh" + +#include + +void f2() { std::cout << "hello from f2()\n"; } diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file03.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file03.cc new file mode 100644 index 0000000..294e777 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file03.cc @@ -0,0 +1,5 @@ +#include "long_command_line_file03.hh" + +#include + +void f3() { std::cout << "hello from f3()\n"; } diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file04.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file04.cc new file mode 100644 index 0000000..c0d537d --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file04.cc @@ -0,0 +1,5 @@ +#include "long_command_line_file04.hh" + +#include + +void f4() { std::cout << "hello from f4()\n"; } diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file05.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file05.cc new file mode 100644 index 0000000..310e3e0 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file05.cc @@ -0,0 +1,5 @@ +#include "long_command_line_file05.hh" + +#include + +void f5() { std::cout << "hello from f5()\n"; } diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file06.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file06.cc new file mode 100644 index 0000000..2c218fd --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file06.cc @@ -0,0 +1,5 @@ +#include "long_command_line_file06.hh" + +#include + +void f6() { std::cout << "hello from f6()\n"; } diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file07.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file07.cc new file mode 100644 index 0000000..c78dc40 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file07.cc @@ -0,0 +1,5 @@ +#include "long_command_line_file07.hh" + +#include + +void f7() { std::cout << "hello from f7()\n"; } diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file08.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file08.cc new file mode 100644 index 0000000..1c2e10f --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file08.cc @@ -0,0 +1,5 @@ +#include "long_command_line_file08.hh" + +#include + +void f8() { std::cout << "hello from f8()\n"; } diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file09.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file09.cc new file mode 100644 index 0000000..6c0028d --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file09.cc @@ -0,0 +1,5 @@ +#include "long_command_line_file09.hh" + +#include + +void f9() { std::cout << "hello from f9()\n"; } diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file10.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file10.cc new file mode 100644 index 0000000..9f0be9c --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file10.cc @@ -0,0 +1,5 @@ +#include "long_command_line_file10.hh" + +#include + +void f10() { std::cout << "hello from f10()\n"; } diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file11.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file11.cc new file mode 100644 index 0000000..2ef8f96 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file11.cc @@ -0,0 +1,5 @@ +#include "long_command_line_file11.hh" + +#include + +void f11() { std::cout << "hello from f11()\n"; } diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file12.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file12.cc new file mode 100644 index 0000000..7634996 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file12.cc @@ -0,0 +1,5 @@ +#include "long_command_line_file12.hh" + +#include + +void f12() { std::cout << "hello from f12()\n"; } diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file13.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file13.cc new file mode 100644 index 0000000..bca66d0 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file13.cc @@ -0,0 +1,5 @@ +#include "long_command_line_file13.hh" + +#include + +void f13() { std::cout << "hello from f13()\n"; } diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file14.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file14.cc new file mode 100644 index 0000000..543179f --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file14.cc @@ -0,0 +1,5 @@ +#include "long_command_line_file14.hh" + +#include + +void f14() { std::cout << "hello from f14()\n"; } diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file15.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file15.cc new file mode 100644 index 0000000..28767ef --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file15.cc @@ -0,0 +1,5 @@ +#include "long_command_line_file15.hh" + +#include + +void f15() { std::cout << "hello from f15()\n"; } diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file16.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file16.cc new file mode 100644 index 0000000..ca7ff99 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file16.cc @@ -0,0 +1,5 @@ +#include "long_command_line_file16.hh" + +#include + +void f16() { std::cout << "hello from f16()\n"; } diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file17.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file17.cc new file mode 100644 index 0000000..2230d36 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file17.cc @@ -0,0 +1,5 @@ +#include "long_command_line_file17.hh" + +#include + +void f17() { std::cout << "hello from f17()\n"; } diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file18.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file18.cc new file mode 100644 index 0000000..822cd14 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file18.cc @@ -0,0 +1,5 @@ +#include "long_command_line_file18.hh" + +#include + +void f18() { std::cout << "hello from f18()\n"; } diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file19.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file19.cc new file mode 100644 index 0000000..b864064 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file19.cc @@ -0,0 +1,5 @@ +#include "long_command_line_file19.hh" + +#include + +void f19() { std::cout << "hello from f19()\n"; } diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file20.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file20.cc new file mode 100644 index 0000000..0562be6 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_external/long_command_line/long_command_line_file20.cc @@ -0,0 +1,5 @@ +#include "long_command_line_file20.hh" + +#include + +void f20() { std::cout << "hello from f20()\n"; } diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_secondary_lto_cache/.bazelrc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_secondary_lto_cache/.bazelrc new file mode 100644 index 0000000..fbd75a7 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_secondary_lto_cache/.bazelrc @@ -0,0 +1 @@ +build --incompatible_enable_cc_toolchain_resolution diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_secondary_lto_cache/.gitignore b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_secondary_lto_cache/.gitignore new file mode 100644 index 0000000..9d50f0b --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_secondary_lto_cache/.gitignore @@ -0,0 +1,4 @@ +bazel-bin +bazel-out +bazel-test_secondary_lto_cache +bazel-testlogs \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_secondary_lto_cache/BUILD b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_secondary_lto_cache/BUILD new file mode 100644 index 0000000..f364f37 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_secondary_lto_cache/BUILD @@ -0,0 +1,19 @@ +load("@emsdk//emscripten_toolchain:wasm_rules.bzl", "wasm_cc_binary") + +cc_binary( + name = "hello-world", + srcs = ["hello-world.cc"], + linkopts = [ + "-sAUTO_NATIVE_LIBRARIES=0", + "-flto", + ], +) + +wasm_cc_binary( + name = "hello-world-wasm", + cc_target = ":hello-world", + outputs = [ + "hello-world.js", + "hello-world.wasm", + ], +) diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_secondary_lto_cache/MODULE.bazel b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_secondary_lto_cache/MODULE.bazel new file mode 100644 index 0000000..0fabdc8 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_secondary_lto_cache/MODULE.bazel @@ -0,0 +1,25 @@ +bazel_dep(name = "rules_cc", version = "0.1.1") +bazel_dep(name = "emsdk") +local_path_override( + module_name = "emsdk", + path = "..", +) + +emscripten_cache = use_extension( + "@emsdk//:emscripten_cache.bzl", + "emscripten_cache", +) +emscripten_cache.configuration(flags = ["--lto"]) +emscripten_cache.targets(targets = [ + "crtbegin", + "libprintf_long_double-debug", + "libstubs-debug", + "libnoexit", + "libc-debug", + "libdlmalloc", + "libcompiler_rt", + "libc++-noexcept", + "libc++abi-debug-noexcept", + "libsockets", + "libdlmalloc-debug", +]) diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_secondary_lto_cache/MODULE.bazel.lock b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_secondary_lto_cache/MODULE.bazel.lock new file mode 100644 index 0000000..a340fd7 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_secondary_lto_cache/MODULE.bazel.lock @@ -0,0 +1,3710 @@ +{ + "lockFileVersion": 18, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", + "https://bcr.bazel.build/modules/aspect_bazel_lib/1.42.3/MODULE.bazel": "e4529e12d8cd5b828e2b5960d07d3ec032541740d419d7d5b859cabbf5b056f9", + "https://bcr.bazel.build/modules/aspect_bazel_lib/1.42.3/source.json": "80cb66069ad626e0921555cd2bf278286fd7763fae2450e564e351792e8303f4", + "https://bcr.bazel.build/modules/aspect_rules_js/1.42.0/MODULE.bazel": "f19e6b4a16f77f8cf3728eac1f60dbfd8e043517fd4f4dbf17a75a6c50936d62", + "https://bcr.bazel.build/modules/aspect_rules_js/1.42.0/source.json": "abbb3eac3b6af76b8ce230a9a901c6d08d93f4f5ffd55314bf630827dddee57e", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/source.json": "3e8379efaaef53ce35b7b8ba419df829315a880cb0a030e5bb45c96d6d5ecb5f", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/source.json": "f121b43eeefc7c29efbd51b83d08631e2347297c95aac9764a701f2a6a2bb953", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", + "https://bcr.bazel.build/modules/platforms/0.0.11/source.json": "f7e188b79ebedebfe75e9e1d098b8845226c7992b307e28e1496f23112e8fc29", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", + "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/source.json": "d61627377bd7dd1da4652063e368d9366fc9a73920bfa396798ad92172cf645c", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.6.1/MODULE.bazel": "f4808e2ab5b0197f094cabce9f4b006a27766beb6a9975931da07099560ca9c2", + "https://bcr.bazel.build/modules/rules_java/8.6.1/source.json": "f18d9ad3c4c54945bf422ad584fa6c5ca5b3116ff55a5b1bc77e5c1210be5960", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_nodejs/5.8.2/MODULE.bazel": "6bc03c8f37f69401b888023bf511cb6ee4781433b0cb56236b2e55a21e3a026a", + "https://bcr.bazel.build/modules/rules_nodejs/6.3.2/MODULE.bazel": "42e8d5254b6135f890fecca7c8d7f95a7d27a45f8275b276f66ec337767530ef", + "https://bcr.bazel.build/modules/rules_nodejs/6.3.2/source.json": "80e0a68eb81772f1631f8b69014884eebc2474b3b3025fd19a5240ae4f76f9c9", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/source.json": "bd82e5d7b9ce2d31e380dd9f50c111d678c3bdaca190cb76b0e1c71b05e1ba8a", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", + "https://bcr.bazel.build/modules/rules_python/1.3.0/MODULE.bazel": "8361d57eafb67c09b75bf4bbe6be360e1b8f4f18118ab48037f2bd50aa2ccb13", + "https://bcr.bazel.build/modules/rules_python/1.3.0/source.json": "25932f917cd279c7baefa6cb1d3fa8750a7a29de522024449b19af6eab51f4a0", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/source.json": "7f27af3c28037d9701487c4744b5448d26537cc66cdef0d8df7ae85411f8de95", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.5.4/MODULE.bazel": "6569966df04610b8520957cb8e97cf2e9faac2c0309657c537ab51c16c18a2a4", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/MODULE.bazel": "af322bc08976524477c79d1e45e241b6efbeb918c497e8840b8ab116802dda79", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/source.json": "2be409ac3c7601245958cd4fcdff4288be79ed23bd690b4b951f500d54ee6e7d", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "@@aspect_bazel_lib+//lib:extensions.bzl%toolchains": { + "general": { + "bzlTransitiveDigest": "nrCBrZBQH3Dq30TXMpPMV6lWpEDozX0S0kCia4Lrpj0=", + "usagesDigest": "1c7PNX163TGNqWzfejRnWpH/hiT4/GRG0kYxuez0Uz0=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "copy_directory_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "copy_directory_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "copy_directory_freebsd_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo", + "attributes": { + "platform": "freebsd_amd64" + } + }, + "copy_directory_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "copy_directory_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "copy_directory_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "copy_directory_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_toolchains_repo", + "attributes": { + "user_repository_name": "copy_directory" + } + }, + "copy_to_directory_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "copy_to_directory_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "copy_to_directory_freebsd_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo", + "attributes": { + "platform": "freebsd_amd64" + } + }, + "copy_to_directory_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "copy_to_directory_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "copy_to_directory_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "copy_to_directory_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_toolchains_repo", + "attributes": { + "user_repository_name": "copy_to_directory" + } + }, + "jq_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo", + "attributes": { + "platform": "darwin_amd64", + "version": "1.6" + } + }, + "jq_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo", + "attributes": { + "platform": "darwin_arm64", + "version": "1.6" + } + }, + "jq_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo", + "attributes": { + "platform": "linux_amd64", + "version": "1.6" + } + }, + "jq_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo", + "attributes": { + "platform": "windows_amd64", + "version": "1.6" + } + }, + "jq": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_host_alias_repo", + "attributes": {} + }, + "jq_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_toolchains_repo", + "attributes": { + "user_repository_name": "jq" + } + }, + "yq_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "darwin_amd64", + "version": "4.25.2" + } + }, + "yq_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "darwin_arm64", + "version": "4.25.2" + } + }, + "yq_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "linux_amd64", + "version": "4.25.2" + } + }, + "yq_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "linux_arm64", + "version": "4.25.2" + } + }, + "yq_linux_s390x": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "linux_s390x", + "version": "4.25.2" + } + }, + "yq_linux_ppc64le": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "linux_ppc64le", + "version": "4.25.2" + } + }, + "yq_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo", + "attributes": { + "platform": "windows_amd64", + "version": "4.25.2" + } + }, + "yq": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_host_alias_repo", + "attributes": {} + }, + "yq_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_toolchains_repo", + "attributes": { + "user_repository_name": "yq" + } + }, + "coreutils_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_platform_repo", + "attributes": { + "platform": "darwin_amd64", + "version": "0.0.16" + } + }, + "coreutils_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_platform_repo", + "attributes": { + "platform": "darwin_arm64", + "version": "0.0.16" + } + }, + "coreutils_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_platform_repo", + "attributes": { + "platform": "linux_amd64", + "version": "0.0.16" + } + }, + "coreutils_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_platform_repo", + "attributes": { + "platform": "linux_arm64", + "version": "0.0.16" + } + }, + "coreutils_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_platform_repo", + "attributes": { + "platform": "windows_amd64", + "version": "0.0.16" + } + }, + "coreutils_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_toolchains_repo", + "attributes": { + "user_repository_name": "coreutils" + } + }, + "bsd_tar_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "bsd_tar_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "bsd_tar_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "bsd_tar_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "bsd_tar_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "bsd_tar_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%tar_toolchains_repo", + "attributes": { + "user_repository_name": "bsd_tar" + } + }, + "expand_template_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "expand_template_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "expand_template_freebsd_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo", + "attributes": { + "platform": "freebsd_amd64" + } + }, + "expand_template_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "expand_template_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "expand_template_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "expand_template_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_toolchains_repo", + "attributes": { + "user_repository_name": "expand_template" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_bazel_lib+", + "aspect_bazel_lib", + "aspect_bazel_lib+" + ], + [ + "aspect_bazel_lib+", + "bazel_skylib", + "bazel_skylib+" + ], + [ + "aspect_bazel_lib+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@aspect_rules_js+//npm:extensions.bzl%pnpm": { + "general": { + "bzlTransitiveDigest": "poAa/2uyrVSr9Hel1HD6GfFwqId27yXfePnG+3Dmt90=", + "usagesDigest": "yxkJioaKxOYkZAdkGoq2Cm79s4pW36Xwx7a8awQOU2E=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "pnpm": { + "repoRuleId": "@@aspect_rules_js+//npm/private:npm_import.bzl%npm_import_rule", + "attributes": { + "package": "pnpm", + "version": "8.6.7", + "root_package": "", + "link_workspace": "", + "link_packages": {}, + "integrity": "sha512-vRIWpD/L4phf9Bk2o/O2TDR8fFoJnpYrp2TKqTIZF/qZ2/rgL3qKXzHofHgbXsinwMoSEigz28sqk3pQ+yMEQQ==", + "url": "", + "commit": "", + "patch_args": [ + "-p0" + ], + "patches": [], + "custom_postinstall": "", + "npm_auth": "", + "npm_auth_basic": "", + "npm_auth_username": "", + "npm_auth_password": "", + "lifecycle_hooks": [], + "extra_build_content": "load(\"@aspect_rules_js//js:defs.bzl\", \"js_binary\")\njs_binary(name = \"pnpm\", data = glob([\"package/**\"]), entry_point = \"package/dist/pnpm.cjs\", visibility = [\"//visibility:public\"])", + "generate_bzl_library_targets": false, + "extract_full_archive": true + } + }, + "pnpm__links": { + "repoRuleId": "@@aspect_rules_js+//npm/private:npm_import.bzl%npm_import_links", + "attributes": { + "package": "pnpm", + "version": "8.6.7", + "dev": false, + "root_package": "", + "link_packages": {}, + "deps": {}, + "transitive_closure": {}, + "lifecycle_build_target": false, + "lifecycle_hooks_env": [], + "lifecycle_hooks_execution_requirements": [ + "no-sandbox" + ], + "lifecycle_hooks_use_default_shell_env": false, + "bins": {}, + "package_visibility": [ + "//visibility:public" + ], + "replace_package": "" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_bazel_lib+", + "bazel_skylib", + "bazel_skylib+" + ], + [ + "aspect_bazel_lib+", + "bazel_tools", + "bazel_tools" + ], + [ + "aspect_rules_js+", + "aspect_bazel_lib", + "aspect_bazel_lib+" + ], + [ + "aspect_rules_js+", + "bazel_features", + "bazel_features+" + ], + [ + "aspect_rules_js+", + "bazel_skylib", + "bazel_skylib+" + ], + [ + "aspect_rules_js+", + "bazel_tools", + "bazel_tools" + ], + [ + "bazel_features+", + "bazel_features_globals", + "bazel_features++version_extension+bazel_features_globals" + ], + [ + "bazel_features+", + "bazel_features_version", + "bazel_features++version_extension+bazel_features_version" + ], + [ + "bazel_features+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@emsdk+//:emscripten_cache.bzl%emscripten_cache": { + "general": { + "bzlTransitiveDigest": "uqDvXmpTNqW4+ie/Fk+xC3TrFrKvL+9hNtoP51Kt2oo=", + "usagesDigest": "Es3QEMexQ1KNtrNtX+vNCqjkgkmUNeW2FQd1xCVcWs8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "emscripten_cache": { + "repoRuleId": "@@emsdk+//:emscripten_cache.bzl%_emscripten_cache_repository", + "attributes": { + "configuration": [ + "--lto" + ], + "targets": [ + "crtbegin", + "libprintf_long_double-debug", + "libstubs-debug", + "libnoexit", + "libc-debug", + "libdlmalloc", + "libcompiler_rt", + "libc++-noexcept", + "libc++abi-debug-noexcept", + "libsockets", + "libdlmalloc-debug" + ] + } + } + }, + "recordedRepoMappingEntries": [] + } + }, + "@@emsdk+//:emscripten_deps.bzl%emscripten_deps": { + "general": { + "bzlTransitiveDigest": "h0wQ3PSRx/Q9n+izTifYO8L728OTd9B5YbLOWcobVYE=", + "usagesDigest": "eqaMlu1tts7n29bG5zUl3DtA/9ARE+6aHrSK4X7kNno=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "emscripten_bin_linux": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang\",\n \"bin/clang++\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang\",\n \"bin/llvm-ar\",\n \"bin/llvm-dwarfdump\",\n \"bin/llvm-nm\",\n \"bin/llvm-objcopy\",\n \"bin/wasm-ctor-eval\",\n \"bin/wasm-emscripten-finalize\",\n \"bin/wasm-ld\",\n \"bin/wasm-metadce\",\n \"bin/wasm-opt\",\n \"bin/wasm-split\",\n \"bin/wasm2js\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n", + "sha256": "27fc220a9ad98d323cad73531ff563e9838c9e1205f51ee2a5632bb4266a35d2", + "strip_prefix": "install", + "type": "tar.xz", + "url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/linux/14767574a5c37ff9526a253a65ddbe0811cb3667/wasm-binaries.tar.xz" + } + }, + "emscripten_bin_linux_arm64": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang\",\n \"bin/clang++\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang\",\n \"bin/llvm-ar\",\n \"bin/llvm-dwarfdump\",\n \"bin/llvm-nm\",\n \"bin/llvm-objcopy\",\n \"bin/wasm-ctor-eval\",\n \"bin/wasm-emscripten-finalize\",\n \"bin/wasm-ld\",\n \"bin/wasm-metadce\",\n \"bin/wasm-opt\",\n \"bin/wasm-split\",\n \"bin/wasm2js\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n", + "sha256": "2d03f8eb3f81dd94821658eefbb442a92b0b7601f4cfb08590590fd7bc467ef8", + "strip_prefix": "install", + "type": "tar.xz", + "url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/linux/14767574a5c37ff9526a253a65ddbe0811cb3667/wasm-binaries-arm64.tar.xz" + } + }, + "emscripten_bin_mac": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang\",\n \"bin/clang++\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang\",\n \"bin/llvm-ar\",\n \"bin/llvm-dwarfdump\",\n \"bin/llvm-nm\",\n \"bin/llvm-objcopy\",\n \"bin/wasm-ctor-eval\",\n \"bin/wasm-emscripten-finalize\",\n \"bin/wasm-ld\",\n \"bin/wasm-metadce\",\n \"bin/wasm-opt\",\n \"bin/wasm-split\",\n \"bin/wasm2js\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n", + "sha256": "c06048915595726fc2e2da6a8db3134581a6287645fb818802a9734ff9785e77", + "strip_prefix": "install", + "type": "tar.xz", + "url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/mac/14767574a5c37ff9526a253a65ddbe0811cb3667/wasm-binaries.tar.xz" + } + }, + "emscripten_bin_mac_arm64": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang\",\n \"bin/clang++\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang\",\n \"bin/llvm-ar\",\n \"bin/llvm-dwarfdump\",\n \"bin/llvm-nm\",\n \"bin/llvm-objcopy\",\n \"bin/wasm-ctor-eval\",\n \"bin/wasm-emscripten-finalize\",\n \"bin/wasm-ld\",\n \"bin/wasm-metadce\",\n \"bin/wasm-opt\",\n \"bin/wasm-split\",\n \"bin/wasm2js\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n", + "sha256": "35d743453d0f91857b09f00d721037bb46753aaeae373bd7f64746338db11770", + "strip_prefix": "install", + "type": "tar.xz", + "url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/mac/14767574a5c37ff9526a253a65ddbe0811cb3667/wasm-binaries-arm64.tar.xz" + } + }, + "emscripten_bin_win": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang.exe\",\n \"bin/clang++.exe\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang.exe\",\n \"bin/llvm-ar.exe\",\n \"bin/llvm-dwarfdump.exe\",\n \"bin/llvm-nm.exe\",\n \"bin/llvm-objcopy.exe\",\n \"bin/wasm-ctor-eval.exe\",\n \"bin/wasm-emscripten-finalize.exe\",\n \"bin/wasm-ld.exe\",\n \"bin/wasm-metadce.exe\",\n \"bin/wasm-opt.exe\",\n \"bin/wasm-split.exe\",\n \"bin/wasm2js.exe\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar.exe\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n", + "sha256": "3b576e825b26426bb72854ed98752df3fcb58cc3ab1dc116566e328b79a8abb3", + "strip_prefix": "install", + "type": "zip", + "url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/win/14767574a5c37ff9526a253a65ddbe0811cb3667/wasm-binaries.zip" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "bazel_tools", + "rules_cc", + "rules_cc+" + ], + [ + "emsdk+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@pybind11_bazel+//:python_configure.bzl%extension": { + "general": { + "bzlTransitiveDigest": "d4N/SZrl3ONcmzE98rcV0Fsro0iUbjNQFTIiLiGuH+k=", + "usagesDigest": "fycyB39YnXIJkfWCIXLUKJMZzANcuLy9ZE73hRucjFk=", + "recordedFileInputs": { + "@@pybind11_bazel+//MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e" + }, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "local_config_python": { + "repoRuleId": "@@pybind11_bazel+//:python_configure.bzl%python_configure", + "attributes": {} + }, + "pybind11": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "build_file": "@@pybind11_bazel+//:pybind11.BUILD", + "strip_prefix": "pybind11-2.11.1", + "urls": [ + "https://github.com/pybind/pybind11/archive/v2.11.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "pybind11_bazel+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_fuzzing+//fuzzing/private:extensions.bzl%non_module_dependencies": { + "general": { + "bzlTransitiveDigest": "mGiTB79hRNjmeDTQdzkpCHyzXhErMbufeAmySBt7s5s=", + "usagesDigest": "wy6ISK6UOcBEjj/mvJ/S3WeXoO67X+1llb9yPyFtPgc=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "platforms": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz", + "https://github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz" + ], + "sha256": "8150406605389ececb6da07cbcb509d5637a3ab9a24bc69b1101531367d89d74" + } + }, + "rules_python": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "d70cd72a7a4880f0000a6346253414825c19cdd40a28289bdf67b8e6480edff8", + "strip_prefix": "rules_python-0.28.0", + "url": "https://github.com/bazelbuild/rules_python/releases/download/0.28.0/rules_python-0.28.0.tar.gz" + } + }, + "bazel_skylib": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd55a062e763b9349921f0f5db8c3933288dc8ba4f76dd9416aac68acee3cb94", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz", + "https://github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz" + ] + } + }, + "com_google_absl": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "urls": [ + "https://github.com/abseil/abseil-cpp/archive/refs/tags/20240116.1.zip" + ], + "strip_prefix": "abseil-cpp-20240116.1", + "integrity": "sha256-7capMWOvWyoYbUaHF/b+I2U6XLMaHmky8KugWvfXYuk=" + } + }, + "rules_fuzzing_oss_fuzz": { + "repoRuleId": "@@rules_fuzzing+//fuzzing/private/oss_fuzz:repository.bzl%oss_fuzz_repository", + "attributes": {} + }, + "honggfuzz": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "build_file": "@@rules_fuzzing+//:honggfuzz.BUILD", + "sha256": "6b18ba13bc1f36b7b950c72d80f19ea67fbadc0ac0bb297ec89ad91f2eaa423e", + "url": "https://github.com/google/honggfuzz/archive/2.5.zip", + "strip_prefix": "honggfuzz-2.5" + } + }, + "rules_fuzzing_jazzer": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_jar", + "attributes": { + "sha256": "ee6feb569d88962d59cb59e8a31eb9d007c82683f3ebc64955fd5b96f277eec2", + "url": "https://repo1.maven.org/maven2/com/code-intelligence/jazzer/0.20.1/jazzer-0.20.1.jar" + } + }, + "rules_fuzzing_jazzer_api": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_jar", + "attributes": { + "sha256": "f5a60242bc408f7fa20fccf10d6c5c5ea1fcb3c6f44642fec5af88373ae7aa1b", + "url": "https://repo1.maven.org/maven2/com/code-intelligence/jazzer-api/0.20.1/jazzer-api-0.20.1.jar" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_fuzzing+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_java+//java:rules_java_deps.bzl%compatibility_proxy": { + "general": { + "bzlTransitiveDigest": "84xJEZ1jnXXwo8BXMprvBm++rRt4jsTu9liBxz0ivps=", + "usagesDigest": "jTQDdLDxsS43zuRmg1faAjIEPWdLAbDAowI1pInQSoo=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "compatibility_proxy": { + "repoRuleId": "@@rules_java+//java:rules_java_deps.bzl%_compatibility_proxy_repo_rule", + "attributes": {} + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_java+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "sFhcgPbDQehmbD1EOXzX4H1q/CD5df8zwG4kp4jbvr8=", + "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "com_github_jetbrains_kotlin_git": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository", + "attributes": { + "urls": [ + "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip" + ], + "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88" + } + }, + "com_github_jetbrains_kotlin": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository", + "attributes": { + "git_repository_name": "com_github_jetbrains_kotlin_git", + "compiler_version": "1.9.23" + } + }, + "com_github_google_ksp": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository", + "attributes": { + "urls": [ + "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip" + ], + "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d", + "strip_version": "1.9.23-1.0.20" + } + }, + "com_github_pinterest_ktlint": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985", + "urls": [ + "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint" + ], + "executable": true + } + }, + "rules_android": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + "strip_prefix": "rules_android-0.1.1", + "urls": [ + "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_kotlin+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_nodejs+//nodejs:extensions.bzl%node": { + "general": { + "bzlTransitiveDigest": "rphcryfYrOY/P3emfTskC/GY5YuHcwMl2B2ncjaM8lY=", + "usagesDigest": "m7d0VXcsX/qS6DKMUBtdgjQzP2eMRHqsE4wv7dzr71I=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "nodejs_linux_amd64": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.18.0", + "include_headers": false, + "platform": "linux_amd64" + } + }, + "nodejs_linux_arm64": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.18.0", + "include_headers": false, + "platform": "linux_arm64" + } + }, + "nodejs_linux_s390x": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.18.0", + "include_headers": false, + "platform": "linux_s390x" + } + }, + "nodejs_linux_ppc64le": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.18.0", + "include_headers": false, + "platform": "linux_ppc64le" + } + }, + "nodejs_darwin_amd64": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.18.0", + "include_headers": false, + "platform": "darwin_amd64" + } + }, + "nodejs_darwin_arm64": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.18.0", + "include_headers": false, + "platform": "darwin_arm64" + } + }, + "nodejs_windows_amd64": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.18.0", + "include_headers": false, + "platform": "windows_amd64" + } + }, + "nodejs": { + "repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_repo_host_os_alias.bzl%nodejs_repo_host_os_alias", + "attributes": { + "user_node_repository_name": "nodejs" + } + }, + "nodejs_host": { + "repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_repo_host_os_alias.bzl%nodejs_repo_host_os_alias", + "attributes": { + "user_node_repository_name": "nodejs" + } + }, + "nodejs_toolchains": { + "repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_toolchains_repo.bzl%nodejs_toolchains_repo", + "attributes": { + "user_node_repository_name": "nodejs" + } + } + }, + "recordedRepoMappingEntries": [] + } + }, + "@@rules_python+//python/extensions:pip.bzl%pip": { + "general": { + "bzlTransitiveDigest": "Jbed6zJUJ6E78XRyOlnG1ryhBDvVeikdntPW1D40S/E=", + "usagesDigest": "fztm9ST3ki9E77tct2ZwJe0w38LvfMY8mRYp+YHxXQE=", + "recordedFileInputs": { + "@@protobuf+//python/requirements.txt": "983be60d3cec4b319dcab6d48aeb3f5b2f7c3350f26b3a9e97486c37967c73c5", + "@@rules_fuzzing+//fuzzing/requirements.txt": "ab04664be026b632a0d2a2446c4f65982b7654f5b6851d2f9d399a19b7242a5b", + "@@rules_python+//tools/publish/requirements_darwin.txt": "095d4a4f3d639dce831cd493367631cd51b53665292ab20194bac2c0c6458fa8", + "@@rules_python+//tools/publish/requirements_linux.txt": "d576e0d8542df61396a9b38deeaa183c24135ed5e8e73bb9622f298f2671811e", + "@@rules_python+//tools/publish/requirements_windows.txt": "d18538a3982beab378fd5687f4db33162ee1ece69801f9a451661b1b64286b76" + }, + "recordedDirentsInputs": {}, + "envVariables": { + "RULES_PYTHON_REPO_DEBUG": null, + "RULES_PYTHON_REPO_DEBUG_VERBOSITY": null + }, + "generatedRepoSpecs": { + "pip_deps_310_numpy": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_10_host//:python", + "repo": "pip_deps_310", + "requirement": "numpy<=1.26.1" + } + }, + "pip_deps_310_setuptools": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_10_host//:python", + "repo": "pip_deps_310", + "requirement": "setuptools<=70.3.0" + } + }, + "pip_deps_311_numpy": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "pip_deps_311", + "requirement": "numpy<=1.26.1" + } + }, + "pip_deps_311_setuptools": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "pip_deps_311", + "requirement": "setuptools<=70.3.0" + } + }, + "pip_deps_312_numpy": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_12_host//:python", + "repo": "pip_deps_312", + "requirement": "numpy<=1.26.1" + } + }, + "pip_deps_312_setuptools": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_12_host//:python", + "repo": "pip_deps_312", + "requirement": "setuptools<=70.3.0" + } + }, + "pip_deps_38_numpy": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_8_host//:python", + "repo": "pip_deps_38", + "requirement": "numpy<=1.26.1" + } + }, + "pip_deps_38_setuptools": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_8_host//:python", + "repo": "pip_deps_38", + "requirement": "setuptools<=70.3.0" + } + }, + "pip_deps_39_numpy": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_9_host//:python", + "repo": "pip_deps_39", + "requirement": "numpy<=1.26.1" + } + }, + "pip_deps_39_setuptools": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python++python+python_3_9_host//:python", + "repo": "pip_deps_39", + "requirement": "setuptools<=70.3.0" + } + }, + "rules_fuzzing_py_deps_310_absl_py": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_10_host//:python", + "repo": "rules_fuzzing_py_deps_310", + "requirement": "absl-py==2.0.0 --hash=sha256:9a28abb62774ae4e8edbe2dd4c49ffcd45a6a848952a5eccc6a49f3f0fc1e2f3" + } + }, + "rules_fuzzing_py_deps_310_six": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_10_host//:python", + "repo": "rules_fuzzing_py_deps_310", + "requirement": "six==1.16.0 --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + } + }, + "rules_fuzzing_py_deps_311_absl_py": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_fuzzing_py_deps_311", + "requirement": "absl-py==2.0.0 --hash=sha256:9a28abb62774ae4e8edbe2dd4c49ffcd45a6a848952a5eccc6a49f3f0fc1e2f3" + } + }, + "rules_fuzzing_py_deps_311_six": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_fuzzing_py_deps_311", + "requirement": "six==1.16.0 --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + } + }, + "rules_fuzzing_py_deps_312_absl_py": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_12_host//:python", + "repo": "rules_fuzzing_py_deps_312", + "requirement": "absl-py==2.0.0 --hash=sha256:9a28abb62774ae4e8edbe2dd4c49ffcd45a6a848952a5eccc6a49f3f0fc1e2f3" + } + }, + "rules_fuzzing_py_deps_312_six": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_12_host//:python", + "repo": "rules_fuzzing_py_deps_312", + "requirement": "six==1.16.0 --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + } + }, + "rules_fuzzing_py_deps_38_absl_py": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_8_host//:python", + "repo": "rules_fuzzing_py_deps_38", + "requirement": "absl-py==2.0.0 --hash=sha256:9a28abb62774ae4e8edbe2dd4c49ffcd45a6a848952a5eccc6a49f3f0fc1e2f3" + } + }, + "rules_fuzzing_py_deps_38_six": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_8_host//:python", + "repo": "rules_fuzzing_py_deps_38", + "requirement": "six==1.16.0 --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + } + }, + "rules_fuzzing_py_deps_39_absl_py": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_9_host//:python", + "repo": "rules_fuzzing_py_deps_39", + "requirement": "absl-py==2.0.0 --hash=sha256:9a28abb62774ae4e8edbe2dd4c49ffcd45a6a848952a5eccc6a49f3f0fc1e2f3" + } + }, + "rules_fuzzing_py_deps_39_six": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python++python+python_3_9_host//:python", + "repo": "rules_fuzzing_py_deps_39", + "requirement": "six==1.16.0 --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + } + }, + "rules_python_publish_deps_311_backports_tarfile_py3_none_any_77e284d7": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "backports.tarfile-1.2.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "backports-tarfile==1.2.0", + "sha256": "77e284d754527b01fb1e6fa8a1afe577858ebe4e9dad8919e34c862cb399bc34", + "urls": [ + "https://files.pythonhosted.org/packages/b9/fa/123043af240e49752f1c4bd24da5053b6bd00cad78c2be53c0d1e8b975bc/backports.tarfile-1.2.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_backports_tarfile_sdist_d75e02c2": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "backports_tarfile-1.2.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "backports-tarfile==1.2.0", + "sha256": "d75e02c268746e1b8144c278978b6e98e85de6ad16f8e4b0844a154557eca991", + "urls": [ + "https://files.pythonhosted.org/packages/86/72/cd9b395f25e290e633655a100af28cb253e4393396264a98bd5f5951d50f/backports_tarfile-1.2.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_certifi_py3_none_any_922820b5": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "certifi-2024.8.30-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "certifi==2024.8.30", + "sha256": "922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8", + "urls": [ + "https://files.pythonhosted.org/packages/12/90/3c9ff0512038035f59d279fddeb79f5f1eccd8859f06d6163c58798b9487/certifi-2024.8.30-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_certifi_sdist_bec941d2": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "certifi-2024.8.30.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "certifi==2024.8.30", + "sha256": "bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9", + "urls": [ + "https://files.pythonhosted.org/packages/b0/ee/9b19140fe824b367c04c5e1b369942dd754c4c5462d5674002f75c4dedc1/certifi-2024.8.30.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_aarch64_a1ed2dd2": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cffi==1.17.1", + "sha256": "a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41", + "urls": [ + "https://files.pythonhosted.org/packages/2e/ea/70ce63780f096e16ce8588efe039d3c4f91deb1dc01e9c73a287939c79a6/cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_s390x_a24ed04c": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cffi==1.17.1", + "sha256": "a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6", + "urls": [ + "https://files.pythonhosted.org/packages/62/12/ce8710b5b8affbcdd5c6e367217c242524ad17a02fe5beec3ee339f69f85/cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" + ] + } + }, + "rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_x86_64_610faea7": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cffi==1.17.1", + "sha256": "610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d", + "urls": [ + "https://files.pythonhosted.org/packages/ff/6b/d45873c5e0242196f042d555526f92aa9e0c32355a1be1ff8c27f077fd37/cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_cffi_cp311_cp311_musllinux_1_1_aarch64_a9b15d49": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cffi==1.17.1", + "sha256": "a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6", + "urls": [ + "https://files.pythonhosted.org/packages/1a/52/d9a0e523a572fbccf2955f5abe883cfa8bcc570d7faeee06336fbd50c9fc/cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_cffi_cp311_cp311_musllinux_1_1_x86_64_fc48c783": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cffi==1.17.1", + "sha256": "fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b", + "urls": [ + "https://files.pythonhosted.org/packages/f8/4a/34599cac7dfcd888ff54e801afe06a19c17787dfd94495ab0c8d35fe99fb/cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_cffi_sdist_1c39c601": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "cffi-1.17.1.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cffi==1.17.1", + "sha256": "1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", + "urls": [ + "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_10_9_universal2_0d99dd8f": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c", + "urls": [ + "https://files.pythonhosted.org/packages/9c/61/73589dcc7a719582bf56aae309b6103d2762b526bffe189d635a7fcfd998/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_10_9_x86_64_c57516e5": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944", + "urls": [ + "https://files.pythonhosted.org/packages/77/d5/8c982d58144de49f59571f940e329ad6e8615e1e82ef84584c5eeb5e1d72/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_11_0_arm64_6dba5d19": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee", + "urls": [ + "https://files.pythonhosted.org/packages/bf/19/411a64f01ee971bed3231111b69eb56f9331a769072de479eae7de52296d/charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_aarch64_bf4475b8": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c", + "urls": [ + "https://files.pythonhosted.org/packages/4c/92/97509850f0d00e9f14a46bc751daabd0ad7765cff29cdfb66c68b6dad57f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_s390x_8ff4e7cd": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea", + "urls": [ + "https://files.pythonhosted.org/packages/13/bc/87c2c9f2c144bedfa62f894c3007cd4530ba4b5351acb10dc786428a50f0/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_x86_64_3710a975": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc", + "urls": [ + "https://files.pythonhosted.org/packages/eb/5b/6f10bad0f6461fa272bfbbdf5d0023b5fb9bc6217c92bf068fa5a99820f5/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_aarch64_47334db7": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594", + "urls": [ + "https://files.pythonhosted.org/packages/d7/a1/493919799446464ed0299c8eef3c3fad0daf1c3cd48bff9263c731b0d9e2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_s390x_63bc5c4a": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129", + "urls": [ + "https://files.pythonhosted.org/packages/8d/c9/27e41d481557be53d51e60750b85aa40eaf52b841946b3cdeff363105737/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_x86_64_bcb4f8ea": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236", + "urls": [ + "https://files.pythonhosted.org/packages/ee/44/4f62042ca8cdc0cabf87c0fc00ae27cd8b53ab68be3605ba6d071f742ad3/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_win_amd64_cee4373f": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27", + "urls": [ + "https://files.pythonhosted.org/packages/0b/6e/b13bd47fa9023b3699e94abf565b5a2f0b0be6e9ddac9812182596ee62e4/charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_py3_none_any_fe9f97fe": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", + "urls": [ + "https://files.pythonhosted.org/packages/bf/9b/08c0432272d77b04803958a4598a51e2a4b51c06640af8b8f0f908c18bf2/charset_normalizer-3.4.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_sdist_223217c3": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "charset_normalizer-3.4.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e", + "urls": [ + "https://files.pythonhosted.org/packages/f2/4f/e1808dc01273379acc506d18f1504eb2d299bd4131743b9fc54d7be4df1e/charset_normalizer-3.4.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_17_aarch64_846da004": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5", + "urls": [ + "https://files.pythonhosted.org/packages/2f/78/55356eb9075d0be6e81b59f45c7b48df87f76a20e73893872170471f3ee8/cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_17_x86_64_0f996e72": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4", + "urls": [ + "https://files.pythonhosted.org/packages/2a/2c/488776a3dc843f95f86d2f957ca0fc3407d0242b50bede7fad1e339be03f/cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_28_aarch64_f7b178f1": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7", + "urls": [ + "https://files.pythonhosted.org/packages/7c/04/2345ca92f7a22f601a9c62961741ef7dd0127c39f7310dffa0041c80f16f/cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_28_x86_64_c2e6fc39": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405", + "urls": [ + "https://files.pythonhosted.org/packages/ac/25/e715fa0bc24ac2114ed69da33adf451a38abb6f3f24ec207908112e9ba53/cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_cryptography_cp39_abi3_musllinux_1_2_aarch64_e1be4655": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16", + "urls": [ + "https://files.pythonhosted.org/packages/21/ce/b9c9ff56c7164d8e2edfb6c9305045fbc0df4508ccfdb13ee66eb8c95b0e/cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_cryptography_cp39_abi3_musllinux_1_2_x86_64_df6b6c6d": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73", + "urls": [ + "https://files.pythonhosted.org/packages/2a/33/b3682992ab2e9476b9c81fff22f02c8b0a1e6e1d49ee1750a67d85fd7ed2/cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_cryptography_sdist_315b9001": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "cryptography-43.0.3.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805", + "urls": [ + "https://files.pythonhosted.org/packages/0d/05/07b55d1fa21ac18c3a8c79f764e2514e6f6a9698f1be44994f5adf0d29db/cryptography-43.0.3.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_docutils_py3_none_any_dafca5b9": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "docutils-0.21.2-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "docutils==0.21.2", + "sha256": "dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2", + "urls": [ + "https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_docutils_sdist_3a6b1873": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "docutils-0.21.2.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "docutils==0.21.2", + "sha256": "3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f", + "urls": [ + "https://files.pythonhosted.org/packages/ae/ed/aefcc8cd0ba62a0560c3c18c33925362d46c6075480bfa4df87b28e169a9/docutils-0.21.2.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_idna_py3_none_any_946d195a": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "idna-3.10-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "idna==3.10", + "sha256": "946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", + "urls": [ + "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_idna_sdist_12f65c9b": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "idna-3.10.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "idna==3.10", + "sha256": "12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", + "urls": [ + "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_importlib_metadata_py3_none_any_45e54197": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "importlib_metadata-8.5.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "importlib-metadata==8.5.0", + "sha256": "45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b", + "urls": [ + "https://files.pythonhosted.org/packages/a0/d9/a1e041c5e7caa9a05c925f4bdbdfb7f006d1f74996af53467bc394c97be7/importlib_metadata-8.5.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_importlib_metadata_sdist_71522656": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "importlib_metadata-8.5.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "importlib-metadata==8.5.0", + "sha256": "71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7", + "urls": [ + "https://files.pythonhosted.org/packages/cd/12/33e59336dca5be0c398a7482335911a33aa0e20776128f038019f1a95f1b/importlib_metadata-8.5.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_jaraco_classes_py3_none_any_f662826b": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "jaraco.classes-3.4.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jaraco-classes==3.4.0", + "sha256": "f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790", + "urls": [ + "https://files.pythonhosted.org/packages/7f/66/b15ce62552d84bbfcec9a4873ab79d993a1dd4edb922cbfccae192bd5b5f/jaraco.classes-3.4.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_jaraco_classes_sdist_47a024b5": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "jaraco.classes-3.4.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jaraco-classes==3.4.0", + "sha256": "47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd", + "urls": [ + "https://files.pythonhosted.org/packages/06/c0/ed4a27bc5571b99e3cff68f8a9fa5b56ff7df1c2251cc715a652ddd26402/jaraco.classes-3.4.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_jaraco_context_py3_none_any_f797fc48": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "jaraco.context-6.0.1-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jaraco-context==6.0.1", + "sha256": "f797fc481b490edb305122c9181830a3a5b76d84ef6d1aef2fb9b47ab956f9e4", + "urls": [ + "https://files.pythonhosted.org/packages/ff/db/0c52c4cf5e4bd9f5d7135ec7669a3a767af21b3a308e1ed3674881e52b62/jaraco.context-6.0.1-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_jaraco_context_sdist_9bae4ea5": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "jaraco_context-6.0.1.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jaraco-context==6.0.1", + "sha256": "9bae4ea555cf0b14938dc0aee7c9f32ed303aa20a3b73e7dc80111628792d1b3", + "urls": [ + "https://files.pythonhosted.org/packages/df/ad/f3777b81bf0b6e7bc7514a1656d3e637b2e8e15fab2ce3235730b3e7a4e6/jaraco_context-6.0.1.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_jaraco_functools_py3_none_any_ad159f13": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "jaraco.functools-4.1.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jaraco-functools==4.1.0", + "sha256": "ad159f13428bc4acbf5541ad6dec511f91573b90fba04df61dafa2a1231cf649", + "urls": [ + "https://files.pythonhosted.org/packages/9f/4f/24b319316142c44283d7540e76c7b5a6dbd5db623abd86bb7b3491c21018/jaraco.functools-4.1.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_jaraco_functools_sdist_70f7e0e2": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "jaraco_functools-4.1.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jaraco-functools==4.1.0", + "sha256": "70f7e0e2ae076498e212562325e805204fc092d7b4c17e0e86c959e249701a9d", + "urls": [ + "https://files.pythonhosted.org/packages/ab/23/9894b3df5d0a6eb44611c36aec777823fc2e07740dabbd0b810e19594013/jaraco_functools-4.1.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_jeepney_py3_none_any_c0a454ad": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "jeepney-0.8.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jeepney==0.8.0", + "sha256": "c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755", + "urls": [ + "https://files.pythonhosted.org/packages/ae/72/2a1e2290f1ab1e06f71f3d0f1646c9e4634e70e1d37491535e19266e8dc9/jeepney-0.8.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_jeepney_sdist_5efe48d2": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "jeepney-0.8.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jeepney==0.8.0", + "sha256": "5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806", + "urls": [ + "https://files.pythonhosted.org/packages/d6/f4/154cf374c2daf2020e05c3c6a03c91348d59b23c5366e968feb198306fdf/jeepney-0.8.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_keyring_py3_none_any_5426f817": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "keyring-25.4.1-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "keyring==25.4.1", + "sha256": "5426f817cf7f6f007ba5ec722b1bcad95a75b27d780343772ad76b17cb47b0bf", + "urls": [ + "https://files.pythonhosted.org/packages/83/25/e6d59e5f0a0508d0dca8bb98c7f7fd3772fc943ac3f53d5ab18a218d32c0/keyring-25.4.1-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_keyring_sdist_b07ebc55": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "keyring-25.4.1.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "keyring==25.4.1", + "sha256": "b07ebc55f3e8ed86ac81dd31ef14e81ace9dd9c3d4b5d77a6e9a2016d0d71a1b", + "urls": [ + "https://files.pythonhosted.org/packages/a5/1c/2bdbcfd5d59dc6274ffb175bc29aa07ecbfab196830e0cfbde7bd861a2ea/keyring-25.4.1.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_markdown_it_py_py3_none_any_35521684": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "markdown_it_py-3.0.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "markdown-it-py==3.0.0", + "sha256": "355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", + "urls": [ + "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_markdown_it_py_sdist_e3f60a94": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "markdown-it-py-3.0.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "markdown-it-py==3.0.0", + "sha256": "e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", + "urls": [ + "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_mdurl_py3_none_any_84008a41": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "mdurl-0.1.2-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "mdurl==0.1.2", + "sha256": "84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", + "urls": [ + "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_mdurl_sdist_bb413d29": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "mdurl-0.1.2.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "mdurl==0.1.2", + "sha256": "bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", + "urls": [ + "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_more_itertools_py3_none_any_037b0d32": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "more_itertools-10.5.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "more-itertools==10.5.0", + "sha256": "037b0d3203ce90cca8ab1defbbdac29d5f993fc20131f3664dc8d6acfa872aef", + "urls": [ + "https://files.pythonhosted.org/packages/48/7e/3a64597054a70f7c86eb0a7d4fc315b8c1ab932f64883a297bdffeb5f967/more_itertools-10.5.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_more_itertools_sdist_5482bfef": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "more-itertools-10.5.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "more-itertools==10.5.0", + "sha256": "5482bfef7849c25dc3c6dd53a6173ae4795da2a41a80faea6700d9f5846c5da6", + "urls": [ + "https://files.pythonhosted.org/packages/51/78/65922308c4248e0eb08ebcbe67c95d48615cc6f27854b6f2e57143e9178f/more-itertools-10.5.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_macosx_10_12_x86_64_14c5a72e": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "14c5a72e9fe82aea5fe3072116ad4661af5cf8e8ff8fc5ad3450f123e4925e86", + "urls": [ + "https://files.pythonhosted.org/packages/b3/89/1daff5d9ba5a95a157c092c7c5f39b8dd2b1ddb4559966f808d31cfb67e0/nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_macosx_10_12_x86_64_7b7c2a3c": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "7b7c2a3c9eb1a827d42539aa64091640bd275b81e097cd1d8d82ef91ffa2e811", + "urls": [ + "https://files.pythonhosted.org/packages/2c/b6/42fc3c69cabf86b6b81e4c051a9b6e249c5ba9f8155590222c2622961f58/nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_aarch64_42c64511": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "42c64511469005058cd17cc1537578eac40ae9f7200bedcfd1fc1a05f4f8c200", + "urls": [ + "https://files.pythonhosted.org/packages/45/b9/833f385403abaf0023c6547389ec7a7acf141ddd9d1f21573723a6eab39a/nh3-0.2.18-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_armv7l_0411beb0": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "0411beb0589eacb6734f28d5497ca2ed379eafab8ad8c84b31bb5c34072b7164", + "urls": [ + "https://files.pythonhosted.org/packages/05/2b/85977d9e11713b5747595ee61f381bc820749daf83f07b90b6c9964cf932/nh3-0.2.18-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_ppc64_5f36b271": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "5f36b271dae35c465ef5e9090e1fdaba4a60a56f0bb0ba03e0932a66f28b9189", + "urls": [ + "https://files.pythonhosted.org/packages/72/f2/5c894d5265ab80a97c68ca36f25c8f6f0308abac649aaf152b74e7e854a8/nh3-0.2.18-cp37-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_s390x_19aaba96": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "19aaba96e0f795bd0a6c56291495ff59364f4300d4a39b29a0abc9cb3774a84b", + "urls": [ + "https://files.pythonhosted.org/packages/c2/a8/3bb02d0c60a03ad3a112b76c46971e9480efa98a8946677b5a59f60130ca/nh3-0.2.18-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_x86_64_de3ceed6": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "de3ceed6e661954871d6cd78b410213bdcb136f79aafe22aa7182e028b8c7307", + "urls": [ + "https://files.pythonhosted.org/packages/1b/63/6ab90d0e5225ab9780f6c9fb52254fa36b52bb7c188df9201d05b647e5e1/nh3-0.2.18-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_musllinux_1_2_aarch64_f0eca9ca": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-musllinux_1_2_aarch64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "f0eca9ca8628dbb4e916ae2491d72957fdd35f7a5d326b7032a345f111ac07fe", + "urls": [ + "https://files.pythonhosted.org/packages/a3/da/0c4e282bc3cff4a0adf37005fa1fb42257673fbc1bbf7d1ff639ec3d255a/nh3-0.2.18-cp37-abi3-musllinux_1_2_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_musllinux_1_2_armv7l_3a157ab1": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-musllinux_1_2_armv7l.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "3a157ab149e591bb638a55c8c6bcb8cdb559c8b12c13a8affaba6cedfe51713a", + "urls": [ + "https://files.pythonhosted.org/packages/de/81/c291231463d21da5f8bba82c8167a6d6893cc5419b0639801ee5d3aeb8a9/nh3-0.2.18-cp37-abi3-musllinux_1_2_armv7l.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_musllinux_1_2_x86_64_36c95d4b": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-musllinux_1_2_x86_64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "36c95d4b70530b320b365659bb5034341316e6a9b30f0b25fa9c9eff4c27a204", + "urls": [ + "https://files.pythonhosted.org/packages/eb/61/73a007c74c37895fdf66e0edcd881f5eaa17a348ff02f4bb4bc906d61085/nh3-0.2.18-cp37-abi3-musllinux_1_2_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_win_amd64_8ce0f819": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-win_amd64.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "8ce0f819d2f1933953fca255db2471ad58184a60508f03e6285e5114b6254844", + "urls": [ + "https://files.pythonhosted.org/packages/26/8d/53c5b19c4999bdc6ba95f246f4ef35ca83d7d7423e5e38be43ad66544e5d/nh3-0.2.18-cp37-abi3-win_amd64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_sdist_94a16692": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "nh3-0.2.18.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "94a166927e53972a9698af9542ace4e38b9de50c34352b962f4d9a7d4c927af4", + "urls": [ + "https://files.pythonhosted.org/packages/62/73/10df50b42ddb547a907deeb2f3c9823022580a7a47281e8eae8e003a9639/nh3-0.2.18.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_pkginfo_py3_none_any_889a6da2": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "pkginfo-1.10.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pkginfo==1.10.0", + "sha256": "889a6da2ed7ffc58ab5b900d888ddce90bce912f2d2de1dc1c26f4cb9fe65097", + "urls": [ + "https://files.pythonhosted.org/packages/56/09/054aea9b7534a15ad38a363a2bd974c20646ab1582a387a95b8df1bfea1c/pkginfo-1.10.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_pkginfo_sdist_5df73835": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "pkginfo-1.10.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pkginfo==1.10.0", + "sha256": "5df73835398d10db79f8eecd5cd86b1f6d29317589ea70796994d49399af6297", + "urls": [ + "https://files.pythonhosted.org/packages/2f/72/347ec5be4adc85c182ed2823d8d1c7b51e13b9a6b0c1aae59582eca652df/pkginfo-1.10.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_pycparser_py3_none_any_c3702b6d": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "pycparser-2.22-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pycparser==2.22", + "sha256": "c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", + "urls": [ + "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_pycparser_sdist_491c8be9": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "pycparser-2.22.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pycparser==2.22", + "sha256": "491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", + "urls": [ + "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_pygments_py3_none_any_b8e6aca0": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "pygments-2.18.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pygments==2.18.0", + "sha256": "b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a", + "urls": [ + "https://files.pythonhosted.org/packages/f7/3f/01c8b82017c199075f8f788d0d906b9ffbbc5a47dc9918a945e13d5a2bda/pygments-2.18.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_pygments_sdist_786ff802": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "pygments-2.18.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pygments==2.18.0", + "sha256": "786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199", + "urls": [ + "https://files.pythonhosted.org/packages/8e/62/8336eff65bcbc8e4cb5d05b55faf041285951b6e80f33e2bff2024788f31/pygments-2.18.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_pywin32_ctypes_py3_none_any_8a151337": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_windows_x86_64" + ], + "filename": "pywin32_ctypes-0.2.3-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pywin32-ctypes==0.2.3", + "sha256": "8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8", + "urls": [ + "https://files.pythonhosted.org/packages/de/3d/8161f7711c017e01ac9f008dfddd9410dff3674334c233bde66e7ba65bbf/pywin32_ctypes-0.2.3-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_pywin32_ctypes_sdist_d162dc04": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "pywin32-ctypes-0.2.3.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pywin32-ctypes==0.2.3", + "sha256": "d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755", + "urls": [ + "https://files.pythonhosted.org/packages/85/9f/01a1a99704853cb63f253eea009390c88e7131c67e66a0a02099a8c917cb/pywin32-ctypes-0.2.3.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_readme_renderer_py3_none_any_2fbca89b": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "readme_renderer-44.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "readme-renderer==44.0", + "sha256": "2fbca89b81a08526aadf1357a8c2ae889ec05fb03f5da67f9769c9a592166151", + "urls": [ + "https://files.pythonhosted.org/packages/e1/67/921ec3024056483db83953ae8e48079ad62b92db7880013ca77632921dd0/readme_renderer-44.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_readme_renderer_sdist_8712034e": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "readme_renderer-44.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "readme-renderer==44.0", + "sha256": "8712034eabbfa6805cacf1402b4eeb2a73028f72d1166d6f5cb7f9c047c5d1e1", + "urls": [ + "https://files.pythonhosted.org/packages/5a/a9/104ec9234c8448c4379768221ea6df01260cd6c2ce13182d4eac531c8342/readme_renderer-44.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_requests_py3_none_any_70761cfe": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "requests-2.32.3-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "requests==2.32.3", + "sha256": "70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", + "urls": [ + "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_requests_sdist_55365417": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "requests-2.32.3.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "requests==2.32.3", + "sha256": "55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", + "urls": [ + "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_requests_toolbelt_py2_none_any_cccfdd66": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "requests_toolbelt-1.0.0-py2.py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "requests-toolbelt==1.0.0", + "sha256": "cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", + "urls": [ + "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_requests_toolbelt_sdist_7681a0a3": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "requests-toolbelt-1.0.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "requests-toolbelt==1.0.0", + "sha256": "7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6", + "urls": [ + "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_rfc3986_py2_none_any_50b1502b": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "rfc3986-2.0.0-py2.py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "rfc3986==2.0.0", + "sha256": "50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd", + "urls": [ + "https://files.pythonhosted.org/packages/ff/9a/9afaade874b2fa6c752c36f1548f718b5b83af81ed9b76628329dab81c1b/rfc3986-2.0.0-py2.py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_rfc3986_sdist_97aacf9d": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "rfc3986-2.0.0.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "rfc3986==2.0.0", + "sha256": "97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c", + "urls": [ + "https://files.pythonhosted.org/packages/85/40/1520d68bfa07ab5a6f065a186815fb6610c86fe957bc065754e47f7b0840/rfc3986-2.0.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_rich_py3_none_any_6049d5e6": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "rich-13.9.4-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "rich==13.9.4", + "sha256": "6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90", + "urls": [ + "https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_rich_sdist_43959497": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "rich-13.9.4.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "rich==13.9.4", + "sha256": "439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098", + "urls": [ + "https://files.pythonhosted.org/packages/ab/3a/0316b28d0761c6734d6bc14e770d85506c986c85ffb239e688eeaab2c2bc/rich-13.9.4.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_secretstorage_py3_none_any_f356e662": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "SecretStorage-3.3.3-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "secretstorage==3.3.3", + "sha256": "f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99", + "urls": [ + "https://files.pythonhosted.org/packages/54/24/b4293291fa1dd830f353d2cb163295742fa87f179fcc8a20a306a81978b7/SecretStorage-3.3.3-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_secretstorage_sdist_2403533e": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "SecretStorage-3.3.3.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "secretstorage==3.3.3", + "sha256": "2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77", + "urls": [ + "https://files.pythonhosted.org/packages/53/a4/f48c9d79cb507ed1373477dbceaba7401fd8a23af63b837fa61f1dcd3691/SecretStorage-3.3.3.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_twine_py3_none_any_215dbe7b": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "twine-5.1.1-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "twine==5.1.1", + "sha256": "215dbe7b4b94c2c50a7315c0275d2258399280fbb7d04182c7e55e24b5f93997", + "urls": [ + "https://files.pythonhosted.org/packages/5d/ec/00f9d5fd040ae29867355e559a94e9a8429225a0284a3f5f091a3878bfc0/twine-5.1.1-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_twine_sdist_9aa08251": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "twine-5.1.1.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "twine==5.1.1", + "sha256": "9aa0825139c02b3434d913545c7b847a21c835e11597f5255842d457da2322db", + "urls": [ + "https://files.pythonhosted.org/packages/77/68/bd982e5e949ef8334e6f7dcf76ae40922a8750aa2e347291ae1477a4782b/twine-5.1.1.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_urllib3_py3_none_any_ca899ca0": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "urllib3-2.2.3-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "urllib3==2.2.3", + "sha256": "ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac", + "urls": [ + "https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_urllib3_sdist_e7d814a8": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "urllib3-2.2.3.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "urllib3==2.2.3", + "sha256": "e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9", + "urls": [ + "https://files.pythonhosted.org/packages/ed/63/22ba4ebfe7430b76388e7cd448d5478814d3032121827c12a2cc287e2260/urllib3-2.2.3.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_zipp_py3_none_any_a817ac80": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "zipp-3.20.2-py3-none-any.whl", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "zipp==3.20.2", + "sha256": "a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350", + "urls": [ + "https://files.pythonhosted.org/packages/62/8b/5ba542fa83c90e09eac972fc9baca7a88e7e7ca4b221a89251954019308b/zipp-3.20.2-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_zipp_sdist_bc9eb26f": { + "repoRuleId": "@@rules_python+//python/private/pypi:whl_library.bzl%whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "zipp-3.20.2.tar.gz", + "python_interpreter_target": "@@rules_python++python+python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "zipp==3.20.2", + "sha256": "bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29", + "urls": [ + "https://files.pythonhosted.org/packages/54/bf/5c0000c44ebc80123ecbdddba1f5dcd94a5ada602a9c225d84b5aaa55e86/zipp-3.20.2.tar.gz" + ] + } + }, + "pip_deps": { + "repoRuleId": "@@rules_python+//python/private/pypi:hub_repository.bzl%hub_repository", + "attributes": { + "repo_name": "pip_deps", + "extra_hub_aliases": {}, + "whl_map": { + "numpy": "{\"pip_deps_310_numpy\":[{\"version\":\"3.10\"}],\"pip_deps_311_numpy\":[{\"version\":\"3.11\"}],\"pip_deps_312_numpy\":[{\"version\":\"3.12\"}],\"pip_deps_38_numpy\":[{\"version\":\"3.8\"}],\"pip_deps_39_numpy\":[{\"version\":\"3.9\"}]}", + "setuptools": "{\"pip_deps_310_setuptools\":[{\"version\":\"3.10\"}],\"pip_deps_311_setuptools\":[{\"version\":\"3.11\"}],\"pip_deps_312_setuptools\":[{\"version\":\"3.12\"}],\"pip_deps_38_setuptools\":[{\"version\":\"3.8\"}],\"pip_deps_39_setuptools\":[{\"version\":\"3.9\"}]}" + }, + "packages": [ + "numpy", + "setuptools" + ], + "groups": {} + } + }, + "rules_fuzzing_py_deps": { + "repoRuleId": "@@rules_python+//python/private/pypi:hub_repository.bzl%hub_repository", + "attributes": { + "repo_name": "rules_fuzzing_py_deps", + "extra_hub_aliases": {}, + "whl_map": { + "absl_py": "{\"rules_fuzzing_py_deps_310_absl_py\":[{\"version\":\"3.10\"}],\"rules_fuzzing_py_deps_311_absl_py\":[{\"version\":\"3.11\"}],\"rules_fuzzing_py_deps_312_absl_py\":[{\"version\":\"3.12\"}],\"rules_fuzzing_py_deps_38_absl_py\":[{\"version\":\"3.8\"}],\"rules_fuzzing_py_deps_39_absl_py\":[{\"version\":\"3.9\"}]}", + "six": "{\"rules_fuzzing_py_deps_310_six\":[{\"version\":\"3.10\"}],\"rules_fuzzing_py_deps_311_six\":[{\"version\":\"3.11\"}],\"rules_fuzzing_py_deps_312_six\":[{\"version\":\"3.12\"}],\"rules_fuzzing_py_deps_38_six\":[{\"version\":\"3.8\"}],\"rules_fuzzing_py_deps_39_six\":[{\"version\":\"3.9\"}]}" + }, + "packages": [ + "absl_py", + "six" + ], + "groups": {} + } + }, + "rules_python_publish_deps": { + "repoRuleId": "@@rules_python+//python/private/pypi:hub_repository.bzl%hub_repository", + "attributes": { + "repo_name": "rules_python_publish_deps", + "extra_hub_aliases": {}, + "whl_map": { + "backports_tarfile": "{\"rules_python_publish_deps_311_backports_tarfile_py3_none_any_77e284d7\":[{\"filename\":\"backports.tarfile-1.2.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_backports_tarfile_sdist_d75e02c2\":[{\"filename\":\"backports_tarfile-1.2.0.tar.gz\",\"version\":\"3.11\"}]}", + "certifi": "{\"rules_python_publish_deps_311_certifi_py3_none_any_922820b5\":[{\"filename\":\"certifi-2024.8.30-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_certifi_sdist_bec941d2\":[{\"filename\":\"certifi-2024.8.30.tar.gz\",\"version\":\"3.11\"}]}", + "cffi": "{\"rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_aarch64_a1ed2dd2\":[{\"filename\":\"cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_s390x_a24ed04c\":[{\"filename\":\"cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_x86_64_610faea7\":[{\"filename\":\"cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cffi_cp311_cp311_musllinux_1_1_aarch64_a9b15d49\":[{\"filename\":\"cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cffi_cp311_cp311_musllinux_1_1_x86_64_fc48c783\":[{\"filename\":\"cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cffi_sdist_1c39c601\":[{\"filename\":\"cffi-1.17.1.tar.gz\",\"version\":\"3.11\"}]}", + "charset_normalizer": "{\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_10_9_universal2_0d99dd8f\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_10_9_x86_64_c57516e5\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_11_0_arm64_6dba5d19\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_aarch64_bf4475b8\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_s390x_8ff4e7cd\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_x86_64_3710a975\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_aarch64_47334db7\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_s390x_63bc5c4a\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_x86_64_bcb4f8ea\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_win_amd64_cee4373f\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_py3_none_any_fe9f97fe\":[{\"filename\":\"charset_normalizer-3.4.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_sdist_223217c3\":[{\"filename\":\"charset_normalizer-3.4.0.tar.gz\",\"version\":\"3.11\"}]}", + "cryptography": "{\"rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_17_aarch64_846da004\":[{\"filename\":\"cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_17_x86_64_0f996e72\":[{\"filename\":\"cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_28_aarch64_f7b178f1\":[{\"filename\":\"cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_28_x86_64_c2e6fc39\":[{\"filename\":\"cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cryptography_cp39_abi3_musllinux_1_2_aarch64_e1be4655\":[{\"filename\":\"cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cryptography_cp39_abi3_musllinux_1_2_x86_64_df6b6c6d\":[{\"filename\":\"cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cryptography_sdist_315b9001\":[{\"filename\":\"cryptography-43.0.3.tar.gz\",\"version\":\"3.11\"}]}", + "docutils": "{\"rules_python_publish_deps_311_docutils_py3_none_any_dafca5b9\":[{\"filename\":\"docutils-0.21.2-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_docutils_sdist_3a6b1873\":[{\"filename\":\"docutils-0.21.2.tar.gz\",\"version\":\"3.11\"}]}", + "idna": "{\"rules_python_publish_deps_311_idna_py3_none_any_946d195a\":[{\"filename\":\"idna-3.10-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_idna_sdist_12f65c9b\":[{\"filename\":\"idna-3.10.tar.gz\",\"version\":\"3.11\"}]}", + "importlib_metadata": "{\"rules_python_publish_deps_311_importlib_metadata_py3_none_any_45e54197\":[{\"filename\":\"importlib_metadata-8.5.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_importlib_metadata_sdist_71522656\":[{\"filename\":\"importlib_metadata-8.5.0.tar.gz\",\"version\":\"3.11\"}]}", + "jaraco_classes": "{\"rules_python_publish_deps_311_jaraco_classes_py3_none_any_f662826b\":[{\"filename\":\"jaraco.classes-3.4.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_jaraco_classes_sdist_47a024b5\":[{\"filename\":\"jaraco.classes-3.4.0.tar.gz\",\"version\":\"3.11\"}]}", + "jaraco_context": "{\"rules_python_publish_deps_311_jaraco_context_py3_none_any_f797fc48\":[{\"filename\":\"jaraco.context-6.0.1-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_jaraco_context_sdist_9bae4ea5\":[{\"filename\":\"jaraco_context-6.0.1.tar.gz\",\"version\":\"3.11\"}]}", + "jaraco_functools": "{\"rules_python_publish_deps_311_jaraco_functools_py3_none_any_ad159f13\":[{\"filename\":\"jaraco.functools-4.1.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_jaraco_functools_sdist_70f7e0e2\":[{\"filename\":\"jaraco_functools-4.1.0.tar.gz\",\"version\":\"3.11\"}]}", + "jeepney": "{\"rules_python_publish_deps_311_jeepney_py3_none_any_c0a454ad\":[{\"filename\":\"jeepney-0.8.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_jeepney_sdist_5efe48d2\":[{\"filename\":\"jeepney-0.8.0.tar.gz\",\"version\":\"3.11\"}]}", + "keyring": "{\"rules_python_publish_deps_311_keyring_py3_none_any_5426f817\":[{\"filename\":\"keyring-25.4.1-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_keyring_sdist_b07ebc55\":[{\"filename\":\"keyring-25.4.1.tar.gz\",\"version\":\"3.11\"}]}", + "markdown_it_py": "{\"rules_python_publish_deps_311_markdown_it_py_py3_none_any_35521684\":[{\"filename\":\"markdown_it_py-3.0.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_markdown_it_py_sdist_e3f60a94\":[{\"filename\":\"markdown-it-py-3.0.0.tar.gz\",\"version\":\"3.11\"}]}", + "mdurl": "{\"rules_python_publish_deps_311_mdurl_py3_none_any_84008a41\":[{\"filename\":\"mdurl-0.1.2-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_mdurl_sdist_bb413d29\":[{\"filename\":\"mdurl-0.1.2.tar.gz\",\"version\":\"3.11\"}]}", + "more_itertools": "{\"rules_python_publish_deps_311_more_itertools_py3_none_any_037b0d32\":[{\"filename\":\"more_itertools-10.5.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_more_itertools_sdist_5482bfef\":[{\"filename\":\"more-itertools-10.5.0.tar.gz\",\"version\":\"3.11\"}]}", + "nh3": "{\"rules_python_publish_deps_311_nh3_cp37_abi3_macosx_10_12_x86_64_14c5a72e\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_macosx_10_12_x86_64_7b7c2a3c\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_aarch64_42c64511\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_armv7l_0411beb0\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_ppc64_5f36b271\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_s390x_19aaba96\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_x86_64_de3ceed6\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_musllinux_1_2_aarch64_f0eca9ca\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-musllinux_1_2_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_musllinux_1_2_armv7l_3a157ab1\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-musllinux_1_2_armv7l.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_musllinux_1_2_x86_64_36c95d4b\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-musllinux_1_2_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_win_amd64_8ce0f819\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-win_amd64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_sdist_94a16692\":[{\"filename\":\"nh3-0.2.18.tar.gz\",\"version\":\"3.11\"}]}", + "pkginfo": "{\"rules_python_publish_deps_311_pkginfo_py3_none_any_889a6da2\":[{\"filename\":\"pkginfo-1.10.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_pkginfo_sdist_5df73835\":[{\"filename\":\"pkginfo-1.10.0.tar.gz\",\"version\":\"3.11\"}]}", + "pycparser": "{\"rules_python_publish_deps_311_pycparser_py3_none_any_c3702b6d\":[{\"filename\":\"pycparser-2.22-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_pycparser_sdist_491c8be9\":[{\"filename\":\"pycparser-2.22.tar.gz\",\"version\":\"3.11\"}]}", + "pygments": "{\"rules_python_publish_deps_311_pygments_py3_none_any_b8e6aca0\":[{\"filename\":\"pygments-2.18.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_pygments_sdist_786ff802\":[{\"filename\":\"pygments-2.18.0.tar.gz\",\"version\":\"3.11\"}]}", + "pywin32_ctypes": "{\"rules_python_publish_deps_311_pywin32_ctypes_py3_none_any_8a151337\":[{\"filename\":\"pywin32_ctypes-0.2.3-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_pywin32_ctypes_sdist_d162dc04\":[{\"filename\":\"pywin32-ctypes-0.2.3.tar.gz\",\"version\":\"3.11\"}]}", + "readme_renderer": "{\"rules_python_publish_deps_311_readme_renderer_py3_none_any_2fbca89b\":[{\"filename\":\"readme_renderer-44.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_readme_renderer_sdist_8712034e\":[{\"filename\":\"readme_renderer-44.0.tar.gz\",\"version\":\"3.11\"}]}", + "requests": "{\"rules_python_publish_deps_311_requests_py3_none_any_70761cfe\":[{\"filename\":\"requests-2.32.3-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_requests_sdist_55365417\":[{\"filename\":\"requests-2.32.3.tar.gz\",\"version\":\"3.11\"}]}", + "requests_toolbelt": "{\"rules_python_publish_deps_311_requests_toolbelt_py2_none_any_cccfdd66\":[{\"filename\":\"requests_toolbelt-1.0.0-py2.py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_requests_toolbelt_sdist_7681a0a3\":[{\"filename\":\"requests-toolbelt-1.0.0.tar.gz\",\"version\":\"3.11\"}]}", + "rfc3986": "{\"rules_python_publish_deps_311_rfc3986_py2_none_any_50b1502b\":[{\"filename\":\"rfc3986-2.0.0-py2.py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_rfc3986_sdist_97aacf9d\":[{\"filename\":\"rfc3986-2.0.0.tar.gz\",\"version\":\"3.11\"}]}", + "rich": "{\"rules_python_publish_deps_311_rich_py3_none_any_6049d5e6\":[{\"filename\":\"rich-13.9.4-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_rich_sdist_43959497\":[{\"filename\":\"rich-13.9.4.tar.gz\",\"version\":\"3.11\"}]}", + "secretstorage": "{\"rules_python_publish_deps_311_secretstorage_py3_none_any_f356e662\":[{\"filename\":\"SecretStorage-3.3.3-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_secretstorage_sdist_2403533e\":[{\"filename\":\"SecretStorage-3.3.3.tar.gz\",\"version\":\"3.11\"}]}", + "twine": "{\"rules_python_publish_deps_311_twine_py3_none_any_215dbe7b\":[{\"filename\":\"twine-5.1.1-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_twine_sdist_9aa08251\":[{\"filename\":\"twine-5.1.1.tar.gz\",\"version\":\"3.11\"}]}", + "urllib3": "{\"rules_python_publish_deps_311_urllib3_py3_none_any_ca899ca0\":[{\"filename\":\"urllib3-2.2.3-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_urllib3_sdist_e7d814a8\":[{\"filename\":\"urllib3-2.2.3.tar.gz\",\"version\":\"3.11\"}]}", + "zipp": "{\"rules_python_publish_deps_311_zipp_py3_none_any_a817ac80\":[{\"filename\":\"zipp-3.20.2-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_zipp_sdist_bc9eb26f\":[{\"filename\":\"zipp-3.20.2.tar.gz\",\"version\":\"3.11\"}]}" + }, + "packages": [ + "backports_tarfile", + "certifi", + "charset_normalizer", + "docutils", + "idna", + "importlib_metadata", + "jaraco_classes", + "jaraco_context", + "jaraco_functools", + "keyring", + "markdown_it_py", + "mdurl", + "more_itertools", + "nh3", + "pkginfo", + "pygments", + "readme_renderer", + "requests", + "requests_toolbelt", + "rfc3986", + "rich", + "twine", + "urllib3", + "zipp" + ], + "groups": {} + } + } + }, + "moduleExtensionMetadata": { + "useAllRepos": "NO", + "reproducible": false + }, + "recordedRepoMappingEntries": [ + [ + "bazel_features+", + "bazel_features_globals", + "bazel_features++version_extension+bazel_features_globals" + ], + [ + "bazel_features+", + "bazel_features_version", + "bazel_features++version_extension+bazel_features_version" + ], + [ + "rules_python+", + "bazel_features", + "bazel_features+" + ], + [ + "rules_python+", + "bazel_skylib", + "bazel_skylib+" + ], + [ + "rules_python+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_python+", + "pypi__build", + "rules_python++internal_deps+pypi__build" + ], + [ + "rules_python+", + "pypi__click", + "rules_python++internal_deps+pypi__click" + ], + [ + "rules_python+", + "pypi__colorama", + "rules_python++internal_deps+pypi__colorama" + ], + [ + "rules_python+", + "pypi__importlib_metadata", + "rules_python++internal_deps+pypi__importlib_metadata" + ], + [ + "rules_python+", + "pypi__installer", + "rules_python++internal_deps+pypi__installer" + ], + [ + "rules_python+", + "pypi__more_itertools", + "rules_python++internal_deps+pypi__more_itertools" + ], + [ + "rules_python+", + "pypi__packaging", + "rules_python++internal_deps+pypi__packaging" + ], + [ + "rules_python+", + "pypi__pep517", + "rules_python++internal_deps+pypi__pep517" + ], + [ + "rules_python+", + "pypi__pip", + "rules_python++internal_deps+pypi__pip" + ], + [ + "rules_python+", + "pypi__pip_tools", + "rules_python++internal_deps+pypi__pip_tools" + ], + [ + "rules_python+", + "pypi__pyproject_hooks", + "rules_python++internal_deps+pypi__pyproject_hooks" + ], + [ + "rules_python+", + "pypi__setuptools", + "rules_python++internal_deps+pypi__setuptools" + ], + [ + "rules_python+", + "pypi__tomli", + "rules_python++internal_deps+pypi__tomli" + ], + [ + "rules_python+", + "pypi__wheel", + "rules_python++internal_deps+pypi__wheel" + ], + [ + "rules_python+", + "pypi__zipp", + "rules_python++internal_deps+pypi__zipp" + ], + [ + "rules_python+", + "pythons_hub", + "rules_python++python+pythons_hub" + ], + [ + "rules_python++python+pythons_hub", + "python_3_10_host", + "rules_python++python+python_3_10_host" + ], + [ + "rules_python++python+pythons_hub", + "python_3_11_host", + "rules_python++python+python_3_11_host" + ], + [ + "rules_python++python+pythons_hub", + "python_3_12_host", + "rules_python++python+python_3_12_host" + ], + [ + "rules_python++python+pythons_hub", + "python_3_13_host", + "rules_python++python+python_3_13_host" + ], + [ + "rules_python++python+pythons_hub", + "python_3_8_host", + "rules_python++python+python_3_8_host" + ], + [ + "rules_python++python+pythons_hub", + "python_3_9_host", + "rules_python++python+python_3_9_host" + ] + ] + } + }, + "@@rules_python+//python/uv:uv.bzl%uv": { + "general": { + "bzlTransitiveDigest": "Xpqjnjzy6zZ90Es9Wa888ZLHhn7IsNGbph/e6qoxzw8=", + "usagesDigest": "vJ5RHUxAnV24M5swNGiAnkdxMx3Hp/iOLmNANTC5Xc8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "uv": { + "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo", + "attributes": { + "toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'", + "toolchain_names": [ + "none" + ], + "toolchain_implementations": { + "none": "'@@rules_python+//python:none'" + }, + "toolchain_compatible_with": { + "none": [ + "@platforms//:incompatible" + ] + }, + "toolchain_target_settings": {} + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_python+", + "platforms", + "platforms" + ] + ] + } + } + } +} diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_secondary_lto_cache/hello-world.cc b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_secondary_lto_cache/hello-world.cc new file mode 100644 index 0000000..ee72c53 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/bazel/test_secondary_lto_cache/hello-world.cc @@ -0,0 +1,6 @@ +#include + +int main(int argc, char** argv) { + std::cout << "hello world!" << std::endl; + return 0; +} diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/docker/Dockerfile b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/docker/Dockerfile new file mode 100644 index 0000000..4e4667e --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/docker/Dockerfile @@ -0,0 +1,131 @@ +FROM ubuntu:jammy AS stage_build + +ARG EMSCRIPTEN_VERSION=tot +ENV EMSDK /emsdk + +# ------------------------------------------------------------------------------ + +RUN echo "## Start building" \ + && echo "## Update and install packages" \ + && apt-get -qq -y update \ + && apt-get -qq install -y --no-install-recommends \ + binutils \ + build-essential \ + ca-certificates \ + file \ + git \ + python3 \ + python3-pip \ + && echo "## Done" + +# Copy the contents of this repository to the container +COPY . ${EMSDK} + +RUN echo "## Install Emscripten" \ + && cd ${EMSDK} \ + && ./emsdk install ${EMSCRIPTEN_VERSION} \ + && echo "## Done" + +# This generates configuration that contains all valid paths according to installed SDK +# TODO(sbc): We should be able to use just emcc -v here but it doesn't +# currently create the sanity file. +RUN cd ${EMSDK} \ + && echo "## Generate standard configuration" \ + && ./emsdk activate ${EMSCRIPTEN_VERSION} \ + && chmod 777 ${EMSDK}/upstream/emscripten \ + && chmod -R 777 ${EMSDK}/upstream/emscripten/cache \ + && echo "int main() { return 0; }" > hello.c \ + && ${EMSDK}/upstream/emscripten/emcc -c hello.c \ + && cat ${EMSDK}/upstream/emscripten/cache/sanity.txt \ + && echo "## Done" + +# Cleanup Emscripten installation and strip some symbols +RUN echo "## Aggressive optimization: Remove debug symbols" \ + && cd ${EMSDK} && . ./emsdk_env.sh \ + # Remove debugging symbols from embedded node (extra 7MB) + && strip -s `which node` \ + # Tests consume ~80MB disc space + && rm -fr ${EMSDK}/upstream/emscripten/tests \ + # strip out symbols from clang (~extra 50MB disc space) + && find ${EMSDK}/upstream/bin -type f -exec strip -s {} + || true \ + && echo "## Done" + +# ------------------------------------------------------------------------------ +# -------------------------------- STAGE DEPLOY -------------------------------- +# ------------------------------------------------------------------------------ + +FROM ubuntu:jammy AS stage_deploy + +COPY --from=stage_build /emsdk /emsdk + +# These fallback environment variables are intended for situations where the +# entrypoint is not utilized (as in a derived image) or overridden (e.g. when +# using `--entrypoint /bin/bash` in CLI). +# This corresponds to the env variables set during: `source ./emsdk_env.sh` +ENV EMSDK=/emsdk \ + PATH="/emsdk:/emsdk/upstream/emscripten:/emsdk/node/20.18.0_64bit/bin:${PATH}" + +# ------------------------------------------------------------------------------ +# Create a 'standard` 1000:1000 user +# Thanks to that this image can be executed as non-root user and created files +# will not require root access level on host machine Please note that this +# solution even if widely spread (i.e. Node.js uses it) is far from perfect as +# user 1000:1000 might not exist on host machine, and in this case running any +# docker image will cause other random problems (mostly due `$HOME` pointing to +# `/`) +RUN echo "## Create emscripten user (1000:1000)" \ + && groupadd --gid 1000 emscripten \ + && useradd --uid 1000 --gid emscripten --shell /bin/bash --create-home emscripten \ + && echo "## Done" + +# ------------------------------------------------------------------------------ + +RUN echo "## Update and install packages" \ + && apt-get -qq -y update \ + # Somewhere in here apt sets up tzdata which asks for your time zone and blocks + # waiting for the answer which you can't give as docker build doesn't read from + # the terminal. The env vars set here avoid the interactive prompt and set the TZ. + && DEBIAN_FRONTEND="noninteractive" TZ="America/San_Francisco" apt-get -qq install -y --no-install-recommends \ + sudo \ + libxml2 \ + ca-certificates \ + python3 \ + python3-pip \ + wget \ + curl \ + zip \ + unzip \ + git \ + git-lfs \ + ssh-client \ + build-essential \ + make \ + ant \ + libidn12 \ + cmake \ + openjdk-11-jre-headless \ + # Standard Cleanup on Debian images + && apt-get -y clean \ + && apt-get -y autoclean \ + && apt-get -y autoremove \ + && rm -rf /var/lib/apt/lists/* \ + && rm -rf /var/cache/debconf/*-old \ + && rm -rf /usr/share/doc/* \ + && rm -rf /usr/share/man/?? \ + && rm -rf /usr/share/man/??_* \ + && echo "## Done" + +# ------------------------------------------------------------------------------ +# Use commonly used /src as working directory +WORKDIR /src + +ENTRYPOINT ["/emsdk/docker/entrypoint.sh"] + +LABEL maintainer="kontakt@trzeci.eu" \ + org.label-schema.name="emscripten" \ + org.label-schema.description="The official container with Emscripten SDK" \ + org.label-schema.url="https://emscripten.org" \ + org.label-schema.vcs-url="https://github.com/emscripten-core/emsdk" \ + org.label-schema.docker.dockerfile="/docker/Dockerfile" + +# ------------------------------------------------------------------------------ diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/docker/Makefile b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/docker/Makefile new file mode 100644 index 0000000..749ecfe --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/docker/Makefile @@ -0,0 +1,31 @@ +# A Makefile to build, test, tag and publish the Emscripten SDK Docker container. + +# Emscripten version to build: Should match the version that has been already released. +# i.e.: 1.39.18 +version = +alias = +only_alias = + +image_name ?= emscripten/emsdk + +.TEST: +ifndef version + $(error argument 'version' is not set. Please call `make version=SOME_VERSION ...`) +endif + +build: Dockerfile .TEST + cd .. && docker build --progress=plain --network host --build-arg=EMSCRIPTEN_VERSION=${version} -t ${image_name}:${version} -f docker/$< . + +test: test_dockerimage.sh .TEST + # test as non-root + # test fallback env variables by overriding the entrypoint + docker run --rm -u `id -u`:`id -g` -w /emsdk/docker --net=host --entrypoint /bin/bash ${image_name}:${version} $< + +push: .TEST +ifndef only_alias + docker push ${image_name}:${version} +endif +ifdef alias + docker tag ${image_name}:${version} ${image_name}:${alias} + docker push ${image_name}:${alias} +endif diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/docker/README.md b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/docker/README.md new file mode 100644 index 0000000..62e6c02 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/docker/README.md @@ -0,0 +1,125 @@ +# Dockerfile for EMSDK + +This Dockerfile builds a self-contained version of Emscripten SDK that enables Emscripten to be used without any +other installation on the host system. + +It is published at https://hub.docker.com/r/emscripten/emsdk. + +### Usage + +Simple usage of this container to compile a hello-world +```bash +# create helloworld.cpp +cat << EOF > helloworld.cpp +#include +int main() { + std::cout << "Hello World!" << std::endl; + return 0; +} +EOF +``` + +```bash +# compile with docker image +docker run \ + --rm \ + -v "$(pwd):$(pwd)" \ + -u $(id -u):$(id -g) \ + emscripten/emsdk \ + emcc helloworld.cpp -o helloworld.js + +# execute on host machine +node helloworld.js +``` + +Teardown of compilation command: + +|part|description| +|---|---| +|`docker run`| A standard command to run a command in a container| +|`--rm`|remove a container after execution (optimization)| +|`-v "$(pwd):$(pwd)"`|Mounting current folder from the host system into mirrored path on the container
TIP: This helps to investigate possible problem as we preserve exactly the same paths like in host. In such case modern editors (like Sublime, Atom, VS Code) let us to CTRL+Click on a problematic file | +|`-u $(id -u):$(id -g)`| Run the container as a non-root user with the same UID and GID as local user. Hence all files produced by this are accessible to non-root users| +|`emscripten/emsdk`|Get the latest tag of this container| +|`emcc helloworld.cpp -o helloworld.js`|Execute `emcc` command with following arguments inside container, effectively compile our source code| + + + +### Building Dockerfile + +This image has following optional arguments + +| arg | default value | description | +| --- | --- | --- | +| `EMSCRIPTEN_VERSION` | `tot`
(special case, tip-of-tree) | One of released version of Emscripten. For example `2.0.0`
Minimal supported version is **1.39.0** | + +**Building** + +This step will build Dockerfile as given tag on local machine +```bash +# using docker +docker build \ + --network host \ + --build-arg=EMSCRIPTEN_VERSION=1.39.17 \ + -t emscripten/emsdk:1.39.17 \ + -f docker/Dockerfile \ + . +``` +```bash +# using predefined make target +make version=1.39.17 build test +``` + +**Tagging** + +In case of using `docker build` command directly, given `--tag` should match version of released Emscripten (you can see list of non-legacy versions by executing `emsdk list`). + +**Pushing** + +This step will take local image and push to default docker registry. You need to make sure that you logged in docker cli (`docker login`) and you have rights to push to that registry. + +```bash +# using docker +docker push emscripten/emsdk:1.39.17 +``` +```bash +# using predefined make target +make version=1.39.17 push +``` + +In case of pushing the most recent version, this version should be also tagged as `latest` and pushed. +```bash +# using docker cli +docker tag emscripten/emsdk:1.39.17 emscripten/emsdk:latest +docker push emscripten/emsdk:latest + +```bash +# using make +make version=1.39.17 alias=latest push +``` + +### Extending + +If your project uses packages that this image doesn't provide you might want to: +* Contribute to this repo: Maybe your dependency is either non-intrusive or could be useful for other people +* Create custom image that bases on this image + +1. create own Dockerfile that holds: + ```dockerfile + # Point at any base image that you find suitable to extend. + FROM emscripten/emsdk:1.39.17 + + # Install required tools that are useful for your project i.e. ninja-build + RUN apt update && apt install -y ninja-build + ``` + +2. build it + ```bash + docker build -t extended_emscripten . + ``` + +3. test + ```bash + docker run --rm extended_emscripten ninja --version + # 1.10.0 + ``` diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/docker/entrypoint.sh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/docker/entrypoint.sh new file mode 100755 index 0000000..ceadfc4 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/docker/entrypoint.sh @@ -0,0 +1,7 @@ +#!/bin/bash +set -e + +# Set-up PATH and other environment variables +EMSDK_QUIET=1 source /emsdk/emsdk_env.sh + +exec "$@" diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/docker/test_dockerimage.sh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/docker/test_dockerimage.sh new file mode 100755 index 0000000..0964820 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/docker/test_dockerimage.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash +set -ex + +if [ $EUID -eq 0 ]; then + sudo -u nobody `which emcc` --version +fi + +which emsdk +node --version +npm --version +python3 --version +pip3 --version +em++ --version +emcc --version +java -version +cmake --version + +exit_code=0 + +# test emcc compilation +echo 'int main() { return 0; }' | emcc -o /tmp/main.js -xc - +node /tmp/main.js || exit_code=$? +if [ $exit_code -ne 0 ]; then + echo "Node exited with non-zero exit code: $exit_code" + exit $exit_code +fi + +# test embuilder +embuilder build zlib --force diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emcmdprompt.bat b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emcmdprompt.bat new file mode 100644 index 0000000..89803ae --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emcmdprompt.bat @@ -0,0 +1 @@ +@cmd /k call emsdk_env.bat \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emscripten-releases-tags.json b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emscripten-releases-tags.json new file mode 100644 index 0000000..012fe41 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emscripten-releases-tags.json @@ -0,0 +1,271 @@ +{ + "aliases": { + "latest": "4.0.9", + "latest-sdk": "latest", + "latest-arm64-linux": "latest", + "latest-64bit": "latest", + "sdk-latest-64bit": "latest", + "latest-upstream": "latest", + "latest-clang-upstream": "latest", + "latest-releases-upstream": "latest" + }, + "releases": { + "4.0.9": "cb2a69bce627bd2247624c71fc12907cb8785d2f", + "4.0.9-asserts": "27f1e0801c6ec5ea4d9a9e1d573eb1fead3525f1", + "4.0.8": "56f86607aeb458086e72f23188789be2ee0e971a", + "4.0.8-asserts": "ab275365d4057cf92d698ef99744d66cd8c7cba9", + "4.0.7": "ef4e9cedeac3332e4738087567552063f4f250d3", + "4.0.7-asserts": "4bef8973dc12f5f38022f323d67c16237bbd2962", + "4.0.6": "14767574a5c37ff9526a253a65ddbe0811cb3667", + "4.0.6-asserts": "4050eaf1fd8e1c191198ec4ba8c346c4f3da0dc8", + "4.0.5": "d7f8ff5e2ca3539c33fae81e98f7c56ef9fa1239", + "4.0.5-asserts": "71269375282224b2e662bbe009e2e3ebc40db67f", + "4.0.4": "ea71afcf5a172125179a07ff1731de6e81c92222", + "4.0.4-asserts": "5121692126f7c96d86a13dc8462e758813e30123", + "4.0.3": "de2109f0e5e7278d470da11de526aed16c527722", + "4.0.3-asserts": "bae6703fb819bd84fb4dfb5e87b41cf93b6d3f2b", + "4.0.2": "cc8eba40de8235f9c33d92463018f87b3edaa09e", + "4.0.2-asserts": "dc575ac9a214463b2b3503c11a1a31db665b4414", + "4.0.1": "5ff495a591978fdf8a16f2d172be3616f3150d1e", + "4.0.1-asserts": "c2e46b78d3dde701187d685f8c175f17425bee68", + "4.0.0": "3ebc04a3dab24522a5bf8ced3ce3caea816558f6", + "4.0.0-asserts": "912ac2d711bb343205f314564ed287d883a7d888", + "3.1.74": "c2655005234810c7c42e02a18e4696554abe0352", + "3.1.74-asserts": "88e95307accc1f4b247b86b7a0c0e6beaf07f844", + "3.1.73": "b363a836e75a245c548b7a6a021822d8c9e4c6df", + "3.1.73-asserts": "86f3e54628089634c6b73039955388296e920291", + "3.1.72": "7a360458327cd24c2a7aab428bdbcb5bca8810e4", + "3.1.72-asserts": "92d39398c0016e73821548a4cd9df3df1358f6d9", + "3.1.71": "7ee0f9488f152e9e9cf0d4d243970e03742f1a5c", + "3.1.71-asserts": "15b142643065fe241138c6785cb8e384504f76e8", + "3.1.70": "6fa6145af41e835f3d13edf7d308c08e4573357a", + "3.1.70-asserts": "11444ec05e2cc64ef42c4f33c6e3a2a7534694f2", + "3.1.69": "8fe01288bc35668c13316324336ea00195dfb814", + "3.1.69-asserts": "cf6f9d1b4026ec7aec33aceb68077c704b52b068", + "3.1.68": "b52d8c9150dc7d4c8e4a7a08c7a9b4006c9abe49", + "3.1.68-asserts": "1565c9e5a4547215a1b63013607bf7a1cbb3d9d3", + "3.1.67": "4ae62984ea36ef0e5bfcbd0ed9b62f04bee6426a", + "3.1.67-asserts": "7cfc00962efe07f2e2ff3383f59519dc5bea4f82", + "3.1.66": "243eae09cf5c20c4fde51a620b92f483255c8214", + "3.1.66-asserts": "c5d25114210455d19cb9232171824292005a5080", + "3.1.65": "fdcf56c75a1d27fdff6525a7e03423595485ca19", + "3.1.65-asserts": "3231fb47481b2248c31002cdd7324a9155135ce0", + "3.1.64": "fd61bacaf40131f74987e649a135f1dd559aff60", + "3.1.64-asserts": "42c1d51ceb8e41e70ce1d8dc1bc534c0f609c196", + "3.1.63": "aeb36a44b29e8ca9f4c7efbb4735b69003ac2bb9", + "3.1.63-asserts": "b0275806047b42f2f88998c5c8159aec90e195ab", + "3.1.62": "d52176ac8e07c47c1773bb2776ebd91e3886c3af", + "3.1.62-asserts": "9d9e7deac8b91fbdd8804045595e807f9d774a53", + "3.1.61": "28e4a74b579b4157bda5fc34f23c7d3905a8bd6c", + "3.1.61-asserts": "7fc912687ba2077b3aeae472b51c238b3d201c46", + "3.1.60": "87709b5747de5b1993fe314285528bf4b65c23e1", + "3.1.60-asserts": "e2388e8a528890b8f3ff7b9ab4f52dbe2aeb38b9", + "3.1.59": "e20ee09a8a740544c4bc6de5d4ba5f81f74b74d6", + "3.1.59-asserts": "10ae1e83ccce9f4a363bb2e3090ba8fc32d25851", + "3.1.58": "a4d4afb626c5010f6ccda4638b8d77579a63782e", + "3.1.58-asserts": "5bc1c7108d4d91db316b24a75593a37c1117c266", + "3.1.57": "523b29e1b99a61069a2fa9f9d3cc9be1c4c53d4d", + "3.1.57-asserts": "10b736eeeac0dae3fd5bc29c6b3e32f7f7adf941", + "3.1.56": "9d106be887796484c4aaffc9dc45f48a8810f336", + "3.1.56-asserts": "2b9c4b912b611dc51f9019e11371e3cdd36fa64e", + "3.1.55": "f5557e3b7166d05bddb5977e363ec48cd06e9d32", + "3.1.55-asserts": "eb23cc30563325fd6dc97fcf85ddf26489ab9110", + "3.1.54": "aa1588cd28c250a60457b5ed342557c762f416e3", + "3.1.54-asserts": "d525f56cb765ed6884a0c443dbb906b63b148915", + "3.1.53": "e5523d57a0e0dcf80f3b101bbc23613fcc3101aa", + "3.1.53-asserts": "152cef4e00fc17776576bcc57f53badd21b92509", + "3.1.52": "ce2097fb81953331e65543c20b437475f218127c", + "3.1.52-asserts": "49e9a37dd6d1d65aa92472d8908cb8b88092dfaf", + "3.1.51": "4f416d92fbff66ce79901cfc8263768f1b25dd3e", + "3.1.51-asserts": "9035c99beb760aa0ea381bdf11abf440d88bb451", + "3.1.50": "2ce4170cef5ce46f337f9fd907b614a8db772c7d", + "3.1.50-asserts": "0a6fe6ef5880bf5b035d396f3875fda9b7c4bb60", + "3.1.49": "bd0a2e230466dadb36efc71aa7271f17c6c35420", + "3.1.49-asserts": "4ea035c5bbd6168dae34c970b5f56d7aa4dcf952", + "3.1.48": "694434b6d47c5f6eff2c8fbd9eeb016c977ae9dc", + "3.1.48-asserts": "6e2b8a97c6db82089c3a405bc88ea9fb125deb16", + "3.1.47": "39ade279e75e6d17dd6b7eb9fba2006e61fe966b", + "3.1.47-asserts": "dc49d84ed226a5a30a5117cefc07c781f6c0d16e", + "3.1.46": "21644188d5c473e92f1d7df2f9f60c758a78a486", + "3.1.46-asserts": "3e09b252d0d5a8e045d2ca92c606bfb9874bddf8", + "3.1.45": "2b7c5fb8ffeac3315deb1f82ab7bf8da544f84a1", + "3.1.45-asserts": "2aec03dfd8ce68c95316116dafbe30e273f32a81", + "3.1.44": "b90507fcf011da61bacfca613569d882f7749552", + "3.1.44-asserts": "06d00b0c62e435b743aa37c67b4ab76bc8568c79", + "3.1.43": "bf3c159888633d232c0507f4c76cc156a43c32dc", + "3.1.43-asserts": "3ec53a819a5958665d6bb0ac895c99546921b6ef", + "3.1.42": "9d73bf4bd5b5c9ce6e51be0ed5ce6599fcb28e9e", + "3.1.42-asserts": "7a622e0b66ee095aea9766375a2774b68c8bd8ef", + "3.1.41": "eb71265ef0ab905620015adbfedacf88c5dbf021", + "3.1.41-asserts": "064607aeccaffd93175bb40c072271c0393d71a5", + "3.1.40": "c3122846bb040798aab975f61008c37eb19476de", + "3.1.40-asserts": "5b5daaaabaf7292736454e4f8a73fa79bd455af4", + "3.1.39": "1b56b171b627af0841cf8d4d8c0160c6cb6d855f", + "3.1.39-asserts": "5e237cc9d9f6020af9ba908692361aa71744af1d", + "3.1.38": "03ecb526947f6a3702a0d083083799fe410d3893", + "3.1.38-asserts": "f771c7a0b55bc5d89ecceedfe9521c2c04aa43ae", + "3.1.37": "7c905cfc1ca6699f6ccb288ae174902cfbdcf0a2", + "3.1.37-asserts": "323607efbcdf84886dab55a18d758fe4c7d71d1e", + "3.1.36": "adedc0750c4a89b65bee866edab24298cb8d6677", + "3.1.36-asserts": "fdd2824226a8b001df5697146b88be98920fc215", + "3.1.35": "671550b5bdceee7bdb21493714f9a815aa5149a9", + "3.1.35-asserts": "42481a713ae805eda34f6e3e7170384c426b1d73", + "3.1.34": "2fdd6b9e5b67d5b62f84d0501a876513ff118ef1", + "3.1.34-asserts": "385382932c18a1312fff88000c4f83c2b9d1bb44", + "3.1.33": "49b960bd03b3a9da478a08541ce6eafe792a58a8", + "3.1.33-asserts": "e3ca2c6756b75cf6c6daa40276de0f25218e04a7", + "3.1.32": "29ad1037cd6b99e5d8a1bd75bc188c1e9a6fda8d", + "3.1.32-asserts": "2811c849256ec5b62b4ec32fb8369e5f3c9a54b1", + "3.1.31": "1eec24930cb2f56f6d9cd10ffcb031e27ea4157a", + "3.1.31-asserts": "48488847a38bb9cfb36e7397bea21ab2bb062680", + "3.1.30": "dc1fdcfd3f5b9d29cb1ebdf15e6e845bef9b0cc1", + "3.1.30-asserts": "21cca44e843267533c3d0b258b46c37bd142a2d7", + "3.1.29": "d949f1b99a477d4b0b54d95413df3688afa69d0a", + "3.1.29-asserts": "9d1e32e66e4b5921efc1a45cdc68e8c522c42c32", + "3.1.28": "30b9e46ddcea66e91530559379089002d8b692cf", + "3.1.28-asserts": "19871a9ea4914d63749b8d4d170e27a8854cb565", + "3.1.27": "48ce0b44015d0182fc8c27aa9fbc0a4474b55982", + "3.1.27-asserts": "630810e5a312f57d17efbe384ed7e4299f796bc1", + "3.1.26": "4f68bb2a505c727bcf58195cf4da20592a6e92c8", + "3.1.26-asserts": "4e2ffe94b04dbadfbca1687ab458d306b3414d13", + "3.1.25": "ff6babb041d0f31575cc16d15ef82c6222ca99b8", + "3.1.25-asserts": "6b19d6a8c30d7b83ba2193625fc12cce9ae0206b", + "3.1.24": "54217a0950bb1dafe8808cc6207d378e323f9d74", + "3.1.24-asserts": "4c20c7393ca208c740c16a97dbf305ba52fea2bb", + "3.1.23": "bfd5e63a44ba4c8568cd8ac87c27b35e40732bf4", + "3.1.23-asserts": "77d2c744fe37fe0e22a51329fa23bab4b8ffa656", + "3.1.22": "990cee04a21caafc75955d736fb45791a7f2aeee", + "3.1.22-asserts": "d94fe69a037e93562d0bbe9d0372ce23f4ab1089", + "3.1.21": "a16a8bca2466eb144f7c93fa899c0272c8815dc3", + "3.1.21-asserts": "c7a387161b029621eb4d3dd57363b1393b4c50b2", + "3.1.20": "d92c8639f406582d70a5dde27855f74ecf602f45", + "3.1.20-asserts": "db0fd1cb7316675317d527b6ed4f4cc7005df9ec", + "3.1.19": "4c3772879a04140298c3abde90962d5567b5e2fc", + "3.1.19-asserts": "83c2ba526ec47139d29e1417ac23d15b37ead98a", + "3.1.18": "49d45744895c7d7e28acd94a385d7ee361653b4a", + "3.1.18-asserts": "cb7fa1dce4b04e35b78ec43499a7759f24c1e64d", + "3.1.17": "d27fef2070c86a218965da8b8b5df8b4425aa3bb", + "3.1.17-asserts": "19aab28a81be09863e86aba8ee4e20feaee31f6b", + "3.1.16": "fb1baf00423818052359cf9126e94bc71c39feb5", + "3.1.16-asserts": "61848bee5b330db5ad5f827352d453b5557757fa", + "3.1.15": "568a46a9fb7e1f1686a6f7216b3dc976f28d2a79", + "3.1.15-asserts": "a8a770a0a23d2279270bd28004c8c60b02d91fbb", + "3.1.14": "ade9d780ff17c88d81aa13860361743e3c1e1396", + "3.1.14-asserts": "b55548282b553fc0b922b82d97b80f256bf01d20", + "3.1.13": "bc44364b561cfde15c243a54e3b96ea12d7ea284", + "3.1.13-asserts": "6b8f75967b5d37fa898d217b560d571694eb5b13", + "3.1.12": "a8c3b314d61e2bb98581d522f858132b2fc21488", + "3.1.12-asserts": "0ec1936aa3cb809d96abfebcc5356cd0cb15f6b8", + "3.1.11": "8c3a799341c01148692c52fda73bbba5e89c5727", + "3.1.11-asserts": "4d27b98351e021e9b7d2681a84cbab5a0ddc7a88", + "3.1.10": "8bd05c7221b4ce34d4bedec40b672d94e681a765", + "3.1.10-asserts": "d9b20effb2d660936fb5be525744e941fd900bc6", + "3.1.9": "edabe25af34554d19c046078f853999b074259ca", + "3.1.9-asserts": "c751721b1dfa47c03ede0f0da89be453c79b34ef", + "3.1.8": "8c9e0a76ebed2c5e88a718d43e8b62452def3771", + "3.1.8-asserts": "d33ae3c8d16f04b004b76c1d7c1989d637aa36e0", + "3.1.7": "d0e637fe48197587d981f79e8114757731d0c2a9", + "3.1.7-asserts": "88f0cab4e7db846e171cbbbbf20cc1a51b8c779f", + "3.1.6": "8791c3e936141cbc2dd72d76290ea9b2726d39f3", + "3.1.6-asserts": "84fa976d87a29ea1734601b042f3c6809ecb89f0", + "3.1.5": "2dee36c7163f7394ab9341854ef5281501dd97d0", + "3.1.5-asserts": "e9b96739e70faf11bbb2f63addcef59f2b2c7b48", + "3.1.4": "39e60dda6945cfcd6487725bdb1361ae7975173f", + "3.1.4-asserts": "05edbd634e300fc79ce0f635251bd5bef375328b", + "3.1.3": "2ddc66235392b37e5b33477fd86cbe01a14b8aa2", + "3.1.3-asserts": "66aaf7da980346898a84e3e1b70477286e225eec", + "3.1.2": "6626e25d6d866cf283147ca68d54ac9326fe399f", + "3.1.2-asserts": "b5cb3731eeaf127ae73d5e24b56cf5f0cdbf16a6", + "3.1.1": "5ee64de9809592480da01372880ea11debd6c740", + "3.1.1-asserts": "9455ce6306d97c0b3854e88e1e2f66d4b8565daf", + "3.1.0": "562e3a0af169e6dea5e6dbecac2255d67c2c8b94", + "3.1.0-asserts": "1de2db691103282dad6b2037018db6ece54f57c6", + "3.0.1": "91b7a67a486d2430e73423a38d950d8a550826ed", + "3.0.1-asserts": "2a84a08e92ce8748015dfc3eee40ee35a853fed0", + "3.0.0": "7fbe748230f2ce99abbf975d9ad997699efb3153", + "3.0.0-asserts": "f1d65c26f502220e278d31e7621e99b673e28093", + "2.0.34": "d8fc1b92dbc0ce8d740a7adb937c5137ba4755e0", + "2.0.33": "cef8850d57278271766fb2163eebcb07354018e7", + "2.0.32": "74646397e3c5010824ad60d1de86c6bcbe334dff", + "2.0.31": "597724ca3f6cd6e84bea73f1f519a3953b5c273d", + "2.0.31-asserts": "c1065389ccf4a81e3c1af080316afd444788bc46", + "2.0.30": "c69458f1bbf3ef5b8da4e934de210659cc9bca04", + "2.0.30-asserts": "e13a2d74c5fa5f175ae7cffd4197fe7f78bea304", + "2.0.29": "c2369dc425725fff86ba90a9007a4603ddf7941b", + "2.0.29-lto": "439b7bd7da11e99065c84a60766e427b03be4206", + "2.0.28": "866055ea639d64dfedc625d28ec981e47ce37168", + "2.0.28-lto": "ac6ac36f7a02cec857bc1e543e55c686c5bd1256", + "2.0.27": "1ac46e3b84955231ab4a4f4cbe0c7ac28c86b8cc", + "2.0.27-lto": "79509f70be89d66b8441383de94b3e5a91dedc68", + "2.0.26": "823d37b15d1ab61bc9ac0665ceef6951d3703842", + "2.0.26-lto": "b92ba43f3ac92ab6f1ce6136a8c5969b68ba6968", + "2.0.25": "f6f001b08fbb67935379cf13d17fd9bfdbaff791", + "2.0.24": "6ab7fc5622a67e6111d07c4ba61c8d3c8fc33ed2", + "2.0.23": "77b065ace39e6ab21446e13f92897f956c80476a", + "2.0.23-lto": "3f6dbb899f61fab52e4574beb4f7c8382658aa20", + "2.0.22": "6465a9acb820207acf7da44661a7de52d0a1ae3c", + "2.0.21": "72f4ec97fbc7ec16c15ae68a75b0a257b2835160", + "2.0.20": "e0c15cd14170f407a9eb27fcbad22931dc67feb7", + "2.0.20-lto": "d1b26cd17e51c5c705eea69b9545975e3705c058", + "2.0.19": "9b9ff2dabfb4a7fbacbc004c0bead12a60f9d05c", + "2.0.19-lto": "4487f6c5107e7882ae2bad6d26c34ffdceb713f0", + "2.0.18": "c2ac7520fad29a7937ed60ab6a95b08eb374c7ba", + "2.0.17": "f5c45e60392b82f603e3a8039c62db294fab02d2", + "2.0.16": "80d9674f2fafa6b9346d735c42d5c52b8cc8aa8e", + "2.0.15": "89202930a98fe7f9ed59b574469a9471b0bda7dd", + "2.0.14": "fc5562126762ab26c4757147a3b4c24e85a7289e", + "2.0.13": "ce0e4a4d1cab395ee5082a60ebb4f3891a94b256", + "2.0.12": "dcf819a7821f8db0c8f15ac336fea8960ec204f5", + "2.0.11": "4764c5c323a474f7ba28ae991b0c9024fccca43c", + "2.0.10": "37fc7647c754ac9a28ad588c143b82286de0ef71", + "2.0.9": "d8e430f9a9b6e87502f826c39e7684852f59624f", + "2.0.8": "e4ed6c79f4db8b175d9bbe55869b697aba9bcf2a", + "2.0.7": "d7a29d82b320e471203b69d43aaf03b560eedc54", + "2.0.6": "4ba921c8c8fe2e8cae071ca9889d5c27f5debd87", + "2.0.5": "461f0f118d8d8e6cfd84e077f3eb010c17a39032", + "2.0.4": "eefeb3e623af023844ac477d70d1fd8a668f5110", + "2.0.3": "7a7f38ca19da152d4cd6da4776921a0f1e3f3e3f", + "2.0.2": "ede25d889a0abe63360d4c5d420087c8753b8bbe", + "2.0.1": "13e29bd55185e3c12802bc090b4507901856b2ba", + "2.0.0": "5974288502aab433d45f53511e961aaca4079d86", + "1.40.1": "536568644fd67d53778f6111fdd5f64ad3f4c539", + "1.40.0": "edf24e7233e0def312a08cc8dcec63a461155da1", + "1.39.20": "e7e39da9c81faecd9ecf44065cee864d76e4e34d", + "1.39.19": "665121d026cafc46c29b30d6d4c45ed73eedbb7e", + "1.39.18": "1914a1543f08cd8e41f44c2bb05f7a90d1920275", + "1.39.17": "9bc968c0e49b1c795ecddb87391b265911e2adcb", + "1.39.16": "ae5001fac3849895a873e422a2a80afc90f3b798", + "1.39.15": "3880c744c068986d4ee781a61f7b2e820043e11f", + "1.39.14": "574ad04affb82cc36a32dd89b2a87bea4fb30eba", + "1.39.13": "7b3cd38017f7c582cfa3ac24a9f12aa6a8dca51f", + "1.39.12": "e13b86d4dbd9a986525ef27d4ad8157949b9bc3a", + "1.39.11": "6584e2d88570ee55914db92a3bad84f99e5bdd82", + "1.39.10": "65d33d604d3fa0ebe03548378b898fc6608e9cb8", + "1.39.9": "122396dfad60e1b2a83ccefa74a1425a2e05b5cb", + "1.39.8": "9e60f34accb4627d7358223862a7e74291886ab6", + "1.39.7": "9a89fff28cc6f75e17976fce1904b280e4beb25d", + "1.39.6": "967836071d96d9b7894e492382f5fcb96423fc07", + "1.39.5": "b3ddcab6efd749d3ed937fb452ace4e39a825842", + "1.39.4": "8bb7b0bbbca74cc58741416cc955011f22ff5ccb", + "1.39.3": "b024b71038d1291ed7ec23ecd553bf2c0c8d6da6", + "1.39.2": "c630da9163a64e08de3dd948be0a0f7a175d285b", + "1.39.1": "40f3caabcef7b52bdde63d3883462414d7a25bec", + "1.39.0": "d57bfdd6d43181501bbd3fab502d57c9073ceb49", + "1.38.48": "1290d9deb93d67c4649999a8f2c8d9167d38dc04", + "1.38.47": "bc367c257409d676e71c5511383228b7aabf1689", + "1.38.46": "c89919d252f7cea00d944bdf3bd630cd3c7e7388", + "1.38.45": "f3030d9fffcc9e1287cb6b8e72982e94ece31d71", + "1.38.44": "e5fd171371c3dcb8806a337f2dfa9b70f598f456", + "1.38.43": "737d4a07be76c15124adf3c6ef2c218123f7a67f", + "1.38.42": "05f8c01394ddd0838d3cb484ba8ca97a3efc1ac9", + "1.38.41": "5c6785a63993ae7a4d5362b32b0be9c85138fb96", + "1.38.40": "7b4b328af02eafbc857b8ca1e3d9b12dddc56ef7", + "1.38.39": "f42b12c45fd3f4c20de1321402fbc28f8fd21df1", + "1.38.38": "80bff2784f8500c1305ca69ba1d9fc84df0e401c", + "1.38.37": "0ca6c49e30bc09c3ccefc867df4196a4b4183441", + "1.38.36": "d46be49c2aab975333423122239892bd46f52bba", + "1.38.35": "98f49919f25e06fa557cbcb1321d4c10e60c87ca", + "1.38.34": "048cf9424790cc525a7ea6da340820aae226f3b9", + "1.38.33": "3b8cff670e9233a6623563add831647e8689a86b" + } +} diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk new file mode 100755 index 0000000..78c0288 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk @@ -0,0 +1,36 @@ +#!/bin/sh +# Copyright 2019 The Emscripten Authors. All rights reserved. +# Emscripten is available under two separate licenses, the MIT license and the +# University of Illinois/NCSA Open Source License. Both these licenses can be +# found in the LICENSE file. + +# Wrapper script that runs emsdk.py + +# First look for python bundled in Emsdk +if [ -z "$EMSDK_PYTHON" ]; then + PYTHON3="$(dirname "$0")/python/3.9.2-1_64bit/bin/python3" + if [ -f "$PYTHON3" ]; then + EMSDK_PYTHON="$PYTHON3" + + # When using our bundled python we never want the users + # PYTHONHOME or PYTHONPATH + # https://github.com/emscripten-core/emsdk/issues/598 + unset PYTHONHOME + unset PYTHONPATH + fi +fi + +# If bundled python is not found, look for `python3` in PATH. This is especially important on macOS (See: +# https://github.com/emscripten-core/emsdk/pull/273) +if [ -z "$EMSDK_PYTHON" ]; then + if PYTHON3="$(command -v python3 2>/dev/null)"; then + EMSDK_PYTHON=$PYTHON3 + fi +fi + +# Finally fall back to just looking for `python` in PATH +if [ -z "$EMSDK_PYTHON" ]; then + EMSDK_PYTHON=python +fi + +exec "$EMSDK_PYTHON" "$0.py" "$@" diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk.bat b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk.bat new file mode 100644 index 0000000..d0c599d --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk.bat @@ -0,0 +1,38 @@ +@echo off + +:: Find python from an explicit location relative to the Emscripten SDK. + +setlocal + +:: When using our bundled python we never want the users +:: PYTHONHOME or PYTHONPATH +:: https://github.com/emscripten-core/emsdk/issues/598 +if exist "%~dp0python\3.9.2-1_64bit\python.exe" ( + set EMSDK_PY="%~dp0python\3.9.2-1_64bit\python.exe" + set PYTHONHOME= + set PYTHONPATH= + goto end +) + +if exist "%~dp0python\3.9.2-nuget_64bit\python.exe" ( + set EMSDK_PY="%~dp0python\3.9.2-nuget_64bit\python.exe" + set PYTHONHOME= + set PYTHONPATH= + goto end +) + +:: As a last resort, access from PATH. +set EMSDK_PY=python + +:end +call %EMSDK_PY% "%~dp0\emsdk.py" %* + +endlocal + +:: python is not able to set environment variables to the parent calling +:: process, so therefore have it craft a .bat file, which we invoke after +:: finishing python execution, to set up the environment variables +if exist "%~dp0\emsdk_set_env.bat" ( + call "%~dp0\emsdk_set_env.bat" > nul + del /F /Q "%~dp0\emsdk_set_env.bat" +) diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk.ps1 b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk.ps1 new file mode 100644 index 0000000..e9e6008 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk.ps1 @@ -0,0 +1,35 @@ +$ScriptDirectory = Split-Path -parent $PSCommandPath + +$PythonLocations = $( + "python\3.9.2-1_64bit\python.exe", + "python\3.9.2-nuget_64bit\python.exe" +) + +# Find python from an explicit location relative to the Emscripten SDK. +foreach ($Location in $PythonLocations) { + $FullLocation = Join-Path $ScriptDirectory $Location + if (Test-Path $FullLocation) { + $EMSDK_PY = $FullLocation + break + } +} + +# As a last resort, access from PATH. +if (-Not $EMSDK_PY) { + $EMSDK_PY = "python" +} + +# Tell EMSDK to create environment variable setter as a .ps1 file +$env:EMSDK_POWERSHELL = 1 + +& $EMSDK_PY "$ScriptDirectory/emsdk.py" $args + +# python is not able to set environment variables to the parent calling process, so +# therefore have it craft a .ps1 file, which we invoke after finishing python execution, +# to set up the environment variables +if (Test-Path $ScriptDirectory/emsdk_set_env.ps1) { + & $ScriptDirectory/emsdk_set_env.ps1 + Remove-Item $ScriptDirectory/emsdk_set_env.ps1 +} + +Remove-Item Env:\EMSDK_POWERSHELL diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk.py b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk.py new file mode 100755 index 0000000..f01ebf5 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk.py @@ -0,0 +1,3088 @@ +#!/usr/bin/env python +# Copyright 2019 The Emscripten Authors. All rights reserved. +# Emscripten is available under two separate licenses, the MIT license and the +# University of Illinois/NCSA Open Source License. Both these licenses can be +# found in the LICENSE file. + +from __future__ import print_function + +import copy +from collections import OrderedDict +import errno +import json +import multiprocessing +import os +import os.path +import platform +import re +import shutil +import stat +import subprocess +import sys +import sysconfig +import zipfile +if os.name == 'nt': + try: + import winreg + except ImportError: + # old python 2 name + import _winreg as winreg + import ctypes.wintypes + +if sys.version_info >= (3,): + from urllib.parse import urljoin + from urllib.request import urlopen + import functools +else: + from urlparse import urljoin + from urllib2 import urlopen + + +emsdk_packages_url = 'https://storage.googleapis.com/webassembly/emscripten-releases-builds/deps/' + +emscripten_releases_repo = 'https://chromium.googlesource.com/emscripten-releases' + +emscripten_releases_download_url_template = "https://storage.googleapis.com/webassembly/emscripten-releases-builds/%s/%s/wasm-binaries%s.%s" + +# This was previously `master.zip` but we are transitioning to `main` and +# `HEAD.zip` works for both cases. In future we could switch this to +# `main.zip` perhaps. +emsdk_zip_download_url = 'https://github.com/emscripten-core/emsdk/archive/HEAD.zip' + +download_dir = 'downloads/' + +extra_release_tag = None + +# Enable this to do very verbose printing about the different steps that are +# being run. Useful for debugging. +VERBOSE = int(os.getenv('EMSDK_VERBOSE', '0')) +QUIET = int(os.getenv('EMSDK_QUIET', '0')) +TTY_OUTPUT = not os.getenv('EMSDK_NOTTY', not sys.stdout.isatty()) + + +def info(msg): + if not QUIET: + print(msg, file=sys.stderr) + + +def errlog(msg): + print(msg, file=sys.stderr) + + +def exit_with_error(msg): + errlog('error: %s' % msg) + sys.exit(1) + + +WINDOWS = False +MINGW = False +MSYS = False +MACOS = False +LINUX = False + +if 'EMSDK_OS' in os.environ: + EMSDK_OS = os.environ['EMSDK_OS'] + if EMSDK_OS == 'windows': + WINDOWS = True + elif EMSDK_OS == 'linux': + LINUX = True + elif EMSDK_OS == 'macos': + MACOS = True + else: + assert False, 'EMSDK_OS must be one of: windows, linux, macos' +else: + if os.name == 'nt' or ('windows' in os.getenv('SYSTEMROOT', '').lower()) or ('windows' in os.getenv('COMSPEC', '').lower()): + WINDOWS = True + + if os.getenv('MSYSTEM'): + MSYS = True + # Some functions like os.path.normpath() exhibit different behavior between + # different versions of Python, so we need to distinguish between the MinGW + # and MSYS versions of Python + if sysconfig.get_platform() == 'mingw': + MINGW = True + if os.getenv('MSYSTEM') != 'MSYS' and os.getenv('MSYSTEM') != 'MINGW64': + # https://stackoverflow.com/questions/37460073/msys-vs-mingw-internal-environment-variables + errlog('Warning: MSYSTEM environment variable is present, and is set to "' + os.getenv('MSYSTEM') + '". This shell has not been tested with emsdk and may not work.') + + if platform.mac_ver()[0] != '': + MACOS = True + + if not MACOS and (platform.system() == 'Linux'): + LINUX = True + +UNIX = (MACOS or LINUX) + + +# Pick which shell of 4 shells to use +POWERSHELL = bool(os.getenv('EMSDK_POWERSHELL')) +CSH = bool(os.getenv('EMSDK_CSH')) +CMD = bool(os.getenv('EMSDK_CMD')) +BASH = bool(os.getenv('EMSDK_BASH')) +FISH = bool(os.getenv('EMSDK_FISH')) + +if WINDOWS and BASH: + MSYS = True + +if not CSH and not POWERSHELL and not BASH and not CMD and not FISH: + # Fall back to default of `cmd` on windows and `bash` otherwise + if WINDOWS and not MSYS: + CMD = True + else: + BASH = True + +if WINDOWS: + ENVPATH_SEPARATOR = ';' +else: + ENVPATH_SEPARATOR = ':' + +# platform.machine() may return AMD64 on windows, so standardize the case. +machine = os.getenv('EMSDK_ARCH', platform.machine().lower()) +if machine.startswith('x64') or machine.startswith('amd64') or machine.startswith('x86_64'): + ARCH = 'x86_64' +elif machine.endswith('86'): + ARCH = 'x86' +elif machine.startswith('aarch64') or machine.lower().startswith('arm64'): + if WINDOWS: + errlog('No support for Windows on Arm, fallback to x64') + ARCH = 'x86_64' + else: + ARCH = 'arm64' +elif machine.startswith('arm'): + ARCH = 'arm' +else: + exit_with_error('unknown machine architecture: ' + machine) + + +# Don't saturate all cores to not steal the whole system, but be aggressive. +CPU_CORES = int(os.getenv('EMSDK_NUM_CORES', max(multiprocessing.cpu_count() - 1, 1))) + +CMAKE_BUILD_TYPE_OVERRIDE = None + +# If true, perform a --shallow clone of git. +GIT_CLONE_SHALLOW = False + +# If true, LLVM backend is built with tests enabled, and Binaryen is built with +# Visual Studio static analyzer enabled. +BUILD_FOR_TESTING = False + +# If 'auto', assertions are decided by the build type +# (Release&MinSizeRel=disabled, Debug&RelWithDebInfo=enabled) +# Other valid values are 'ON' and 'OFF' +ENABLE_LLVM_ASSERTIONS = 'auto' + +# If true, keeps the downloaded archive files. +KEEP_DOWNLOADS = bool(os.getenv('EMSDK_KEEP_DOWNLOADS')) + + +def os_name(): + if WINDOWS: + return 'win' + elif LINUX: + return 'linux' + elif MACOS: + return 'mac' + else: + raise Exception('unknown OS') + + +def debug_print(msg): + if VERBOSE: + errlog(msg) + + +def to_unix_path(p): + return p.replace('\\', '/') + + +EMSDK_PATH = to_unix_path(os.path.dirname(os.path.realpath(__file__))) + +EMSDK_SET_ENV = "" +if POWERSHELL: + EMSDK_SET_ENV = os.path.join(EMSDK_PATH, 'emsdk_set_env.ps1') +else: + EMSDK_SET_ENV = os.path.join(EMSDK_PATH, 'emsdk_set_env.bat') + + +# Parses https://github.com/emscripten-core/emscripten/tree/d6aced8 to a pair (https://github.com/emscripten-core/emscripten, d6aced8) +def parse_github_url_and_refspec(url): + if not url: + return ('', '') + + if url.endswith(('/tree/', '/tree', '/commit/', '/commit')): + raise Exception('Malformed git URL and refspec ' + url + '!') + + if '/tree/' in url: + if url.endswith('/'): + raise Exception('Malformed git URL and refspec ' + url + '!') + return url.split('/tree/') + elif '/commit/' in url: + if url.endswith('/'): + raise Exception('Malformed git URL and refspec ' + url + '!') + return url.split('/commit/') + else: + return (url, 'main') # Assume the default branch is main in the absence of a refspec + + +ARCHIVE_SUFFIXES = ('zip', '.tar', '.gz', '.xz', '.tbz2', '.bz2') + + +# Finds the given executable 'program' in PATH. Operates like the Unix tool 'which'. +def which(program): + def is_exe(fpath): + return os.path.isfile(fpath) and (WINDOWS or os.access(fpath, os.X_OK)) + + fpath, fname = os.path.split(program) + if fpath: + if is_exe(program): + return program + else: + for path in os.environ["PATH"].split(os.pathsep): + path = path.strip('"') + exe_file = os.path.join(path, program) + if is_exe(exe_file): + return exe_file + + if WINDOWS and '.' not in fname: + if is_exe(exe_file + '.exe'): + return exe_file + '.exe' + if is_exe(exe_file + '.cmd'): + return exe_file + '.cmd' + if is_exe(exe_file + '.bat'): + return exe_file + '.bat' + + return None + + +def vswhere(version): + try: + program_files = os.getenv('ProgramFiles(x86)') + if not program_files: + program_files = os.environ['ProgramFiles'] + vswhere_path = os.path.join(program_files, 'Microsoft Visual Studio', 'Installer', 'vswhere.exe') + # Source: https://learn.microsoft.com/en-us/visualstudio/install/workload-component-id-vs-build-tools?view=vs-2022 + tools_arch = 'ARM64' if ARCH == 'arm64' else 'x86.x64' + # The "-products *" allows detection of Build Tools, the "-prerelease" allows detection of Preview version + # of Visual Studio and Build Tools. + output = json.loads(subprocess.check_output([vswhere_path, '-latest', '-products', '*', '-prerelease', '-version', '[%s.0,%s.0)' % (version, version + 1), '-requires', 'Microsoft.VisualStudio.Component.VC.Tools.' + tools_arch, '-property', 'installationPath', '-format', 'json'])) + return str(output[0]['installationPath']) + except Exception: + return '' + + +def vs_filewhere(installation_path, platform, file): + try: + vcvarsall = os.path.join(installation_path, 'VC\\Auxiliary\\Build\\vcvarsall.bat') + env = subprocess.check_output('cmd /c "%s" %s & where %s' % (vcvarsall, platform, file)) + paths = [path[:-len(file)] for path in env.split('\r\n') if path.endswith(file)] + return paths[0] + except Exception: + return '' + + +CMAKE_GENERATOR = 'Unix Makefiles' +if WINDOWS: + # Detect which CMake generator to use when building on Windows + if '--mingw' in sys.argv: + CMAKE_GENERATOR = 'MinGW Makefiles' + elif '--vs2022' in sys.argv: + CMAKE_GENERATOR = 'Visual Studio 17' + elif '--vs2019' in sys.argv: + CMAKE_GENERATOR = 'Visual Studio 16' + elif len(vswhere(17)) > 0: + CMAKE_GENERATOR = 'Visual Studio 17' + elif len(vswhere(16)) > 0: + CMAKE_GENERATOR = 'Visual Studio 16' + elif which('mingw32-make') is not None and which('g++') is not None: + CMAKE_GENERATOR = 'MinGW Makefiles' + else: + # No detected generator + CMAKE_GENERATOR = '' + + +sys.argv = [a for a in sys.argv if a not in ('--mingw', '--vs2019', '--vs2022')] + + +# Computes a suitable path prefix to use when building with a given generator. +def cmake_generator_prefix(): + if CMAKE_GENERATOR == 'Visual Studio 17': + return '_vs2022' + if CMAKE_GENERATOR == 'Visual Studio 16': + return '_vs2019' + elif CMAKE_GENERATOR == 'MinGW Makefiles': + return '_mingw' + # Unix Makefiles do not specify a path prefix for backwards path compatibility + return '' + + +# Removes a directory tree even if it was readonly, and doesn't throw exception +# on failure. +def remove_tree(d): + debug_print('remove_tree(' + str(d) + ')') + if not os.path.exists(d): + return + try: + def remove_readonly_and_try_again(func, path, exc_info): + if not (os.stat(path).st_mode & stat.S_IWRITE): + os.chmod(path, stat.S_IWRITE) + func(path) + else: + raise + shutil.rmtree(d, onerror=remove_readonly_and_try_again) + except Exception as e: + debug_print('remove_tree threw an exception, ignoring: ' + str(e)) + + +def win_set_environment_variable_direct(key, value, system=True): + folder = None + try: + if system: + # Read globally from ALL USERS section. + folder = winreg.OpenKeyEx(winreg.HKEY_LOCAL_MACHINE, 'SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment', 0, winreg.KEY_ALL_ACCESS) + else: + # Register locally from CURRENT USER section. + folder = winreg.OpenKeyEx(winreg.HKEY_CURRENT_USER, 'Environment', 0, winreg.KEY_ALL_ACCESS) + winreg.SetValueEx(folder, key, 0, winreg.REG_EXPAND_SZ, value) + debug_print('Set key=' + key + ' with value ' + value + ' in registry.') + return True + except Exception as e: + # 'Access is denied.' + if e.args[3] == 5: + exit_with_error('failed to set the environment variable \'' + key + '\'! Setting environment variables permanently requires administrator access. Please rerun this command with administrative privileges. This can be done for example by holding down the Ctrl and Shift keys while opening a command prompt in start menu.') + errlog('Failed to write environment variable ' + key + ':') + errlog(str(e)) + return False + finally: + if folder is not None: + folder.Close() + + +def win_get_environment_variable(key, system=True, user=True, fallback=True): + if (not system and not user and fallback): + # if no --system or --permanent flag is provided use shell's value + return os.environ[key] + try: + folder = None + try: + if system: + # Read globally from ALL USERS section. + folder = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, 'SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment') + else: + # Register locally from CURRENT USER section. + folder = winreg.OpenKey(winreg.HKEY_CURRENT_USER, 'Environment') + value = str(winreg.QueryValueEx(folder, key)[0]) + except Exception: + # If reading registry fails for some reason - read via os.environ. This has the drawback + # that expansion items such as %PROGRAMFILES% will have been expanded, so + # need to be precise not to set these back to system registry, or + # expansion items would be lost. + if fallback: + return os.environ[key] + return None + finally: + if folder is not None: + folder.Close() + + except Exception as e: + # this catch is if both the registry key threw an exception and the key is not in os.environ + if e.args[0] != 2: + # 'The system cannot find the file specified.' + errlog('Failed to read environment variable ' + key + ':') + errlog(str(e)) + return None + return value + + +def win_set_environment_variable(key, value, system, user): + debug_print('set ' + str(key) + '=' + str(value) + ', in system=' + str(system)) + previous_value = win_get_environment_variable(key, system=system, user=user) + if previous_value == value: + debug_print(' no need to set, since same value already exists.') + # No need to elevate UAC for nothing to set the same value, skip. + return False + + if not value: + try: + if system: + cmd = ['REG', 'DELETE', 'SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment', '/V', key, '/f'] + else: + cmd = ['REG', 'DELETE', 'HKCU\\Environment', '/V', key, '/f'] + debug_print(str(cmd)) + value = subprocess.call(cmd, stdout=subprocess.PIPE) + except Exception: + return False + return True + + try: + if win_set_environment_variable_direct(key, value, system): + return True + # Escape % signs so that we don't expand references to environment variables. + value = value.replace('%', '^%') + if len(value) >= 1024: + exit_with_error('the new environment variable ' + key + ' is more than 1024 characters long! A value this long cannot be set via command line: please add the environment variable specified above to system environment manually via Control Panel.') + cmd = ['SETX', key, value] + debug_print(str(cmd)) + retcode = subprocess.call(cmd, stdout=subprocess.PIPE) + if retcode != 0: + errlog('ERROR! Failed to set environment variable ' + key + '=' + value + '. You may need to set it manually.') + else: + return True + except Exception as e: + errlog('ERROR! Failed to set environment variable ' + key + '=' + value + ':') + errlog(str(e)) + errlog('You may need to set it manually.') + + return False + + +def win_set_environment_variables(env_vars_to_add, system, user): + if not env_vars_to_add: + return + + changed = False + + for key, value in env_vars_to_add: + if win_set_environment_variable(key, value, system, user): + if not changed: + changed = True + print('Setting global environment variables:') + + print(key + ' = ' + value) + + if not changed: + print('Global environment variables up to date') + return + + # if changes were made then we need to notify other processes + try: + HWND_BROADCAST = ctypes.wintypes.HWND(0xFFFF) # win32con.HWND_BROADCAST == 65535 + WM_SETTINGCHANGE = 0x001A # win32con.WM_SETTINGCHANGE == 26 + SMTO_BLOCK = 0x0001 # win32con.SMTO_BLOCK == 1 + ctypes.windll.user32.SendMessageTimeoutA( + HWND_BROADCAST, # hWnd: notify everyone + WM_SETTINGCHANGE, # Msg: registry changed + 0, # wParam: Must be 0 when setting changed is sent by users + 'Environment', # lParam: Specifically environment variables changed + SMTO_BLOCK, # fuFlags: Wait for message to be sent or timeout + 100) # uTimeout: 100ms + except Exception as e: + errlog('SendMessageTimeout failed with error: ' + str(e)) + + +def win_delete_environment_variable(key, system=True, user=True): + debug_print('win_delete_environment_variable(key=' + key + ', system=' + str(system) + ')') + return win_set_environment_variable(key, None, system, user) + + +# Returns the absolute pathname to the given path inside the Emscripten SDK. +def sdk_path(path): + if os.path.isabs(path): + return path + + return to_unix_path(os.path.join(EMSDK_PATH, path)) + + +# Removes a single file, suppressing exceptions on failure. +def rmfile(filename): + debug_print('rmfile(' + filename + ')') + if os.path.lexists(filename): + os.remove(filename) + + +# http://stackoverflow.com/questions/600268/mkdir-p-functionality-in-python +def mkdir_p(path): + debug_print('mkdir_p(' + path + ')') + try: + os.makedirs(path) + except OSError as exc: # Python >2.5 + if exc.errno != errno.EEXIST or not os.path.isdir(path): + raise + + +def is_nonempty_directory(path): + if not os.path.isdir(path): + return False + return len(os.listdir(path)) != 0 + + +def run(cmd, cwd=None, quiet=False): + debug_print('run(cmd=' + str(cmd) + ', cwd=' + str(cwd) + ')') + process = subprocess.Popen(cmd, cwd=cwd, env=os.environ.copy()) + process.communicate() + if process.returncode != 0 and not quiet: + errlog(str(cmd) + ' failed with error code ' + str(process.returncode) + '!') + return process.returncode + + +# http://pythonicprose.blogspot.fi/2009/10/python-extract-targz-archive.html +def untargz(source_filename, dest_dir): + print("Unpacking '" + source_filename + "' to '" + dest_dir + "'") + mkdir_p(dest_dir) + returncode = run(['tar', '-xvf' if VERBOSE else '-xf', sdk_path(source_filename), '--strip', '1'], cwd=dest_dir) + # tfile = tarfile.open(source_filename, 'r:gz') + # tfile.extractall(dest_dir) + return returncode == 0 + + +# On Windows, it is not possible to reference path names that are longer than +# ~260 characters, unless the path is referenced via a "\\?\" prefix. +# See https://msdn.microsoft.com/en-us/library/aa365247.aspx#maxpath and http://stackoverflow.com/questions/3555527/python-win32-filename-length-workaround +# In that mode, forward slashes cannot be used as delimiters. +def fix_potentially_long_windows_pathname(pathname): + if not WINDOWS or MSYS: + return pathname + # Test if emsdk calls fix_potentially_long_windows_pathname() with long + # relative paths (which is problematic) + if not os.path.isabs(pathname) and len(pathname) > 200: + errlog('Warning: Seeing a relative path "' + pathname + '" which is dangerously long for being referenced as a short Windows path name. Refactor emsdk to be able to handle this!') + if pathname.startswith('\\\\?\\'): + return pathname + pathname = os.path.normpath(pathname.replace('/', '\\')) + if MINGW: + # MinGW versions of Python return normalized paths with backslashes + # converted to forward slashes, so we must use forward slashes in our + # prefix + return '//?/' + pathname + return '\\\\?\\' + pathname + + +# On windows, rename/move will fail if the destination exists, and there is no +# race-free way to do it. This method removes the destination if it exists, so +# the move always works +def move_with_overwrite(src, dest): + if os.path.exists(dest): + os.remove(dest) + os.rename(src, dest) + + +# http://stackoverflow.com/questions/12886768/simple-way-to-unzip-file-in-python-on-all-oses +def unzip(source_filename, dest_dir): + print("Unpacking '" + source_filename + "' to '" + dest_dir + "'") + mkdir_p(dest_dir) + common_subdir = None + try: + with zipfile.ZipFile(source_filename) as zf: + # Implement '--strip 1' behavior to unzipping by testing if all the files + # in the zip reside in a common subdirectory, and if so, we move the + # output tree at the end of uncompression step. + for member in zf.infolist(): + words = member.filename.split('/') + if len(words) > 1: # If there is a directory component? + if common_subdir is None: + common_subdir = words[0] + elif common_subdir != words[0]: + common_subdir = None + break + else: + common_subdir = None + break + + unzip_to_dir = dest_dir + if common_subdir: + unzip_to_dir = os.path.join(os.path.dirname(dest_dir), 'unzip_temp') + + # Now do the actual decompress. + for member in zf.infolist(): + zf.extract(member, fix_potentially_long_windows_pathname(unzip_to_dir)) + dst_filename = os.path.join(unzip_to_dir, member.filename) + + # See: https://stackoverflow.com/questions/42326428/zipfile-in-python-file-permission + unix_attributes = member.external_attr >> 16 + if unix_attributes: + os.chmod(dst_filename, unix_attributes) + + # Move the extracted file to its final location without the base + # directory name, if we are stripping that away. + if common_subdir: + if not member.filename.startswith(common_subdir): + raise Exception('Unexpected filename "' + member.filename + '"!') + stripped_filename = '.' + member.filename[len(common_subdir):] + final_dst_filename = os.path.join(dest_dir, stripped_filename) + # Check if a directory + if stripped_filename.endswith('/'): + d = fix_potentially_long_windows_pathname(final_dst_filename) + if not os.path.isdir(d): + os.mkdir(d) + else: + parent_dir = os.path.dirname(fix_potentially_long_windows_pathname(final_dst_filename)) + if parent_dir and not os.path.exists(parent_dir): + os.makedirs(parent_dir) + move_with_overwrite(fix_potentially_long_windows_pathname(dst_filename), fix_potentially_long_windows_pathname(final_dst_filename)) + + if common_subdir: + remove_tree(unzip_to_dir) + except zipfile.BadZipfile as e: + errlog("Unzipping file '" + source_filename + "' failed due to reason: " + str(e) + "! Removing the corrupted zip file.") + rmfile(source_filename) + return False + except Exception as e: + errlog("Unzipping file '" + source_filename + "' failed due to reason: " + str(e)) + return False + + return True + + +# This function interprets whether the given string looks like a path to a +# directory instead of a file, without looking at the actual filesystem. +# 'a/b/c' points to directory, so does 'a/b/c/', but 'a/b/c.x' is parsed as a +# filename +def path_points_to_directory(path): + if path == '.': + return True + last_slash = max(path.rfind('/'), path.rfind('\\')) + last_dot = path.rfind('.') + no_suffix = last_dot < last_slash or last_dot == -1 + if no_suffix: + return True + suffix = path[last_dot:] + # Very simple logic for the only file suffixes used by emsdk downloader. Other + # suffixes, like 'clang-3.2' are treated as dirs. + if suffix in ('.exe', '.zip', '.txt'): + return False + else: + return True + + +def get_content_length(download): + try: + meta = download.info() + if hasattr(meta, "getheaders") and hasattr(meta.getheaders, "Content-Length"): + return int(meta.getheaders("Content-Length")[0]) + elif hasattr(download, "getheader") and download.getheader('Content-Length'): + return int(download.getheader('Content-Length')) + elif hasattr(meta, "getheader") and meta.getheader('Content-Length'): + return int(meta.getheader('Content-Length')) + except Exception: + pass + + return 0 + + +def get_download_target(url, dstpath, filename_prefix=''): + file_name = filename_prefix + url.split('/')[-1] + if path_points_to_directory(dstpath): + file_name = os.path.join(dstpath, file_name) + else: + file_name = dstpath + + # Treat all relative destination paths as relative to the SDK root directory, + # not the current working directory. + file_name = sdk_path(file_name) + + return file_name + + +def download_with_curl(url, file_name): + print("Downloading: %s from %s" % (file_name, url)) + if not which('curl'): + exit_with_error('curl not found in PATH') + # -#: show progress bar + # -L: Follow HTTP 3XX redirections + # -f: Fail on HTTP errors + subprocess.check_call(['curl', '-#', '-f', '-L', '-o', file_name, url]) + + +def download_with_urllib(url, file_name): + u = urlopen(url) + file_size = get_content_length(u) + if file_size > 0: + print("Downloading: %s from %s, %s Bytes" % (file_name, url, file_size)) + else: + print("Downloading: %s from %s" % (file_name, url)) + + file_size_dl = 0 + # Draw a progress bar 80 chars wide (in non-TTY mode) + progress_max = 80 - 4 + progress_shown = 0 + block_sz = 256 * 1024 + if not TTY_OUTPUT: + print(' [', end='') + + with open(file_name, 'wb') as f: + while True: + buffer = u.read(block_sz) + if not buffer: + break + + file_size_dl += len(buffer) + f.write(buffer) + if file_size: + percent = file_size_dl * 100.0 / file_size + if TTY_OUTPUT: + status = r" %10d [%3.02f%%]" % (file_size_dl, percent) + print(status, end='\r') + else: + while progress_shown < progress_max * percent / 100: + print('-', end='') + sys.stdout.flush() + progress_shown += 1 + + if not TTY_OUTPUT: + print(']') + sys.stdout.flush() + + debug_print('finished downloading (%d bytes)' % file_size_dl) + + +# On success, returns the filename on the disk pointing to the destination file that was produced +# On failure, returns None. +def download_file(url, dstpath, download_even_if_exists=False, + filename_prefix='', silent=False): + debug_print('download_file(url=' + url + ', dstpath=' + dstpath + ')') + file_name = get_download_target(url, dstpath, filename_prefix) + + if os.path.exists(file_name) and not download_even_if_exists: + print("File '" + file_name + "' already downloaded, skipping.") + return file_name + + mkdir_p(os.path.dirname(file_name)) + + try: + # Use curl on macOS to avoid CERTIFICATE_VERIFY_FAILED issue with + # python's urllib: + # https://stackoverflow.com/questions/40684543/how-to-make-python-use-ca-certificates-from-mac-os-truststore + # Unlike on linux or windows, curl is always available on macOS systems. + if MACOS: + download_with_curl(url, file_name) + else: + download_with_urllib(url, file_name) + except Exception as e: + errlog("Error: Downloading URL '" + url + "': " + str(e)) + return None + except KeyboardInterrupt: + rmfile(file_name) + raise + + return file_name + + +def run_get_output(cmd, cwd=None): + debug_print('run_get_output(cmd=' + str(cmd) + ', cwd=' + str(cwd) + ')') + process = subprocess.Popen(cmd, cwd=cwd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE, env=os.environ.copy(), universal_newlines=True) + stdout, stderr = process.communicate() + return (process.returncode, stdout, stderr) + + +cached_git_executable = None + + +# must_succeed: If false, the search is performed silently without printing out +# errors if not found. Empty string is returned if git is not found. +# If true, the search is required to succeed, and the execution +# will terminate with sys.exit(1) if not found. +def GIT(must_succeed=True): + global cached_git_executable + if cached_git_executable is not None: + return cached_git_executable + # The order in the following is important, and specifies the preferred order + # of using the git tools. Primarily use git from emsdk if installed. If not, + # use system git. + gits = ['git/1.9.4/bin/git.exe', which('git')] + for git in gits: + try: + ret, stdout, stderr = run_get_output([git, '--version']) + if ret == 0: + cached_git_executable = git + return git + except Exception: + pass + if must_succeed: + if WINDOWS: + msg = "git executable was not found. Please install it by typing 'emsdk install git-1.9.4', or alternatively by installing it manually from http://git-scm.com/downloads . If you install git manually, remember to add it to PATH" + elif MACOS: + msg = "git executable was not found. Please install git for this operation! This can be done from http://git-scm.com/ , or by installing XCode and then the XCode Command Line Tools (see http://stackoverflow.com/questions/9329243/xcode-4-4-command-line-tools )" + elif LINUX: + msg = "git executable was not found. Please install git for this operation! This can be probably be done using your package manager, see http://git-scm.com/book/en/Getting-Started-Installing-Git" + else: + msg = "git executable was not found. Please install git for this operation!" + exit_with_error(msg) + # Not found + return '' + + +def git_repo_version(repo_path): + returncode, stdout, stderr = run_get_output([GIT(), 'log', '-n', '1', '--pretty="%aD %H"'], cwd=repo_path) + if returncode == 0: + return stdout.strip() + else: + return "" + + +def git_recent_commits(repo_path, n=20): + returncode, stdout, stderr = run_get_output([GIT(), 'log', '-n', str(n), '--pretty="%H"'], cwd=repo_path) + if returncode == 0: + return stdout.strip().replace('\r', '').replace('"', '').split('\n') + else: + return [] + + +def git_clone(url, dstpath, branch): + debug_print('git_clone(url=' + url + ', dstpath=' + dstpath + ')') + if os.path.isdir(os.path.join(dstpath, '.git')): + debug_print("Repository '" + url + "' already cloned to directory '" + dstpath + "', skipping.") + return True + mkdir_p(dstpath) + git_clone_args = ['--recurse-submodules', '--branch', branch] # Do not check out a branch (installer will issue a checkout command right after) + if GIT_CLONE_SHALLOW: + git_clone_args += ['--depth', '1'] + print('Cloning from ' + url + '...') + return run([GIT(), 'clone'] + git_clone_args + [url, dstpath]) == 0 + + +def git_pull(repo_path, branch_or_tag): + debug_print('git_pull(repo_path=' + repo_path + ', branch/tag=' + branch_or_tag + ')') + ret = run([GIT(), 'fetch', '--quiet', 'origin'], repo_path) + if ret != 0: + return False + try: + print("Fetching latest changes to the branch/tag '" + branch_or_tag + "' for '" + repo_path + "'...") + ret = run([GIT(), 'fetch', '--quiet', 'origin'], repo_path) + if ret != 0: + return False + # this line assumes that the user has not gone and manually messed with the + # repo and added new remotes to ambiguate the checkout. + ret = run([GIT(), 'checkout', '--recurse-submodules', '--quiet', branch_or_tag], repo_path) + if ret != 0: + return False + # Test if branch_or_tag is a branch, or if it is a tag that needs to be updated + target_is_tag = run([GIT(), 'symbolic-ref', '-q', 'HEAD'], repo_path, quiet=True) + if not target_is_tag: + # update branch to latest (not needed for tags) + # this line assumes that the user has not gone and made local changes to the repo + ret = run([GIT(), 'merge', '--ff-only', 'origin/' + branch_or_tag], repo_path) + if ret != 0: + return False + run([GIT(), 'submodule', 'update', '--init'], repo_path, quiet=True) + except Exception: + errlog('git operation failed!') + return False + print("Successfully updated and checked out branch/tag '" + branch_or_tag + "' on repository '" + repo_path + "'") + print("Current repository version: " + git_repo_version(repo_path)) + return True + + +def git_clone_checkout_and_pull(url, dstpath, branch): + debug_print('git_clone_checkout_and_pull(url=' + url + ', dstpath=' + dstpath + ', branch=' + branch + ')') + + # If the repository has already been cloned before, issue a pull operation. Otherwise do a new clone. + if os.path.isdir(os.path.join(dstpath, '.git')): + return git_pull(dstpath, branch) + else: + return git_clone(url, dstpath, branch) + + +# Each tool can have its own build type, or it can be overridden on the command +# line. +def decide_cmake_build_type(tool): + if CMAKE_BUILD_TYPE_OVERRIDE: + return CMAKE_BUILD_TYPE_OVERRIDE + else: + return tool.cmake_build_type + + +# The root directory of the build. +def llvm_build_dir(tool): + generator_suffix = cmake_generator_prefix() + bitness_suffix = '_32' if tool.bitness == 32 else '_64' + + if hasattr(tool, 'git_branch'): + build_dir = 'build_' + tool.git_branch.replace(os.sep, '-') + generator_suffix + bitness_suffix + else: + build_dir = 'build_' + tool.version + generator_suffix + bitness_suffix + return build_dir + + +def exe_suffix(filename): + if WINDOWS and not filename.endswith('.exe'): + filename += '.exe' + return filename + + +# The directory where the binaries are produced. (relative to the installation +# root directory of the tool) +def llvm_build_bin_dir(tool): + build_dir = llvm_build_dir(tool) + if WINDOWS and 'Visual Studio' in CMAKE_GENERATOR: + old_llvm_bin_dir = os.path.join(build_dir, 'bin', decide_cmake_build_type(tool)) + + new_llvm_bin_dir = None + default_cmake_build_type = decide_cmake_build_type(tool) + cmake_build_types = [default_cmake_build_type, 'Release', 'RelWithDebInfo', 'MinSizeRel', 'Debug'] + for build_type in cmake_build_types: + d = os.path.join(build_dir, build_type, 'bin') + if os.path.isfile(os.path.join(tool.installation_path(), d, exe_suffix('clang'))): + new_llvm_bin_dir = d + break + + if new_llvm_bin_dir and os.path.exists(os.path.join(tool.installation_path(), new_llvm_bin_dir)): + return new_llvm_bin_dir + elif os.path.exists(os.path.join(tool.installation_path(), old_llvm_bin_dir)): + return old_llvm_bin_dir + return os.path.join(build_dir, default_cmake_build_type, 'bin') + else: + return os.path.join(build_dir, 'bin') + + +def build_env(generator): + build_env = os.environ.copy() + + # To work around a build issue with older Mac OS X builds, add -stdlib=libc++ to all builds. + # See https://groups.google.com/forum/#!topic/emscripten-discuss/5Or6QIzkqf0 + if MACOS: + build_env['CXXFLAGS'] = ((build_env['CXXFLAGS'] + ' ') if hasattr(build_env, 'CXXFLAGS') else '') + '-stdlib=libc++' + if WINDOWS: + # MSBuild.exe has an internal mechanism to avoid N^2 oversubscription of threads in its two-tier build model, see + # https://devblogs.microsoft.com/cppblog/improved-parallelism-in-msbuild/ + build_env['UseMultiToolTask'] = 'true' + build_env['EnforceProcessCountAcrossBuilds'] = 'true' + return build_env + + +def make_build(build_root, build_type): + debug_print('make_build(build_root=' + build_root + ', build_type=' + build_type + ')') + if CPU_CORES > 1: + print('Performing a parallel build with ' + str(CPU_CORES) + ' cores.') + else: + print('Performing a singlethreaded build.') + + make = ['cmake', '--build', '.', '--config', build_type] + if 'Visual Studio' in CMAKE_GENERATOR: + # Visual Studio historically has had a two-tier problem in its build system design. A single MSBuild.exe instance only governs + # the build of a single project (.exe/.lib/.dll) in a solution. Passing the -j parameter above will only enable multiple MSBuild.exe + # instances to be spawned to build multiple projects in parallel, but each MSBuild.exe is still singlethreaded. + # To enable each MSBuild.exe instance to also compile several .cpp files in parallel inside a single project, pass the extra + # MSBuild.exe specific "Multi-ToolTask" (MTT) setting /p:CL_MPCount. This enables each MSBuild.exe to parallelize builds wide. + # This requires CMake 3.12 or newer. + make += ['-j', str(CPU_CORES), '--', '/p:CL_MPCount=' + str(CPU_CORES)] + else: + # Pass -j to native make, CMake might not support -j option. + make += ['--', '-j', str(CPU_CORES)] + + # Build + try: + print('Running build: ' + str(make)) + ret = subprocess.check_call(make, cwd=build_root, env=build_env(CMAKE_GENERATOR)) + if ret != 0: + errlog('Build failed with exit code ' + ret + '!') + errlog('Working directory: ' + build_root) + return False + except Exception as e: + errlog('Build failed due to exception!') + errlog('Working directory: ' + build_root) + errlog(str(e)) + return False + + return True + + +def cmake_configure(generator, build_root, src_root, build_type, extra_cmake_args=[]): + debug_print('cmake_configure(generator=' + str(generator) + ', build_root=' + str(build_root) + ', src_root=' + str(src_root) + ', build_type=' + str(build_type) + ', extra_cmake_args=' + str(extra_cmake_args) + ')') + # Configure + if not os.path.isdir(build_root): + # Create build output directory if it doesn't yet exist. + os.mkdir(build_root) + try: + if generator: + generator = ['-G', generator] + else: + generator = [] + + cmdline = ['cmake'] + generator + ['-DCMAKE_BUILD_TYPE=' + build_type, '-DPYTHON_EXECUTABLE=' + sys.executable] + # Target macOS 10.14 at minimum, to support widest range of Mac devices + # from "Early 2008" and newer: + # https://en.wikipedia.org/wiki/MacBook_(2006-2012)#Supported_operating_systems + cmdline += ['-DCMAKE_OSX_DEPLOYMENT_TARGET=10.14'] + cmdline += extra_cmake_args + [src_root] + + print('Running CMake: ' + str(cmdline)) + + # Specify the deployment target also as an env. var, since some Xcode versions + # read this instead of the CMake field. + os.environ['MACOSX_DEPLOYMENT_TARGET'] = '10.14' + + def quote_parens(x): + if ' ' in x: + return '"' + x.replace('"', '\\"') + '"' + else: + return x + + # Create a file 'recmake.bat/sh' in the build root that user can call to + # manually recmake the build tree with the previous build params + open(os.path.join(build_root, 'recmake.' + ('bat' if WINDOWS else 'sh')), 'w').write(' '.join(map(quote_parens, cmdline))) + ret = subprocess.check_call(cmdline, cwd=build_root, env=build_env(CMAKE_GENERATOR)) + if ret != 0: + errlog('CMake invocation failed with exit code ' + ret + '!') + errlog('Working directory: ' + build_root) + return False + except OSError as e: + if e.errno == errno.ENOENT: + errlog(str(e)) + errlog('Could not run CMake, perhaps it has not been installed?') + if WINDOWS: + errlog('Installing this package requires CMake. Get it from http://www.cmake.org/') + elif LINUX: + errlog('Installing this package requires CMake. Get it via your system package manager (e.g. sudo apt-get install cmake), or from http://www.cmake.org/') + elif MACOS: + errlog('Installing this package requires CMake. Get it via a macOS package manager (Homebrew: "brew install cmake", or MacPorts: "sudo port install cmake"), or from http://www.cmake.org/') + return False + raise + except Exception as e: + errlog('CMake invocation failed due to exception!') + errlog('Working directory: ' + build_root) + errlog(str(e)) + return False + + return True + + +def xcode_sdk_version(): + try: + output = subprocess.check_output(['xcrun', '--show-sdk-version']) + if sys.version_info >= (3,): + output = output.decode('utf8') + return output.strip().split('.') + except Exception: + return subprocess.checkplatform.mac_ver()[0].split('.') + + +def cmake_target_platform(tool): + # Source: https://cmake.org/cmake/help/latest/generator/Visual%20Studio%2017%202022.html#platform-selection + if hasattr(tool, 'arch'): + if tool.arch == 'arm64': + return 'ARM64' + elif tool.arch == 'x86_64': + return 'x64' + elif tool.arch == 'x86': + return 'Win32' + if ARCH == 'arm64': + return 'ARM64' + else: + return 'x64' if tool.bitness == 64 else 'Win32' + + +def cmake_host_platform(): + # Source: https://cmake.org/cmake/help/latest/generator/Visual%20Studio%2017%202022.html#toolset-selection + arch_to_cmake_host_platform = { + 'arm64': 'ARM64', + 'arm': 'ARM', + 'x86_64': 'x64', + 'x86': 'x86' + } + return arch_to_cmake_host_platform[ARCH] + + +def get_generator_and_config_args(tool): + args = [] + cmake_generator = CMAKE_GENERATOR + if 'Visual Studio 16' in CMAKE_GENERATOR or 'Visual Studio 17' in CMAKE_GENERATOR: # VS2019 or VS2022 + # With Visual Studio 16 2019, CMake changed the way they specify target arch. + # Instead of appending it into the CMake generator line, it is specified + # with a -A arch parameter. + args += ['-A', cmake_target_platform(tool)] + args += ['-Thost=' + cmake_host_platform()] + elif 'Visual Studio' in CMAKE_GENERATOR and tool.bitness == 64: + cmake_generator += ' Win64' + args += ['-Thost=x64'] + return (cmake_generator, args) + + +def build_llvm(tool): + debug_print('build_llvm(' + str(tool) + ')') + llvm_root = tool.installation_path() + llvm_src_root = os.path.join(llvm_root, 'src') + success = git_clone_checkout_and_pull(tool.download_url(), llvm_src_root, tool.git_branch) + if not success: + return False + + build_dir = llvm_build_dir(tool) + build_root = os.path.join(llvm_root, build_dir) + + build_type = decide_cmake_build_type(tool) + + # Configure + tests_arg = 'ON' if BUILD_FOR_TESTING else 'OFF' + + enable_assertions = ENABLE_LLVM_ASSERTIONS.lower() == 'on' or (ENABLE_LLVM_ASSERTIONS == 'auto' and build_type.lower() != 'release' and build_type.lower() != 'minsizerel') + + if ARCH == 'x86' or ARCH == 'x86_64': + targets_to_build = 'WebAssembly;X86' + elif ARCH == 'arm': + targets_to_build = 'WebAssembly;ARM' + elif ARCH == 'arm64': + targets_to_build = 'WebAssembly;AArch64' + else: + targets_to_build = 'WebAssembly' + cmake_generator, args = get_generator_and_config_args(tool) + args += ['-DLLVM_TARGETS_TO_BUILD=' + targets_to_build, + '-DLLVM_INCLUDE_EXAMPLES=OFF', + '-DLLVM_INCLUDE_TESTS=' + tests_arg, + '-DCLANG_INCLUDE_TESTS=' + tests_arg, + '-DLLVM_ENABLE_ASSERTIONS=' + ('ON' if enable_assertions else 'OFF'), + # Disable optional LLVM dependencies, these can cause unwanted .so dependencies + # that prevent distributing the generated compiler for end users. + '-DLLVM_ENABLE_LIBXML2=OFF', '-DLLVM_ENABLE_TERMINFO=OFF', '-DLLDB_ENABLE_LIBEDIT=OFF', + '-DLLVM_ENABLE_LIBEDIT=OFF', '-DLLVM_ENABLE_LIBPFM=OFF'] + # LLVM build system bug: compiler-rt does not build on Windows. It insists on performing a CMake install step that writes to C:\Program Files. Attempting + # to reroute that to build_root directory then fails on an error + # file INSTALL cannot find + # "C:/code/emsdk/llvm/git/build_master_vs2017_64/$(Configuration)/lib/clang/10.0.0/lib/windows/clang_rt.ubsan_standalone-x86_64.lib". + # (there instead of $(Configuration), one would need ${CMAKE_BUILD_TYPE} ?) + # It looks like compiler-rt is not compatible to build on Windows? + args += ['-DLLVM_ENABLE_PROJECTS=clang;lld'] + # To enable widest possible chance of success for building, let the code + # compile through with older toolchains that are about to be deprecated by + # upstream LLVM. + args += ['-DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON'] + + if os.getenv('LLVM_CMAKE_ARGS'): + extra_args = os.environ['LLVM_CMAKE_ARGS'].split(',') + print('Passing the following extra arguments to LLVM CMake configuration: ' + str(extra_args)) + args += extra_args + + cmakelists_dir = os.path.join(llvm_src_root, 'llvm') + success = cmake_configure(cmake_generator, build_root, cmakelists_dir, build_type, args) + if not success: + return False + + # Make + success = make_build(build_root, build_type) + return success + + +def build_ninja(tool): + debug_print('build_ninja(' + str(tool) + ')') + root = os.path.normpath(tool.installation_path()) + src_root = os.path.join(root, 'src') + success = git_clone_checkout_and_pull(tool.download_url(), src_root, tool.git_branch) + if not success: + return False + + build_dir = llvm_build_dir(tool) + build_root = os.path.join(root, build_dir) + + build_type = decide_cmake_build_type(tool) + + # Configure + cmake_generator, args = get_generator_and_config_args(tool) + + cmakelists_dir = os.path.join(src_root) + success = cmake_configure(cmake_generator, build_root, cmakelists_dir, build_type, args) + if not success: + return False + + # Make + success = make_build(build_root, build_type) + + if success: + bin_dir = os.path.join(root, 'bin') + mkdir_p(bin_dir) + exe_paths = [os.path.join(build_root, 'Release', 'ninja'), os.path.join(build_root, 'ninja')] + for e in exe_paths: + for s in ['.exe', '']: + ninja = e + s + if os.path.isfile(ninja): + dst = os.path.join(bin_dir, 'ninja' + s) + shutil.copyfile(ninja, dst) + os.chmod(dst, os.stat(dst).st_mode | stat.S_IEXEC) + + return success + + +def build_ccache(tool): + debug_print('build_ccache(' + str(tool) + ')') + root = os.path.normpath(tool.installation_path()) + src_root = os.path.join(root, 'src') + success = git_clone_checkout_and_pull(tool.download_url(), src_root, tool.git_branch) + if not success: + return False + + build_dir = llvm_build_dir(tool) + build_root = os.path.join(root, build_dir) + + build_type = decide_cmake_build_type(tool) + + # Configure + cmake_generator, args = get_generator_and_config_args(tool) + args += ['-DZSTD_FROM_INTERNET=ON'] + + cmakelists_dir = os.path.join(src_root) + success = cmake_configure(cmake_generator, build_root, cmakelists_dir, build_type, args) + if not success: + return False + + # Make + success = make_build(build_root, build_type) + + if success: + bin_dir = os.path.join(root, 'bin') + mkdir_p(bin_dir) + exe_paths = [os.path.join(build_root, 'Release', 'ccache'), os.path.join(build_root, 'ccache')] + for e in exe_paths: + for s in ['.exe', '']: + ccache = e + s + if os.path.isfile(ccache): + dst = os.path.join(bin_dir, 'ccache' + s) + shutil.copyfile(ccache, dst) + os.chmod(dst, os.stat(dst).st_mode | stat.S_IEXEC) + + cache_dir = os.path.join(root, 'cache') + open(os.path.join(root, 'emcc_ccache.conf'), 'w').write('''# Set maximum cache size to 10 GB: +max_size = 10G +cache_dir = %s +''' % cache_dir) + mkdir_p(cache_dir) + + return success + + +# Finds the newest installed version of a given tool +def find_latest_installed_tool(name): + for t in reversed(tools): + if t.id == name and t.is_installed(): + return t + + +# npm install in Emscripten root directory +def emscripten_npm_install(tool, directory): + node_tool = find_latest_installed_tool('node') + if not node_tool: + npm_fallback = which('npm') + if not npm_fallback: + errlog('Failed to find npm command!') + errlog('Running "npm ci" in installed Emscripten root directory ' + tool.installation_path() + ' is required!') + errlog('Please install node.js first!') + return False + node_path = os.path.dirname(npm_fallback) + else: + node_path = os.path.join(node_tool.installation_path(), 'bin') + + npm = os.path.join(node_path, 'npm' + ('.cmd' if WINDOWS else '')) + env = os.environ.copy() + env["PATH"] = node_path + os.pathsep + env["PATH"] + print('Running post-install step: npm ci ...') + try: + subprocess.check_output( + [npm, 'ci', '--production'], + cwd=directory, stderr=subprocess.STDOUT, env=env, + universal_newlines=True) + except subprocess.CalledProcessError as e: + errlog('Error running %s:\n%s' % (e.cmd, e.output)) + return False + + print('Done running: npm ci') + + if os.path.isfile(os.path.join(directory, 'bootstrap.py')): + try: + subprocess.check_output([sys.executable, os.path.join(directory, 'bootstrap.py')], + cwd=directory, stderr=subprocess.STDOUT, env=env, + universal_newlines=True) + except subprocess.CalledProcessError as e: + errlog('Error running %s:\n%s' % (e.cmd, e.output)) + return False + + print('Done running: Emscripten bootstrap') + return True + + +# Binaryen build scripts: +def binaryen_build_root(tool): + build_root = tool.installation_path().strip() + if build_root.endswith('/') or build_root.endswith('\\'): + build_root = build_root[:-1] + generator_prefix = cmake_generator_prefix() + build_root = build_root + generator_prefix + '_' + str(tool.bitness) + 'bit_binaryen' + return build_root + + +def uninstall_binaryen(tool): + debug_print('uninstall_binaryen(' + str(tool) + ')') + build_root = binaryen_build_root(tool) + print("Deleting path '" + build_root + "'") + remove_tree(build_root) + + +def is_binaryen_installed(tool): + build_root = binaryen_build_root(tool) + return os.path.exists(build_root) + + +def build_binaryen_tool(tool): + debug_print('build_binaryen_tool(' + str(tool) + ')') + src_root = tool.installation_path() + build_root = binaryen_build_root(tool) + build_type = decide_cmake_build_type(tool) + + # Configure + cmake_generator, args = get_generator_and_config_args(tool) + args += ['-DENABLE_WERROR=0'] # -Werror is not useful for end users + args += ['-DBUILD_TESTS=0'] # We don't want to build or run tests + + if 'Visual Studio' in CMAKE_GENERATOR: + if BUILD_FOR_TESTING: + args += ['-DRUN_STATIC_ANALYZER=1'] + + success = cmake_configure(cmake_generator, build_root, src_root, build_type, args) + if not success: + return False + + # Make + success = make_build(build_root, build_type) + + # Deploy scripts needed from source repository to build directory + remove_tree(os.path.join(build_root, 'scripts')) + shutil.copytree(os.path.join(src_root, 'scripts'), os.path.join(build_root, 'scripts')) + remove_tree(os.path.join(build_root, 'src', 'js')) + shutil.copytree(os.path.join(src_root, 'src', 'js'), os.path.join(build_root, 'src', 'js')) + + return success + + +def download_and_extract(archive, dest_dir, filename_prefix='', clobber=True): + debug_print('download_and_extract(archive=' + archive + ', dest_dir=' + dest_dir + ')') + + url = urljoin(emsdk_packages_url, archive) + + def try_download(url, silent=False): + return download_file(url, download_dir, not KEEP_DOWNLOADS, + filename_prefix, silent=silent) + + # Special hack for the wasm-binaries we transitioned from `.bzip2` to + # `.xz`, but we can't tell from the version/url which one to use, so + # try one and then fall back to the other. + success = False + if 'wasm-binaries' in archive and os.path.splitext(archive)[1] == '.xz': + success = try_download(url, silent=True) + if not success: + alt_url = url.replace('.tar.xz', '.tbz2') + success = try_download(alt_url, silent=True) + if success: + url = alt_url + + if not success: + success = try_download(url) + + if not success: + return False + + # Remove the old directory, since we have some SDKs that install into the + # same directory. If we didn't do this contents of the previous install + # could remain. + if clobber: + remove_tree(dest_dir) + + download_target = get_download_target(url, download_dir, filename_prefix) + if archive.endswith('.zip'): + return unzip(download_target, dest_dir) + else: + return untargz(download_target, dest_dir) + + +def to_native_path(p): + if WINDOWS and not MSYS: + return to_unix_path(p).replace('/', '\\') + else: + return to_unix_path(p) + + +# Finds and returns a list of the directories that need to be added to PATH for +# the given set of tools. +def get_required_path(active_tools): + path_add = [to_native_path(EMSDK_PATH)] + for tool in active_tools: + if hasattr(tool, 'activated_path'): + path = to_native_path(tool.expand_vars(tool.activated_path)) + # If the tool has an activated_path_skip attribute then we don't add + # the tools path to the users path if a program by that name is found + # in the existing PATH. This allows us to, for example, add our version + # node to the users PATH if, and only if, they don't already have a + # another version of node in their PATH. + if hasattr(tool, 'activated_path_skip'): + current_path = which(tool.activated_path_skip) + # We found an executable by this name in the current PATH, but we + # ignore our own version for this purpose. + if current_path and os.path.dirname(current_path) != path: + continue + path_add.append(path) + return path_add + + +# Returns the absolute path to the file '.emscripten' for the current user on +# this system. +EM_CONFIG_PATH = os.path.join(EMSDK_PATH, ".emscripten") +EM_CONFIG_DICT = {} + + +def parse_key_value(line): + if not line: + return ('', '') + eq = line.find('=') + if eq != -1: + key = line[0:eq].strip() + value = line[eq + 1:].strip() + return (key, value) + else: + return (key, '') + + +def load_em_config(): + EM_CONFIG_DICT.clear() + lines = [] + try: + lines = open(EM_CONFIG_PATH, "r").read().split('\n') + except Exception: + pass + for line in lines: + try: + key, value = parse_key_value(line) + if value != '': + EM_CONFIG_DICT[key] = value + except Exception: + pass + + +def find_emscripten_root(active_tools): + """Find the currently active emscripten root. + + If there is more than one tool that defines EMSCRIPTEN_ROOT (this + should not happen under normal circumstances), assume the last one takes + precedence. + """ + root = None + for tool in active_tools: + config = tool.activated_config() + if 'EMSCRIPTEN_ROOT' in config: + root = config['EMSCRIPTEN_ROOT'] + return root + + +# returns a tuple (string,string) of config files paths that need to used +# to activate emsdk env depending on $SHELL, defaults to bash. +def get_emsdk_shell_env_configs(): + default_emsdk_env = sdk_path('emsdk_env.sh') + default_shell_config_file = '$HOME/.bash_profile' + shell = os.getenv('SHELL', '') + if 'zsh' in shell: + return (default_emsdk_env, '$HOME/.zprofile') + elif 'csh' in shell: + return (sdk_path('emsdk_env.csh'), '$HOME/.cshrc') + elif 'fish' in shell: + return (sdk_path('emsdk_env.fish'), '$HOME/.config/fish/config.fish') + else: + return (default_emsdk_env, default_shell_config_file) + + +def generate_em_config(active_tools, permanently_activate, system): + cfg = 'import os\n' + cfg += "emsdk_path = os.path.dirname(os.getenv('EM_CONFIG')).replace('\\\\', '/')\n" + + # Different tools may provide the same activated configs; the latest to be + # activated is the relevant one. + activated_config = OrderedDict() + for tool in active_tools: + for name, value in tool.activated_config().items(): + activated_config[name] = value + + if 'NODE_JS' not in activated_config: + node_fallback = which('nodejs') + if not node_fallback: + node_fallback = 'node' + activated_config['NODE_JS'] = node_fallback + + for name, value in activated_config.items(): + cfg += name + " = '" + value + "'\n" + + emroot = find_emscripten_root(active_tools) + if emroot: + version = parse_emscripten_version(emroot) + # Older emscripten versions of emscripten depend on certain config + # keys that are no longer used. + # See https://github.com/emscripten-core/emscripten/pull/9469 + if version < [1, 38, 46]: + cfg += 'COMPILER_ENGINE = NODE_JS\n' + # See https://github.com/emscripten-core/emscripten/pull/9542 + if version < [1, 38, 48]: + cfg += 'JS_ENGINES = [NODE_JS]\n' + + cfg = cfg.replace("'" + EMSDK_PATH, "emsdk_path + '") + + if os.path.exists(EM_CONFIG_PATH): + backup_path = EM_CONFIG_PATH + ".old" + move_with_overwrite(EM_CONFIG_PATH, backup_path) + + with open(EM_CONFIG_PATH, "w") as text_file: + text_file.write(cfg) + + # Clear old emscripten content. + rmfile(os.path.join(EMSDK_PATH, ".emscripten_sanity")) + + path_add = get_required_path(active_tools) + + # Give some recommended next step, depending on the platform + if WINDOWS: + if not permanently_activate and not system: + print('Next steps:') + print('- Consider running `emsdk activate` with --permanent or --system') + print(' to have emsdk settings available on startup.') + else: + print('Next steps:') + print('- To conveniently access emsdk tools from the command line,') + print(' consider adding the following directories to your PATH:') + for p in path_add: + print(' ' + p) + print('- This can be done for the current shell by running:') + emsdk_env, shell_config_file = get_emsdk_shell_env_configs() + print(' source "%s"' % emsdk_env) + print('- Configure emsdk in your shell startup scripts by running:') + print(' echo \'source "%s"\' >> %s' % (emsdk_env, shell_config_file)) + + +def find_msbuild_dir(): + program_files = os.getenv('ProgramFiles', 'C:/Program Files') + program_files_x86 = os.getenv('ProgramFiles(x86)', 'C:/Program Files (x86)') + MSBUILDX86_DIR = os.path.join(program_files_x86, "MSBuild/Microsoft.Cpp/v4.0/Platforms") + MSBUILD_DIR = os.path.join(program_files, "MSBuild/Microsoft.Cpp/v4.0/Platforms") + if os.path.exists(MSBUILDX86_DIR): + return MSBUILDX86_DIR + if os.path.exists(MSBUILD_DIR): + return MSBUILD_DIR + # No MSbuild installed. + return '' + + +class Tool(object): + def __init__(self, data): + # Convert the dictionary representation of the tool in 'data' to members of + # this class for convenience. + for key, value in data.items(): + # Python2 compat, convert unicode to str + if sys.version_info < (3,) and isinstance(value, unicode): # noqa + value = value.encode('Latin-1') + setattr(self, key, value) + + # Cache the name ID of this Tool (these are read very often) + self.name = self.id + if self.version: + self.name += '-' + self.version + if hasattr(self, 'bitness'): + self.name += '-' + str(self.bitness) + 'bit' + + def __str__(self): + return self.name + + def __repr__(self): + return self.name + + def expand_vars(self, str): + if WINDOWS and '%MSBuildPlatformsDir%' in str: + str = str.replace('%MSBuildPlatformsDir%', find_msbuild_dir()) + if '%cmake_build_type_on_win%' in str: + str = str.replace('%cmake_build_type_on_win%', (decide_cmake_build_type(self) + '/') if WINDOWS else '') + if '%installation_dir%' in str: + str = str.replace('%installation_dir%', sdk_path(self.installation_dir())) + if '%generator_prefix%' in str: + str = str.replace('%generator_prefix%', cmake_generator_prefix()) + str = str.replace('%.exe%', '.exe' if WINDOWS else '') + if '%llvm_build_bin_dir%' in str: + str = str.replace('%llvm_build_bin_dir%', llvm_build_bin_dir(self)) + + return str + + # Return true if this tool requires building from source, and false if this is a precompiled tool. + def needs_compilation(self): + if hasattr(self, 'cmake_build_type'): + return True + + if hasattr(self, 'uses'): + for tool_name in self.uses: + tool = find_tool(tool_name) + if not tool: + debug_print('Tool ' + str(self) + ' depends on ' + tool_name + ' which does not exist!') + continue + if tool.needs_compilation(): + return True + + return False + + # Specifies the target path where this tool will be installed to. This could + # either be a directory or a filename (e.g. in case of node.js) + def installation_path(self): + if hasattr(self, 'install_path'): + pth = self.expand_vars(self.install_path) + return sdk_path(pth) + p = self.version + if hasattr(self, 'bitness') and (not hasattr(self, 'append_bitness') or self.append_bitness): + p += '_' + str(self.bitness) + 'bit' + return sdk_path(os.path.join(self.id, p)) + + # Specifies the target directory this tool will be installed to. + def installation_dir(self): + dir = self.installation_path() + if path_points_to_directory(dir): + return dir + else: + return os.path.dirname(dir) + + # Returns the configuration item that needs to be added to .emscripten to make + # this Tool active for the current user. + def activated_config(self): + if not hasattr(self, 'activated_cfg'): + return {} + config = OrderedDict() + expanded = to_unix_path(self.expand_vars(self.activated_cfg)) + for specific_cfg in expanded.split(';'): + name, value = specific_cfg.split('=') + config[name] = value.strip("'") + return config + + def activated_environment(self): + if hasattr(self, 'activated_env'): + return self.expand_vars(self.activated_env).split(';') + else: + return [] + + def compatible_with_this_arch(self): + if hasattr(self, 'arch'): + if self.arch != ARCH: + return False + return True + + def compatible_with_this_os(self): + if hasattr(self, 'os'): + if self.os == 'all': + return True + if self.compatible_with_this_arch() and ((WINDOWS and 'win' in self.os) or (LINUX and ('linux' in self.os or 'unix' in self.os)) or (MACOS and ('macos' in self.os or 'unix' in self.os))): + return True + else: + return False + else: + if not hasattr(self, 'macos_url') and not hasattr(self, 'windows_url') and not hasattr(self, 'unix_url') and not hasattr(self, 'linux_url'): + return True + + if MACOS and hasattr(self, 'macos_url') and self.compatible_with_this_arch(): + return True + + if LINUX and hasattr(self, 'linux_url') and self.compatible_with_this_arch(): + return True + + if WINDOWS and hasattr(self, 'windows_url') and self.compatible_with_this_arch(): + return True + + if UNIX and hasattr(self, 'unix_url'): + return True + + return hasattr(self, 'url') + + # the "version file" is a file inside install dirs that indicates the + # version installed there. this helps disambiguate when there is more than + # one version that may be installed to the same directory (which is used + # to avoid accumulating builds over time in some cases, with new builds + # overwriting the old) + def get_version_file_path(self): + return os.path.join(self.installation_path(), '.emsdk_version') + + def is_installed_version(self): + version_file_path = self.get_version_file_path() + if os.path.isfile(version_file_path): + with open(version_file_path, 'r') as version_file: + return version_file.read().strip() == self.name + return False + + def update_installed_version(self): + with open(self.get_version_file_path(), 'w') as version_file: + version_file.write(self.name + '\n') + return None + + def is_installed(self, skip_version_check=False): + # If this tool/sdk depends on other tools, require that all dependencies are + # installed for this tool to count as being installed. + if hasattr(self, 'uses'): + for tool_name in self.uses: + tool = find_tool(tool_name) + if tool is None: + errlog("Manifest error: No tool by name '" + tool_name + "' found! This may indicate an internal SDK error!") + return False + if not tool.is_installed(): + return False + + if self.download_url() is None: + # This tool does not contain downloadable elements, so it is installed by default. + return True + + content_exists = is_nonempty_directory(self.installation_path()) + + # For e.g. fastcomp clang from git repo, the activated PATH is the + # directory where the compiler is built to, and installation_path is + # the directory where the source tree exists. To distinguish between + # multiple packages sharing the same source (clang-main-32bit, + # clang-main-64bit, clang-main-32bit and clang-main-64bit each + # share the same git repo), require that in addition to the installation + # directory, each item in the activated PATH must exist. + if hasattr(self, 'activated_path') and not os.path.exists(self.expand_vars(self.activated_path)): + content_exists = False + + if hasattr(self, 'custom_is_installed_script'): + if self.custom_is_installed_script == 'is_binaryen_installed': + return is_binaryen_installed(self) + else: + raise Exception('Unknown custom_is_installed_script directive "' + self.custom_is_installed_script + '"!') + + return content_exists and (skip_version_check or self.is_installed_version()) + + def is_active(self): + if not self.is_installed(): + return False + + # All dependencies of this tool must be active as well. + deps = self.dependencies() + for tool in deps: + if not tool.is_active(): + return False + + activated_cfg = self.activated_config() + if not activated_cfg: + return len(deps) > 0 + + for key, value in activated_cfg.items(): + if key not in EM_CONFIG_DICT: + debug_print(str(self) + ' is not active, because key="' + key + '" does not exist in .emscripten') + return False + + # all paths are stored dynamically relative to the emsdk root, so + # normalize those first. + config_value = EM_CONFIG_DICT[key].replace("emsdk_path + '", "'" + EMSDK_PATH) + config_value = config_value.strip("'") + if config_value != value: + debug_print(str(self) + ' is not active, because key="' + key + '" has value "' + config_value + '" but should have value "' + value + '"') + return False + return True + + # Returns true if the system environment variables requires by this tool are currently active. + def is_env_active(self): + envs = self.activated_environment() + for env in envs: + key, value = parse_key_value(env) + if key not in os.environ or to_unix_path(os.environ[key]) != to_unix_path(value): + debug_print(str(self) + ' is not active, because environment variable key="' + key + '" has value "' + str(os.getenv(key)) + '" but should have value "' + value + '"') + return False + + if hasattr(self, 'activated_path'): + path = to_unix_path(self.expand_vars(self.activated_path)) + for p in path: + path_items = os.environ['PATH'].replace('\\', '/').split(ENVPATH_SEPARATOR) + if not normalized_contains(path_items, p): + debug_print(str(self) + ' is not active, because environment variable PATH item "' + p + '" is not present (PATH=' + os.environ['PATH'] + ')') + return False + return True + + # If this tool can be installed on this system, this function returns True. + # Otherwise, this function returns a string that describes the reason why this + # tool is not available. + def can_be_installed(self): + if hasattr(self, 'bitness'): + if self.bitness == 64 and not is_os_64bit(): + return "this tool is only provided for 64-bit OSes" + return True + + def download_url(self): + if WINDOWS and hasattr(self, 'windows_url'): + return self.windows_url + elif MACOS and hasattr(self, 'macos_url'): + return self.macos_url + elif LINUX and hasattr(self, 'linux_url'): + return self.linux_url + elif UNIX and hasattr(self, 'unix_url'): + return self.unix_url + elif hasattr(self, 'url'): + return self.url + else: + return None + + def install(self): + """Returns True if the Tool was installed of False if was skipped due to + already being installed. + """ + if self.can_be_installed() is not True: + exit_with_error("The tool '" + str(self) + "' is not available due to the reason: " + self.can_be_installed()) + + if self.id == 'sdk': + return self.install_sdk() + else: + return self.install_tool() + + def install_sdk(self): + """Returns True if any SDK component was installed of False all componented + were already installed. + """ + print("Installing SDK '" + str(self) + "'..") + installed = False + + for tool_name in self.uses: + tool = find_tool(tool_name) + if tool is None: + exit_with_error("manifest error: No tool by name '" + tool_name + "' found! This may indicate an internal SDK error!") + installed |= tool.install() + + if not installed: + print("All SDK components already installed: '" + str(self) + "'.") + return False + + if getattr(self, 'custom_install_script', None) == 'emscripten_npm_install': + # upstream tools have hardcoded paths that are not stored in emsdk_manifest.json registry + install_path = 'upstream' + emscripten_dir = os.path.join(EMSDK_PATH, install_path, 'emscripten') + # Older versions of the sdk did not include the node_modules directory + # and require `npm ci` to be run post-install + if not os.path.exists(os.path.join(emscripten_dir, 'node_modules')): + if not emscripten_npm_install(self, emscripten_dir): + exit_with_error('post-install step failed: emscripten_npm_install') + + print("Done installing SDK '" + str(self) + "'.") + return True + + def install_tool(self): + """Returns True if the SDK was installed of False if was skipped due to + already being installed. + """ + # Avoid doing a redundant reinstall of the tool, if it has already been installed. + # However all tools that are sourced directly from git branches do need to be + # installed every time when requested, since the install step is then used to git + # pull the tool to a newer version. + if self.is_installed() and not hasattr(self, 'git_branch'): + print("Skipped installing " + self.name + ", already installed.") + return False + + print("Installing tool '" + str(self) + "'..") + url = self.download_url() + + if hasattr(self, 'custom_install_script') and self.custom_install_script == 'build_llvm': + success = build_llvm(self) + elif hasattr(self, 'custom_install_script') and self.custom_install_script == 'build_ninja': + success = build_ninja(self) + elif hasattr(self, 'custom_install_script') and self.custom_install_script == 'build_ccache': + success = build_ccache(self) + elif hasattr(self, 'git_branch'): + success = git_clone_checkout_and_pull(url, self.installation_path(), self.git_branch) + elif url.endswith(ARCHIVE_SUFFIXES): + success = download_and_extract(url, self.installation_path(), + filename_prefix=getattr(self, 'download_prefix', '')) + else: + assert False, 'unhandled url type: ' + url + + if not success: + exit_with_error("installation failed!") + + if hasattr(self, 'custom_install_script'): + if self.custom_install_script == 'emscripten_npm_install': + success = emscripten_npm_install(self, self.installation_path()) + elif self.custom_install_script in ('build_llvm', 'build_ninja', 'build_ccache'): + # 'build_llvm' is a special one that does the download on its + # own, others do the download manually. + pass + elif self.custom_install_script == 'build_binaryen': + success = build_binaryen_tool(self) + else: + raise Exception('Unknown custom_install_script command "' + self.custom_install_script + '"!') + + if not success: + exit_with_error("installation failed!") + + # Install an emscripten-version.txt file if told to, and if there is one. + # (If this is not an actual release, but some other build, then we do not + # write anything.) + if hasattr(self, 'emscripten_releases_hash'): + emscripten_version_file_path = os.path.join(to_native_path(self.expand_vars(self.activated_path)), 'emscripten-version.txt') + version = get_emscripten_release_version(self.emscripten_releases_hash) + if version: + with open(emscripten_version_file_path, 'w') as f: + f.write('"%s"\n' % version) + + print("Done installing tool '" + str(self) + "'.") + + # Sanity check that the installation succeeded, and if so, remove unneeded + # leftover installation files. + if not self.is_installed(skip_version_check=True): + exit_with_error("installation of '" + str(self) + "' failed, but no error was detected. Either something went wrong with the installation, or this may indicate an internal emsdk error.") + + self.cleanup_temp_install_files() + self.update_installed_version() + return True + + def cleanup_temp_install_files(self): + if KEEP_DOWNLOADS: + return + url = self.download_url() + if url.endswith(ARCHIVE_SUFFIXES): + download_target = get_download_target(url, download_dir, getattr(self, 'download_prefix', '')) + debug_print("Deleting temporary download: " + download_target) + rmfile(download_target) + + def uninstall(self): + if not self.is_installed(): + print("Tool '" + str(self) + "' was not installed. No need to uninstall.") + return + print("Uninstalling tool '" + str(self) + "'..") + if hasattr(self, 'custom_uninstall_script'): + if self.custom_uninstall_script == 'uninstall_binaryen': + uninstall_binaryen(self) + else: + raise Exception('Unknown custom_uninstall_script directive "' + self.custom_uninstall_script + '"!') + print("Deleting path '" + self.installation_path() + "'") + remove_tree(self.installation_path()) + print("Done uninstalling '" + str(self) + "'.") + + def dependencies(self): + if not hasattr(self, 'uses'): + return [] + deps = [] + + for tool_name in self.uses: + tool = find_tool(tool_name) + if tool: + deps += [tool] + return deps + + def recursive_dependencies(self): + if not hasattr(self, 'uses'): + return [] + deps = [] + for tool_name in self.uses: + tool = find_tool(tool_name) + if tool: + deps += [tool] + deps += tool.recursive_dependencies() + return deps + + +# A global registry of all known Emscripten SDK tools available in the SDK manifest. +tools = [] +tools_map = {} + + +def add_tool(tool): + tool.is_sdk = False + tools.append(tool) + if find_tool(str(tool)): + raise Exception('Duplicate tool ' + str(tool) + '! Existing:\n{' + ', '.join("%s: %s" % item for item in vars(find_tool(str(tool))).items()) + '}, New:\n{' + ', '.join("%s: %s" % item for item in vars(tool).items()) + '}') + tools_map[str(tool)] = tool + + +# A global registry of all known SDK toolsets. +sdks = [] +sdks_map = {} + + +def add_sdk(sdk): + sdk.is_sdk = True + sdks.append(sdk) + if find_sdk(str(sdk)): + raise Exception('Duplicate sdk ' + str(sdk) + '! Existing:\n{' + ', '.join("%s: %s" % item for item in vars(find_sdk(str(sdk))).items()) + '}, New:\n{' + ', '.join("%s: %s" % item for item in vars(sdk).items()) + '}') + sdks_map[str(sdk)] = sdk + + +# N.B. In both tools and sdks list above, we take the convention that the newest +# items are at the back of the list (ascending chronological order) + +def find_tool(name): + return tools_map.get(name) + + +def find_sdk(name): + return sdks_map.get(name) + + +def is_os_64bit(): + return ARCH.endswith('64') + + +def find_latest_version(): + return resolve_sdk_aliases('latest') + + +def find_latest_hash(): + version = find_latest_version() + releases_info = load_releases_info() + return releases_info['releases'][version] + + +def resolve_sdk_aliases(name, verbose=False): + releases_info = load_releases_info() + while name in releases_info['aliases']: + if verbose: + print("Resolving SDK alias '%s' to '%s'" % (name, releases_info['aliases'][name])) + name = releases_info['aliases'][name] + return name + + +def find_latest_sdk(): + return 'sdk-releases-%s-64bit' % (find_latest_hash()) + + +def find_tot_sdk(): + debug_print('Fetching emscripten-releases repository...') + global extra_release_tag + extra_release_tag = get_emscripten_releases_tot() + return 'sdk-releases-%s-64bit' % (extra_release_tag) + + +def parse_emscripten_version(emscripten_root): + version_file = os.path.join(emscripten_root, 'emscripten-version.txt') + with open(version_file) as f: + version = f.read().strip() + version = version.strip('"').split('-')[0].split('.') + return [int(v) for v in version] + + +# Given a git hash in emscripten-releases, find the emscripten +# version for it. There may not be one if this is not the hash of +# a release, in which case we return None. +def get_emscripten_release_version(emscripten_releases_hash): + releases_info = load_releases_info() + for key, value in dict(releases_info['releases']).items(): + if value == emscripten_releases_hash: + return key.split('-')[0] + return None + + +# Get the tip-of-tree build identifier. +def get_emscripten_releases_tot(): + git_clone_checkout_and_pull(emscripten_releases_repo, sdk_path('releases'), 'main') + recent_releases = git_recent_commits(sdk_path('releases')) + # The recent releases are the latest hashes in the git repo. There + # may not be a build for the most recent ones yet; find the last + # that does. + arch = '' + if ARCH == 'arm64': + arch = '-arm64' + + def make_url(ext): + return emscripten_releases_download_url_template % ( + os_name(), + release, + arch, + ext, + ) + + for release in recent_releases: + make_url('tar.xz' if not WINDOWS else 'zip') + try: + urlopen(make_url('tar.xz' if not WINDOWS else 'zip')) + except Exception: + if not WINDOWS: + # Try the old `.tbz2` name + # TODO:remove this once tot builds are all using xz + try: + urlopen(make_url('tbz2')) + except Exception: + continue + else: + continue + return release + exit_with_error('failed to find build of any recent emsdk revision') + + +def get_release_hash(arg, releases_info): + return releases_info.get(arg, None) or releases_info.get('sdk-' + arg + '-64bit') + + +def version_key(ver): + return tuple(map(int, re.split('[._-]', ver)[:3])) + + +# A sort function that is compatible with both Python 2 and Python 3 using a +# custom comparison function. +def python_2_3_sorted(arr, cmp): + if sys.version_info >= (3,): + return sorted(arr, key=functools.cmp_to_key(cmp)) + else: + return sorted(arr, cmp=cmp) + + +def is_emsdk_sourced_from_github(): + return os.path.exists(os.path.join(EMSDK_PATH, '.git')) + + +def update_emsdk(): + if is_emsdk_sourced_from_github(): + errlog('You seem to have bootstrapped Emscripten SDK by cloning from GitHub. In this case, use "git pull" instead of "emsdk update" to update emsdk. (Not doing that automatically in case you have local changes)') + sys.exit(1) + if not download_and_extract(emsdk_zip_download_url, EMSDK_PATH, clobber=False): + sys.exit(1) + + +# Lists all legacy (pre-emscripten-releases) tagged versions directly in the Git +# repositories. These we can pull and compile from source. +def load_legacy_emscripten_tags(): + return open(sdk_path('legacy-emscripten-tags.txt'), 'r').read().split('\n') + + +def load_legacy_binaryen_tags(): + return open(sdk_path('legacy-binaryen-tags.txt'), 'r').read().split('\n') + + +def remove_prefix(s, prefix): + if s.startswith(prefix): + return s[len(prefix):] + else: + return s + + +def remove_suffix(s, suffix): + if s.endswith(suffix): + return s[:len(s) - len(suffix)] + else: + return s + + +# filename should be one of: 'llvm-precompiled-tags-32bit.txt', 'llvm-precompiled-tags-64bit.txt' +def load_file_index_list(filename): + items = open(sdk_path(filename)).read().splitlines() + items = [remove_suffix(remove_suffix(remove_prefix(x, 'emscripten-llvm-e'), '.tar.gz'), '.zip').strip() for x in items] + items = [x for x in items if 'latest' not in x and len(x) > 0] + + # Sort versions from oldest to newest (the default sort would be + # lexicographic, i.e. '1.37.1 < 1.37.10 < 1.37.2') + return sorted(items, key=version_key) + + +# Load the json info for emscripten-releases. +def load_releases_info(): + if not hasattr(load_releases_info, 'cached_info'): + try: + text = open(sdk_path('emscripten-releases-tags.json'), 'r').read() + load_releases_info.cached_info = json.loads(text) + except Exception as e: + print('Error parsing emscripten-releases-tags.json!') + exit_with_error(str(e)) + + return load_releases_info.cached_info + + +def get_installed_sdk_version(): + version_file = sdk_path(os.path.join('upstream', '.emsdk_version')) + if not os.path.exists(version_file): + return None + with open(version_file) as f: + version = f.read() + return version.split('-')[1] + + +# Get a list of tags for emscripten-releases. +def load_releases_tags(): + tags = [] + info = load_releases_info() + + for version, sha in sorted(info['releases'].items(), key=lambda x: version_key(x[0])): + tags.append(sha) + + if extra_release_tag: + tags.append(extra_release_tag) + + # Explicitly add the currently installed SDK version. This could be a custom + # version (installed explicitly) so it might not be part of the main list + # loaded above. + installed = get_installed_sdk_version() + if installed and installed not in tags: + tags.append(installed) + + return tags + + +def load_releases_versions(): + info = load_releases_info() + versions = list(info['releases'].keys()) + return versions + + +def is_string(s): + if sys.version_info[0] >= 3: + return isinstance(s, str) + return isinstance(s, basestring) # noqa + + +def load_sdk_manifest(): + try: + manifest = json.loads(open(sdk_path("emsdk_manifest.json"), "r").read()) + except Exception as e: + print('Error parsing emsdk_manifest.json!') + print(str(e)) + return + + emscripten_tags = load_legacy_emscripten_tags() + llvm_precompiled_tags_32bit = [] + llvm_precompiled_tags_64bit = load_file_index_list('llvm-tags-64bit.txt') + llvm_precompiled_tags = llvm_precompiled_tags_32bit + llvm_precompiled_tags_64bit + binaryen_tags = load_legacy_binaryen_tags() + releases_tags = load_releases_tags() + + def dependencies_exist(sdk): + for tool_name in sdk.uses: + tool = find_tool(tool_name) + if not tool: + debug_print('missing dependency: ' + tool_name) + return False + return True + + def cmp_version(ver, cmp_operand, reference): + if cmp_operand == '<=': + return version_key(ver) <= version_key(reference) + if cmp_operand == '<': + return version_key(ver) < version_key(reference) + if cmp_operand == '>=': + return version_key(ver) >= version_key(reference) + if cmp_operand == '>': + return version_key(ver) > version_key(reference) + if cmp_operand == '==': + return version_key(ver) == version_key(reference) + if cmp_operand == '!=': + return version_key(ver) != version_key(reference) + raise Exception('Invalid cmp_operand "' + cmp_operand + '"!') + + def passes_filters(param, ver, filters): + for v in filters: + if v[0] == param and not cmp_version(ver, v[1], v[2]): + return False + return True + + # A 'category parameter' is a %foo%-encoded identifier that specifies + # a class of tools instead of just one tool, e.g. %tag% + def expand_category_param(param, category_list, t, is_sdk): + for i, ver in enumerate(category_list): + if not ver.strip(): + continue + t2 = copy.copy(t) + found_param = False + for p, v in vars(t2).items(): + if is_string(v) and param in v: + t2.__dict__[p] = v.replace(param, ver) + found_param = True + if not found_param: + continue + t2.is_old = i < len(category_list) - 2 + if hasattr(t2, 'uses'): + t2.uses = [x.replace(param, ver) for x in t2.uses] + + # Filter out expanded tools by version requirements, such as ["tag", "<=", "1.37.22"] + if hasattr(t2, 'version_filter'): + passes = passes_filters(param, ver, t2.version_filter) + if not passes: + continue + + if is_sdk: + if dependencies_exist(t2): + if not find_sdk(t2.name): + add_sdk(t2) + else: + debug_print('SDK ' + str(t2) + ' already existed in manifest, not adding twice') + else: + if not find_tool(t2.name): + add_tool(t2) + else: + debug_print('Tool ' + str(t2) + ' already existed in manifest, not adding twice') + + for tool in manifest['tools']: + t = Tool(tool) + if t.compatible_with_this_os(): + if not hasattr(t, 'is_old'): + t.is_old = False + + # Expand the metapackages that refer to tags + if '%tag%' in t.version: + expand_category_param('%tag%', emscripten_tags, t, is_sdk=False) + elif '%precompiled_tag%' in t.version: + expand_category_param('%precompiled_tag%', llvm_precompiled_tags, t, is_sdk=False) + elif '%precompiled_tag32%' in t.version: + expand_category_param('%precompiled_tag32%', llvm_precompiled_tags_32bit, t, is_sdk=False) + elif '%precompiled_tag64%' in t.version: + expand_category_param('%precompiled_tag64%', llvm_precompiled_tags_64bit, t, is_sdk=False) + elif '%binaryen_tag%' in t.version: + expand_category_param('%binaryen_tag%', binaryen_tags, t, is_sdk=False) + elif '%releases-tag%' in t.version: + expand_category_param('%releases-tag%', releases_tags, t, is_sdk=False) + else: + add_tool(t) + + for sdk_str in manifest['sdks']: + sdk_str['id'] = 'sdk' + sdk = Tool(sdk_str) + if sdk.compatible_with_this_os(): + if not hasattr(sdk, 'is_old'): + sdk.is_old = False + + if '%tag%' in sdk.version: + expand_category_param('%tag%', emscripten_tags, sdk, is_sdk=True) + elif '%precompiled_tag%' in sdk.version: + expand_category_param('%precompiled_tag%', llvm_precompiled_tags, sdk, is_sdk=True) + elif '%precompiled_tag32%' in sdk.version: + expand_category_param('%precompiled_tag32%', llvm_precompiled_tags_32bit, sdk, is_sdk=True) + elif '%precompiled_tag64%' in sdk.version: + expand_category_param('%precompiled_tag64%', llvm_precompiled_tags_64bit, sdk, is_sdk=True) + elif '%releases-tag%' in sdk.version: + expand_category_param('%releases-tag%', releases_tags, sdk, is_sdk=True) + else: + add_sdk(sdk) + + +# Tests if the two given tools can be active at the same time. +# Currently only a simple check for name for same tool with different versions, +# possibly adds more logic in the future. +def can_simultaneously_activate(tool1, tool2): + return tool1.id != tool2.id + + +# Expands dependencies for each tool, and removes ones that don't exist. +def process_tool_list(tools_to_activate): + i = 0 + # Gather dependencies for each tool + while i < len(tools_to_activate): + tool = tools_to_activate[i] + deps = tool.recursive_dependencies() + tools_to_activate = tools_to_activate[:i] + deps + tools_to_activate[i:] + i += len(deps) + 1 + + for tool in tools_to_activate: + if not tool.is_installed(): + exit_with_error("error: tool is not installed and therefore cannot be activated: '%s'" % tool) + + # Remove conflicting tools + i = 0 + while i < len(tools_to_activate): + j = 0 + while j < i: + secondary_tool = tools_to_activate[j] + primary_tool = tools_to_activate[i] + if not can_simultaneously_activate(primary_tool, secondary_tool): + tools_to_activate.pop(j) + j -= 1 + i -= 1 + j += 1 + i += 1 + return tools_to_activate + + +def write_set_env_script(env_string): + assert CMD or POWERSHELL + open(EMSDK_SET_ENV, 'w').write(env_string) + + +# Reconfigure .emscripten to choose the currently activated toolset, set PATH +# and other environment variables. +# Returns the full list of deduced tools that are now active. +def set_active_tools(tools_to_activate, permanently_activate, system): + tools_to_activate = process_tool_list(tools_to_activate) + + if tools_to_activate: + tools = [x for x in tools_to_activate if not x.is_sdk] + print('Setting the following tools as active:\n ' + '\n '.join(map(lambda x: str(x), tools))) + print('') + + generate_em_config(tools_to_activate, permanently_activate, system) + + # Construct a .bat or .ps1 script that will be invoked to set env. vars and PATH + # We only do this on cmd or powershell since emsdk.bat/ps1 is able to modify the + # calling shell environment. On other shell `source emsdk_env.sh` is + # required. + if CMD or POWERSHELL: + # always set local environment variables since permanently activating will only set the registry settings and + # will not affect the current session + env_vars_to_add = get_env_vars_to_add(tools_to_activate, system, user=permanently_activate) + env_string = construct_env_with_vars(env_vars_to_add) + write_set_env_script(env_string) + + if WINDOWS and permanently_activate: + win_set_environment_variables(env_vars_to_add, system, user=permanently_activate) + + return tools_to_activate + + +def currently_active_sdk(): + for sdk in reversed(sdks): + if sdk.is_active(): + return sdk + return None + + +def currently_active_tools(): + active_tools = [] + for tool in tools: + if tool.is_active(): + active_tools += [tool] + return active_tools + + +# http://stackoverflow.com/questions/480214/how-do-you-remove-duplicates-from-a-list-in-python-whilst-preserving-order +def unique_items(seq): + seen = set() + seen_add = seen.add + return [x for x in seq if x not in seen and not seen_add(x)] + + +# Tests if a path is contained in the given list, but with separators normalized. +def normalized_contains(lst, elem): + elem = to_unix_path(elem) + for e in lst: + if elem == to_unix_path(e): + return True + return False + + +def to_msys_path(p): + p = to_unix_path(p) + new_path = re.sub(r'([a-zA-Z]):/(.*)', r'/\1/\2', p) + if len(new_path) > 3 and new_path[0] == '/' and new_path[2] == '/': + new_path = new_path[0] + new_path[1].lower() + new_path[2:] + return new_path + + +# Looks at the current PATH and adds and removes entries so that the PATH reflects +# the set of given active tools. +def adjusted_path(tools_to_activate, system=False, user=False): + # These directories should be added to PATH + path_add = get_required_path(tools_to_activate) + # These already exist. + if WINDOWS and not MSYS: + existing_path = win_get_environment_variable('PATH', system=system, user=user, fallback=True).split(ENVPATH_SEPARATOR) + else: + existing_path = os.environ['PATH'].split(ENVPATH_SEPARATOR) + + existing_emsdk_tools = [] + existing_nonemsdk_path = [] + for entry in existing_path: + if to_unix_path(entry).startswith(EMSDK_PATH): + existing_emsdk_tools.append(entry) + else: + existing_nonemsdk_path.append(entry) + + new_emsdk_tools = [] + kept_emsdk_tools = [] + for entry in path_add: + if not normalized_contains(existing_emsdk_tools, entry): + new_emsdk_tools.append(entry) + else: + kept_emsdk_tools.append(entry) + + whole_path = unique_items(new_emsdk_tools + kept_emsdk_tools + existing_nonemsdk_path) + + if MSYS: + # XXX Hack: If running native Windows Python in MSYS prompt where PATH + # entries look like "/c/Windows/System32", os.environ['PATH'] + # in Python will transform to show them as "C:\\Windows\\System32", so need + # to reconvert path delimiter back to forward slashes. + whole_path = [to_msys_path(p) for p in whole_path] + new_emsdk_tools = [to_msys_path(p) for p in new_emsdk_tools] + + separator = ':' if MSYS else ENVPATH_SEPARATOR + return (separator.join(whole_path), new_emsdk_tools) + + +def get_env_vars_to_add(tools_to_activate, system, user): + env_vars_to_add = [] + + newpath, added_path = adjusted_path(tools_to_activate, system, user) + + # Don't bother setting the path if there are no changes. + if os.environ['PATH'] != newpath: + env_vars_to_add += [('PATH', newpath)] + + if added_path: + info('Adding directories to PATH:') + for item in added_path: + info('PATH += ' + item) + info('') + + # A core variable EMSDK points to the root of Emscripten SDK directory. + env_vars_to_add += [('EMSDK', EMSDK_PATH)] + + for tool in tools_to_activate: + for env in tool.activated_environment(): + key, value = parse_key_value(env) + value = to_native_path(tool.expand_vars(value)) + env_vars_to_add += [(key, value)] + + emroot = find_emscripten_root(tools_to_activate) + if emroot: + # For older emscripten versions that don't use an embedded cache by + # default we need to export EM_CACHE. + # + # Sadly, we can't put this in the config file since those older versions + # also didn't read the `CACHE` key from the config file: + # + # History: + # - 'CACHE' config started being honored in 1.39.16 + # https://github.com/emscripten-core/emscripten/pull/11091 + # - Default to embedded cache also started in 1.39.16 + # https://github.com/emscripten-core/emscripten/pull/11126 + # - Emscripten supports automatically locating the embedded + # config in 1.39.13: + # https://github.com/emscripten-core/emscripten/pull/10935 + # + # Since setting EM_CACHE in the environment effects the entire machine + # we want to avoid this except when installing these older emscripten + # versions that really need it. + version = parse_emscripten_version(emroot) + if version < [1, 39, 16]: + em_cache_dir = os.path.join(emroot, 'cache') + env_vars_to_add += [('EM_CACHE', em_cache_dir)] + if version < [1, 39, 13]: + env_vars_to_add += [('EM_CONFIG', os.path.normpath(EM_CONFIG_PATH))] + + return env_vars_to_add + + +def construct_env(tools_to_activate, system, user): + info('Setting up EMSDK environment (suppress these messages with EMSDK_QUIET=1)') + return construct_env_with_vars(get_env_vars_to_add(tools_to_activate, system, user)) + + +def unset_env(key): + if POWERSHELL: + return 'Remove-Item env:%s\n' % key + if CMD: + return 'set %s=\n' % key + if CSH: + return 'unsetenv %s;\n' % key + if FISH: + return 'set -e %s;\n' % key + if BASH: + return 'unset %s;\n' % key + assert False + + +def construct_env_with_vars(env_vars_to_add): + env_string = '' + if env_vars_to_add: + info('Setting environment variables:') + + for key, value in env_vars_to_add: + # Don't set env vars which are already set to the correct value. + if key in os.environ and to_unix_path(os.environ[key]) == to_unix_path(value): + continue + info(key + ' = ' + value) + if POWERSHELL: + env_string += '$env:' + key + '="' + value + '"\n' + elif CMD: + env_string += 'SET ' + key + '=' + value + '\n' + elif CSH: + env_string += 'setenv ' + key + ' "' + value + '";\n' + elif FISH: + env_string += 'set -gx ' + key + ' "' + value + '";\n' + elif BASH: + env_string += 'export ' + key + '="' + value + '";\n' + else: + assert False + + if 'EMSDK_PYTHON' in env_vars_to_add: + # When using our bundled python we never want the user's + # PYTHONHOME or PYTHONPATH + # See https://github.com/emscripten-core/emsdk/issues/598 + env_string += unset_env('PYTHONHOME') + env_string += unset_env('PYTHONPATH') + + # Remove any environment variables that might have been set by old or + # inactive tools/sdks. For example, we set EM_CACHE for older versions + # of the SDK but we want to remove that from the current environment + # if no such tool is active. + # Ignore certain keys that are inputs to emsdk itself. + ignore_keys = set(['EMSDK_POWERSHELL', 'EMSDK_CSH', 'EMSDK_CMD', 'EMSDK_BASH', 'EMSDK_FISH', + 'EMSDK_NUM_CORES', 'EMSDK_NOTTY', 'EMSDK_KEEP_DOWNLOADS']) + env_keys_to_add = set(pair[0] for pair in env_vars_to_add) + for key in os.environ: + if key.startswith('EMSDK_') or key in ('EM_CACHE', 'EM_CONFIG'): + if key not in env_keys_to_add and key not in ignore_keys: + info('Clearing existing environment variable: %s' % key) + env_string += unset_env(key) + + return env_string + + +def error_on_missing_tool(name): + if name.endswith('-64bit') and not is_os_64bit(): + exit_with_error("'%s' is only provided for 64-bit OSes" % name) + else: + exit_with_error("tool or SDK not found: '%s'" % name) + + +def expand_sdk_name(name, activating): + if 'upstream-master' in name: + errlog('upstream-master SDK has been renamed main') + name = name.replace('upstream-master', 'main') + if 'fastcomp' in name: + exit_with_error('the fastcomp backend is no longer supported. Please use an older version of emsdk (for example 3.1.29) if you want to install the old fastcomp-based SDK') + if name in ('tot', 'sdk-tot', 'tot-upstream'): + if activating: + # When we are activating a tot release, assume that the currently + # installed SDK, if any, is the tot release we want to activate. + # Without this `install tot && activate tot` will race with the builders + # that are producing new builds. + installed = get_installed_sdk_version() + if installed: + debug_print('activating currently installed SDK; not updating tot version') + return 'sdk-releases-%s-64bit' % installed + return find_tot_sdk() + + if '-upstream' in name: + name = name.replace('-upstream', '') + + name = resolve_sdk_aliases(name, verbose=True) + + # check if it's a release handled by an emscripten-releases version, + # and if so use that by using the right hash. we support a few notations, + # x.y.z + # sdk-x.y.z-64bit + # TODO: support short notation for old builds too? + fullname = name + version = fullname.replace('sdk-', '').replace('releases-', '').replace('-64bit', '').replace('tag-', '') + sdk = 'sdk-' if not name.startswith('releases-') else '' + releases_info = load_releases_info()['releases'] + release_hash = get_release_hash(version, releases_info) + if release_hash: + # Known release hash + full_name = '%sreleases-%s-64bit' % (sdk, release_hash) + print("Resolving SDK version '%s' to '%s'" % (version, full_name)) + return full_name + + if len(version) == 40: + global extra_release_tag + extra_release_tag = version + return '%sreleases-%s-64bit' % (sdk, version) + + return name + + +def main(args): + if not args: + errlog("Missing command; Type 'emsdk help' to get a list of commands.") + return 1 + + debug_print('emsdk.py running under `%s`' % sys.executable) + cmd = args.pop(0) + + if cmd in ('help', '--help', '-h'): + print(' emsdk: Available commands:') + + print(''' + emsdk list [--old] [--uses] - Lists all available SDKs and tools and their + current installation status. With the --old + parameter, also historical versions are + shown. If --uses is passed, displays the + composition of different SDK packages and + dependencies. + + emsdk update - Updates emsdk to the newest version. If you have + bootstrapped emsdk via cloning directly from + GitHub, call "git pull" instead to update emsdk. + + emsdk install [options] ... + - Downloads and installs given tools or SDKs. + Options can contain: + + -j: Specifies the number of cores to use when + building the tool. Default: use one less + than the # of detected cores. + + --build=: Controls what kind of build of LLVM to + perform. Pass either 'Debug', 'Release', + 'MinSizeRel' or 'RelWithDebInfo'. Default: + 'Release'. + + --generator=: Specifies the CMake Generator to be used + during the build. Possible values are the + same as what your CMake supports and whether + the generator is valid depends on the tools + you have installed. Defaults to 'Unix Makefiles' + on *nix systems. If generator name is multiple + words, enclose with single or double quotes. + + --shallow: When installing tools from one of the git + development branches, this parameter can be + passed to perform a shallow git clone instead + of a full one. This reduces the amount of + network transfer that is needed. This option + should only be used when you are interested in + downloading one of the development branches, + but are not looking to develop Emscripten + yourself. Default: disabled, i.e. do a full + clone. + + --build-tests: If enabled, LLVM is built with internal tests + included. Pass this to enable running test + other.test_llvm_lit in the Emscripten test + suite. Default: disabled. + --enable-assertions: If specified, LLVM is built with assert() + checks enabled. Useful for development + purposes. Default: Enabled + --disable-assertions: Forces assertions off during the build. + + --vs2019/--vs2022: If building from source, overrides to build + using the specified compiler. When installing + precompiled packages, this has no effect. + Note: The same compiler specifier must be + passed to the emsdk activate command to + activate the desired version. + + Notes on building from source: + + To pass custom CMake directives when configuring + LLVM build, specify the environment variable + LLVM_CMAKE_ARGS="param1=value1,param2=value2" + in the environment where the build is invoked. + See README.md for details. + + --override-repository: Specifies the git URL to use for a given Tool. E.g. + --override-repository emscripten-main@https://github.com//emscripten/tree/ + + + emsdk uninstall - Removes the given tool or SDK from disk.''') + + if WINDOWS: + print(''' + emsdk activate [--permanent] [--system] [--build=type] [--vs2019/--vs2022] + + - Activates the given tool or SDK in the + environment of the current shell. + + - If the `--permanent` option is passed, then the environment + variables are set permanently for the current user. + + - If the `--system` option is passed, the registration + is done for all users of the system. + This needs admin privileges + (uses Machine environment variables). + + - If a custom compiler version was used to override + the compiler to use, pass the same --vs2019/--vs2022 + parameter here to choose which version to activate. + + emcmdprompt.bat - Spawns a new command prompt window with the + Emscripten environment active.''') + else: + print(''' emsdk activate [--build=type] + + - Activates the given tool or SDK in the + environment of the current shell.''') + + print(''' + Both commands 'install' and 'activate' accept an optional parameter + '--build=type', which can be used to override what kind of installation + or activation to perform. Possible values for type are Debug, Release, + MinSizeRel or RelWithDebInfo. Note: When overriding a custom build type, + be sure to match the same --build= option to both 'install' and + 'activate' commands and the invocation of 'emsdk_env', or otherwise + these commands will default to operating on the default build type + which is RelWithDebInfo.''') + + print(''' + + Environment: + EMSDK_KEEP_DOWNLOADS=1 - if you want to keep the downloaded archives. + EMSDK_NOTTY=1 - override isatty() result (mainly to log progress). + EMSDK_NUM_CORES=n - limit parallelism to n cores. + EMSDK_VERBOSE=1 - very verbose output, useful for debugging.''') + return 0 + + # Extracts a boolean command line argument from args and returns True if it was present + def extract_bool_arg(name): + if name in args: + args.remove(name) + return True + return False + + def extract_string_arg(name): + for i in range(len(args)): + if args[i] == name: + value = args[i + 1] + del args[i:i + 2] + return value + + arg_old = extract_bool_arg('--old') + arg_uses = extract_bool_arg('--uses') + arg_permanent = extract_bool_arg('--permanent') + arg_global = extract_bool_arg('--global') + arg_system = extract_bool_arg('--system') + if arg_global: + print('--global is deprecated. Use `--system` to set the environment variables for all users') + arg_system = True + if arg_system: + arg_permanent = True + if extract_bool_arg('--embedded'): + errlog('embedded mode is now the only mode available') + if extract_bool_arg('--no-embedded'): + errlog('embedded mode is now the only mode available') + return 1 + + arg_notty = extract_bool_arg('--notty') + if arg_notty: + global TTY_OUTPUT + TTY_OUTPUT = False + + # Replace meta-packages with the real package names. + if cmd in ('update', 'install', 'activate'): + activating = cmd == 'activate' + args = [expand_sdk_name(a, activating=activating) for a in args] + + load_em_config() + load_sdk_manifest() + + # Apply any overrides to git branch names to clone from. + forked_url = extract_string_arg('--override-repository') + while forked_url: + tool_name, url_and_refspec = forked_url.split('@') + t = find_tool(tool_name) + if not t: + errlog('Failed to find tool ' + tool_name + '!') + return False + else: + t.url, t.git_branch = parse_github_url_and_refspec(url_and_refspec) + debug_print('Reading git repository URL "' + t.url + '" and git branch "' + t.git_branch + '" for Tool "' + tool_name + '".') + + forked_url = extract_string_arg('--override-repository') + + # Process global args + for i in range(len(args)): + if args[i].startswith('--generator='): + build_generator = re.match(r'''^--generator=['"]?([^'"]+)['"]?$''', args[i]) + if build_generator: + global CMAKE_GENERATOR + CMAKE_GENERATOR = build_generator.group(1) + args[i] = '' + else: + errlog("Cannot parse CMake generator string: " + args[i] + ". Try wrapping generator string with quotes") + return 1 + elif args[i].startswith('--build='): + build_type = re.match(r'^--build=(.+)$', args[i]) + if build_type: + global CMAKE_BUILD_TYPE_OVERRIDE + build_type = build_type.group(1) + build_types = ['Debug', 'MinSizeRel', 'RelWithDebInfo', 'Release'] + try: + build_type_index = [x.lower() for x in build_types].index(build_type.lower()) + CMAKE_BUILD_TYPE_OVERRIDE = build_types[build_type_index] + args[i] = '' + except Exception: + errlog('Unknown CMake build type "' + build_type + '" specified! Please specify one of ' + str(build_types)) + return 1 + else: + errlog("Invalid command line parameter " + args[i] + ' specified!') + return 1 + args = [x for x in args if x] + + if cmd == 'list': + print('') + + def installed_sdk_text(name): + sdk = find_sdk(name) + return 'INSTALLED' if sdk and sdk.is_installed() else '' + + if (LINUX or MACOS or WINDOWS) and (ARCH == 'x86' or ARCH == 'x86_64'): + print('The *recommended* precompiled SDK download is %s (%s).' % (find_latest_version(), find_latest_hash())) + print() + print('To install/activate it use:') + print(' latest') + print('') + print('This is equivalent to installing/activating:') + print(' %s %s' % (find_latest_version(), installed_sdk_text(find_latest_sdk()))) + print('') + else: + print('Warning: your platform does not have precompiled SDKs available.') + print('You may install components from source.') + print('') + + print('All recent (non-legacy) installable versions are:') + releases_versions = sorted(load_releases_versions(), key=version_key, reverse=True) + releases_info = load_releases_info()['releases'] + for ver in releases_versions: + print(' %s %s' % (ver, installed_sdk_text('sdk-releases-%s-64bit' % get_release_hash(ver, releases_info)))) + print() + + # Use array to work around the lack of being able to mutate from enclosing + # function. + has_partially_active_tools = [False] + + if sdks: + def find_sdks(needs_compilation): + s = [] + for sdk in sdks: + if sdk.is_old and not arg_old: + continue + if sdk.needs_compilation() == needs_compilation: + s += [sdk] + return s + + def print_sdks(s): + for sdk in s: + installed = '\tINSTALLED' if sdk.is_installed() else '' + active = '*' if sdk.is_active() else ' ' + print(' ' + active + ' {0: <25}'.format(str(sdk)) + installed) + if arg_uses: + for dep in sdk.uses: + print(' - {0: <25}'.format(dep)) + print('') + print('The additional following precompiled SDKs are also available for download:') + print_sdks(find_sdks(False)) + + print('The following SDKs can be compiled from source:') + print_sdks(find_sdks(True)) + + if tools: + def find_tools(needs_compilation): + t = [] + for tool in tools: + if tool.is_old and not arg_old: + continue + if tool.needs_compilation() != needs_compilation: + continue + t += [tool] + return t + + def print_tools(t): + for tool in t: + if tool.is_old and not arg_old: + continue + if tool.can_be_installed() is True: + installed = '\tINSTALLED' if tool.is_installed() else '' + else: + installed = '\tNot available: ' + tool.can_be_installed() + tool_is_active = tool.is_active() + tool_is_env_active = tool_is_active and tool.is_env_active() + if tool_is_env_active: + active = ' * ' + elif tool_is_active: + active = '(*)' + has_partially_active_tools[0] = has_partially_active_tools[0] or True + else: + active = ' ' + print(' ' + active + ' {0: <25}'.format(str(tool)) + installed) + print('') + + print('The following precompiled tool packages are available for download:') + print_tools(find_tools(needs_compilation=False)) + print('The following tools can be compiled from source:') + print_tools(find_tools(needs_compilation=True)) + else: + if is_emsdk_sourced_from_github(): + print("There are no tools available. Run 'git pull' to fetch the latest set of tools.") + else: + print("There are no tools available. Run 'emsdk update' to fetch the latest set of tools.") + print('') + + print('Items marked with * are activated for the current user.') + if has_partially_active_tools[0]: + env_cmd = 'emsdk_env.bat' if WINDOWS else 'source ./emsdk_env.sh' + print('Items marked with (*) are selected for use, but your current shell environment is not configured to use them. Type "' + env_cmd + '" to set up your current shell to use them' + (', or call "emsdk activate --permanent " to permanently activate them.' if WINDOWS else '.')) + if not arg_old: + print('') + print("To access the historical archived versions, type 'emsdk list --old'") + + print('') + if is_emsdk_sourced_from_github(): + print('Run "git pull" to pull in the latest list.') + else: + print('Run "./emsdk update" to pull in the latest list.') + + return 0 + elif cmd == 'construct_env': + # Clean up old temp file up front, in case of failure later before we get + # to write out the new one. + tools_to_activate = currently_active_tools() + tools_to_activate = process_tool_list(tools_to_activate) + env_string = construct_env(tools_to_activate, arg_system, arg_permanent) + if CMD or POWERSHELL: + write_set_env_script(env_string) + else: + sys.stdout.write(env_string) + return 0 + elif cmd == 'update': + update_emsdk() + if WINDOWS: + # Clean up litter after old emsdk update which may have left this temp + # file around. + rmfile(sdk_path(EMSDK_SET_ENV)) + return 0 + elif cmd == 'update-tags': + errlog('`update-tags` is not longer needed. To install the latest tot release just run `install tot`') + return 0 + elif cmd == 'activate': + if arg_permanent: + print('Registering active Emscripten environment permanently') + print('') + + tools_to_activate = currently_active_tools() + for arg in args: + tool = find_tool(arg) + if tool is None: + tool = find_sdk(arg) + if tool is None: + error_on_missing_tool(arg) + tools_to_activate += [tool] + if not tools_to_activate: + errlog('No tools/SDKs specified to activate! Usage:\n emsdk activate tool/sdk1 [tool/sdk2] [...]') + return 1 + active_tools = set_active_tools(tools_to_activate, permanently_activate=arg_permanent, system=arg_system) + if not active_tools: + errlog('No tools/SDKs found to activate! Usage:\n emsdk activate tool/sdk1 [tool/sdk2] [...]') + return 1 + if WINDOWS and not arg_permanent: + errlog('The changes made to environment variables only apply to the currently running shell instance. Use the \'emsdk_env.bat\' to re-enter this environment later, or if you\'d like to register this environment permanently, rerun this command with the option --permanent.') + return 0 + elif cmd == 'install': + global BUILD_FOR_TESTING, ENABLE_LLVM_ASSERTIONS, CPU_CORES, GIT_CLONE_SHALLOW + + # Process args + for i in range(len(args)): + if args[i].startswith('-j'): + multicore = re.match(r'^-j(\d+)$', args[i]) + if multicore: + CPU_CORES = int(multicore.group(1)) + args[i] = '' + else: + errlog("Invalid command line parameter " + args[i] + ' specified!') + return 1 + elif args[i] == '--shallow': + GIT_CLONE_SHALLOW = True + args[i] = '' + elif args[i] == '--build-tests': + BUILD_FOR_TESTING = True + args[i] = '' + elif args[i] == '--enable-assertions': + ENABLE_LLVM_ASSERTIONS = 'ON' + args[i] = '' + elif args[i] == '--disable-assertions': + ENABLE_LLVM_ASSERTIONS = 'OFF' + args[i] = '' + args = [x for x in args if x] + if not args: + errlog("Missing parameter. Type 'emsdk install ' to install a tool or an SDK. Type 'emsdk list' to obtain a list of available tools. Type 'emsdk install latest' to automatically install the newest version of the SDK.") + return 1 + + if LINUX and ARCH == 'arm64' and args != ['latest']: + errlog('WARNING: arm64-linux binaries are not available for all releases.') + errlog('See https://github.com/emscripten-core/emsdk/issues/547') + + for t in args: + tool = find_tool(t) + if tool is None: + tool = find_sdk(t) + if tool is None: + error_on_missing_tool(t) + tool.install() + return 0 + elif cmd == 'uninstall': + if not args: + errlog("Syntax error. Call 'emsdk uninstall '. Call 'emsdk list' to obtain a list of available tools.") + return 1 + tool = find_tool(args[0]) + if tool is None: + errlog("Error: Tool by name '" + args[0] + "' was not found.") + return 1 + tool.uninstall() + return 0 + + errlog("Unknown command '" + cmd + "' given! Type 'emsdk help' to get a list of commands.") + return 1 + + +if __name__ == '__main__': + try: + sys.exit(main(sys.argv[1:])) + except KeyboardInterrupt: + exit_with_error('aborted by user, exiting') + sys.exit(1) diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk_env.bat b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk_env.bat new file mode 100644 index 0000000..c793321 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk_env.bat @@ -0,0 +1 @@ +@call "%~dp0emsdk" construct_env diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk_env.csh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk_env.csh new file mode 100644 index 0000000..187d4c5 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk_env.csh @@ -0,0 +1,30 @@ +# This script is sourced by the user and uses +# their shell. Try not to use tcshisms. + +# Do not execute this script without sourcing, +# because it won't have any effect then. +# That is, always run this script with +# +# source ./emsdk_env.csh +# +# instead of just plainly running with +# +# ./emsdk_env.csh +# +# which won't have any effect. +set SRC=($_) +if ("$SRC" == "") then + set SRC="$0" +else + set SRC="$SRC[1]" +endif +set CURDIR=`pwd` +setenv DIR `dirname "$SRC"` +unset SRC + +setenv EMSDK_CSH 1 + +eval `$DIR/emsdk construct_env` +unsetenv DIR + +unsetenv EMSDK_CSH diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk_env.fish b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk_env.fish new file mode 100644 index 0000000..fbd3a06 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk_env.fish @@ -0,0 +1,14 @@ +#In your Fish configuration, add this line: +#alias emsdk_setup ". /path/to/emsdk/emsdk_env.fish" +#Now, when you want to use the SDK, run this alias first to set up +#your environment. + +set -gx EMSDK_FISH 1 + +set -l script (status -f) +set -l dir (dirname $script) + +eval ($dir/emsdk construct_env) + +set -e -l script +set -e -l dir diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk_env.ps1 b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk_env.ps1 new file mode 100644 index 0000000..ab5fc4d --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk_env.ps1 @@ -0,0 +1,2 @@ +$ScriptDirectory = Split-Path -parent $PSCommandPath +& "$ScriptDirectory/emsdk.ps1" construct_env diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk_env.sh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk_env.sh new file mode 100644 index 0000000..75229e2 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk_env.sh @@ -0,0 +1,73 @@ +# This script is sourced by the user and uses +# their shell. +# +# This script tries to find its location but +# this does not work in every shell. +# +# It is known to work in bash, zsh and ksh +# +# Do not execute this script without sourcing, +# because it won't have any effect then. +# That is, always run this script with +# +# . /path/to/emsdk_env.sh +# +# or +# +# source /path/to/emsdk_env.sh +# +# instead of just plainly running with +# +# ./emsdk_env.sh +# +# which won't have any effect. + +CURRENT_SCRIPT= +DIR="." + +# use shell specific method to get the path +# to the current file being source'd. +# +# To add a shell, add another conditional below, +# then add tests to scripts/test_source_env.sh + +if [ -n "${BASH_SOURCE-}" ]; then + CURRENT_SCRIPT="$BASH_SOURCE" +elif [ -n "${ZSH_VERSION-}" ]; then + CURRENT_SCRIPT="${(%):-%x}" +elif [ -n "${KSH_VERSION-}" ]; then + CURRENT_SCRIPT=${.sh.file} +fi + +if [ -n "${CURRENT_SCRIPT-}" ]; then + DIR=$(dirname "$CURRENT_SCRIPT") + if [ -h "$CURRENT_SCRIPT" ]; then + # Now work out actual DIR since this is part of a symlink. + # Since we can't be sure that readlink or realpath + # are available, use tools more likely to be installed. + # (This will still fail if sed is not available.) + SYMDIR=$(dirname "$(ls -l "$CURRENT_SCRIPT" | sed -n "s/.*-> //p")") + if [ -z "$SYMDIR" ]; then + SYMDIR="." + fi + FULLDIR="$DIR/$SYMDIR" + DIR=$(cd "$FULLDIR" > /dev/null 2>&1; /bin/pwd) + unset SYMDIR + unset FULLDIR + fi +fi +unset CURRENT_SCRIPT + +if [ ! -f "$DIR/emsdk.py" ]; then + echo "Error: unable to determine 'emsdk' directory. Perhaps you are using a shell or" 1>&2 + echo " environment that this script does not support." 1>&2 + echo 1>&2 + echo "A possible solution is to source this script while in the 'emsdk' directory." 1>&2 + echo 1>&2 + unset DIR + return +fi + +# Force emsdk to use bash syntax so that this works in windows + bash too +eval `EMSDK_BASH=1 "$DIR/emsdk" construct_env` +unset DIR diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk_manifest.json b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk_manifest.json new file mode 100644 index 0000000..fd43f59 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/emsdk_manifest.json @@ -0,0 +1,405 @@ +{ + "tools": [ + { + "id": "llvm-git", + "version": "main", + "bitness": 32, + "install_path": "llvm/git", + "git_branch": "main", + "url": "https://github.com/llvm/llvm-project.git", + "custom_install_script": "build_llvm", + "only_supports_wasm": true, + "activated_path": "%installation_dir%/%llvm_build_bin_dir%", + "activated_cfg": "LLVM_ROOT='%installation_dir%/%llvm_build_bin_dir%'", + "activated_env": "LLVM_ROOT=%installation_dir%/%llvm_build_bin_dir%;EMCC_WASM_BACKEND=1", + "cmake_build_type": "Release" + }, + { + "id": "llvm-git", + "version": "main", + "bitness": 64, + "install_path": "llvm/git", + "git_branch": "main", + "url": "https://github.com/llvm/llvm-project.git", + "custom_install_script": "build_llvm", + "only_supports_wasm": true, + "activated_path": "%installation_dir%/%llvm_build_bin_dir%", + "activated_cfg": "LLVM_ROOT='%installation_dir%/%llvm_build_bin_dir%'", + "activated_env": "LLVM_ROOT=%installation_dir%/%llvm_build_bin_dir%;EMCC_WASM_BACKEND=1", + "cmake_build_type": "Release" + }, + + { + "id": "releases", + "version": "%releases-tag%", + "bitness": 64, + "arch": "x86_64", + "linux_url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/linux/%releases-tag%/wasm-binaries.tar.xz", + "macos_url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/mac/%releases-tag%/wasm-binaries.tar.xz", + "windows_url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/win/%releases-tag%/wasm-binaries.zip", + "download_prefix": "%releases-tag%-", + "install_path": "upstream", + "activated_path": "%installation_dir%/emscripten", + "activated_cfg": "LLVM_ROOT='%installation_dir%/bin';BINARYEN_ROOT='%installation_dir%';EMSCRIPTEN_ROOT='%installation_dir%/emscripten'", + "emscripten_releases_hash": "%releases-tag%" + }, + { + "id": "releases", + "version": "%releases-tag%", + "bitness": 64, + "arch": "arm64", + "macos_url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/mac/%releases-tag%/wasm-binaries-arm64.tar.xz", + "linux_url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/linux/%releases-tag%/wasm-binaries-arm64.tar.xz", + "download_prefix": "%releases-tag%-", + "install_path": "upstream", + "activated_path": "%installation_dir%/emscripten", + "activated_cfg": "LLVM_ROOT='%installation_dir%/bin';BINARYEN_ROOT='%installation_dir%';EMSCRIPTEN_ROOT='%installation_dir%/emscripten'", + "emscripten_releases_hash": "%releases-tag%" + }, + + { + "id": "node", + "version": "18.20.3", + "bitness": 32, + "arch": "x86", + "windows_url": "node-v18.20.3-win-x86.zip", + "activated_path": "%installation_dir%/bin", + "activated_path_skip": "node", + "activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'", + "activated_env": "EMSDK_NODE=%installation_dir%/bin/node%.exe%" + }, + { + "id": "node", + "version": "18.20.3", + "arch": "arm", + "bitness": 32, + "linux_url": "node-v18.20.3-linux-armv7l.tar.xz", + "activated_path": "%installation_dir%/bin", + "activated_path_skip": "node", + "activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'", + "activated_env": "EMSDK_NODE=%installation_dir%/bin/node%.exe%" + }, + { + "id": "node", + "version": "18.20.3", + "bitness": 64, + "arch": "x86_64", + "macos_url": "node-v18.20.3-darwin-x64.tar.gz", + "windows_url": "node-v18.20.3-win-x64.zip", + "linux_url": "node-v18.20.3-linux-x64.tar.xz", + "activated_path": "%installation_dir%/bin", + "activated_path_skip": "node", + "activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'", + "activated_env": "EMSDK_NODE=%installation_dir%/bin/node%.exe%" + }, + { + "id": "node", + "version": "18.20.3", + "arch": "arm64", + "bitness": 64, + "macos_url": "node-v18.20.3-darwin-arm64.tar.gz", + "linux_url": "node-v18.20.3-linux-arm64.tar.xz", + "activated_path": "%installation_dir%/bin", + "activated_path_skip": "node", + "activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'", + "activated_env": "EMSDK_NODE=%installation_dir%/bin/node%.exe%" + }, + + + { + "id": "node", + "version": "20.18.0", + "bitness": 32, + "arch": "x86", + "windows_url": "node-v20.18.0-win-x86.zip", + "activated_path": "%installation_dir%/bin", + "activated_path_skip": "node", + "activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'", + "activated_env": "EMSDK_NODE=%installation_dir%/bin/node%.exe%" + }, + { + "id": "node", + "version": "20.18.0", + "arch": "arm", + "bitness": 32, + "linux_url": "node-v20.18.0-linux-armv7l.tar.xz", + "activated_path": "%installation_dir%/bin", + "activated_path_skip": "node", + "activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'", + "activated_env": "EMSDK_NODE=%installation_dir%/bin/node%.exe%" + }, + { + "id": "node", + "version": "20.18.0", + "bitness": 64, + "arch": "x86_64", + "macos_url": "node-v20.18.0-darwin-x64.tar.gz", + "windows_url": "node-v20.18.0-win-x64.zip", + "linux_url": "node-v20.18.0-linux-x64.tar.xz", + "activated_path": "%installation_dir%/bin", + "activated_path_skip": "node", + "activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'", + "activated_env": "EMSDK_NODE=%installation_dir%/bin/node%.exe%" + }, + { + "id": "node", + "version": "20.18.0", + "arch": "arm64", + "bitness": 64, + "windows_url": "node-v20.18.0-win-arm64.zip", + "macos_url": "node-v20.18.0-darwin-arm64.tar.gz", + "linux_url": "node-v20.18.0-linux-arm64.tar.xz", + "activated_path": "%installation_dir%/bin", + "activated_path_skip": "node", + "activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'", + "activated_env": "EMSDK_NODE=%installation_dir%/bin/node%.exe%" + }, + + + { + "id": "python", + "version": "3.9.2-nuget", + "bitness": 64, + "arch": "x86_64", + "windows_url": "python-3.9.2-4-amd64+pywin32.zip", + "activated_cfg": "PYTHON='%installation_dir%/python.exe'", + "activated_env": "EMSDK_PYTHON=%installation_dir%/python.exe" + }, + { + "id": "python", + "version": "3.9.2", + "bitness": 64, + "arch": "x86_64", + "windows_url": "python-3.9.2-1-embed-amd64+pywin32.zip", + "activated_cfg": "PYTHON='%installation_dir%/python.exe'", + "activated_env": "EMSDK_PYTHON=%installation_dir%/python.exe" + }, + { + "id": "python", + "version": "3.9.2", + "bitness": 64, + "arch": "x86_64", + "macos_url": "python-3.9.2-3-macos-x86_64.tar.gz", + "activated_cfg": "PYTHON='%installation_dir%/bin/python3'", + "activated_env": "EMSDK_PYTHON=%installation_dir%/bin/python3;SSL_CERT_FILE=%installation_dir%/lib/python3.9/site-packages/certifi/cacert.pem" + }, + { + "id": "python", + "version": "3.9.2", + "bitness": 64, + "arch": "arm64", + "macos_url": "python-3.9.2-1-macos-arm64.tar.gz", + "activated_cfg": "PYTHON='%installation_dir%/bin/python3'", + "activated_env": "EMSDK_PYTHON=%installation_dir%/bin/python3;SSL_CERT_FILE=%installation_dir%/lib/python3.9/site-packages/certifi/cacert.pem" + }, + { + "id": "emscripten", + "version": "tag-%tag%", + "bitness": 32, + "append_bitness": false, + "windows_url": "https://github.com/emscripten-core/emscripten/archive/%tag%.zip", + "unix_url": "https://github.com/emscripten-core/emscripten/archive/%tag%.tar.gz", + "download_prefix": "emscripten-e", + "activated_cfg": "EMSCRIPTEN_ROOT='%installation_dir%'", + "activated_path": "%installation_dir%", + "activated_env": "EMSCRIPTEN=%installation_dir%", + "custom_install_script": "emscripten_npm_install" + }, + { + "id": "emscripten", + "version": "tag-%tag%", + "bitness": 64, + "append_bitness": false, + "windows_url": "https://github.com/emscripten-core/emscripten/archive/%tag%.zip", + "unix_url": "https://github.com/emscripten-core/emscripten/archive/%tag%.tar.gz", + "activated_cfg": "EMSCRIPTEN_ROOT='%installation_dir%'", + "activated_path": "%installation_dir%", + "activated_env": "EMSCRIPTEN=%installation_dir%", + "custom_install_script": "emscripten_npm_install" + }, + { + "id": "emscripten", + "version": "%precompiled_tag%", + "windows_url": "https://github.com/emscripten-core/emscripten/archive/%precompiled_tag%.zip", + "unix_url": "https://github.com/emscripten-core/emscripten/archive/%precompiled_tag%.tar.gz", + "activated_cfg": "EMSCRIPTEN_ROOT='%installation_dir%'", + "activated_path": "%installation_dir%", + "activated_env": "EMSCRIPTEN=%installation_dir%" + }, + { + "id": "binaryen", + "version": "tag-%binaryen_tag%", + "bitness": 32, + "append_bitness": false, + "windows_url": "https://github.com/WebAssembly/binaryen/archive/%binaryen_tag%.zip", + "unix_url": "https://github.com/WebAssembly/binaryen/archive/%binaryen_tag%.tar.gz", + "download_prefix": "binaryen-e", + "activated_cfg": "BINARYEN_ROOT='%installation_dir%%generator_prefix%_64bit_binaryen'", + "activated_path": "%installation_dir%%generator_prefix%_64bit_binaryen/bin", + "activated_env": "BINARYEN_ROOT=%installation_dir%%generator_prefix%_64bit_binaryen", + "cmake_build_type": "Release", + "custom_install_script": "build_binaryen", + "custom_is_installed_script": "is_binaryen_installed", + "custom_uninstall_script": "uninstall_binaryen" + }, + { + "id": "binaryen", + "version": "tag-%binaryen_tag%", + "bitness": 64, + "append_bitness": false, + "windows_url": "https://github.com/WebAssembly/binaryen/archive/%binaryen_tag%.zip", + "unix_url": "https://github.com/WebAssembly/binaryen/archive/%binaryen_tag%.tar.gz", + "download_prefix": "binaryen-e", + "activated_cfg": "BINARYEN_ROOT='%installation_dir%%generator_prefix%_64bit_binaryen'", + "activated_path": "%installation_dir%%generator_prefix%_64bit_binaryen/bin", + "activated_env": "BINARYEN_ROOT=%installation_dir%%generator_prefix%_64bit_binaryen", + "cmake_build_type": "Release", + "custom_install_script": "build_binaryen", + "custom_is_installed_script": "is_binaryen_installed", + "custom_uninstall_script": "uninstall_binaryen" + }, + { + "id": "emscripten", + "version": "main", + "bitness": 32, + "append_bitness": false, + "url": "https://github.com/emscripten-core/emscripten.git", + "git_branch": "main", + "activated_cfg": "EMSCRIPTEN_ROOT='%installation_dir%'", + "activated_path": "%installation_dir%", + "activated_env": "EMSCRIPTEN=%installation_dir%", + "cmake_build_type": "Release", + "custom_install_script": "emscripten_npm_install" + }, + { + "id": "emscripten", + "version": "main", + "bitness": 64, + "append_bitness": false, + "url": "https://github.com/emscripten-core/emscripten.git", + "git_branch": "main", + "activated_cfg": "EMSCRIPTEN_ROOT='%installation_dir%'", + "activated_path": "%installation_dir%", + "activated_env": "EMSCRIPTEN=%installation_dir%", + "cmake_build_type": "Release", + "custom_install_script": "emscripten_npm_install" + }, + { + "id": "binaryen", + "version": "main", + "bitness": 32, + "append_bitness": false, + "url": "https://github.com/WebAssembly/binaryen.git", + "git_branch": "main", + "activated_cfg": "BINARYEN_ROOT='%installation_dir%%generator_prefix%_32bit_binaryen'", + "activated_path": "%installation_dir%%generator_prefix%_32bit_binaryen/bin", + "activated_env": "BINARYEN_ROOT=%installation_dir%%generator_prefix%_32bit_binaryen", + "cmake_build_type": "Release", + "custom_install_script": "build_binaryen", + "custom_is_installed_script": "is_binaryen_installed", + "custom_uninstall_script": "uninstall_binaryen" + }, + { + "id": "binaryen", + "version": "main", + "bitness": 64, + "append_bitness": false, + "url": "https://github.com/WebAssembly/binaryen.git", + "git_branch": "main", + "activated_cfg": "BINARYEN_ROOT='%installation_dir%%generator_prefix%_64bit_binaryen'", + "activated_path": "%installation_dir%%generator_prefix%_64bit_binaryen/bin", + "activated_env": "BINARYEN_ROOT=%installation_dir%%generator_prefix%_64bit_binaryen", + "cmake_build_type": "Release", + "custom_install_script": "build_binaryen", + "custom_is_installed_script": "is_binaryen_installed", + "custom_uninstall_script": "uninstall_binaryen" + }, + { + "id": "mingw", + "version": "7.1.0", + "bitness": 64, + "windows_url": "mingw_7.1.0_64bit.zip", + "activated_cfg": "MINGW_ROOT='%installation_dir%'", + "activated_path": "%installation_dir%/bin" + }, + { + "id": "ninja", + "version": "git-release", + "bitness": 64, + "url": "https://github.com/ninja-build/ninja.git", + "git_branch": "release", + "activated_cfg": "NINJA=%installation_dir%/bin", + "activated_path": "%installation_dir%/bin", + "cmake_build_type": "Release", + "custom_install_script": "build_ninja" + }, + { + "id": "ccache", + "version": "git-emscripten", + "bitness": 64, + "url": "https://github.com/juj/ccache.git", + "git_branch": "emscripten", + "activated_path": "%installation_dir%/bin", + "activated_env": "_EMCC_CCACHE=1;CCACHE_CONFIGPATH=%installation_dir%/emcc_ccache.conf", + "cmake_build_type": "Release", + "custom_install_script": "build_ccache" + } + ], + + "sdks": [ + { + "version": "main", + "bitness": 64, + "uses": ["python-3.9.2-nuget-64bit", "llvm-git-main-64bit", "node-20.18.0-64bit", "emscripten-main-64bit", "binaryen-main-64bit"], + "os": "win" + }, + { + "version": "main", + "bitness": 64, + "uses": ["python-3.9.2-64bit", "llvm-git-main-64bit", "node-20.18.0-64bit", "emscripten-main-64bit", "binaryen-main-64bit"], + "os": "macos" + }, + { + "version": "main", + "bitness": 64, + "uses": ["llvm-git-main-64bit", "node-20.18.0-64bit", "emscripten-main-64bit", "binaryen-main-64bit"], + "os": "linux" + }, + { + "version": "main", + "bitness": 32, + "uses": ["llvm-git-main-32bit", "emscripten-main-32bit", "binaryen-main-32bit"], + "os": "linux" + }, + { + "version": "releases-%releases-tag%", + "bitness": 64, + "uses": ["node-20.18.0-64bit", "releases-%releases-tag%-64bit"], + "os": "linux", + "custom_install_script": "emscripten_npm_install" + }, + { + "version": "releases-%releases-tag%", + "bitness": 64, + "uses": ["node-20.18.0-64bit", "python-3.9.2-64bit", "releases-%releases-tag%-64bit"], + "os": "macos", + "arch": "x86_64", + "custom_install_script": "emscripten_npm_install" + }, + { + "version": "releases-%releases-tag%", + "bitness": 64, + "uses": ["node-20.18.0-64bit", "python-3.9.2-64bit", "releases-%releases-tag%-64bit"], + "os": "macos", + "arch": "arm64", + "custom_install_script": "emscripten_npm_install" + }, + { + "version": "releases-%releases-tag%", + "bitness": 64, + "uses": ["node-20.18.0-64bit", "python-3.9.2-nuget-64bit", "releases-%releases-tag%-64bit"], + "os": "win", + "custom_install_script": "emscripten_npm_install" + } + ] +} diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/legacy-binaryen-tags.txt b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/legacy-binaryen-tags.txt new file mode 100644 index 0000000..06d436c --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/legacy-binaryen-tags.txt @@ -0,0 +1,86 @@ +1.36.2 +1.36.3 +1.36.4 +1.36.5 +1.36.6 +1.36.7 +1.36.8 +1.36.9 +1.36.10 +1.36.11 +1.36.12 +1.36.13 +1.36.14 +1.37.0 +1.37.1 +1.37.2 +1.37.3 +1.37.4 +1.37.5 +1.37.6 +1.37.7 +1.37.8 +1.37.9 +1.37.10 +1.37.11 +1.37.12 +1.37.13 +1.37.14 +1.37.15 +1.37.16 +1.37.17 +1.37.18 +1.37.19 +1.37.20 +1.37.21 +1.37.22 +1.37.23 +1.37.24 +1.37.25 +1.37.26 +1.37.27 +1.37.28 +1.37.29 +1.37.30 +1.37.31 +1.37.32 +1.37.33 +1.37.34 +1.37.35 +1.37.36 +1.37.37 +1.37.38 +1.37.39 +1.37.40 +1.38.0 +1.38.1 +1.38.2 +1.38.3 +1.38.4 +1.38.5 +1.38.6 +1.38.7 +1.38.8 +1.38.9 +1.38.10 +1.38.11 +1.38.12 +1.38.13 +1.38.14 +1.38.15 +1.38.16 +1.38.17 +1.38.18 +1.38.19 +1.38.20 +1.38.21 +1.38.22 +1.38.23 +1.38.24 +1.38.25 +1.38.26 +1.38.27 +1.38.28 +1.38.29 +1.38.30 +1.38.31 \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/legacy-emscripten-tags.txt b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/legacy-emscripten-tags.txt new file mode 100644 index 0000000..2006929 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/legacy-emscripten-tags.txt @@ -0,0 +1,159 @@ +1.28.2 +1.28.3 +1.29.0 +1.29.1 +1.29.2 +1.29.3 +1.29.4 +1.29.5 +1.29.6 +1.29.7 +1.29.8 +1.29.9 +1.29.10 +1.29.11 +1.29.12 +1.30.0 +1.30.1 +1.30.2 +1.30.3 +1.30.4 +1.30.5 +1.30.6 +1.31.0 +1.31.1 +1.31.2 +1.31.3 +1.32.0 +1.32.1 +1.32.2 +1.32.3 +1.32.4 +1.33.0 +1.33.1 +1.33.2 +1.34.0 +1.34.1 +1.34.2 +1.34.3 +1.34.4 +1.34.5 +1.34.6 +1.34.7 +1.34.8 +1.34.9 +1.34.10 +1.34.11 +1.34.12 +1.35.0 +1.35.1 +1.35.2 +1.35.3 +1.35.4 +1.35.5 +1.35.6 +1.35.7 +1.35.8 +1.35.9 +1.35.10 +1.35.11 +1.35.12 +1.35.13 +1.35.14 +1.35.15 +1.35.16 +1.35.17 +1.35.18 +1.35.19 +1.35.20 +1.35.21 +1.35.22 +1.35.23 +1.36.0 +1.36.1 +1.36.2 +1.36.3 +1.36.4 +1.36.5 +1.36.6 +1.36.7 +1.36.8 +1.36.9 +1.36.10 +1.36.11 +1.36.12 +1.36.13 +1.36.14 +1.37.0 +1.37.1 +1.37.2 +1.37.3 +1.37.4 +1.37.5 +1.37.6 +1.37.7 +1.37.8 +1.37.9 +1.37.10 +1.37.11 +1.37.12 +1.37.13 +1.37.14 +1.37.15 +1.37.16 +1.37.17 +1.37.18 +1.37.19 +1.37.20 +1.37.21 +1.37.22 +1.37.23 +1.37.24 +1.37.25 +1.37.26 +1.37.27 +1.37.28 +1.37.29 +1.37.30 +1.37.31 +1.37.32 +1.37.33 +1.37.34 +1.37.35 +1.37.36 +1.37.37 +1.37.38 +1.37.39 +1.37.40 +1.38.0 +1.38.1 +1.38.2 +1.38.3 +1.38.4 +1.38.5 +1.38.6 +1.38.7 +1.38.8 +1.38.9 +1.38.10 +1.38.11 +1.38.12 +1.38.13 +1.38.14 +1.38.15 +1.38.16 +1.38.17 +1.38.18 +1.38.19 +1.38.20 +1.38.21 +1.38.22 +1.38.23 +1.38.24 +1.38.25 +1.38.26 +1.38.27 +1.38.28 +1.38.29 +1.38.30 +1.38.31 \ No newline at end of file diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/llvm-tags-64bit.txt b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/llvm-tags-64bit.txt new file mode 100644 index 0000000..7920f38 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/llvm-tags-64bit.txt @@ -0,0 +1,75 @@ +emscripten-llvm-e1.38.9.tar.gz +emscripten-llvm-e1.38.8.tar.gz +emscripten-llvm-e1.38.7.tar.gz +emscripten-llvm-e1.38.6.tar.gz +emscripten-llvm-e1.38.5.tar.gz +emscripten-llvm-e1.38.4.tar.gz +emscripten-llvm-e1.38.31.tar.gz +emscripten-llvm-e1.38.30.tar.gz +emscripten-llvm-e1.38.3.tar.gz +emscripten-llvm-e1.38.29.tar.gz +emscripten-llvm-e1.38.28.tar.gz +emscripten-llvm-e1.38.27.tar.gz +emscripten-llvm-e1.38.26.tar.gz +emscripten-llvm-e1.38.25.tar.gz +emscripten-llvm-e1.38.24.tar.gz +emscripten-llvm-e1.38.23.tar.gz +emscripten-llvm-e1.38.22.tar.gz +emscripten-llvm-e1.38.21.tar.gz +emscripten-llvm-e1.38.20.tar.gz +emscripten-llvm-e1.38.2.tar.gz +emscripten-llvm-e1.38.19.tar.gz +emscripten-llvm-e1.38.18.tar.gz +emscripten-llvm-e1.38.17.tar.gz +emscripten-llvm-e1.38.16.tar.gz +emscripten-llvm-e1.38.15.tar.gz +emscripten-llvm-e1.38.14.tar.gz +emscripten-llvm-e1.38.13.tar.gz +emscripten-llvm-e1.38.12.tar.gz +emscripten-llvm-e1.38.11.tar.gz +emscripten-llvm-e1.38.10.tar.gz +emscripten-llvm-e1.38.1.tar.gz +emscripten-llvm-e1.38.0.tar.gz +emscripten-llvm-e1.37.9.tar.gz +emscripten-llvm-e1.37.8.tar.gz +emscripten-llvm-e1.37.7.tar.gz +emscripten-llvm-e1.37.6.tar.gz +emscripten-llvm-e1.37.5.tar.gz +emscripten-llvm-e1.37.40.tar.gz +emscripten-llvm-e1.37.4.tar.gz +emscripten-llvm-e1.37.39.tar.gz +emscripten-llvm-e1.37.38.tar.gz +emscripten-llvm-e1.37.37.tar.gz +emscripten-llvm-e1.37.36.tar.gz +emscripten-llvm-e1.37.35.tar.gz +emscripten-llvm-e1.37.34.tar.gz +emscripten-llvm-e1.37.33.tar.gz +emscripten-llvm-e1.37.32.tar.gz +emscripten-llvm-e1.37.31.tar.gz +emscripten-llvm-e1.37.30.tar.gz +emscripten-llvm-e1.37.3.tar.gz +emscripten-llvm-e1.37.29.tar.gz +emscripten-llvm-e1.37.28.tar.gz +emscripten-llvm-e1.37.27.tar.gz +emscripten-llvm-e1.37.26.tar.gz +emscripten-llvm-e1.37.25.tar.gz +emscripten-llvm-e1.37.24.tar.gz +emscripten-llvm-e1.37.23.tar.gz +emscripten-llvm-e1.37.22.tar.gz +emscripten-llvm-e1.37.21.tar.gz +emscripten-llvm-e1.37.20.tar.gz +emscripten-llvm-e1.37.2.tar.gz +emscripten-llvm-e1.37.19.tar.gz +emscripten-llvm-e1.37.18.tar.gz +emscripten-llvm-e1.37.17.tar.gz +emscripten-llvm-e1.37.16.tar.gz +emscripten-llvm-e1.37.15.tar.gz +emscripten-llvm-e1.37.14.tar.gz +emscripten-llvm-e1.37.13.tar.gz +emscripten-llvm-e1.37.12.tar.gz +emscripten-llvm-e1.37.11.tar.gz +emscripten-llvm-e1.37.10.tar.gz +emscripten-llvm-e1.37.1.tar.gz +emscripten-llvm-e1.37.0.tar.gz +emscripten-llvm-e1.36.14.tar.gz +emscripten-llvm-e1.36.13.tar.gz diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/scripts/create_release.py b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/scripts/create_release.py new file mode 100755 index 0000000..425f7d7 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/scripts/create_release.py @@ -0,0 +1,92 @@ +#!/usr/bin/env python3 + +import argparse +import json +import os +import re +import subprocess +import sys +from collections import OrderedDict + +script_dir = os.path.dirname(os.path.abspath(__file__)) +root_dir = os.path.dirname(script_dir) +sys.path.append(root_dir) + +import emsdk # noqa + + +def version_key(version_string): + parts = re.split('[.-]', version_string) + key = [[int(part) for part in parts[:3]], -len(parts), parts[3:]] + return key + + +def main(): + if subprocess.check_output(['git', 'status', '--porcelain'], cwd=root_dir).strip(): + print('tree is not clean') + sys.exit(1) + + parser = argparse.ArgumentParser() + parser.add_argument('-r', '--release-hash') + parser.add_argument('-a', '--asserts-hash') + parser.add_argument('-v', '--new-version') + parser.add_argument('--gh-action', action='store_true') + options = parser.parse_args() + + release_info = emsdk.load_releases_info() + if options.new_version: + new_version = options.new_version + else: + new_version = version_key(release_info['aliases']['latest'])[0] + new_version[-1] += 1 + new_version = '.'.join(str(part) for part in new_version) + + asserts_hash = None + if options.release_hash: + new_hash = options.release_hash + asserts_hash = options.asserts_hash + else: + new_hash = emsdk.get_emscripten_releases_tot() + + print('Creating new release: %s -> %s' % (new_version, new_hash)) + release_info['releases'][new_version] = new_hash + if asserts_hash: + asserts_name = new_version + '-asserts' + release_info['releases'][asserts_name] = asserts_hash + + releases = [(k, v) for k, v in release_info['releases'].items()] + releases.sort(key=lambda pair: version_key(pair[0])) + + release_info['releases'] = OrderedDict(reversed(releases)) + release_info['aliases']['latest'] = new_version + + with open(os.path.join(root_dir, 'emscripten-releases-tags.json'), 'w') as f: + f.write(json.dumps(release_info, indent=2)) + f.write('\n') + + subprocess.check_call( + [sys.executable, os.path.join(script_dir, 'update_bazel_workspace.py')], + cwd=root_dir) + + branch_name = 'version_' + new_version + + if options.gh_action: # For GitHub Actions workflows + with open(os.environ['GITHUB_ENV'], 'a') as f: + f.write(f'RELEASE_VERSION={new_version}') + else: # Local use + # Create a new git branch + subprocess.check_call(['git', 'checkout', '-b', branch_name, 'origin/main'], cwd=root_dir) + + # Create auto-generated changes to the new git branch + subprocess.check_call(['git', 'add', '-u', '.'], cwd=root_dir) + subprocess.check_call(['git', 'commit', '-m', new_version], cwd=root_dir) + print('New release created in branch: `%s`' % branch_name) + + # Push new branch to origin + subprocess.check_call(['git', 'push', 'origin', branch_name], cwd=root_dir) + + return 0 + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/scripts/get_emscripten_revision_info.py b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/scripts/get_emscripten_revision_info.py new file mode 100755 index 0000000..d0ad76e --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/scripts/get_emscripten_revision_info.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python3 + +import json +import os +import subprocess +import sys + +EMSCRIPTEN_RELEASES_GIT = 'https://chromium.googlesource.com/emscripten-releases' +TAGFILE = 'emscripten-releases-tags.json' + + +def get_latest_hash(tagfile): + with open(tagfile) as f: + versions = json.load(f) + latest = versions['aliases']['latest'] + return versions['releases'][latest] + + +def get_latest_emscripten(tagfile): + latest = get_latest_hash(tagfile) + if not os.path.isdir('emscripten-releases'): + subprocess.run(['git', 'clone', EMSCRIPTEN_RELEASES_GIT, '--depth', + '100'], check=True) + # This will fail if the 'latest' revision is not within the most recent + # 100 commits; but that shouldn't happen because this script is intended + # to be run right after a release is added. + info = subprocess.run(['emscripten-releases/src/release-info.py', + 'emscripten-releases', latest], + stdout=subprocess.PIPE, check=True, text=True).stdout + for line in info.split('\n'): + tokens = line.split() + if len(tokens) and tokens[0] == 'emscripten': + return tokens[2] + + +if __name__ == '__main__': + emscripten_hash = get_latest_emscripten(TAGFILE) + print('Emscripten revision ' + emscripten_hash) + if 'GITHUB_ENV' in os.environ: + with open(os.environ['GITHUB_ENV'], 'a') as f: + f.write(f'EMSCRIPTEN_HASH={emscripten_hash}') + sys.exit(0) + print('Not a GitHub Action') + sys.exit(1) diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/scripts/get_release_info.py b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/scripts/get_release_info.py new file mode 100755 index 0000000..016a0ae --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/scripts/get_release_info.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python3 + +import json +import sys + + +def get_latest(tagfile): + with open(tagfile) as f: + versions = json.load(f) + print(versions['aliases']['latest']) + return 0 + + +def get_hash(tagfile, version): + with open(tagfile) as f: + versions = json.load(f) + print(versions['releases'][version]) + return 0 + + +if __name__ == '__main__': + if sys.argv[2] == 'latest': + sys.exit(get_latest(sys.argv[1])) + if sys.argv[2] == 'hash': + sys.exit(get_hash(sys.argv[1], sys.argv[3])) diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/scripts/update_bazel_workspace.py b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/scripts/update_bazel_workspace.py new file mode 100755 index 0000000..637c355 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/scripts/update_bazel_workspace.py @@ -0,0 +1,87 @@ +#!/usr/bin/env python3 +# This script will update emsdk/bazel/revisions.bzl to the latest version of +# emscripten. It reads emsdk/emscripten-releases-tags.json to get the latest +# version number. Then, it downloads the prebuilts for that version and computes +# the sha256sum for the archive. It then puts all this information into the +# emsdk/bazel/revisions.bzl file. + +import hashlib +import json +import os +import re +import requests +import sys + +STORAGE_URL = 'https://storage.googleapis.com/webassembly/emscripten-releases-builds' + +EMSDK_ROOT = os.path.dirname(os.path.dirname(__file__)) +RELEASES_TAGS_FILE = EMSDK_ROOT + '/emscripten-releases-tags.json' +BAZEL_REVISIONS_FILE = EMSDK_ROOT + '/bazel/revisions.bzl' +BAZEL_MODULE_FILE = EMSDK_ROOT + '/bazel/MODULE.bazel' + + +def get_latest_info(): + with open(RELEASES_TAGS_FILE) as f: + info = json.load(f) + latest = info['aliases']['latest'] + return latest, info['releases'][latest] + + +def get_sha(platform, archive_fmt, latest_hash, arch_suffix=''): + r = requests.get(f'{STORAGE_URL}/{platform}/{latest_hash}/wasm-binaries{arch_suffix}.{archive_fmt}') + r.raise_for_status() + print(f'Fetching {r.url}') + h = hashlib.new('sha256') + for chunk in r.iter_content(chunk_size=1024): + h.update(chunk) + return h.hexdigest() + + +def revisions_item(version, latest_hash): + return f'''\ + "{version}": struct( + hash = "{latest_hash}", + sha_linux = "{get_sha('linux', 'tar.xz', latest_hash)}", + sha_linux_arm64 = "{get_sha('linux', 'tar.xz', latest_hash, '-arm64')}", + sha_mac = "{get_sha('mac', 'tar.xz', latest_hash)}", + sha_mac_arm64 = "{get_sha('mac', 'tar.xz', latest_hash, '-arm64')}", + sha_win = "{get_sha('win', 'zip', latest_hash)}", + ), +''' + + +def insert_revision(item): + with open(BAZEL_REVISIONS_FILE, 'r') as f: + lines = f.readlines() + + lines.insert(lines.index('EMSCRIPTEN_TAGS = {\n') + 1, item) + + with open(BAZEL_REVISIONS_FILE, 'w') as f: + f.write(''.join(lines)) + + +def update_module_version(version): + with open(BAZEL_MODULE_FILE, 'r') as f: + content = f.read() + + pattern = r'(module\(\s*name = "emsdk",\s*version = )"\d+.\d+.\d+",\n\)' + # Verify that the pattern exists in the input since re.sub will + # will succeed either way. + assert re.search(pattern, content) + content = re.sub(pattern, fr'\1"{version}",\n)', content) + + with open(BAZEL_MODULE_FILE, 'w') as f: + f.write(content) + + +def main(argv): + version, latest_hash = get_latest_info() + update_module_version(version) + item = revisions_item(version, latest_hash) + print('inserting item:') + print(item) + insert_revision(item) + + +if __name__ == '__main__': + sys.exit(main(sys.argv)) diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/scripts/update_node.py b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/scripts/update_node.py new file mode 100755 index 0000000..774c38a --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/scripts/update_node.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python3 +# Copyright 2020 The Emscripten Authors. All rights reserved. +# Emscripten is available under two separate licenses, the MIT license and the +# University of Illinois/NCSA Open Source License. Both these licenses can be +# found in the LICENSE file. + +"""Updates the node binaries that we cache store at +http://storage.google.com/webassembly. + +For the windows version we also alter the directory layout to add the 'bin' +directory. +""" + +import urllib.request +import subprocess +import sys +import os +import shutil +from zip import unzip_cmd, zip_cmd + +version = '20.18.0' +base = 'https://nodejs.org/dist/v20.18.0/' +upload_base = 'gs://webassembly/emscripten-releases-builds/deps/' + +suffixes = [ + '-win-x86.zip', + '-win-x64.zip', + '-win-arm64.zip', + '-darwin-x64.tar.gz', + '-darwin-arm64.tar.gz', + '-linux-x64.tar.xz', + '-linux-arm64.tar.xz', + '-linux-armv7l.tar.xz', +] + +for suffix in suffixes: + filename = 'node-v%s%s' % (version, suffix) + download_url = base + filename + print('Downloading: ' + download_url) + urllib.request.urlretrieve(download_url, filename) + + if '-win-' in suffix: + subprocess.check_call(unzip_cmd() + [filename]) + dirname = os.path.splitext(os.path.basename(filename))[0] + shutil.move(dirname, 'bin') + os.mkdir(dirname) + shutil.move('bin', dirname) + os.remove(filename) + subprocess.check_call(zip_cmd() + [filename, dirname]) + shutil.rmtree(dirname) + + if '--upload' in sys.argv: + upload_url = upload_base + filename + print('Uploading: ' + upload_url) + cmd = ['gsutil', 'cp', '-n', filename, upload_url] + print(' '.join(cmd)) + subprocess.check_call(cmd) + os.remove(filename) diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/scripts/update_python.py b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/scripts/update_python.py new file mode 100755 index 0000000..a37b701 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/scripts/update_python.py @@ -0,0 +1,175 @@ +#!/usr/bin/env python3 +# Copyright 2020 The Emscripten Authors. All rights reserved. +# Emscripten is available under two separate licenses, the MIT license and the +# University of Illinois/NCSA Open Source License. Both these licenses can be +# found in the LICENSE file. + +"""Updates the python binaries that we cache store at +http://storage.google.com/webassembly. + +We only supply binaries for windows and macOS, but we do it very different ways for those two OSes. + +Windows recipe: + 1. Download the "embeddable zip file" version of python from python.org + 2. Remove .pth file to work around https://bugs.python.org/issue34841 + 3. Download and install pywin32 in the `site-packages` directory + 4. Re-zip and upload to storage.google.com + +macOS recipe: + 1. Clone cpython + 2. Use homebrew to install and configure openssl (for static linking!) + 3. Build cpython from source and use `make install` to create archive. +""" + +import glob +import multiprocessing +import os +import platform +import urllib.request +import shutil +import subprocess +import sys +from subprocess import check_call +from zip import unzip_cmd, zip_cmd + +version = '3.9.2' +major_minor_version = '.'.join(version.split('.')[:2]) # e.g. '3.9.2' -> '3.9' +download_url = 'https://www.nuget.org/api/v2/package/python/%s' % version +# This is not part of official Python version, but a repackaging number appended by emsdk +# when a version of Python needs to be redownloaded. +revision = '4' + +pywin32_version = '227' +pywin32_base = 'https://github.com/mhammond/pywin32/releases/download/b%s/' % pywin32_version + +upload_base = 'gs://webassembly/emscripten-releases-builds/deps/' + + +def make_python_patch(): + pywin32_filename = 'pywin32-%s.win-amd64-py%s.exe' % (pywin32_version, major_minor_version) + filename = 'python-%s-amd64.zip' % (version) + out_filename = 'python-%s-%s-amd64+pywin32.zip' % (version, revision) + if not os.path.exists(pywin32_filename): + url = pywin32_base + pywin32_filename + print('Downloading pywin32: ' + url) + urllib.request.urlretrieve(url, pywin32_filename) + + if not os.path.exists(filename): + print(f'Downloading python: {download_url} to {filename}') + urllib.request.urlretrieve(download_url, filename) + + os.mkdir('python-nuget') + check_call(unzip_cmd() + [os.path.abspath(filename)], cwd='python-nuget') + os.remove(filename) + + os.mkdir('pywin32') + rtn = subprocess.call(unzip_cmd() + [os.path.abspath(pywin32_filename)], cwd='pywin32') + assert rtn in [0, 1] + + os.mkdir(os.path.join('python-nuget', 'lib')) + shutil.move(os.path.join('pywin32', 'PLATLIB'), os.path.join('python-nuget', 'toolss', 'Lib', 'site-packages')) + + check_call(zip_cmd() + [os.path.join('..', '..', out_filename), '.'], cwd='python-nuget/tools') + print('Created: %s' % out_filename) + + # cleanup if everything went fine + shutil.rmtree('python-nuget') + shutil.rmtree('pywin32') + + if '--upload' in sys.argv: + upload_url = upload_base + out_filename + print('Uploading: ' + upload_url) + cmd = ['gsutil', 'cp', '-n', out_filename, upload_url] + print(' '.join(cmd)) + check_call(cmd) + + +def build_python(): + if sys.platform.startswith('darwin'): + # Take some rather drastic steps to link openssl and liblzma statically + # and avoid linking libintl completely. + osname = 'macos' + check_call(['brew', 'install', 'openssl', 'xz', 'pkg-config']) + if platform.machine() == 'x86_64': + prefix = '/usr/local' + min_macos_version = '10.11' + elif platform.machine() == 'arm64': + prefix = '/opt/homebrew' + min_macos_version = '11.0' + + # Append '-x86_64' or '-arm64' depending on current arch. (TODO: Do + # this for Linux too, move this below?) + osname += '-' + platform.machine() + + for f in [os.path.join(prefix, 'lib', 'libintl.dylib'), + os.path.join(prefix, 'include', 'libintl.h'), + os.path.join(prefix, 'opt', 'xz', 'lib', 'liblzma.dylib'), + os.path.join(prefix, 'opt', 'openssl', 'lib', 'libssl.dylib'), + os.path.join(prefix, 'opt', 'openssl', 'lib', 'libcrypto.dylib')]: + if os.path.exists(f): + os.remove(f) + os.environ['PKG_CONFIG_PATH'] = os.path.join(prefix, 'opt', 'openssl', 'lib', 'pkgconfig') + else: + osname = 'linux' + + src_dir = 'cpython' + if not os.path.exists(src_dir): + check_call(['git', 'clone', 'https://github.com/python/cpython']) + check_call(['git', 'checkout', 'v' + version], cwd=src_dir) + + env = os.environ + if sys.platform.startswith('darwin'): + # Specify the min OS version we want the build to work on + min_macos_version_line = '-mmacosx-version-min=' + min_macos_version + build_flags = min_macos_version_line + ' -Werror=partial-availability' + # Build against latest SDK, but issue an error if using any API that would not work on the min OS version + env = env.copy() + env['MACOSX_DEPLOYMENT_TARGET'] = min_macos_version + configure_args = ['CFLAGS=' + build_flags, 'CXXFLAGS=' + build_flags, 'LDFLAGS=' + min_macos_version_line] + else: + configure_args = [] + check_call(['./configure'] + configure_args, cwd=src_dir, env=env) + check_call(['make', '-j', str(multiprocessing.cpu_count())], cwd=src_dir, env=env) + check_call(['make', 'install', 'DESTDIR=install'], cwd=src_dir, env=env) + + install_dir = os.path.join(src_dir, 'install') + + # Install requests module. This is needed in particular on macOS to ensure + # SSL certificates are available (certifi in installed and used by requests). + pybin = os.path.join(src_dir, 'install', 'usr', 'local', 'bin', 'python3') + pip = os.path.join(src_dir, 'install', 'usr', 'local', 'bin', 'pip3') + check_call([pybin, '-m', 'ensurepip', '--upgrade']) + check_call([pybin, pip, 'install', 'requests==2.32.3']) + + # Install psutil module. This is needed by emrun to track when browser + # process quits. + check_call([pybin, pip, 'install', 'psutil']) + + dirname = 'python-%s-%s' % (version, revision) + if os.path.isdir(dirname): + print('Erasing old build directory ' + dirname) + shutil.rmtree(dirname) + os.rename(os.path.join(install_dir, 'usr', 'local'), dirname) + tarball = 'python-%s-%s-%s.tar.gz' % (version, revision, osname) + shutil.rmtree(os.path.join(dirname, 'lib', 'python' + major_minor_version, 'test')) + shutil.rmtree(os.path.join(dirname, 'include')) + for lib in glob.glob(os.path.join(dirname, 'lib', 'lib*.a')): + os.remove(lib) + check_call(['tar', 'zcvf', tarball, dirname]) + + print('Created: %s' % tarball) + if '--upload' in sys.argv: + print('Uploading: ' + upload_base + tarball) + check_call(['gsutil', 'cp', '-n', tarball, upload_base + tarball]) + + +def main(): + if sys.platform.startswith('win') or '--win32' in sys.argv: + make_python_patch() + else: + build_python() + return 0 + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/scripts/zip.py b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/scripts/zip.py new file mode 100644 index 0000000..1b52a81 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/scripts/zip.py @@ -0,0 +1,19 @@ +import os + + +def unzip_cmd(): + # Use 7-Zip if available (https://www.7-zip.org/) + sevenzip = os.path.join(os.getenv('ProgramFiles', ''), '7-Zip', '7z.exe') + if os.path.isfile(sevenzip): + return [sevenzip, 'x'] + # Fall back to 'unzip' tool + return ['unzip', '-q'] + + +def zip_cmd(): + # Use 7-Zip if available (https://www.7-zip.org/) + sevenzip = os.path.join(os.getenv('ProgramFiles', ''), '7-Zip', '7z.exe') + if os.path.isfile(sevenzip): + return [sevenzip, 'a', '-mx9'] + # Fall back to 'zip' tool + return ['zip', '-rq'] diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test.bat b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test.bat new file mode 100644 index 0000000..c39bb3c --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test.bat @@ -0,0 +1,7 @@ +:: equivalent of test.sh as windows bat file +set PATH=%PATH%;%PYTHON_BIN% +CALL emsdk install latest +CALL emsdk activate latest +CALL emsdk_env.bat +CALL python -c "import sys; print(sys.executable)" +CALL emcc.bat -v diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test.py b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test.py new file mode 100755 index 0000000..6d57881 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test.py @@ -0,0 +1,279 @@ +#!/usr/bin/env python3 +import json +import os +import platform +import shutil +import subprocess +import sys +import tempfile +import unittest + +WINDOWS = sys.platform.startswith('win') +MACOS = sys.platform == 'darwin' +MACOS_ARM64 = MACOS and platform.machine() == 'arm64' + +emconfig = os.path.abspath('.emscripten') +assert os.path.exists(emconfig) + +upstream_emcc = os.path.join('upstream', 'emscripten', 'emcc') +emsdk = './emsdk' +if WINDOWS: + upstream_emcc += '.bat' + emsdk = 'emsdk.bat' +else: + emsdk = './emsdk' + +# Utilities + + +def listify(x): + if type(x) in {list, tuple}: + return x + return [x] + + +def check_call(cmd, **args): + if type(cmd) is not list: + cmd = cmd.split() + print('running: %s' % cmd) + args['universal_newlines'] = True + subprocess.check_call(cmd, **args) + + +def checked_call_with_output(cmd, expected=None, unexpected=None, stderr=None, env=None): + cmd = cmd.split(' ') + print('running: %s' % cmd) + try: + stdout = subprocess.check_output(cmd, stderr=stderr, universal_newlines=True, env=env) + except subprocess.CalledProcessError as e: + print(e.stderr) + print(e.stdout) + raise e + + if expected: + for x in listify(expected): + assert x in stdout, 'expected output missing: ' + stdout + '\n[[[' + x + ']]]' + if unexpected: + for x in listify(unexpected): + assert x not in stdout, 'unexpected output present: ' + stdout + '\n[[[' + x + ']]]' + + +def failing_call_with_output(cmd, expected, env=None): + proc = subprocess.Popen(cmd.split(' '), stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True, env=env) + stdout, stderr = proc.communicate() + if WINDOWS: + print('warning: skipping part of failing_call_with_output() due to error codes not being propagated (see #592)') + else: + assert proc.returncode, 'call must have failed: ' + str([stdout, '\n========\n', stderr]) + assert expected in stdout or expected in stderr, 'call did not have the expected output: %s: %s' % (expected, str([stdout, '\n========\n', stderr])) + + +def hack_emsdk(marker, replacement): + with open('emsdk.py') as f: + src = f.read() + assert marker in src + src = src.replace(marker, replacement) + name = '__test_emsdk' + with open(name, 'w') as f: + f.write(src) + return name + + +# Set up + +TAGS = json.loads(open('emscripten-releases-tags.json').read()) + +# Tests + + +def do_lib_building(emcc): + cache_building_messages = ['generating system library: '] + + def do_build(args, is_expected=None): + unexpected = None + expected = None + if is_expected is True: + expected = cache_building_messages + elif is_expected is False: + unexpected = cache_building_messages + checked_call_with_output(emcc + ' hello_world.c' + args, + expected=expected, + unexpected=unexpected, + stderr=subprocess.STDOUT) + + # The emsdk ships all system libraries so we don't expect to see any + # cache population unless we explicly --clear-cache. + do_build('', is_expected=False) + check_call(emcc + ' --clear-cache') + do_build(' -O2', is_expected=True) + # Do another build at -O0. In nwers SDK versions this generates + # different libs, but not in older ones so don't assert here. + do_build('') + # Now verify that libs are *not* build + do_build(' -s WASM=0', is_expected=False) + do_build(' -O2 -s WASM=0', is_expected=False) + + +def run_emsdk(cmd): + if type(cmd) is not list: + cmd = cmd.split() + check_call([emsdk] + cmd) + + +class Emsdk(unittest.TestCase): + @classmethod + def setUpClass(cls): + with open('hello_world.c', 'w') as f: + f.write('''\ +#include + +int main() { + printf("Hello, world!\\n"); + return 0; +} +''') + + def setUp(self): + run_emsdk('install latest') + run_emsdk('activate latest') + + def test_unknown_arch(self): + env = os.environ.copy() + env['EMSDK_ARCH'] = 'mips' + failing_call_with_output(emsdk + ' install latest', + expected='unknown machine architecture: mips', + env=env) + + def test_wrong_bitness(self): + env = os.environ.copy() + env['EMSDK_ARCH'] = 'x86' + failing_call_with_output(emsdk + ' install sdk-latest-64bit', + expected='is only provided for 64-bit OSe', + env=env) + + def test_already_installed(self): + # Test we don't re-download unnecessarily + checked_call_with_output(emsdk + ' install latest', expected='already installed', unexpected='Downloading:') + + def test_list(self): + # Test we report installed tools properly. The latest version should be + # installed, but not some random old one. + checked_call_with_output(emsdk + ' list', expected=TAGS['aliases']['latest'] + ' INSTALLED', unexpected='1.39.15 INSTALLED:') + + def test_config_contents(self): + print('test .emscripten contents') + with open(emconfig) as f: + config = f.read() + assert 'upstream' in config + + def test_lib_building(self): + print('building proper system libraries') + do_lib_building(upstream_emcc) + + def test_redownload(self): + print('go back to using upstream') + run_emsdk('activate latest') + + # Test the normal tools like node don't re-download on re-install + print('another install must re-download') + checked_call_with_output(emsdk + ' uninstall node-20.18.0-64bit') + checked_call_with_output(emsdk + ' install node-20.18.0-64bit', expected='Downloading:', unexpected='already installed') + checked_call_with_output(emsdk + ' install node-20.18.0-64bit', unexpected='Downloading:', expected='already installed') + + def test_tot_upstream(self): + print('test update-tags') + run_emsdk('update-tags') + print('test tot-upstream') + run_emsdk('install tot-upstream') + with open(emconfig) as f: + config = f.read() + run_emsdk('activate tot-upstream') + with open(emconfig + '.old') as f: + old_config = f.read() + self.assertEqual(config, old_config) + # TODO; test on latest as well + check_call(upstream_emcc + ' hello_world.c') + + def test_closure(self): + # Specifically test with `--closure` so we know that node_modules is working + check_call(upstream_emcc + ' hello_world.c --closure=1') + + def test_specific_version(self): + if MACOS_ARM64: + self.skipTest('Old sdk versions do not have ARM64 binaries') + print('test specific release (new, short name)') + run_emsdk('install 1.38.33') + print('another install, but no need for re-download') + checked_call_with_output(emsdk + ' install 1.38.33', expected='Skipped', unexpected='Downloading:') + run_emsdk('activate 1.38.33') + + def test_specific_version_full(self): + if MACOS_ARM64: + self.skipTest('Old sdk versions do not have ARM64 binaries') + print('test specific release (new, full name)') + run_emsdk('install sdk-1.38.33-64bit') + run_emsdk('activate sdk-1.38.33-64bit') + print('test specific release (new, tag name)') + run_emsdk('install sdk-tag-1.38.33-64bit') + run_emsdk('activate sdk-tag-1.38.33-64bit') + + def test_binaryen_from_source(self): + if MACOS: + self.skipTest("https://github.com/WebAssembly/binaryen/issues/4299") + print('test binaryen source build') + run_emsdk(['install', '--build=Release', '--generator=Unix Makefiles', 'binaryen-main-64bit']) + + def test_no_32bit(self): + print('test 32-bit error') + emsdk_hacked = hack_emsdk('not is_os_64bit()', 'True') + failing_call_with_output('%s %s install latest' % (sys.executable, emsdk_hacked), + 'this tool is only provided for 64-bit OSes') + os.remove(emsdk_hacked) + + def test_update_no_git(self): + print('test non-git update') + + temp_dir = tempfile.mkdtemp() + for filename in os.listdir('.'): + if not filename.startswith('.') and not os.path.isdir(filename): + shutil.copy2(filename, os.path.join(temp_dir, filename)) + + olddir = os.getcwd() + try: + os.chdir(temp_dir) + run_emsdk('update') + + print('second time') + run_emsdk('update') + finally: + os.chdir(olddir) + + def test_install_arbitrary(self): + # Test that its possible to install arbrary emscripten-releases SDKs + run_emsdk('install 1b7f7bc6002a3ca73647f41fc10e1fac7f06f804') + + # Check that its not re-downloaded + checked_call_with_output(emsdk + ' install 1b7f7bc6002a3ca73647f41fc10e1fac7f06f804', expected='Skipped', unexpected='Downloading:') + + def test_install_tool(self): + # Test that its possible to install emscripten as tool instead of SDK + checked_call_with_output(emsdk + ' install releases-77b065ace39e6ab21446e13f92897f956c80476a', unexpected='Installing SDK') + + def test_activate_missing(self): + run_emsdk('install latest') + failing_call_with_output(emsdk + ' activate 2.0.1', expected="error: tool is not installed and therefore cannot be activated: 'releases-13e29bd55185e3c12802bc090b4507901856b2ba-64bit'") + + def test_keep_downloads(self): + env = os.environ.copy() + env['EMSDK_KEEP_DOWNLOADS'] = '1' + # With EMSDK_KEEP_DOWNLOADS the downloading should happen on the first + # install of 2.0.28, and again when we install 2.0.29, but not on the + # second install of 2.0.28 because the zip should already be local. + shutil.rmtree('downloads') + checked_call_with_output(emsdk + ' install 3.1.54', expected='Downloading:', env=env) + checked_call_with_output(emsdk + ' install 3.1.55', expected='Downloading:', env=env) + checked_call_with_output(emsdk + ' install 3.1.54', expected='already downloaded, skipping', unexpected='Downloading:', env=env) + + +if __name__ == '__main__': + unittest.main(verbosity=2) diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test.sh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test.sh new file mode 100755 index 0000000..5033fd9 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test.sh @@ -0,0 +1,47 @@ +#!/usr/bin/env bash + +echo "test the standard workflow (as close as possible to how a user would do it, in the shell)" +echo "machine: $(uname -m)" +echo "kernel: $(uname -s)" + +set -x +set -e + +# Test that arbitrary (non-released) versions can be installed and +# activated. +# This test cannot run on linux-arm64 because only certain binaries +# get uploaded for this architecture. +if [[ !($(uname -s) == "Linux" && $(uname -m) == "aarch64") ]]; then + ./emsdk install sdk-upstream-1b7f7bc6002a3ca73647f41fc10e1fac7f06f804 + ./emsdk activate sdk-upstream-1b7f7bc6002a3ca73647f41fc10e1fac7f06f804 + source ./emsdk_env.sh + which emcc + emcc -v +fi + +# Install an older version of the SDK that requires EM_CACHE to be +# set in the environment, so that we can test it is later removed +# This test only runs on x64 because we didn't build arm binaries +# when this older version of the SDK was built. +if [[ $(uname -m) == "x86_64" ]]; then + ./emsdk install sdk-1.39.15 + ./emsdk activate sdk-1.39.15 + source ./emsdk_env.sh + which emcc + emcc -v + test -n "$EM_CACHE" +fi + +# Install the latest version of the SDK which is the expected precondition +# of test.py. +./emsdk install latest +./emsdk activate latest +source ./emsdk_env.sh --build=Release +# Test that EM_CACHE was unset +test -z "$EM_CACHE" + +# On mac and windows python3 should be in the path and point to the +# bundled version. +which python3 +which emcc +emcc -v diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test_activation.ps1 b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test_activation.ps1 new file mode 100644 index 0000000..31a2c8e --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test_activation.ps1 @@ -0,0 +1,88 @@ +# This test installs emsdk and activates the latest toolchain using `--system` or `--permanent` flags, +# and checks if the environment variables and PATH are correctly updated. Set $env:SYSTEM_FLAG and $env:PERMANENT_FLAG to test each. +# If no flag is provided the process/shell values are tested. See the CI file for an example. + +refreshenv + +$repo_root = [System.IO.Path]::GetDirectoryName((resolve-path "$PSScriptRoot")) + +$PATH_USER_BEFORE = [System.Environment]::GetEnvironmentVariable("PATH", "User") +$PATH_MACHINE_BEFORE = [System.Environment]::GetEnvironmentVariable("PATH", "Machine") +$PATH_Process_BEFORE = [System.Environment]::GetEnvironmentVariable("PATH", "Process") + + +try { + + & "$repo_root/emsdk.ps1" install latest + + & "$repo_root/emsdk.ps1" activate latest $env:PERMANENT_FLAG $env:SYSTEM_FLAG + + if ($env:SYSTEM_FLAG) { + $env_type = "Machine" + } + elseif ($env:PERMANENT_FLAG) { + $env_type = "User" + } else { + $env_type = "Process" + } + + $EMSDK = [System.Environment]::GetEnvironmentVariable("EMSDK", $env_type) + $EMSDK_NODE = [System.Environment]::GetEnvironmentVariable("EMSDK_NODE", $env_type) + $EMSDK_PYTHON = [System.Environment]::GetEnvironmentVariable("EMSDK_PYTHON", $env_type) + $PATH = [System.Environment]::GetEnvironmentVariable("PATH", $env_type) + + if (!$EMSDK) { + throw "EMSDK is not set for the user" + } + if (!$EMSDK_NODE) { + throw "EMSDK_NODE is not set for the user" + } + if (!$EMSDK_PYTHON) { + throw "EMSDK_PYTHON is not set for the user" + } + + + $path_split = $PATH.Split(';') + + $EMSDK_Path = $path_split | Where-Object { $_ -like "$repo_root*" } + if (!$EMSDK_Path) { + throw "No path is added!" + } + + $EMSDK_UPSTREAM_Path = $path_split | Where-Object { $_ -like "$repo_root\upstream\emscripten*" } + if (!$EMSDK_UPSTREAM_Path) { + throw "$repo_root\\upstream\emscripten is not added to path." + } + + +} +finally { + # Recover pre-split PATH + refreshenv + + [Environment]::SetEnvironmentVariable("Path", $PATH_USER_BEFORE, "User") + try { + [Environment]::SetEnvironmentVariable("Path", $PATH_MACHINE_BEFORE, "Machine") + } + catch {} + + [Environment]::SetEnvironmentVariable("Path", $PATH_Process_BEFORE, "Process") + + # Recover pre activation env variables + [Environment]::SetEnvironmentVariable("EMSDK", $null, "User") + [Environment]::SetEnvironmentVariable("EMSDK_NODE", $null, "User") + [Environment]::SetEnvironmentVariable("EMSDK_PYTHON", $null, "User") + + try { + [Environment]::SetEnvironmentVariable("EMSDK", $null, "Machine") + [Environment]::SetEnvironmentVariable("EMSDK_NODE", $null, "Machine") + [Environment]::SetEnvironmentVariable("EMSDK_PYTHON", $null, "Machine") + } catch {} + + + [Environment]::SetEnvironmentVariable("EMSDK", $null, "Process") + [Environment]::SetEnvironmentVariable("EMSDK_NODE", $null, "Process") + [Environment]::SetEnvironmentVariable("EMSDK_PYTHON", $null, "Process") + + refreshenv +} diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test_bazel.ps1 b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test_bazel.ps1 new file mode 100644 index 0000000..5c20a15 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test_bazel.ps1 @@ -0,0 +1,30 @@ +$ErrorActionPreference = 'Stop' + +Set-Location bazel + +bazel build //hello-world:hello-world-wasm +if (-not $?) { Exit $LastExitCode } + +bazel build //hello-world:hello-world-wasm-simd +if (-not $?) { Exit $LastExitCode } + +Set-Location test_external + +bazel build //:hello-world-wasm +if (-not $?) { Exit $LastExitCode } + +bazel build //long_command_line:long_command_line_wasm +if (-not $?) { Exit $LastExitCode } + +bazel build //:hello-embind-wasm --compilation_mode dbg # debug +if (-not $?) { Exit $LastExitCode } + +# Test use of the closure compiler +bazel build //:hello-embind-wasm --compilation_mode opt # release +if (-not $?) { Exit $LastExitCode } + +Set-Location ..\test_secondary_lto_cache + +bazel build //:hello-world-wasm +if (-not $?) { Exit $LastExitCode } + diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test_bazel.sh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test_bazel.sh new file mode 100755 index 0000000..682866f --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test_bazel.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +echo "test bazel" + +set -x +set -e + +# Get the latest version number from emscripten-releases-tag.json. +VER=$(scripts/get_release_info.py emscripten-releases-tags.json latest) + +# Based on the latest version number, get the commit hash for that version. +HASH=$(scripts/get_release_info.py emscripten-releases-tags.json hash ${VER}) + +FAILMSG="!!! scripts/update_bazel_workspace.py needs to be run !!!" + +# Ensure the WORKSPACE file is up to date with the latest version. +grep ${VER} bazel/revisions.bzl || (echo ${FAILMSG} && false) +grep ${HASH} bazel/revisions.bzl || (echo ${FAILMSG} && false) +grep ${VER} bazel/MODULE.bazel || (echo ${FAILMSG} && false) + +cd bazel +bazel build //hello-world:hello-world-wasm +bazel build //hello-world:hello-world-wasm-simd + +cd test_external +bazel build //:hello-world-wasm +bazel build //long_command_line:long_command_line_wasm +bazel build //:hello-embind-wasm --compilation_mode dbg # debug + +# Test use of the closure compiler +bazel build //:hello-embind-wasm --compilation_mode opt # release +# This function should not be minified if the externs file is loaded correctly. +grep "customJSFunctionToTestClosure" bazel-bin/hello-embind-wasm/hello-embind.js + +cd ../test_secondary_lto_cache +bazel build //:hello-world-wasm diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test_bazel_mac.sh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test_bazel_mac.sh new file mode 100755 index 0000000..e27c657 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test_bazel_mac.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +echo "test bazel" + +set -x +set -e + +# Get the latest version number from emscripten-releases-tag.json. +VER=$(scripts/get_release_info.py emscripten-releases-tags.json latest) + +# Based on the latest version number, get the commit hash for that version. +HASH=$(scripts/get_release_info.py emscripten-releases-tags.json hash ${VER}) + +FAILMSG="!!! scripts/update_bazel_workspace.py needs to be run !!!" + +# Ensure the WORKSPACE file is up to date with the latest version. +grep ${VER} bazel/revisions.bzl || (echo ${FAILMSG} && false) +grep ${HASH} bazel/revisions.bzl || (echo ${FAILMSG} && false) +grep ${VER} bazel/MODULE.bazel || (echo ${FAILMSG} && false) + +cd bazel +bazel build //hello-world:hello-world-wasm +bazel build //hello-world:hello-world-wasm-simd + +cd test_external +bazel build //long_command_line:long_command_line_wasm +bazel build //:hello-world-wasm + +cd ../test_secondary_lto_cache +bazel build //:hello-world-wasm + diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test_node_path.sh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test_node_path.sh new file mode 100755 index 0000000..582152b --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test_node_path.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +echo "Test that node is added to that PATH if, and only if, it is not one already present". + +if [ -n "$EMSDK" ]; then + echo "EMSDK is already defined in this shell. Run tests in a shell without sourcing emsdk_env.sh first" + exit 1 +fi + +DIR=$(dirname "$BASH_SOURCE") +cd $DIR/.. + +./emsdk install latest +./emsdk activate latest + +if which node; then + echo "Test should be run without node in the path" + exit 1 +fi + +# Run emsdk_env.sh and confirm that node was added to the PATH +. emsdk_env.sh + +if ! which node; then + echo "node not found in path after emsdk_env.sh" + exit 1 +fi + +# Run emsdk_env.sh again and confirm that node is still in the PATH +. emsdk_env.sh + +if ! which node; then + echo "node not found in path after emsdk_env.sh" + exit 1 +fi diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test_path_preservation.ps1 b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test_path_preservation.ps1 new file mode 100644 index 0000000..0391b63 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test_path_preservation.ps1 @@ -0,0 +1,142 @@ +# This test installs emsdk and activates the latest toolchain using `--system` or `--permanent` flags, +# and checks if parts of PATH are lost or overwritten. Set $env:SYSTEM_FLAG and $env:PERMANENT_FLAG to test each. +# If no flag is provided the process/shell values are tested. See the CI file for an example. + +refreshenv + +$repo_root = [System.IO.Path]::GetDirectoryName((resolve-path "$PSScriptRoot")) + +$PATH_USER_BEFORE = [System.Environment]::GetEnvironmentVariable("PATH", "User") +$PATH_MACHINE_BEFORE = [System.Environment]::GetEnvironmentVariable("PATH", "Machine") +$PATH_Process_BEFORE = [System.Environment]::GetEnvironmentVariable("PATH", "Process") + +try { + + + & "$repo_root/emsdk.ps1" install latest + + $esc = '--%' + & "$repo_root/emsdk.ps1" activate latest $esc $env:PERMANENT_FLAG $env:SYSTEM_FLAG + + $PATH_USER = [System.Environment]::GetEnvironmentVariable("PATH", "User") + $PATH_MACHINE = [System.Environment]::GetEnvironmentVariable("PATH", "Machine") + $PATH_Process = [System.Environment]::GetEnvironmentVariable("PATH", "Process") + + if ($env:SYSTEM_FLAG) { + echo "--system test............................." + $path_before_arr = $PATH_MACHINE_BEFORE.Split(';') + $path_arr = $PATH_MACHINE.Split(';') + } + elseif ($env:PERMANENT_FLAG) { + echo "--permanent test.........................." + $path_before_arr = $PATH_USER_BEFORE.Split(';') + $path_arr = $PATH_USER.Split(';') + } else { + echo "no flag test (shell/process).............." + $path_before_arr = $PATH_Process_BEFORE.Split(';') + $path_arr = $PATH_Process.Split(';') + } + + + $EMSDK_Path = $path_arr | Where-Object { $_ -like "$repo_root*" } + $EMSDK_NODE_Path = $path_arr | Where-Object { $_ -like "$repo_root\node*" } + $EMSDK_PYTHON_Path = $path_arr | Where-Object { $_ -like "$repo_root\python*" } + $EMSDK_JAVA_Path = $path_arr | Where-Object { $_ -like "$repo_root\java*" } + $EMSDK_UPSTREAM_Path = $path_arr | Where-Object { $_ -like "$repo_root\upstream\emscripten*" } + + $number_of_items = $path_arr.count + [System.Collections.ArrayList]$rest_of_path = @() + Foreach ($item in $path_arr) { + if ( + ($item -like "$repo_root*") -or + ($item -like "$repo_root\node*") -or + ($item -like "$repo_root\python*") -or + ($item -like "$repo_root\java*") -or + ($item -like "$repo_root\upstream\emscripten*") + ) { + echo "$item is on the PATH" + } + else { + $rest_of_path.add($item) | Out-Null + } + } + + # compare the PATHs before activation and after activation + if (Compare-Object -ReferenceObject $path_before_arr -DifferenceObject $rest_of_path ) { + echo "Old path is ............................." + echo $path_before_arr + echo "Current rest of path is ................." + echo $rest_of_path + throw "some parts of PATH are removed" + } + + # Compare the other untouched PATH + if ($env:SYSTEM_FLAG) { + if (Compare-Object -ReferenceObject $PATH_USER_BEFORE.Split(';') -DifferenceObject $PATH_USER.Split(';') ) { + echo "Old user path is ...................." + echo $PATH_USER_BEFORE + echo "Current user path is ................" + echo $PATH_USER + throw "User PATH are changed while --system had been provided" + } + } + elseif ($env:PERMANENT_FLAG) { + if (Compare-Object -ReferenceObject $PATH_MACHINE_BEFORE.Split(';') -DifferenceObject $PATH_MACHINE.Split(';') ) { + echo "Old machine path is.................." + echo $PATH_MACHINE_BEFORE + echo "Current machine path is.............." + echo $PATH_MACHINE + throw "MACHINE PATH are changed while --system was not provided" + } + } else { + if ( + (Compare-Object -ReferenceObject $PATH_MACHINE_BEFORE.Split(';') -DifferenceObject $PATH_MACHINE.Split(';')) -or + (Compare-Object -ReferenceObject $PATH_MACHINE_BEFORE.Split(';') -DifferenceObject $PATH_MACHINE.Split(';')) + ) { + echo "Old machine path is.................." + echo $PATH_MACHINE_BEFORE + echo "Current machine path is.............." + echo $PATH_MACHINE + echo "Old user path is ...................." + echo $PATH_USER_BEFORE + echo "Current user path is ................" + echo $PATH_USER + throw "MACHINE/USER PATH are changed while no flag was provided" + } + } + + + + +} +finally { + # Recover pre-split PATH + refreshenv + + [Environment]::SetEnvironmentVariable("Path", $PATH_USER_BEFORE, "User") + try { + [Environment]::SetEnvironmentVariable("Path", $PATH_MACHINE_BEFORE, "Machine") + } + catch {} + + [Environment]::SetEnvironmentVariable("Path", $PATH_Process_BEFORE, "Process") + + # Recover pre activation env variables + [Environment]::SetEnvironmentVariable("EMSDK", $null, "User") + [Environment]::SetEnvironmentVariable("EMSDK_NODE", $null, "User") + [Environment]::SetEnvironmentVariable("EMSDK_PYTHON", $null, "User") + + try { + [Environment]::SetEnvironmentVariable("EMSDK", $null, "Machine") + [Environment]::SetEnvironmentVariable("EMSDK_NODE", $null, "Machine") + [Environment]::SetEnvironmentVariable("EMSDK_PYTHON", $null, "Machine") + } catch {} + + + [Environment]::SetEnvironmentVariable("EMSDK", $null, "Process") + [Environment]::SetEnvironmentVariable("EMSDK_NODE", $null, "Process") + [Environment]::SetEnvironmentVariable("EMSDK_PYTHON", $null, "Process") + + refreshenv + +} diff --git a/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test_source_env.sh b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test_source_env.sh new file mode 100755 index 0000000..71a3e40 --- /dev/null +++ b/zig-pkg/N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ/test/test_source_env.sh @@ -0,0 +1,132 @@ +#!/usr/bin/env bash + +echo "Test ability to source emsdk_env.sh in different shells" + +if [ -n "$EMSDK" ]; then + echo "EMSDK is already defined in this shell. Run tests in a shell without sourcing emsdk_env.sh first" + exit 1 +fi + +DIR=$(dirname "$BASH_SOURCE") + +# setup a symlink relative to the current dir +REL_LINK_DIR="$DIR/tmp" +if [ -d "$REL_LINK_DIR" ]; then + rm -rf "$REL_LINK_DIR" +fi +echo "Creating links in $REL_LINK_DIR" +mkdir -p "$REL_LINK_DIR" +(cd $DIR/.. && ln -s `pwd` "$REL_LINK_DIR/emsdk") +(cd $DIR/.. && ln -s `pwd`/emsdk_env.sh "$REL_LINK_DIR") + +# setup a symlink in an absolute directory +ABS_LINK_DIR="/tmp/emsdk_env_test" +if [ -d "$ABS_LINK_DIR" ]; then + rm -rf "$ABS_LINK_DIR" +fi +echo "Creating links in $ABS_LINK_DIR" +mkdir -p "$ABS_LINK_DIR" +(cd $DIR/.. && ln -s `pwd` "$ABS_LINK_DIR/emsdk") +(cd $DIR/.. && ln -s `pwd`/emsdk_env.sh "$ABS_LINK_DIR") + +PATH1="$DIR/../emsdk_env.sh" +PATH2="$REL_LINK_DIR/emsdk/emsdk_env.sh" +PATH3="$REL_LINK_DIR/emsdk_env.sh" +PATH4="$ABS_LINK_DIR/emsdk/emsdk_env.sh" +PATH5="$ABS_LINK_DIR/emsdk_env.sh" + +assert_emcc() { + current=$1 + cmd=$2 + value=$3 + if [ -z "$value" ] || [ "$value" == "false" ]; then + echo "FAILED: $current" + echo " unable to get EMSDK in $current using '$cmd'" + else + echo "SUCCESS: $current testing $cmd" + echo " -> EMSDK = $value" + fi +} + +test_bash() { + value=$(bash --rcfile <(echo $1)) + assert_emcc bash "$1" "$value" +} + +test_zsh() { + value=$(zsh -d -c "$1") + assert_emcc zsh "$1" "$value" +} + +test_ksh() { + value=$(ksh -c "$1") + assert_emcc ksh "$1" "$value" +} + +it_tests_direct_path() { + TEST_SCRIPT=". ${PATH1}"' >/dev/null 2>&1; if [ -n "$EMSDK" ]; then echo "$EMSDK"; else echo false; fi ; exit' + test_bash "$TEST_SCRIPT" + test_zsh "$TEST_SCRIPT" + test_ksh "$TEST_SCRIPT" + TEST_SCRIPT="source ${PATH1}"' >/dev/null 2>&1; if [ -n "$EMSDK" ]; then echo "$EMSDK"; else echo false; fi ; exit' + test_bash "$TEST_SCRIPT" + test_zsh "$TEST_SCRIPT" + test_ksh "$TEST_SCRIPT" +} + +it_tests_via_relative_dir_symlink() { + TEST_SCRIPT=". ${PATH2}"' >/dev/null 2>&1; if [ -n "$EMSDK" ]; then echo "$EMSDK"; else echo false; fi ; exit' + test_bash "$TEST_SCRIPT" + test_zsh "$TEST_SCRIPT" + test_ksh "$TEST_SCRIPT" + TEST_SCRIPT="source ${PATH2}"' >/dev/null 2>&1; if [ -n "$EMSDK" ]; then echo "$EMSDK"; else echo false; fi ; exit' + test_bash "$TEST_SCRIPT" + test_zsh "$TEST_SCRIPT" + test_ksh "$TEST_SCRIPT" +} + +it_tests_via_relative_file_symlink() { + TEST_SCRIPT=". ${PATH3}"' >/dev/null 2>&1; if [ -n "$EMSDK" ]; then echo "$EMSDK"; else echo false; fi ; exit' + test_bash "$TEST_SCRIPT" + test_zsh "$TEST_SCRIPT" + test_ksh "$TEST_SCRIPT" + TEST_SCRIPT="source ${PATH3}"' >/dev/null 2>&1; if [ -n "$EMSDK" ]; then echo "$EMSDK"; else echo false; fi ; exit' + test_bash "$TEST_SCRIPT" + test_zsh "$TEST_SCRIPT" + test_ksh "$TEST_SCRIPT" +} + +it_tests_via_absolute_dir_symlink() { + TEST_SCRIPT=". ${PATH4}"' >/dev/null 2>&1; if [ -n "$EMSDK" ]; then echo "$EMSDK"; else echo false; fi ; exit' + test_bash "$TEST_SCRIPT" + test_zsh "$TEST_SCRIPT" + test_ksh "$TEST_SCRIPT" + TEST_SCRIPT="source ${PATH4}"' >/dev/null 2>&1; if [ -n "$EMSDK" ]; then echo "$EMSDK"; else echo false; fi ; exit' + test_bash "$TEST_SCRIPT" + test_zsh "$TEST_SCRIPT" + test_ksh "$TEST_SCRIPT" +} + +it_tests_via_absolute_file_symlink() { + TEST_SCRIPT=". ${PATH5}"' >/dev/null 2>&1; if [ -n "$EMSDK" ]; then echo "$EMSDK"; else echo false; fi ; exit' + test_bash "$TEST_SCRIPT" + test_zsh "$TEST_SCRIPT" + test_ksh "$TEST_SCRIPT" + TEST_SCRIPT="source ${PATH5}"' >/dev/null 2>&1; if [ -n "$EMSDK" ]; then echo "$EMSDK"; else echo false; fi ; exit' + test_bash "$TEST_SCRIPT" + test_zsh "$TEST_SCRIPT" + test_ksh "$TEST_SCRIPT" +} + +run_bash_tests() { + it_tests_direct_path + it_tests_via_relative_dir_symlink + it_tests_via_relative_file_symlink + it_tests_via_absolute_dir_symlink + it_tests_via_absolute_file_symlink +} + +run_bash_tests + +rm -rf $REL_LINK_DIR +rm -rf $ABS_LINK_DIR diff --git a/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/LICENSE b/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/LICENSE new file mode 100644 index 0000000..bc6f4b8 --- /dev/null +++ b/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/LICENSE @@ -0,0 +1,16 @@ +Copyright (c) 2013-2026 Ramon Santamaria (@raysan5) + +This software is provided "as-is", without any express or implied warranty. In no event +will the authors be held liable for any damages arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, including commercial +applications, and to alter it and redistribute it freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not claim that you + wrote the original software. If you use this software in a product, an acknowledgment + in the product documentation would be appreciated but is not required. + + 2. Altered source versions must be plainly marked as such, and must not be misrepresented + as being the original software. + + 3. This notice may not be removed or altered from any source distribution. diff --git a/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/build.zig b/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/build.zig new file mode 100644 index 0000000..eb1eb5c --- /dev/null +++ b/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/build.zig @@ -0,0 +1,790 @@ +const std = @import("std"); +const builtin = @import("builtin"); + +pub const emsdk = struct { + const zemscripten = @import("zemscripten"); + + pub fn shell(raylib_dep: *std.Build.Dependency) std.Build.LazyPath { + return raylib_dep.path("src/shell.html"); + } + + pub const FlagsOptions = struct { + optimize: std.builtin.OptimizeMode, + asyncify: bool = true, + }; + + pub fn emccDefaultFlags(allocator: std.mem.Allocator, options: FlagsOptions) zemscripten.EmccFlags { + var emcc_flags = zemscripten.emccDefaultFlags(allocator, .{ + .optimize = options.optimize, + .fsanitize = true, + }); + + if (options.asyncify) + emcc_flags.put("-sASYNCIFY", {}) catch unreachable; + + return emcc_flags; + } + + pub const SettingsOptions = struct { + optimize: std.builtin.OptimizeMode, + es3: bool = false, + glfw3: bool = true, + memory_growth: bool = false, + total_memory: u32 = 134217728, + emsdk_allocator: zemscripten.EmsdkAllocator = .emmalloc, + }; + + pub fn emccDefaultSettings(allocator: std.mem.Allocator, options: SettingsOptions) zemscripten.EmccSettings { + var emcc_settings = zemscripten.emccDefaultSettings(allocator, .{ + .optimize = options.optimize, + .emsdk_allocator = options.emsdk_allocator, + }); + + if (options.es3) { + emcc_settings.put("FULL_ES3", "1") catch unreachable; + emcc_settings.put("MIN_WEBGL_VERSION", "2") catch unreachable; + emcc_settings.put("MAX_WEBGL_VERSION", "2") catch unreachable; + } + if (options.glfw3) { + emcc_settings.put("USE_GLFW", "3") catch unreachable; + } + + const total_memory = std.fmt.allocPrint(allocator, "{d}", .{options.total_memory}) catch unreachable; + + emcc_settings.put("EXPORTED_RUNTIME_METHODS", "['requestFullscreen']") catch unreachable; + emcc_settings.put("TOTAL_MEMORY", total_memory) catch unreachable; + emcc_settings.put("FORCE_FILESYSTEM", "1") catch unreachable; + emcc_settings.put("EXPORTED_RUNTIME_METHODS", "ccall") catch unreachable; + + if (options.memory_growth) + emcc_settings.put("ALLOW_MEMORY_GROWTH", "1") catch unreachable; + + return emcc_settings; + } + + pub fn emccStep(b: *std.Build, raylib: *std.Build.Step.Compile, wasm: *std.Build.Step.Compile, options: zemscripten.StepOptions) *std.Build.Step { + const activate_emsdk_step = zemscripten.activateEmsdkStep(b); + + const emsdk_dep = b.dependency("emsdk", .{}); + raylib.root_module.addIncludePath(emsdk_dep.path("upstream/emscripten/cache/sysroot/include")); + wasm.root_module.addIncludePath(emsdk_dep.path("upstream/emscripten/cache/sysroot/include")); + + const emcc_step = zemscripten.emccStep(b, wasm, options); + emcc_step.dependOn(activate_emsdk_step); + + return emcc_step; + } + + pub fn emrunStep( + b: *std.Build, + html_path: []const u8, + extra_args: []const []const u8, + ) *std.Build.Step { + return zemscripten.emrunStep(b, html_path, extra_args); + } +}; + +pub fn linkWindows(mod: *std.Build.Module, opengl: bool, comptime shcore: bool) void { + if (opengl) mod.linkSystemLibrary("opengl32", .{}); + mod.linkSystemLibrary("winmm", .{}); + mod.linkSystemLibrary("gdi32", .{}); + if (shcore) mod.linkSystemLibrary("shcore", .{}); +} + +fn findWaylandScanner(b: *std.Build) void { + _ = b.findProgram(&.{"wayland-scanner"}, &.{}) catch { + std.log.err( + \\ `wayland-scanner` may not be installed on the system. + \\ You can switch to X11 in your `build.zig` by changing `Options.linux_display_backend` + , .{}); + @panic("`wayland-scanner` not found"); + }; +} + +pub fn linkLinux(mod: *std.Build.Module, comptime display_backend: LinuxDisplayBackend) void { + if (display_backend == .None) { + mod.linkSystemLibrary("GL", .{}); + } + + if (display_backend == .X11) { + mod.linkSystemLibrary("X11", .{}); + mod.linkSystemLibrary("Xrandr", .{}); + mod.linkSystemLibrary("Xinerama", .{}); + mod.linkSystemLibrary("Xi", .{}); + mod.linkSystemLibrary("Xcursor", .{}); + } + + if (display_backend == .Wayland) { + mod.linkSystemLibrary("wayland-client", .{}); + mod.linkSystemLibrary("wayland-cursor", .{}); + mod.linkSystemLibrary("wayland-egl", .{}); + mod.linkSystemLibrary("xkbcommon", .{}); + } +} + +pub fn linkBSD(_: *std.Build, mod: *std.Build.Module) void { + mod.linkSystemLibrary("GL", .{}); +} + +pub fn linkMacOS(b: *std.Build, mod: *std.Build.Module) void { + // Include xcode_frameworks for cross compilation + if (b.lazyDependency("xcode_frameworks", .{})) |dep| { + mod.addSystemFrameworkPath(dep.path("Frameworks")); + mod.addSystemIncludePath(dep.path("include")); + mod.addLibraryPath(dep.path("lib")); + } + + mod.linkFramework("Foundation", .{}); + mod.linkFramework("CoreServices", .{}); + mod.linkFramework("CoreGraphics", .{}); + mod.linkFramework("AppKit", .{}); + mod.linkFramework("IOKit", .{}); +} + +fn compileRaylib(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std.builtin.OptimizeMode, options: Options) !*std.Build.Step.Compile { + const raylib_mod = b.createModule(.{ + .optimize = optimize, + .target = target, + .link_libc = true, + }); + + const raylib = b.addLibrary(.{ + .name = "raylib", + .linkage = options.linkage, + .root_module = raylib_mod, + }); + + raylib_mod.addCMacro("_GNU_SOURCE", ""); + raylib_mod.addCMacro("GL_SILENCE_DEPRECATION", "199309L"); + + var arena: std.heap.ArenaAllocator = .init(b.allocator); + defer arena.deinit(); + + var raylib_flags_arr: std.array_list.Managed([]const u8) = .init(arena.allocator()); + var c_source_files: std.array_list.Managed([]const u8) = .init(arena.allocator()); + + try c_source_files.append("src/rcore.c"); + + if (target.result.os.tag == .emscripten) { + try raylib_flags_arr.append("-std=gnu99"); + } else { + try raylib_flags_arr.append("-std=c99"); + } + + if (options.linkage == .dynamic) { + raylib_mod.pic = true; + raylib_mod.addCMacro("BUILD_LIBTYPE_SHARED", ""); + } + + if (options.config.len > 0) { + // Splits a space-separated list of config flags into multiple flags + // + // Note: This means certain flags like `-x c++` won't be processed properly. + // `-xc++` or similar should be used when possible + var config_iter = std.mem.tokenizeScalar(u8, options.config, ' '); + + // Apply config flags supplied by the user + while (config_iter.next()) |config_flag| { + try raylib_flags_arr.append(config_flag); + } + } + + raylib_mod.addCMacro("SUPPORT_MODULE_RSHAPES", &.{@as(u8, @intFromBool(options.rshapes)) + 0x30}); + if (options.rshapes) { + try c_source_files.append("src/rshapes.c"); + } + raylib_mod.addCMacro("SUPPORT_MODULE_RTEXTURES", &.{@as(u8, @intFromBool(options.rtextures)) + 0x30}); + if (options.rtextures) { + try c_source_files.append("src/rtextures.c"); + } + raylib_mod.addCMacro("SUPPORT_MODULE_RTEXT", &.{@as(u8, @intFromBool(options.rtext)) + 0x30}); + if (options.rtext) { + try c_source_files.append("src/rtext.c"); + } + raylib_mod.addCMacro("SUPPORT_MODULE_RMODELS", &.{@as(u8, @intFromBool(options.rmodels)) + 0x30}); + if (options.rmodels) { + try c_source_files.append("src/rmodels.c"); + } + raylib_mod.addCMacro("SUPPORT_MODULE_RAUDIO", &.{@as(u8, @intFromBool(options.raudio)) + 0x30}); + if (options.raudio) { + try c_source_files.append("src/raudio.c"); + } + + raylib_mod.addIncludePath(b.path("src/platforms")); + switch (options.platform) { + .glfw => { + var opengl_version: OpenglVersion = options.opengl_version; + if (opengl_version == .gl_soft) { + @panic("The opengl version is not supported by this platform"); + } + + raylib_mod.addIncludePath(b.path("src/external/glfw/include")); + + if (target.result.os.tag != .emscripten) { + if (opengl_version == .auto) { + opengl_version = OpenglVersion.gl_3_3; + } + raylib_mod.addCMacro("PLATFORM_DESKTOP_GLFW", ""); + try c_source_files.append("src/rglfw.c"); + } + + switch (target.result.os.tag) { + .windows => linkWindows(raylib_mod, true, false), + .linux => { + if (target.result.abi.isAndroid()) { + @panic("Target is not supported with this platform"); + } + + linkLinux(raylib_mod, .None); + + if (options.linux_display_backend == .X11 or options.linux_display_backend == .Both) { + raylib_mod.addCMacro("_GLFW_X11", ""); + linkLinux(raylib_mod, .X11); + } + + if (options.linux_display_backend == .Wayland or options.linux_display_backend == .Both) { + findWaylandScanner(b); + + raylib_mod.addCMacro("_GLFW_WAYLAND", ""); + linkLinux(raylib_mod, .Wayland); + try waylandGenerate(b, raylib, "src/external/glfw/deps/wayland/", false); + } + }, + .freebsd, .openbsd, .netbsd, .dragonfly => linkBSD(b, raylib_mod), + .macos => { + // On macos rglfw.c include Objective-C files. + _ = c_source_files.pop(); + try raylib_flags_arr.append("-ObjC"); + raylib_mod.addCSourceFile(.{ + .file = b.path("src/rglfw.c"), + .flags = raylib_flags_arr.items, + }); + _ = raylib_flags_arr.pop(); + + linkMacOS(b, raylib_mod); + }, + .emscripten => { + switch (opengl_version) { + .auto => opengl_version = OpenglVersion.gles_2, + .gles_2, .gles_3, .gl_soft => {}, + else => @panic("opengl version not supported"), + } + + raylib_mod.addCMacro("PLATFORM_WEB", ""); + + const activate_emsdk_step = emsdk.zemscripten.activateEmsdkStep(b); + raylib.step.dependOn(activate_emsdk_step); + }, + else => @panic("Target is not supported with this platform"), + } + raylib_mod.addCMacro(opengl_version.toCMacroStr(), ""); + }, + .rgfw => { + var opengl_version: OpenglVersion = options.opengl_version; + + if (target.result.os.tag != .emscripten) { + if (opengl_version == .auto) { + opengl_version = OpenglVersion.gl_3_3; + } + raylib_mod.addCMacro("PLATFORM_DESKTOP_RGFW", ""); + } + + switch (target.result.os.tag) { + .windows => linkWindows(raylib_mod, true, false), + .linux => { + if (target.result.abi.isAndroid()) { + @panic("Target is not supported with this platform"); + } + + linkLinux(raylib_mod, .None); + + if (options.linux_display_backend == .X11 or options.linux_display_backend == .Both) { + raylib_mod.addCMacro("RGFW_X11", ""); + raylib_mod.addCMacro("RGFW_UNIX", ""); + + linkLinux(raylib_mod, .X11); + } + + if (options.linux_display_backend == .Wayland or options.linux_display_backend == .Both) { + findWaylandScanner(b); + + if (options.linux_display_backend != .Both) { + raylib_mod.addCMacro("RGFW_NO_X11", ""); + } + + raylib_mod.addCMacro("RGFW_WAYLAND", ""); + raylib_mod.addCMacro("EGLAPIENTRY", ""); + + linkLinux(raylib_mod, .Wayland); + + try waylandGenerate(b, raylib, "src/external/RGFW/deps/wayland/", true); + } + }, + .freebsd, .openbsd, .netbsd, .dragonfly => linkBSD(b, raylib_mod), + .macos => linkMacOS(b, raylib_mod), + .emscripten => { + switch (opengl_version) { + .auto => opengl_version = OpenglVersion.gles_2, + .gles_2, .gles_3, .gl_soft => {}, + else => @panic("opengl version not supported"), + } + + raylib_mod.addCMacro("PLATFORM_WEB_RGFW", ""); + const activate_emsdk_step = emsdk.zemscripten.activateEmsdkStep(b); + raylib.step.dependOn(activate_emsdk_step); + }, + else => @panic("Target is not supported with this platform"), + } + + raylib_mod.addCMacro(opengl_version.toCMacroStr(), ""); + }, + .sdl, .sdl2, .sdl3 => { + if (options.opengl_version == .auto) { + raylib_mod.addCMacro(OpenglVersion.gl_3_3.toCMacroStr(), ""); + } else { + raylib_mod.addCMacro(options.opengl_version.toCMacroStr(), ""); + } + + raylib_mod.addCMacro("PLATFORM_DESKTOP_SDL", ""); + + if (options.platform == .sdl2) { + raylib_mod.addCMacro("USING_SDL2_PACKAGE", ""); + } + if (options.platform == .sdl3) { + raylib_mod.addCMacro("USING_SDL3_PACKAGE", ""); + } + }, + .memory => { + if (options.opengl_version != .auto and options.opengl_version != .gl_soft) { + @panic("The opengl version is not supported by this platform"); + } + raylib_mod.addCMacro(OpenglVersion.gl_soft.toCMacroStr(), ""); + raylib_mod.addCMacro("PLATFORM_MEMORY", ""); + }, + .win32 => { + if (target.result.os.tag != .windows) { + @panic("Target is not supported with this platform"); + } + + if (options.opengl_version == .auto) { + raylib_mod.addCMacro(OpenglVersion.gl_3_3.toCMacroStr(), ""); + } else { + raylib_mod.addCMacro(options.opengl_version.toCMacroStr(), ""); + } + + raylib_mod.addCMacro("PLATFORM_DESKTOP_WIN32", ""); + + linkWindows(raylib_mod, options.opengl_version != .gl_soft, true); + }, + .drm => { + if (target.result.os.tag != .linux) { + @panic("Target is not supported with this platform"); + } + + raylib_mod.addCMacro("PLATFORM_DRM", ""); + raylib_mod.addCMacro("EGL_NO_X11", ""); + raylib_mod.addCMacro("DEFAULT_BATCH_BUFFER_ELEMENT", ""); + + try raylib_flags_arr.append("-Werror=implicit-function-declaration"); + + raylib_mod.linkSystemLibrary("libdrm", .{ .use_pkg_config = .force }); + raylib_mod.linkSystemLibrary("drm", .{}); + raylib_mod.linkSystemLibrary("gbm", .{}); + + switch (options.opengl_version) { + .auto, .gles_2 => { + raylib_mod.addCMacro(OpenglVersion.gles_2.toCMacroStr(), ""); + raylib_mod.linkSystemLibrary("GLESv2", .{}); + raylib_mod.linkSystemLibrary("EGL", .{}); + }, + .gl_soft => {}, + else => @panic("The opengl version is not supported by this platform"), + } + }, + .android => { + if (!target.result.abi.isAndroid()) { + @panic("Target is not supported with this platform"); + } + + raylib_mod.addCMacro("PLATFORM_ANDROID", ""); + + raylib_mod.linkSystemLibrary("EGL", .{}); + switch (options.opengl_version) { + .auto, .gles_2 => { + raylib_mod.addCMacro(OpenglVersion.gles_2.toCMacroStr(), ""); + raylib_mod.linkSystemLibrary("GLESv2", .{}); + }, + else => @panic("The opengl version is not supported by this platform"), + } + + //these are the only tag options per https://developer.android.com/ndk/guides/other_build_systems + const hostTuple = switch (builtin.target.os.tag) { + .linux => "linux-x86_64", + .windows => "windows-x86_64", + .macos => "darwin-x86_64", + else => @panic("unsupported host OS"), + }; + + const androidTriple = switch (target.result.cpu.arch) { + .x86 => "i686-linux-android", + .x86_64 => "x86_64-linux-android", + .arm => "arm-linux-androideabi", + .aarch64 => "aarch64-linux-android", + .riscv64 => "riscv64-linux-android", + else => error.InvalidAndroidTarget, + } catch @panic("invalid android target!"); + const androidNdkPathString: []const u8 = options.android_ndk; + if (androidNdkPathString.len < 1) @panic("no ndk path provided and ANDROID_NDK_HOME is not set"); + const androidApiLevel: []const u8 = options.android_api_version; + + const androidSysroot = try std.fs.path.join(b.allocator, &.{ androidNdkPathString, "/toolchains/llvm/prebuilt/", hostTuple, "/sysroot" }); + const androidLibPath = try std.fs.path.join(b.allocator, &.{ androidSysroot, "/usr/lib/", androidTriple }); + const androidApiSpecificPath = try std.fs.path.join(b.allocator, &.{ androidLibPath, androidApiLevel }); + const androidIncludePath = try std.fs.path.join(b.allocator, &.{ androidSysroot, "/usr/include" }); + const androidArchIncludePath = try std.fs.path.join(b.allocator, &.{ androidIncludePath, androidTriple }); + const androidAsmPath = try std.fs.path.join(b.allocator, &.{ androidIncludePath, "/asm-generic" }); + const androidGluePath = try std.fs.path.join(b.allocator, &.{ androidNdkPathString, "/sources/android/native_app_glue/" }); + + raylib_mod.addLibraryPath(.{ .cwd_relative = androidLibPath }); + raylib_mod.addLibraryPath(.{ .cwd_relative = androidApiSpecificPath }); + raylib_mod.addSystemIncludePath(.{ .cwd_relative = androidIncludePath }); + raylib_mod.addSystemIncludePath(.{ .cwd_relative = androidArchIncludePath }); + raylib_mod.addSystemIncludePath(.{ .cwd_relative = androidAsmPath }); + raylib_mod.addSystemIncludePath(.{ .cwd_relative = androidGluePath }); + + const libc_data = try std.fmt.allocPrint(b.allocator, + \\include_dir={0s}/sysroot/usr/include + \\sys_include_dir={0s}/sysroot/usr/include/aarch64-linux-android + \\crt_dir={0s}/sysroot/usr/lib/aarch64-linux-android/24 + \\static_lib_dir={0s}/sysroot/usr/lib/aarch64-linux-android/24 + \\msvc_lib_dir= + \\kernel32_lib_dir= + \\gcc_dir= + \\ + , .{androidNdkPathString}); + const write_step = b.addWriteFiles(); + const libcFile = write_step.add("android-libc.txt", libc_data); + raylib.setLibCFile(libcFile); + }, + } + + raylib_mod.addCSourceFiles(.{ + .files = c_source_files.items, + .flags = raylib_flags_arr.items, + }); + + return raylib; +} + +fn addRaygui(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std.builtin.OptimizeMode, raylib: *std.Build.Step.Compile) void { + if (b.lazyDependency("raygui", .{ + .target = target, + .optimize = optimize, + .link_libc = true, + })) |raygui_dep| { + var gen_step = b.addWriteFiles(); + raylib.step.dependOn(&gen_step.step); + + const raygui_c_path = gen_step.add("raygui.c", "#define RAYGUI_IMPLEMENTATION\n#include \"raygui.h\"\n"); + raylib.root_module.addCSourceFile(.{ .file = raygui_c_path }); + raylib.root_module.addIncludePath(raygui_dep.path("src")); + raylib.root_module.addIncludePath(b.path("src")); + + raylib.installHeader(raygui_dep.path("src/raygui.h"), "raygui.h"); + + const c = b.addTranslateC(.{ + .root_source_file = raygui_dep.path("src/raygui.h"), + .target = target, + .optimize = optimize, + .link_libc = true, + }); + c.addIncludePath(b.path("src")); + const c_mod = c.createModule(); + c_mod.linkLibrary(raylib); + b.modules.put(b.graph.arena, "raygui", c_mod) catch @panic("OOM"); + } +} + +pub const Options = struct { + raudio: bool = true, + rmodels: bool = true, + rshapes: bool = true, + rtext: bool = true, + rtextures: bool = true, + raygui: bool = false, + platform: PlatformBackend = .glfw, + linkage: std.builtin.LinkMode = .static, + linux_display_backend: LinuxDisplayBackend = .X11, + opengl_version: OpenglVersion = .auto, + android_ndk: []const u8 = "", + android_api_version: []const u8 = "35", + /// config should be a list of space-separated cflags, eg, "-DSUPPORT_CUSTOM_FRAME_CONTROL" + config: []const u8 = &.{}, + + const defaults = Options{}; + + pub fn getOptions(b: *std.Build) Options { + return .{ + .platform = b.option(PlatformBackend, "platform", "Choose the platform backend for desktop target") orelse defaults.platform, + .raudio = b.option(bool, "raudio", "Compile with audio support") orelse defaults.raudio, + .rmodels = b.option(bool, "rmodels", "Compile with models support") orelse defaults.rmodels, + .rtext = b.option(bool, "rtext", "Compile with text support") orelse defaults.rtext, + .rtextures = b.option(bool, "rtextures", "Compile with textures support") orelse defaults.rtextures, + .rshapes = b.option(bool, "rshapes", "Compile with shapes support") orelse defaults.rshapes, + .raygui = b.option(bool, "raygui", "Include raygui") orelse defaults.raygui, + .linkage = b.option(std.builtin.LinkMode, "linkage", "Compile as shared or static library") orelse defaults.linkage, + .linux_display_backend = b.option(LinuxDisplayBackend, "linux_display_backend", "Linux display backend to use") orelse defaults.linux_display_backend, + .opengl_version = b.option(OpenglVersion, "opengl_version", "OpenGL version to use") orelse defaults.opengl_version, + .config = b.option([]const u8, "config", "Compile with custom define macros overriding config.h") orelse &.{}, + .android_ndk = b.option([]const u8, "android_ndk", "specify path to android ndk") orelse b.graph.environ_map.get("ANDROID_NDK_HOME") orelse "", + .android_api_version = b.option([]const u8, "android_api_version", "specify target android API level") orelse defaults.android_api_version, + }; + } +}; + +pub const OpenglVersion = enum { + auto, + gl_soft, + gl_1_1, + gl_2_1, + gl_3_3, + gl_4_3, + gles_2, + gles_3, + + pub fn toCMacroStr(self: @This()) []const u8 { + switch (self) { + .auto => @panic("OpenglVersion.auto cannot be turned into a C macro string"), + .gl_soft => return "GRAPHICS_API_OPENGL_SOFTWARE", + .gl_1_1 => return "GRAPHICS_API_OPENGL_11", + .gl_2_1 => return "GRAPHICS_API_OPENGL_21", + .gl_3_3 => return "GRAPHICS_API_OPENGL_33", + .gl_4_3 => return "GRAPHICS_API_OPENGL_43", + .gles_2 => return "GRAPHICS_API_OPENGL_ES2", + .gles_3 => return "GRAPHICS_API_OPENGL_ES3", + } + } +}; + +pub const LinuxDisplayBackend = enum { + None, + X11, + Wayland, + Both, +}; + +pub const PlatformBackend = enum { + glfw, + rgfw, + sdl, + sdl2, + sdl3, + memory, + win32, + drm, + android, +}; + +fn translateCMod( + comptime header: []const u8, + b: *std.Build, + target: std.Build.ResolvedTarget, + optimize: std.builtin.OptimizeMode, + raylib: *std.Build.Step.Compile, +) void { + const c = b.addTranslateC(.{ + .root_source_file = b.path("src/" ++ header ++ ".h"), + .target = target, + .optimize = optimize, + .link_libc = true, + }); + const c_mod = c.createModule(); + c_mod.linkLibrary(raylib); + b.modules.put(b.graph.arena, header, c_mod) catch @panic("OOM"); +} + +pub fn build(b: *std.Build) !void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + const options: Options = .getOptions(b); + + const lib = try compileRaylib(b, target, optimize, options); + + lib.installHeader(b.path("src/raylib.h"), "raylib.h"); + lib.installHeader(b.path("src/rcamera.h"), "rcamera.h"); + lib.installHeader(b.path("src/raymath.h"), "raymath.h"); + lib.installHeader(b.path("src/rlgl.h"), "rlgl.h"); + + b.installArtifact(lib); + + translateCMod("raylib", b, target, optimize, lib); + translateCMod("rcamera", b, target, optimize, lib); + translateCMod("raymath", b, target, optimize, lib); + translateCMod("rlgl", b, target, optimize, lib); + + if (options.raygui) { + addRaygui(b, target, optimize, lib); + } + + const examples = b.step("examples", "build/install all examples"); + examples.dependOn(try addExamples("core", b, target, optimize, lib, options.platform)); + examples.dependOn(try addExamples("audio", b, target, optimize, lib, options.platform)); + examples.dependOn(try addExamples("models", b, target, optimize, lib, options.platform)); + examples.dependOn(try addExamples("shaders", b, target, optimize, lib, options.platform)); + examples.dependOn(try addExamples("shapes", b, target, optimize, lib, options.platform)); + examples.dependOn(try addExamples("text", b, target, optimize, lib, options.platform)); + examples.dependOn(try addExamples("textures", b, target, optimize, lib, options.platform)); + examples.dependOn(try addExamples("others", b, target, optimize, lib, options.platform)); +} + +fn addExamples( + comptime module: []const u8, + b: *std.Build, + target: std.Build.ResolvedTarget, + optimize: std.builtin.OptimizeMode, + raylib: *std.Build.Step.Compile, + platform: PlatformBackend, +) !*std.Build.Step { + const all = b.step(module, "All " ++ module ++ " examples"); + const module_subpath = b.pathJoin(&.{ "examples", module }); + + var dir = try b.build_root.handle.openDir(b.graph.io, module_subpath, .{ .iterate = true }); + defer dir.close(b.graph.io); + + var iter = dir.iterate(); + while (try iter.next(b.graph.io)) |entry| { + if (entry.kind != .file) continue; + + const filetype = std.fs.path.extension(entry.name); + if (!std.mem.eql(u8, filetype, ".c")) continue; + + const filename = std.fs.path.stem(entry.name); + const path = b.pathJoin(&.{ module_subpath, entry.name }); + + const exe_mod = b.createModule(.{ + .target = target, + .optimize = optimize, + .link_libc = true, + }); + exe_mod.addCSourceFile(.{ .file = b.path(path) }); + exe_mod.linkLibrary(raylib); + + if (platform == .sdl) { + exe_mod.linkSystemLibrary("SDL2", .{}); + exe_mod.linkSystemLibrary("SDL3", .{}); + } + if (platform == .sdl2) { + exe_mod.linkSystemLibrary("SDL2", .{}); + } + if (platform == .sdl3) { + exe_mod.linkSystemLibrary("SDL3", .{}); + } + + if (std.mem.eql(u8, filename, "rlgl_standalone")) { + if (platform != .glfw) continue; + exe_mod.addIncludePath(b.path("src")); + exe_mod.addIncludePath(b.path("src/external/glfw/include")); + } + if (std.mem.eql(u8, filename, "raylib_opengl_interop")) { + if (platform == .drm) continue; + if (target.result.os.tag == .macos) continue; + exe_mod.addIncludePath(b.path("src/external")); + } + + const run_step = b.step(filename, filename); + + // web exports are completely separate + if (target.query.os_tag == .emscripten) { + exe_mod.addCMacro("PLATFORM_WEB", ""); + + const wasm = b.addLibrary(.{ + .name = filename, + .root_module = exe_mod, + }); + + const install_dir: std.Build.InstallDir = .{ .custom = b.fmt("web/{s}/{s}", .{ module, filename }) }; + const emcc_flags = emsdk.emccDefaultFlags(b.allocator, .{ .optimize = optimize }); + const emcc_settings = emsdk.emccDefaultSettings(b.allocator, .{ .optimize = optimize }); + + const emcc_step = emsdk.emccStep(b, raylib, wasm, .{ + .optimize = optimize, + .flags = emcc_flags, + .settings = emcc_settings, + .shell_file_path = b.path("src/shell.html"), + .install_dir = install_dir, + }); + b.getInstallStep().dependOn(emcc_step); + + const html_filename = try std.fmt.allocPrint(b.allocator, "{s}.html", .{wasm.name}); + const emrun_step = emsdk.emrunStep( + b, + b.getInstallPath(install_dir, html_filename), + &.{}, + ); + + emrun_step.dependOn(emcc_step); + run_step.dependOn(emrun_step); + all.dependOn(emcc_step); + } else { + exe_mod.addCMacro("PLATFORM_DESKTOP", ""); + + const exe = b.addExecutable(.{ + .name = filename, + .root_module = exe_mod, + .use_lld = target.result.os.tag == .windows, + }); + b.installArtifact(exe); + + const install_cmd = b.addInstallArtifact(exe, .{ .dest_sub_path = b.fmt("{s}/{s}", .{ module, filename }) }); + + const run_cmd = b.addRunArtifact(exe); + run_cmd.cwd = b.path(module_subpath); + run_cmd.step.dependOn(&install_cmd.step); + + run_step.dependOn(&run_cmd.step); + all.dependOn(&install_cmd.step); + } + } + return all; +} + +fn waylandGenerate( + b: *std.Build, + raylib: *std.Build.Step.Compile, + comptime waylandDir: []const u8, + comptime source: bool, +) !void { + const dir = try b.build_root.handle.openDir(b.graph.io, waylandDir, .{ .iterate = true }); + defer dir.close(b.graph.io); + + var iter = dir.iterate(); + while (try iter.next(b.graph.io)) |entry| { + if (entry.kind != .file) continue; + const protocolDir = b.pathJoin(&.{ waylandDir, entry.name }); + + const filename = std.fs.path.stem(entry.name); + + const clientHeader = b.fmt("{s}-client-protocol.h", .{filename}); + const client_step = b.addSystemCommand(&.{ "wayland-scanner", "client-header" }); + client_step.addFileArg(b.path(protocolDir)); + raylib.root_module.addIncludePath(client_step.addOutputFileArg(clientHeader).dirname()); + raylib.step.dependOn(&client_step.step); + + if (comptime source) { + const privateCode = b.fmt("{s}-client-protocol-code.c", .{filename}); + const private_step = b.addSystemCommand(&.{ "wayland-scanner", "private-code" }); + private_step.addFileArg(b.path(protocolDir)); + raylib.root_module.addCSourceFile(.{ + .file = private_step.addOutputFileArg(privateCode), + .flags = &.{ "-std=c99", "-O2" }, + }); + raylib.step.dependOn(&private_step.step); + } else { + const privateCodeHeader = b.fmt("{s}-client-protocol-code.h", .{filename}); + const private_head_step = b.addSystemCommand(&.{ "wayland-scanner", "private-code" }); + private_head_step.addFileArg(b.path(protocolDir)); + raylib.root_module.addIncludePath(private_head_step.addOutputFileArg(privateCodeHeader).dirname()); + raylib.step.dependOn(&private_head_step.step); + } + } +} diff --git a/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/build.zig.zon b/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/build.zig.zon new file mode 100644 index 0000000..07a1f74 --- /dev/null +++ b/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/build.zig.zon @@ -0,0 +1,36 @@ +.{ + .name = .raylib, + .version = "6.0.0", + .minimum_zig_version = "0.16.0", + + .fingerprint = 0x13035e5cb8bc1ac2, // Changing this has security and trust implications. + + .dependencies = .{ + .xcode_frameworks = .{ + .url = "https://pkg.machengine.org/xcode-frameworks/8a1cfb373587ea4c9bb1468b7c986462d8d4e10e.tar.gz", + .hash = "N-V-__8AALShqgXkvqYU6f__FrA22SMWmi2TXCJjNTO1m8XJ", + .lazy = true, + }, + .raygui = .{ + .url = "git+https://github.com/raysan5/raygui#3b2855842ab578a034f827c38cf8f62c042fc983", + .hash = "N-V-__8AAHvybwBw1kyBGn0BW_s1RqIpycNjLf_XbE-fpLUF", + .lazy = true, + }, + .emsdk = .{ + .url = "git+https://github.com/emscripten-core/emsdk#4.0.9", + .hash = "N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ", + }, + .zemscripten = .{ + .url = "git+https://github.com/zig-gamedev/zemscripten#3fa4b778852226c7346bdcc3c1486e875a9a6d02", + .hash = "zemscripten-0.2.0-dev-sRlDqApRAACspTbAZnuNKWIzfWzSYgYkb2nWAXZ-tqqt", + }, + }, + + .paths = .{ + "build.zig", + "build.zig.zon", + "src", + "examples", + "LICENSE", + }, +} diff --git a/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/examples/CMakeLists.txt b/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/examples/CMakeLists.txt new file mode 100644 index 0000000..ee5469e --- /dev/null +++ b/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/examples/CMakeLists.txt @@ -0,0 +1,211 @@ +# Setup the project and settings +project(examples) + +# Directories that contain examples +set(example_dirs + audio + core + models + others + shaders + shapes + text + textures + ) + +# Next few lines will check for existence of symbols or header files +# They are needed for the physac example and threads examples +set(CMAKE_REQUIRED_DEFINITIONS -D_POSIX_C_SOURCE=199309L) +include(CheckSymbolExists) +check_symbol_exists(CLOCK_MONOTONIC time.h HAVE_CLOCK_MONOTONIC) +check_symbol_exists(QueryPerformanceCounter windows.h HAVE_QPC) +set(CMAKE_REQUIRED_DEFINITIONS) + +if (HAVE_QPC OR HAVE_CLOCK_MONOTONIC) + set(example_dirs ${example_dirs} physac) +endif () + +include(CheckIncludeFile) +CHECK_INCLUDE_FILE("stdatomic.h" HAVE_STDATOMIC_H) +set(CMAKE_THREAD_PREFER_PTHREAD TRUE) +find_package(Threads) +if (CMAKE_USE_PTHREADS_INIT AND HAVE_STDATOMIC_H) + add_if_flag_compiles("-std=c11" CMAKE_C_FLAGS) + if (THREADS_HAVE_PTHREAD_ARG) + add_if_flag_compiles("-pthread" CMAKE_C_FLAGS) + endif () + if (CMAKE_THREAD_LIBS_INIT) + link_libraries("${CMAKE_THREAD_LIBS_INIT}") + endif () +endif () + +if (APPLE AND NOT CMAKE_SYSTEM STRLESS "Darwin-18.0.0") + add_definitions(-DGL_SILENCE_DEPRECATION) + MESSAGE(AUTHOR_WARNING "OpenGL is deprecated starting with macOS 10.14 (Mojave)!") +endif () + +# Collect all source files and resource files +# into a CMake variable +set(example_sources) +set(example_resources) +foreach (example_dir ${example_dirs}) + # Get the .c files + file(GLOB sources ${example_dir}/*.c) + list(APPEND example_sources ${sources}) + + # Any any resources + file(GLOB resources ${example_dir}/resources/*) + list(APPEND example_resources ${resources}) +endforeach () + +if(NOT CMAKE_USE_PTHREADS_INIT OR NOT HAVE_STDATOMIC_H) + # Items requiring pthreads + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_loading_thread.c) +endif () + +if (${PLATFORM} MATCHES "Android") + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/rlgl_standalone.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/standard_lighting.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_3d_picking.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_vr_simulator.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_3d_camera_free.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_3d_camera_first_person.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_world_screen.c) + + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_mesh_picking.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_cubicmap.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_skybox.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_mesh_picking.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_mesh_generation.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_heightmap.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_billboard.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_rlgl_solar_system.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_rlgl_full_solar_system.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_solar_system.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_obj_viewer.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_animation.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_first_person_maze.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_magicavoxel_loading.c) + + + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_custom_uniform.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_model_shader.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_view_depth.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_postprocessing.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_raymarching.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_palette_switch.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_basic_lighting.c) + +elseif (${PLATFORM} MATCHES "Web") + set(example_sources) # clear example_sources + list(APPEND example_sources others/web_basic_window.c) + list(APPEND example_sources core/core_input_gestures_testbed.c) + +elseif ("${PLATFORM}" STREQUAL "DRM") + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/rlgl_standalone.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/raylib_opengl_interop.c) + +elseif ("${PLATFORM}" MATCHES "Memory") + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/raylib_opengl_interop.c) + +elseif ("${OPENGL_VERSION}" STREQUAL "Software") + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/rlgl_standalone.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/raylib_opengl_interop.c) + +elseif (NOT SUPPORT_GESTURES_SYSTEM) + # Items requiring gestures system + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/textures/textures_mouse_painting.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_basic_screen_manager.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_input_gestures_web.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_input_gestures.c) + +endif () + +# The rlgl_standalone example only targets desktop, without shared libraries. +if (BUILD_SHARED_LIBS OR NOT ${PLATFORM} MATCHES "Desktop") + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/rlgl_standalone.c) +endif() + +# The audio examples fail to link if raylib is built without raudio +if (NOT SUPPORT_MODULE_RAUDIO) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/audio/audio_mixed_processor.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/audio/audio_module_playing.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/audio/audio_music_stream.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/audio/audio_raw_stream.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/audio/audio_sound_loading.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/audio/audio_sound_multi.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/audio/audio_stream_effects.c) + + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/embedded_files_loading.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/textures/textures_sprite_button.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/textures/textures_sprite_explosion.c) +endif() + +include_directories(BEFORE SYSTEM others/external/include) + +if (NOT TARGET raylib) + find_package(raylib 2.0 REQUIRED) +endif () + +# Do each example +foreach (example_source ${example_sources}) + # Create the basename for the example + get_filename_component(example_name ${example_source} NAME) + string(REPLACE ".c" "" example_name ${example_name}) + + # Setup the example + add_executable(${example_name} ${example_source}) + + target_link_libraries(${example_name} raylib) + if (NOT WIN32) + target_link_libraries(${example_name} m) + endif() + + string(REGEX MATCH ".*/.*/" resources_dir ${example_source}) + string(APPEND resources_dir "resources") + + if (${PLATFORM} MATCHES "Web") + target_compile_options(${example_name} PRIVATE -Os) + target_link_options(${example_name} PRIVATE + -sALLOW_MEMORY_GROWTH=1 + -sEXPORTED_RUNTIME_METHODS=[requestFullscreen] + -sUSE_GLFW=3 + --shell-file "${CMAKE_SOURCE_DIR}/src/shell.html" + ) + set_target_properties(${example_name} PROPERTIES SUFFIX ".html") + + if (EXISTS ${resources_dir}) + # The local resources path needs to be mapped to /resources virtual path + string(APPEND resources_dir "@resources") + set_target_properties(${example_name} PROPERTIES LINK_FLAGS "--preload-file ${resources_dir}") + endif () + + if(${GRAPHICS} MATCHES "GRAPHICS_API_OPENGL_ES3") + target_link_options(${example_name} PUBLIC "-sMIN_WEBGL_VERSION=2") + target_link_options(${example_name} PUBLIC "-sMAX_WEBGL_VERSION=2") + endif() + + # Checks if OSX and links appropriate frameworks (Only required on MacOS) + if (APPLE) + target_link_libraries(${example_name} "-framework IOKit") + target_link_libraries(${example_name} "-framework Cocoa") + target_link_libraries(${example_name} "-framework OpenGL") + endif() + + elseif (${PLATFORM} MATCHES "RGFW") + if (APPLE) + target_link_libraries(${example_name} "-framework IOKit") + target_link_libraries(${example_name} "-framework Cocoa") + target_link_libraries(${example_name} "-framework OpenGL") + elseif (WIN32) + target_link_libraries(${example_name} "-lgdi32") + target_link_libraries(${example_name} "-lwinmm") + elseif (UNIX) + target_link_libraries(${example_name} "-lX11") + target_link_libraries(${example_name} "-lXrandr") + endif() + endif () +endforeach () + +# Copy all of the resource files to the destination +file(COPY ${example_resources} DESTINATION "resources/") diff --git a/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/examples/Makefile b/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/examples/Makefile new file mode 100644 index 0000000..334f596 --- /dev/null +++ b/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/examples/Makefile @@ -0,0 +1,808 @@ +#************************************************************************************************** +# +# raylib makefile for multiple platforms +# +# This file supports building raylib examples for the following platforms: +# +# > PLATFORM_DESKTOP +# - Defaults to PLATFORM_DESKTOP_GLFW +# > PLATFORM_DESKTOP_GFLW (GLFW backend): +# - Windows (Win32, Win64) +# - Linux (X11/Wayland desktop mode) +# - macOS/OSX (x64, arm64) +# - FreeBSD, OpenBSD, NetBSD, DragonFly (X11 desktop) +# > PLATFORM_DESKTOP_SDL (SDL backend): +# - Windows (Win32, Win64) +# - Linux (X11/Wayland desktop mode) +# - Others (not tested) +# > PLATFORM_DESKTOP_RGFW (RGFW backend): +# - Windows (Win32, Win64) +# - Linux (X11 desktop mode) +# - macOS/OSX (x64, arm64 (not tested)) +# - Others (not tested) +# > PLATFORM_WEB_RGFW: +# - HTML5 (WebAssembly) +# > PLATFORM_WEB: +# - HTML5 (WebAssembly) +# > PLATFORM_DRM: +# - Raspberry Pi 0-5 (DRM/KMS) +# - Linux DRM subsystem (KMS mode) +# > PLATFORM_ANDROID: +# - Android (ARM, ARM64) +# +# Copyright (c) 2013-2026 Ramon Santamaria (@raysan5) +# +# This software is provided "as-is", without any express or implied warranty. In no event +# will the authors be held liable for any damages arising from the use of this software. +# +# Permission is granted to anyone to use this software for any purpose, including commercial +# applications, and to alter it and redistribute it freely, subject to the following restrictions: +# +# 1. The origin of this software must not be misrepresented; you must not claim that you +# wrote the original software. If you use this software in a product, an acknowledgment +# in the product documentation would be appreciated but is not required. +# +# 2. Altered source versions must be plainly marked as such, and must not be misrepresented +# as being the original software. +# +# 3. This notice may not be removed or altered from any source distribution. +# +#************************************************************************************************** + +.PHONY: all clean + +# Define required environment variables +#------------------------------------------------------------------------------------------------ +# Define target platform: PLATFORM_DESKTOP, PLATFORM_DESKTOP_SDL, PLATFORM_DRM, PLATFORM_ANDROID, PLATFORM_WEB, PLATFORM_WEB_RGFW +PLATFORM ?= PLATFORM_DESKTOP + +ifeq ($(PLATFORM),$(filter $(PLATFORM),PLATFORM_DESKTOP_GLFW PLATFORM_DESKTOP_SDL PLATFORM_DESKTOP_RGFW)) + TARGET_PLATFORM := $(PLATFORM) + override PLATFORM = PLATFORM_DESKTOP +else + ifeq ($(PLATFORM), PLATFORM_DESKTOP) + TARGET_PLATFORM = PLATFORM_DESKTOP_GLFW + else + TARGET_PLATFORM = $(PLATFORM) + endif +endif + +# Define required raylib variables +PROJECT_NAME ?= raylib_examples +RAYLIB_VERSION ?= 6.0.0 +RAYLIB_PATH ?= .. + +# Define raylib source code path +RAYLIB_SRC_PATH ?= ../src + +# Locations of raylib.h and libraylib.a/libraylib.so +# NOTE: Those variables are only used for PLATFORM_OS: LINUX, BSD +DESTDIR ?= /usr/local +RAYLIB_INCLUDE_PATH ?= $(DESTDIR)/include +RAYLIB_LIB_PATH ?= $(DESTDIR)/lib + +# Library type compilation: STATIC (.a) or SHARED (.so/.dll) +RAYLIB_LIBTYPE ?= STATIC + +# Build mode for project: DEBUG or RELEASE +BUILD_MODE ?= RELEASE + +# Use external GLFW library instead of rglfw module +USE_EXTERNAL_GLFW ?= FALSE + +# Enable support for X11 by default on Linux when using GLFW +# NOTE: Wayland is disabled by default, only enable if you are sure +GLFW_LINUX_ENABLE_WAYLAND ?= FALSE +GLFW_LINUX_ENABLE_X11 ?= TRUE + +# Enable support for X11 by default on Linux when using RGFW +# NOTE: Wayland is disabled by default, only enable if you are sure +RGFW_LINUX_ENABLE_WAYLAND ?= FALSE +RGFW_LINUX_ENABLE_X11 ?= TRUE + +# PLATFORM_DESKTOP_SDL: It requires SDL library to be provided externally +# WARNING: Library is not included in raylib, it MUST be configured by users +SDL_INCLUDE_PATH ?= $(RAYLIB_SRC_PATH)/external/SDL2/include +SDL_LIBRARY_PATH ?= $(RAYLIB_SRC_PATH)/external/SDL2/lib +SDL_LIBRARIES ?= -lSDL2 -lSDL2main + +# Use Wayland display server protocol on Linux desktop (by default it uses X11 windowing system) +# NOTE: This variable is only used for PLATFORM_OS: LINUX +USE_WAYLAND_DISPLAY ?= FALSE + +# PLATFORM_WEB: Default properties +BUILD_WEB_ASYNCIFY ?= TRUE +BUILD_WEB_SHELL ?= $(RAYLIB_PATH)/src/minshell.html +BUILD_WEB_HEAP_SIZE ?= 134217728 +BUILD_WEB_RESOURCES ?= TRUE +BUILD_WEB_RESOURCES_PATH ?= $(dir $<)resources@resources +# Use WebGL2 backend (OpenGL 3.0) +# WARNING: Requires raylib compiled with GRAPHICS_API_OPENGL_ES3 +BUILD_WEB_WEBGL2 ?= FALSE + +# Determine PLATFORM_OS when required +ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW PLATFORM_DESKTOP_SDL PLATFORM_DESKTOP_RGFW PLATFORM_WEB PLATFORM_WEB_RGFW)) + # No uname.exe on MinGW!, but OS=Windows_NT on Windows! + # ifeq ($(UNAME),Msys) -> Windows + ifeq ($(OS),Windows_NT) + PLATFORM_OS = WINDOWS + else + UNAMEOS = $(shell uname) + ifeq ($(UNAMEOS),Linux) + PLATFORM_OS = LINUX + endif + ifeq ($(UNAMEOS),FreeBSD) + PLATFORM_OS = BSD + endif + ifeq ($(UNAMEOS),OpenBSD) + PLATFORM_OS = BSD + endif + ifeq ($(UNAMEOS),NetBSD) + PLATFORM_OS = BSD + endif + ifeq ($(UNAMEOS),DragonFly) + PLATFORM_OS = BSD + endif + ifeq ($(UNAMEOS),Darwin) + PLATFORM_OS = OSX + endif + endif +endif +ifeq ($(TARGET_PLATFORM),PLATFORM_DRM) + UNAMEOS = $(shell uname) + ifeq ($(UNAMEOS),Linux) + PLATFORM_OS = LINUX + endif +endif + +# Default path for raylib on Raspberry Pi +ifeq ($(TARGET_PLATFORM),PLATFORM_DRM) + RAYLIB_PATH ?= /home/pi/raylib +endif + +# Define raylib release directory for compiled library +RAYLIB_RELEASE_PATH ?= $(RAYLIB_PATH)/src + +ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW)) + ifeq ($(PLATFORM_OS),WINDOWS) + # Emscripten required variables + EMSDK_PATH ?= C:/raylib/emsdk + EMSCRIPTEN_PATH ?= $(EMSDK_PATH)/upstream/emscripten + CLANG_PATH = $(EMSDK_PATH)/upstream/bin + PYTHON_PATH = $(EMSDK_PATH)/python/3.13.3_64bit + NODE_PATH = $(EMSDK_PATH)/node/22.16.0_64bit/bin + export PATH = $(EMSDK_PATH);$(EMSCRIPTEN_PATH);$(CLANG_PATH);$(NODE_PATH);$(PYTHON_PATH):$$(PATH) + endif +endif + +# Define default C compiler: CC +#------------------------------------------------------------------------------------------------ +CC = gcc + +ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW) + ifeq ($(PLATFORM_OS),OSX) + # OSX default compiler + CC = clang + endif + ifeq ($(PLATFORM_OS),BSD) + # FreeBSD, OpenBSD, NetBSD, DragonFly default compiler + CC = clang + endif +endif +ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW)) + # HTML5 emscripten compiler + # WARNING: To compile to HTML5, code must be redesigned + # to use emscripten.h and emscripten_set_main_loop() + CC = emcc +endif + +# Define default make program: MAKE +#------------------------------------------------------------------------------------------------ +MAKE ?= make + +ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW) + ifeq ($(PLATFORM_OS),WINDOWS) + MAKE = mingw32-make + endif +endif +ifeq ($(TARGET_PLATFORM),PLATFORM_ANDROID) + ifeq ($(PLATFORM_OS),WINDOWS) + MAKE = mingw32-make + endif +endif +ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW)) + ifeq ($(PLATFORM_OS),WINDOWS) + MAKE = mingw32-make + else + EMMAKE := $(shell command -v emmake) + ifneq (, $(EMMAKE)) + MAKE = $(EMMAKE) make + else + MAKE = mingw32-make + endif + endif +endif + +# Define compiler flags: CFLAGS +#------------------------------------------------------------------------------------------------ +# -O1 defines optimization level +# -g include debug information on compilation +# -s strip unnecessary data from build +# -Wall turns on most, but not all, compiler warnings +# -std=c99 defines C language mode (standard C from 1999 revision) +# -std=gnu99 defines C language mode (GNU C from 1999 revision) +# -Wno-missing-braces ignore invalid warning (GCC bug 53119) +# -Wno-unused-value ignore unused return values of some functions (i.e. fread()) +# -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec +CFLAGS = -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces -Wno-unused-result + +ifeq ($(BUILD_MODE),DEBUG) + CFLAGS += -g -D_DEBUG +else + ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW)) + ifeq ($(BUILD_WEB_ASYNCIFY),TRUE) + CFLAGS += -O3 + else + CFLAGS += -Os + endif + else + CFLAGS += -O2 + endif +endif + +# Additional flags for compiler (if desired) +# -Wextra enables some extra warning flags that are not enabled by -Wall +# -Wmissing-prototypes warn if a global function is defined without a previous prototype declaration +# -Wstrict-prototypes warn if a function is declared or defined without specifying the argument types +# -Werror=implicit-function-declaration catch function calls without prior declaration +#CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes +ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW) + ifeq ($(PLATFORM_OS),LINUX) + ifeq ($(RAYLIB_LIBTYPE),STATIC) + CFLAGS += -D_DEFAULT_SOURCE + endif + ifeq ($(RAYLIB_LIBTYPE),SHARED) + # Explicitly enable runtime link to libraylib.so + CFLAGS += -Wl,-rpath,$(RAYLIB_RELEASE_PATH) + endif + endif +endif +ifeq ($(TARGET_PLATFORM),PLATFORM_DRM) + CFLAGS += -std=gnu99 -DEGL_NO_X11 +endif + +# Define include paths for required headers: INCLUDE_PATHS +# NOTE: Some external/extras libraries could be required (stb, easings...) +#------------------------------------------------------------------------------------------------ +INCLUDE_PATHS = -I. -I$(RAYLIB_PATH)/src -I$(RAYLIB_PATH)/src/external $(EXTRA_INCLUDE_PATHS) + +# Define additional directories containing required header files +ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW) + ifeq ($(PLATFORM_OS),BSD) + INCLUDE_PATHS += -I$(RAYLIB_INCLUDE_PATH) -I/usr/pkg/include -I/usr/X11R7/include + endif + ifeq ($(PLATFORM_OS),LINUX) + INCLUDE_PATHS += -I$(RAYLIB_INCLUDE_PATH) + endif +endif +ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_SDL) + INCLUDE_PATHS += -I$(SDL_INCLUDE_PATH) +endif +ifeq ($(TARGET_PLATFORM),PLATFORM_DRM) + INCLUDE_PATHS += -I$(RAYLIB_INCLUDE_PATH) + INCLUDE_PATHS += -I/usr/include/libdrm +endif + +# Define library paths containing required libs: LDFLAGS +#------------------------------------------------------------------------------------------------ +LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) + +ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW) + ifeq ($(PLATFORM_OS),WINDOWS) + # NOTE: The resource .rc file contains windows executable icon and properties + LDFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data + # -Wl,--subsystem,windows hides the console window + ifeq ($(BUILD_MODE), RELEASE) + LDFLAGS += -Wl,--subsystem,windows + endif + endif + ifeq ($(PLATFORM_OS),LINUX) + LDFLAGS += -L$(RAYLIB_LIB_PATH) + endif + ifeq ($(PLATFORM_OS),BSD) + LDFLAGS += -Lsrc -L$(RAYLIB_LIB_PATH) + endif +endif +ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_SDL) + ifeq ($(PLATFORM_OS),WINDOWS) + # NOTE: The resource .rc file contains windows executable icon and properties + LDFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data + # -Wl,--subsystem,windows hides the console window + ifeq ($(BUILD_MODE), RELEASE) + LDFLAGS += -Wl,--subsystem,windows + endif + endif + LDFLAGS += -L$(SDL_LIBRARY_PATH) +endif +ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW)) + # -Os # size optimization + # -O2 # optimization level 2, if used, also set --memory-init-file 0 + # -sUSE_GLFW=3 # Use glfw3 library (context/input management) + # -sALLOW_MEMORY_GROWTH=1 # to allow memory resizing -> WARNING: Audio buffers could FAIL! + # -sTOTAL_MEMORY=16777216 # to specify heap memory size (default = 16MB) (67108864 = 64MB) + # -sUSE_PTHREADS=1 # multithreading support + # -sWASM=0 # disable Web Assembly, emitted by default + # -sASYNCIFY # lets synchronous C/C++ code interact with asynchronous JS + # -sFORCE_FILESYSTEM=1 # force filesystem to load/save files data + # -sASSERTIONS=1 # enable runtime checks for common memory allocation errors (-O1 and above turn it off) + # -sMINIFY_HTML=0 # minify generated html from shell.html + # --profiling # include information for code profiling + # --memory-init-file 0 # to avoid an external memory initialization code file (.mem) + # --preload-file resources # specify a resources folder for data compilation + # --source-map-base # allow debugging in browser with source map + # --shell-file shell.html # define a custom shell .html and output extension + LDFLAGS += -sTOTAL_MEMORY=$(BUILD_WEB_HEAP_SIZE) -sFORCE_FILESYSTEM=1 -sEXPORTED_RUNTIME_METHODS=ccall -sMINIFY_HTML=0 + + # Using GLFW3 library (instead of RGFW) + ifeq ($(TARGET_PLATFORM),PLATFORM_WEB) + LDFLAGS += -sUSE_GLFW=3 + endif + + # Build using asyncify + ifeq ($(BUILD_WEB_ASYNCIFY),TRUE) + LDFLAGS += -sASYNCIFY + endif + + # NOTE: Flags required for WebGL 2.0 (OpenGL ES 3.0) + # WARNING: Requires raylib compiled with GRAPHICS_API_OPENGL_ES3 + ifeq ($(BUILD_WEB_WEBGL2),TRUE) + LDFLAGS += -sMIN_WEBGL_VERSION=2 -sMAX_WEBGL_VERSION=2 + endif + + # Add resources building if required + ifeq ($(BUILD_WEB_RESOURCES),TRUE) + LDFLAGS += --preload-file $(BUILD_WEB_RESOURCES_PATH) + endif + + # Add debug mode flags if required + ifeq ($(BUILD_MODE),DEBUG) + LDFLAGS += -sASSERTIONS=1 --profiling + endif + + # Define a custom shell .html and output extension + LDFLAGS += --shell-file $(BUILD_WEB_SHELL) + EXT = .html + + # NOTE: Simple raylib examples are compiled to be interpreter with asyncify, that way, + # we can compile same code for ALL platforms with no change required, but, working on bigger + # projects, code needs to be refactored to avoid a blocking while() loop, moving Update and Draw + # logic to a self contained function: UpdateDrawFrame(), check core_basic_window_web.c for reference. + +endif + +# Define libraries required on linking: LDLIBS +# NOTE: To link libraries (lib.so or lib.a), use -l +#------------------------------------------------------------------------------------------------ +ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW) + ifeq ($(PLATFORM_OS),WINDOWS) + # Libraries for Windows desktop compilation + # NOTE: WinMM library required to set high-res timer resolution + LDLIBS = -lraylib -lopengl32 -lgdi32 -lwinmm + endif + ifeq ($(PLATFORM_OS),LINUX) + # Libraries for Debian GNU/Linux desktop compiling + # NOTE: Required packages: libegl1-mesa-dev + LDLIBS = -lraylib -lGL -lm -lpthread -ldl -lrt + + # On Wayland, additional libraries requires + ifeq ($(GLFW_LINUX_ENABLE_WAYLAND),TRUE) + LDLIBS += -lwayland-client -lwayland-cursor -lwayland-egl -lxkbcommon + endif + + ifeq ($(GLFW_LINUX_ENABLE_X11),TRUE) + # On X11, additional libraries required + LDLIBS += -lX11 + # NOTE: It seems additional libraries are not required any more, latest GLFW just dlopen them + #LDLIBS += -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor + endif + # Explicit link to libc + ifeq ($(RAYLIB_LIBTYPE),SHARED) + LDLIBS += -lc + endif + + # NOTE: On ARM 32bit arch, miniaudio requires atomics library + LDLIBS += -latomic + endif + ifeq ($(PLATFORM_OS),OSX) + # Libraries for OSX 10.9 desktop compiling + # NOTE: Required packages: libopenal-dev libegl1-mesa-dev + LDLIBS = -lraylib -framework OpenGL -framework Cocoa -framework IOKit -framework CoreAudio -framework CoreVideo + endif + ifeq ($(PLATFORM_OS),BSD) + # Libraries for FreeBSD, OpenBSD, NetBSD, DragonFly desktop compiling + # NOTE: Required packages: mesa-libs + LDFLAGS += -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib + LDLIBS = -lraylib -lGL -lm -lpthread + + # On XWindow requires also below libraries + LDLIBS += -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor + endif + ifeq ($(USE_EXTERNAL_GLFW),TRUE) + # NOTE: It could require additional packages installed: libglfw3-dev + LDLIBS += -lglfw + endif +endif +ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_SDL) + ifeq ($(PLATFORM_OS),WINDOWS) + # Libraries for Windows desktop compilation + LDLIBS = -lraylib $(SDL_LIBRARIES) -lopengl32 -lgdi32 + endif + ifeq ($(PLATFORM_OS),LINUX) + # Libraries for Debian GNU/Linux desktop compiling + # NOTE: Required packages: libegl1-mesa-dev + LDLIBS = -lraylib $(SDL_LIBRARIES) -lGL -lm -lpthread -ldl -lrt + + # On X11, addition libraries required + LDLIBS += -lX11 + # NOTE: It seems additional libraries are not required any more, latest GLFW just dlopen them + #LDLIBS += -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor + + # On Wayland, additional libraries requires + ifeq ($(USE_WAYLAND_DISPLAY),TRUE) + LDLIBS += -lwayland-client -lwayland-cursor -lwayland-egl -lxkbcommon + endif + + # Explicit link to libc + ifeq ($(RAYLIB_LIBTYPE),SHARED) + LDLIBS += -lc + endif + + # NOTE: On ARM 32bit arch, miniaudio requires atomics library + LDLIBS += -latomic + endif +endif +ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_RGFW) + ifeq ($(PLATFORM_OS),WINDOWS) + # Libraries for Windows desktop compilation + LDFLAGS += -L..\src + LDLIBS = -lraylib -lgdi32 -lwinmm -lopengl32 + endif + ifeq ($(PLATFORM_OS),LINUX) + # Libraries for Debian GNU/Linux desktop compipling + # NOTE: Required packages: libegl1-mesa-dev + LDFLAGS += -L../src + LDLIBS = -lraylib -lm + + ifeq ($(RGFW_LINUX_ENABLE_X11),TRUE) + LDLIBS += -lGL -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor -lpthread -ldl -lrt + endif + + ifeq ($(RGFW_LINUX_ENABLE_WAYLAND),TRUE) + LDLIBS += -lwayland-client -lwayland-cursor -lwayland-egl -lxkbcommon + endif + + # Explicit link to libc + ifeq ($(RAYLIB_LIBTYPE),SHARED) + LDLIBS += -lc + endif + + # NOTE: On ARM 32bit arch, miniaudio requires atomics library + LDLIBS += -latomic + endif + ifeq ($(PLATFORM_OS),OSX) + # Libraries for Debian GNU/Linux desktop compiling + # NOTE: Required packages: libegl1-mesa-dev + LDFLAGS += -L../src + LDLIBS = -lraylib -lm + LDLIBS += -framework Foundation -framework AppKit -framework IOKit -framework OpenGL -framework CoreVideo + endif +endif +ifeq ($(TARGET_PLATFORM),PLATFORM_DRM) + # Libraries for DRM compiling + # NOTE: Required packages: libasound2-dev (ALSA) + LDLIBS = -lraylib -lGLESv2 -lEGL -ldrm -lgbm -lpthread -lrt -lm -ldl -latomic + # TODO: Examples compilation does not define GRAPHICS, is it required? + #ifeq ($(GRAPHICS),GRAPHICS_API_OPENGL_ES2) + # LDLIBS += -lGLESv2 -lEGL + #endif +endif +ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_WIN32) + # Libraries for Windows desktop compilation + LDFLAGS += -L..\src + LDLIBS = -lraylib -lgdi32 -lwinmm -lshcore + ifneq ($(GRAPHICS),GRAPHICS_API_OPENGL_SOFTWARE) + LDLIBS += -lopengl32 + endif +endif +ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW)) + # Libraries for web (HTML5) compiling + LDLIBS = $(RAYLIB_RELEASE_PATH)/libraylib.web.a +endif + +CURRENT_MAKEFILE = $(lastword $(MAKEFILE_LIST)) + +# Define source code object files required +#------------------------------------------------------------------------------------------------ +#EXAMPLES_LIST_START +CORE = \ + core/core_2d_camera \ + core/core_2d_camera_mouse_zoom \ + core/core_2d_camera_platformer \ + core/core_2d_camera_split_screen \ + core/core_3d_camera_first_person \ + core/core_3d_camera_fps \ + core/core_3d_camera_free \ + core/core_3d_camera_mode \ + core/core_3d_camera_split_screen \ + core/core_3d_picking \ + core/core_automation_events \ + core/core_basic_screen_manager \ + core/core_basic_window \ + core/core_clipboard_text \ + core/core_compute_hash \ + core/core_custom_frame_control \ + core/core_custom_logging \ + core/core_delta_time \ + core/core_directory_files \ + core/core_drop_files \ + core/core_highdpi_demo \ + core/core_highdpi_testbed \ + core/core_input_actions \ + core/core_input_gamepad \ + core/core_input_gestures \ + core/core_input_gestures_testbed \ + core/core_input_keys \ + core/core_input_mouse \ + core/core_input_mouse_wheel \ + core/core_input_multitouch \ + core/core_input_virtual_controls \ + core/core_keyboard_testbed \ + core/core_monitor_detector \ + core/core_random_sequence \ + core/core_random_values \ + core/core_render_texture \ + core/core_scissor_test \ + core/core_screen_recording \ + core/core_smooth_pixelperfect \ + core/core_storage_values \ + core/core_text_file_loading \ + core/core_undo_redo \ + core/core_viewport_scaling \ + core/core_vr_simulator \ + core/core_window_flags \ + core/core_window_letterbox \ + core/core_window_should_close \ + core/core_window_web \ + core/core_world_screen + +SHAPES = \ + shapes/shapes_ball_physics \ + shapes/shapes_basic_shapes \ + shapes/shapes_bouncing_ball \ + shapes/shapes_bullet_hell \ + shapes/shapes_circle_sector_drawing \ + shapes/shapes_clock_of_clocks \ + shapes/shapes_collision_area \ + shapes/shapes_colors_palette \ + shapes/shapes_dashed_line \ + shapes/shapes_digital_clock \ + shapes/shapes_double_pendulum \ + shapes/shapes_easings_ball \ + shapes/shapes_easings_box \ + shapes/shapes_easings_rectangles \ + shapes/shapes_easings_testbed \ + shapes/shapes_following_eyes \ + shapes/shapes_hilbert_curve \ + shapes/shapes_kaleidoscope \ + shapes/shapes_lines_bezier \ + shapes/shapes_lines_drawing \ + shapes/shapes_logo_raylib \ + shapes/shapes_logo_raylib_anim \ + shapes/shapes_math_angle_rotation \ + shapes/shapes_math_sine_cosine \ + shapes/shapes_mouse_trail \ + shapes/shapes_penrose_tile \ + shapes/shapes_pie_chart \ + shapes/shapes_rectangle_advanced \ + shapes/shapes_rectangle_scaling \ + shapes/shapes_recursive_tree \ + shapes/shapes_ring_drawing \ + shapes/shapes_rlgl_color_wheel \ + shapes/shapes_rlgl_triangle \ + shapes/shapes_rounded_rectangle_drawing \ + shapes/shapes_simple_particles \ + shapes/shapes_splines_drawing \ + shapes/shapes_starfield_effect \ + shapes/shapes_top_down_lights \ + shapes/shapes_triangle_strip \ + shapes/shapes_vector_angle + +TEXTURES = \ + textures/textures_background_scrolling \ + textures/textures_blend_modes \ + textures/textures_bunnymark \ + textures/textures_cellular_automata \ + textures/textures_clipboard_image \ + textures/textures_fog_of_war \ + textures/textures_framebuffer_rendering \ + textures/textures_gif_player \ + textures/textures_image_channel \ + textures/textures_image_drawing \ + textures/textures_image_generation \ + textures/textures_image_kernel \ + textures/textures_image_loading \ + textures/textures_image_processing \ + textures/textures_image_rotate \ + textures/textures_image_text \ + textures/textures_logo_raylib \ + textures/textures_magnifying_glass \ + textures/textures_mouse_painting \ + textures/textures_npatch_drawing \ + textures/textures_particles_blending \ + textures/textures_polygon_drawing \ + textures/textures_raw_data \ + textures/textures_screen_buffer \ + textures/textures_sprite_animation \ + textures/textures_sprite_button \ + textures/textures_sprite_explosion \ + textures/textures_sprite_stacking \ + textures/textures_srcrec_dstrec \ + textures/textures_textured_curve \ + textures/textures_tiled_drawing \ + textures/textures_to_image + +TEXT = \ + text/text_3d_drawing \ + text/text_codepoints_loading \ + text/text_font_filters \ + text/text_font_loading \ + text/text_font_sdf \ + text/text_font_spritefont \ + text/text_format_text \ + text/text_inline_styling \ + text/text_input_box \ + text/text_rectangle_bounds \ + text/text_sprite_fonts \ + text/text_strings_management \ + text/text_unicode_emojis \ + text/text_unicode_ranges \ + text/text_words_alignment \ + text/text_writing_anim + +MODELS = \ + models/models_animation_blend_custom \ + models/models_animation_blending \ + models/models_animation_gpu_skinning \ + models/models_animation_timing \ + models/models_basic_voxel \ + models/models_billboard_rendering \ + models/models_bone_socket \ + models/models_box_collisions \ + models/models_cubicmap_rendering \ + models/models_decals \ + models/models_directional_billboard \ + models/models_first_person_maze \ + models/models_geometric_shapes \ + models/models_heightmap_rendering \ + models/models_loading \ + models/models_loading_gltf \ + models/models_loading_iqm \ + models/models_loading_m3d \ + models/models_loading_vox \ + models/models_mesh_generation \ + models/models_mesh_picking \ + models/models_orthographic_projection \ + models/models_point_rendering \ + models/models_rlgl_solar_system \ + models/models_rotating_cube \ + models/models_skybox_rendering \ + models/models_tesseract_view \ + models/models_textured_cube \ + models/models_waving_cubes \ + models/models_yaw_pitch_roll + +SHADERS = \ + shaders/shaders_ascii_rendering \ + shaders/shaders_basic_lighting \ + shaders/shaders_basic_pbr \ + shaders/shaders_cel_shading \ + shaders/shaders_color_correction \ + shaders/shaders_custom_uniform \ + shaders/shaders_deferred_rendering \ + shaders/shaders_depth_rendering \ + shaders/shaders_depth_writing \ + shaders/shaders_eratosthenes_sieve \ + shaders/shaders_fog_rendering \ + shaders/shaders_game_of_life \ + shaders/shaders_hot_reloading \ + shaders/shaders_hybrid_rendering \ + shaders/shaders_julia_set \ + shaders/shaders_lightmap_rendering \ + shaders/shaders_mandelbrot_set \ + shaders/shaders_mesh_instancing \ + shaders/shaders_model_shader \ + shaders/shaders_multi_sample2d \ + shaders/shaders_normalmap_rendering \ + shaders/shaders_palette_switch \ + shaders/shaders_postprocessing \ + shaders/shaders_raymarching_rendering \ + shaders/shaders_rlgl_compute \ + shaders/shaders_rounded_rectangle \ + shaders/shaders_shadowmap_rendering \ + shaders/shaders_shapes_textures \ + shaders/shaders_simple_mask \ + shaders/shaders_spotlight_rendering \ + shaders/shaders_texture_outline \ + shaders/shaders_texture_rendering \ + shaders/shaders_texture_tiling \ + shaders/shaders_texture_waves \ + shaders/shaders_vertex_displacement + +AUDIO = \ + audio/audio_mixed_processor \ + audio/audio_module_playing \ + audio/audio_music_stream \ + audio/audio_raw_stream \ + audio/audio_sound_loading \ + audio/audio_sound_multi \ + audio/audio_sound_positioning \ + audio/audio_spectrum_visualizer \ + audio/audio_stream_callback \ + audio/audio_stream_effects +#EXAMPLES_LIST_END + +# Define processes to execute +#------------------------------------------------------------------------------------------------ +# Default target entry +all: $(CORE) $(SHAPES) $(TEXT) $(TEXTURES) $(MODELS) $(SHADERS) $(AUDIO) + +core: $(CORE) +shapes: $(SHAPES) +textures: $(TEXTURES) +text: $(TEXT) +models: $(MODELS) +shaders: $(SHADERS) +audio: $(AUDIO) + +# Generic compilation pattern +# NOTE: Examples must be ready for Android compilation! +%: %.c +ifeq ($(TARGET_PLATFORM),PLATFORM_ANDROID) + $(MAKE) -f Makefile.Android PROJECT_NAME=$@ PROJECT_SOURCE_FILES=$< +else ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW)) + $(MAKE) -f Makefile.Web $@ +else + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -D$(TARGET_PLATFORM) +endif + +# Clean everything +clean: +ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW) + ifeq ($(PLATFORM_OS),WINDOWS) + del *.o *.exe /s + endif + ifeq ($(PLATFORM_OS),BSD) + find . -type f -perm -ugo+x -delete + rm -fv *.o + endif + ifeq ($(PLATFORM_OS),LINUX) + find . -type f -executable -delete + rm -fv *.o + endif + ifeq ($(PLATFORM_OS),OSX) + find . -type f -perm +ugo+x -delete + rm -f *.o + endif +endif +ifeq ($(TARGET_PLATFORM),PLATFORM_DRM) + find . -type f -executable -delete + rm -fv *.o +endif +ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW)) + ifeq ($(PLATFORM_OS),WINDOWS) + del *.wasm *.html *.js *.data + else + rm -f */*.wasm */*.html */*.js */*.data + endif +endif + @echo Cleaning done diff --git a/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/examples/Makefile.Android b/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/examples/Makefile.Android new file mode 100644 index 0000000..0d8da97 --- /dev/null +++ b/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/examples/Makefile.Android @@ -0,0 +1,412 @@ +#************************************************************************************************** +# +# raylib makefile for Android project (APK building) +# +# Copyright (c) 2017-2026 Ramon Santamaria (@raysan5) +# +# This software is provided "as-is", without any express or implied warranty. In no event +# will the authors be held liable for any damages arising from the use of this software. +# +# Permission is granted to anyone to use this software for any purpose, including commercial +# applications, and to alter it and redistribute it freely, subject to the following restrictions: +# +# 1. The origin of this software must not be misrepresented; you must not claim that you +# wrote the original software. If you use this software in a product, an acknowledgment +# in the product documentation would be appreciated but is not required. +# +# 2. Altered source versions must be plainly marked as such, and must not be misrepresented +# as being the original software. +# +# 3. This notice may not be removed or altered from any source distribution. +# +#************************************************************************************************** + +# Define required raylib variables +PLATFORM ?= PLATFORM_ANDROID +RAYLIB_PATH ?= ..\.. + +# Define Android architecture (armeabi-v7a, arm64-v8a, x86, x86-64) and API version +# Starting in 2019 using ARM64 is mandatory for published apps, +# Starting on August 2020, minimum required target API is Android 10 (API level 29) +ANDROID_ARCH ?= ARM64 +ANDROID_API_VERSION = 29 + +# Android required path variables +# NOTE: Starting with Android NDK r21, no more toolchain generation is required, NDK is the toolchain on itself +ifeq ($(OS),Windows_NT) + ANDROID_NDK = C:/android-ndk + ANDROID_TOOLCHAIN = $(ANDROID_NDK)/toolchains/llvm/prebuilt/windows-x86_64 +else + ANDROID_NDK ?= /usr/lib/android/ndk + ANDROID_TOOLCHAIN = $(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64 +endif + +ifeq ($(ANDROID_ARCH),ARM) + ANDROID_ARCH_NAME = armeabi-v7a +endif +ifeq ($(ANDROID_ARCH),ARM64) + ANDROID_ARCH_NAME = arm64-v8a +endif +ifeq ($(ANDROID_ARCH),x86) + ANDROID_ARCH_NAME = x86 +endif +ifeq ($(ANDROID_ARCH),x86_64) + ANDROID_ARCH_NAME = x86_64 +endif + +# Required path variables +# NOTE: JAVA_HOME must be set to JDK (using OpenJDK 13) +JAVA_HOME ?= C:/open-jdk +ANDROID_HOME ?= C:/android-sdk +ANDROID_BUILD_TOOLS ?= $(ANDROID_HOME)/build-tools/29.0.3 +ANDROID_PLATFORM_TOOLS = $(ANDROID_HOME)/platform-tools + +# Android project configuration variables +PROJECT_NAME ?= raylib_game +PROJECT_LIBRARY_NAME ?= main +PROJECT_BUILD_ID ?= android +PROJECT_BUILD_PATH ?= $(PROJECT_BUILD_ID).$(PROJECT_NAME) +PROJECT_RESOURCES_PATH ?= resources +PROJECT_SOURCE_FILES ?= raylib_game.c +NATIVE_APP_GLUE_PATH = $(ANDROID_NDK)/sources/android/native_app_glue + +# Some source files are placed in directories, when compiling to some +# output directory other than source, that directory must pre-exist. +# Here we get a list of required folders that need to be created on +# code output folder $(PROJECT_BUILD_PATH)\obj to avoid GCC errors. +PROJECT_SOURCE_DIRS = $(sort $(dir $(PROJECT_SOURCE_FILES))) + +# Android app configuration variables +APP_LABEL_NAME ?= rGame +APP_COMPANY_NAME ?= raylib +APP_PRODUCT_NAME ?= rgame +APP_VERSION_CODE ?= 1 +APP_VERSION_NAME ?= 1.0 +APP_ICON_LDPI ?= $(RAYLIB_PATH)/logo/raylib_36x36.png +APP_ICON_MDPI ?= $(RAYLIB_PATH)/logo/raylib_48x48.png +APP_ICON_HDPI ?= $(RAYLIB_PATH)/logo/raylib_72x72.png +APP_SCREEN_ORIENTATION ?= landscape +APP_KEYSTORE_PASS ?= raylib + +# Library type used for raylib: STATIC (.a) or SHARED (.so/.dll) +RAYLIB_LIBTYPE ?= STATIC + +# Library path for libraylib.a/libraylib.so +RAYLIB_LIB_PATH = $(RAYLIB_PATH)/src + +# Define copy command depending on OS +ifeq ($(OS),Windows_NT) + COPY_COMMAND ?= copy /Y +else + COPY_COMMAND ?= cp -f +endif + +# Shared libs must be added to APK if required +# NOTE: Generated NativeLoader.java automatically load those libraries +ifeq ($(RAYLIB_LIBTYPE),SHARED) + PROJECT_SHARED_LIBS = lib/$(ANDROID_ARCH_NAME)/libraylib.so +endif + +# Compiler and archiver +ifeq ($(ANDROID_ARCH),ARM) + CC = $(ANDROID_TOOLCHAIN)/bin/armv7a-linux-androideabi$(ANDROID_API_VERSION)-clang + AR = $(ANDROID_TOOLCHAIN)/bin/arm-linux-androideabi-ar +endif +ifeq ($(ANDROID_ARCH),ARM64) + CC = $(ANDROID_TOOLCHAIN)/bin/aarch64-linux-android$(ANDROID_API_VERSION)-clang + AR = $(ANDROID_TOOLCHAIN)/bin/aarch64-linux-android-ar +endif +ifeq ($(ANDROID_ARCH),x86) + CC = $(ANDROID_TOOLCHAIN)/bin/i686-linux-android$(ANDROID_API_VERSION)-clang + AR = $(ANDROID_TOOLCHAIN)/bin/i686-linux-android-ar +endif +ifeq ($(ANDROID_ARCH),x86_64) + CC = $(ANDROID_TOOLCHAIN)/bin/x86_64-linux-android$(ANDROID_API_VERSION)-clang + AR = $(ANDROID_TOOLCHAIN)/bin/x86_64-linux-android-ar +endif + +# Compiler flags for arquitecture +ifeq ($(ANDROID_ARCH),ARM) + CFLAGS = -std=c99 -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 +endif +ifeq ($(ANDROID_ARCH),ARM64) + CFLAGS = -std=c99 -mfix-cortex-a53-835769 +endif +# Compilation functions attributes options +CFLAGS += -ffunction-sections -funwind-tables -fstack-protector-strong -fPIC +# Compiler options for the linker +CFLAGS += -Wall -Wa,--noexecstack -Wformat -Werror=format-security -no-canonical-prefixes +# Preprocessor macro definitions +CFLAGS += -DANDROID -DPLATFORM_ANDROID -D__ANDROID_API__=$(ANDROID_API_VERSION) + +# Paths containing required header files +INCLUDE_PATHS = -I. -I$(RAYLIB_PATH)/src -I$(NATIVE_APP_GLUE_PATH) + +# Linker options +LDFLAGS = -Wl,-soname,lib$(PROJECT_LIBRARY_NAME).so -Wl,--exclude-libs,libatomic.a +LDFLAGS += -Wl,--build-id -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--warn-shared-textrel -Wl,--fatal-warnings +# Force linking of library module to define symbol +LDFLAGS += -u ANativeActivity_onCreate +# Library paths containing required libs +LDFLAGS += -L. -L$(PROJECT_BUILD_PATH)/obj -L$(PROJECT_BUILD_PATH)/lib/$(ANDROID_ARCH_NAME) -L$(ANDROID_TOOLCHAIN)\sysroot\usr\lib + +# Define any libraries to link into executable +# if you want to link libraries (libname.so or libname.a), use the -lname +LDLIBS = -lm -lc -lraylib -llog -landroid -lEGL -lGLESv2 -lOpenSLES -ldl + +# Generate target objects list from PROJECT_SOURCE_FILES +OBJS = $(patsubst %.c, $(PROJECT_BUILD_PATH)/obj/%.o, $(PROJECT_SOURCE_FILES)) + +# Android APK building process... some steps required... +# NOTE: typing 'make' will invoke the default target entry called 'all' +# TODO: Use apksigner for APK signing, jarsigner is not recommended +all: create_temp_project_dirs \ + copy_project_required_libs \ + copy_project_resources \ + generate_loader_script \ + generate_android_manifest \ + generate_apk_keystore \ + config_project_package \ + compile_project_code \ + compile_project_class \ + compile_project_class_dex \ + create_project_apk_package \ + sign_project_apk_package \ + zipalign_project_apk_package + +# WARNING: About build signing process: +# - If using apksigner, zipalign must be used before the APK file has been signed. +# - If using jarsigner (not recommended), zipalign must be used after the APK file has been signed. +# REF: https://developer.android.com/tools/zipalign +# REF: https://developer.android.com/tools/apksigner + +# Create required temp directories for APK building +create_temp_project_dirs: +ifeq ($(OS),Windows_NT) + if not exist $(PROJECT_BUILD_PATH) mkdir $(PROJECT_BUILD_PATH) + if not exist $(PROJECT_BUILD_PATH)\obj mkdir $(PROJECT_BUILD_PATH)\obj + if not exist $(PROJECT_BUILD_PATH)\obj mkdir $(PROJECT_BUILD_PATH)\obj\src + if not exist $(PROJECT_BUILD_PATH)\src mkdir $(PROJECT_BUILD_PATH)\src + if not exist $(PROJECT_BUILD_PATH)\src\com mkdir $(PROJECT_BUILD_PATH)\src\com + if not exist $(PROJECT_BUILD_PATH)\src\com\$(APP_COMPANY_NAME) mkdir $(PROJECT_BUILD_PATH)\src\com\$(APP_COMPANY_NAME) + if not exist $(PROJECT_BUILD_PATH)\src\com\$(APP_COMPANY_NAME)\$(APP_PRODUCT_NAME) mkdir $(PROJECT_BUILD_PATH)\src\com\$(APP_COMPANY_NAME)\$(APP_PRODUCT_NAME) + if not exist $(PROJECT_BUILD_PATH)\lib mkdir $(PROJECT_BUILD_PATH)\lib + if not exist $(PROJECT_BUILD_PATH)\lib\$(ANDROID_ARCH_NAME) mkdir $(PROJECT_BUILD_PATH)\lib\$(ANDROID_ARCH_NAME) + if not exist $(PROJECT_BUILD_PATH)\bin mkdir $(PROJECT_BUILD_PATH)\bin + if not exist $(PROJECT_BUILD_PATH)\res mkdir $(PROJECT_BUILD_PATH)\res + if not exist $(PROJECT_BUILD_PATH)\res\drawable-ldpi mkdir $(PROJECT_BUILD_PATH)\res\drawable-ldpi + if not exist $(PROJECT_BUILD_PATH)\res\drawable-mdpi mkdir $(PROJECT_BUILD_PATH)\res\drawable-mdpi + if not exist $(PROJECT_BUILD_PATH)\res\drawable-hdpi mkdir $(PROJECT_BUILD_PATH)\res\drawable-hdpi + if not exist $(PROJECT_BUILD_PATH)\res\values mkdir $(PROJECT_BUILD_PATH)\res\values + if not exist $(PROJECT_BUILD_PATH)\assets mkdir $(PROJECT_BUILD_PATH)\assets + if not exist $(PROJECT_BUILD_PATH)\assets\$(PROJECT_RESOURCES_PATH) mkdir $(PROJECT_BUILD_PATH)\assets\$(PROJECT_RESOURCES_PATH) + if not exist $(PROJECT_BUILD_PATH)\obj\screens mkdir $(PROJECT_BUILD_PATH)\obj\screens +else + mkdir -p $(PROJECT_BUILD_PATH) + mkdir -p $(PROJECT_BUILD_PATH)/obj + mkdir -p $(PROJECT_BUILD_PATH)/obj/src + mkdir -p $(PROJECT_BUILD_PATH)/src + mkdir -p $(PROJECT_BUILD_PATH)/src/com + mkdir -p $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME) + mkdir -p $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME) + mkdir -p $(PROJECT_BUILD_PATH)/lib + mkdir -p $(PROJECT_BUILD_PATH)/lib/$(ANDROID_ARCH_NAME) + mkdir -p $(PROJECT_BUILD_PATH)/bin + mkdir -p $(PROJECT_BUILD_PATH)/res + mkdir -p $(PROJECT_BUILD_PATH)/res/drawable-ldpi + mkdir -p $(PROJECT_BUILD_PATH)/res/drawable-mdpi + mkdir -p $(PROJECT_BUILD_PATH)/res/drawable-hdpi + mkdir -p $(PROJECT_BUILD_PATH)/res/values + mkdir -p $(PROJECT_BUILD_PATH)/assets + mkdir -p $(PROJECT_BUILD_PATH)/assets/$(PROJECT_RESOURCES_PATH) + mkdir -p $(PROJECT_BUILD_PATH)/obj/screens +endif + $(foreach dir, $(PROJECT_SOURCE_DIRS), $(call create_dir, $(dir))) + +define create_dir + mkdir -p $(PROJECT_BUILD_PATH)/obj/$(1) +endef + +# Copy required shared libs for integration into APK +# NOTE: If using shared libs they are loaded by generated NativeLoader.java +copy_project_required_libs: +ifeq ($(RAYLIB_LIBTYPE),SHARED) + $(COPY_COMMAND) $(RAYLIB_LIB_PATH)/libraylib.so $(PROJECT_BUILD_PATH)/lib/$(ANDROID_ARCH_NAME)/libraylib.so +endif +ifeq ($(RAYLIB_LIBTYPE),STATIC) + $(COPY_COMMAND) $(RAYLIB_LIB_PATH)/libraylib.a $(PROJECT_BUILD_PATH)/lib/$(ANDROID_ARCH_NAME)/libraylib.a +endif + +# Copy project required resources: strings.xml, icon.png, assets +# NOTE: Required strings.xml is generated and game resources are copied to assets folder +copy_project_resources: + $(COPY_COMMAND) $(APP_ICON_LDPI) $(PROJECT_BUILD_PATH)/res/drawable-ldpi/icon.png + $(COPY_COMMAND) $(APP_ICON_MDPI) $(PROJECT_BUILD_PATH)/res/drawable-mdpi/icon.png + $(COPY_COMMAND) $(APP_ICON_HDPI) $(PROJECT_BUILD_PATH)/res/drawable-hdpi/icon.png +ifeq ($(OS),Windows_NT) + @echo ^ > $(PROJECT_BUILD_PATH)/res/values/strings.xml + @echo ^^$(APP_LABEL_NAME)^^ >> $(PROJECT_BUILD_PATH)/res/values/strings.xml + if exist $(PROJECT_RESOURCES_PATH) C:\Windows\System32\xcopy $(PROJECT_RESOURCES_PATH) $(PROJECT_BUILD_PATH)\assets\$(PROJECT_RESOURCES_PATH) /Y /E /F +else + @echo "" > $(PROJECT_BUILD_PATH)/res/values/strings.xml + @echo "$(APP_LABEL_NAME)" >> $(PROJECT_BUILD_PATH)/res/values/strings.xml + @[ -d "$(PROJECT_RESOURCES_PATH)" ] || cp -rf $(PROJECT_RESOURCES_PATH) $(PROJECT_BUILD_PATH)/assets/$(PROJECT_RESOURCES_PATH) +endif + +# Generate NativeLoader.java to load required shared libraries +# NOTE: Probably not the bet way to generate this file... but it works. +generate_loader_script: +ifeq ($(OS),Windows_NT) + @echo package com.$(APP_COMPANY_NAME).$(APP_PRODUCT_NAME); > $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java + @echo. >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java + @echo public class NativeLoader extends android.app.NativeActivity { >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java + @echo static { >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java +ifeq ($(RAYLIB_LIBTYPE),SHARED) + @echo System.loadLibrary("raylib"); >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java +endif + @echo System.loadLibrary("$(PROJECT_LIBRARY_NAME)"); >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java + @echo } >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java + @echo } >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java +else + @echo "package com.$(APP_COMPANY_NAME).$(APP_PRODUCT_NAME);" > $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java + @echo "" >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java + @echo "public class NativeLoader extends android.app.NativeActivity {" >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java + @echo " static {" >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java +ifeq ($(RAYLIB_LIBTYPE),SHARED) + @echo " System.loadLibrary(\"raylib\");" >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java +endif + @echo " System.loadLibrary(\"$(PROJECT_LIBRARY_NAME)\");" >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java + @echo " }" >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java + @echo "}" >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java +endif + +# Generate AndroidManifest.xml with all the required options +# NOTE: Probably not the bet way to generate this file... but it works. +generate_android_manifest: +ifeq ($(OS),Windows_NT) + @echo ^ > $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo ^> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo package="com.$(APP_COMPANY_NAME).$(APP_PRODUCT_NAME)" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo android:versionCode="$(APP_VERSION_CODE)" android:versionName="$(APP_VERSION_NAME)" ^> >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo ^ >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo ^ >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo ^ >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo ^> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo android:configChanges="orientation|keyboardHidden|screenSize" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo android:screenOrientation="$(APP_SCREEN_ORIENTATION)" android:launchMode="singleTask" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo android:clearTaskOnLaunch="true"^> >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo ^ >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo ^ >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo ^ >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo ^ >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo ^ >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo ^ >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo ^ >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo ^ >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml +else + @echo "" > $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo "> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo " package=\"com.$(APP_COMPANY_NAME).$(APP_PRODUCT_NAME)\" " >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo " android:versionCode=\"$(APP_VERSION_CODE)\" android:versionName=\"$(APP_VERSION_NAME)\" >" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo " " >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo " " >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo " " >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo " > $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo " android:theme=\"@android:style/Theme.NoTitleBar.Fullscreen\"" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo " android:configChanges=\"orientation|keyboardHidden|screenSize\"" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo " android:screenOrientation=\"$(APP_SCREEN_ORIENTATION)\" android:launchMode=\"singleTask\"" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo " android:clearTaskOnLaunch=\"true\">" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo " " >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo " " >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo " " >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo " " >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo " " >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo " " >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo " " >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml + @echo "" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml +endif + +# Generate storekey for APK signing: $(PROJECT_NAME).keystore +# NOTE: Configure here your Distinguished Names (-dname) if required! +generate_apk_keystore: +ifeq ($(OS),Windows_NT) + if not exist $(PROJECT_BUILD_PATH)/$(PROJECT_NAME).keystore $(JAVA_HOME)/bin/keytool -genkeypair -validity 10000 -dname "CN=$(APP_COMPANY_NAME),O=Android,C=ES" -keystore $(PROJECT_BUILD_PATH)/$(PROJECT_NAME).keystore -storepass $(APP_KEYSTORE_PASS) -keypass $(APP_KEYSTORE_PASS) -alias $(PROJECT_NAME)Key -keyalg RSA +else + @[ -f "$(PROJECT_BUILD_PATH)/$(PROJECT_NAME).keystore" ] || $(JAVA_HOME)/bin/keytool -genkeypair -validity 10000 -dname "CN=$(APP_COMPANY_NAME),O=Android,C=ES" -keystore $(PROJECT_BUILD_PATH)/$(PROJECT_NAME).keystore -storepass $(APP_KEYSTORE_PASS) -keypass $(APP_KEYSTORE_PASS) -alias $(PROJECT_NAME)Key -keyalg RSA +endif + +# Config project package and resource using AndroidManifest.xml and res/values/strings.xml +# NOTE: Generates resources file: src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/R.java +config_project_package: + $(ANDROID_BUILD_TOOLS)/aapt package -f -m -S $(PROJECT_BUILD_PATH)/res -J $(PROJECT_BUILD_PATH)/src -M $(PROJECT_BUILD_PATH)/AndroidManifest.xml -I $(ANDROID_HOME)/platforms/android-$(ANDROID_API_VERSION)/android.jar + +# Compile native_app_glue code as static library: obj/libnative_app_glue.a +compile_native_app_glue: + $(CC) -c $(NATIVE_APP_GLUE_PATH)/android_native_app_glue.c -o $(PROJECT_BUILD_PATH)/obj/native_app_glue.o $(CFLAGS) + $(AR) rcs $(PROJECT_BUILD_PATH)/obj/libnative_app_glue.a $(PROJECT_BUILD_PATH)/obj/native_app_glue.o + +# Compile project code into a shared library: lib/lib$(PROJECT_LIBRARY_NAME).so +compile_project_code: $(OBJS) + $(CC) -o $(PROJECT_BUILD_PATH)/lib/$(ANDROID_ARCH_NAME)/lib$(PROJECT_LIBRARY_NAME).so $(OBJS) -shared $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) + +# Compile all .c files required into object (.o) files +# NOTE: Those files will be linked into a shared library +$(PROJECT_BUILD_PATH)/obj/%.o:%.c + $(CC) -c $^ -o $@ $(INCLUDE_PATHS) $(CFLAGS) --sysroot=$(ANDROID_TOOLCHAIN)/sysroot + +# Compile project .java code into .class (Java bytecode) +compile_project_class: + $(JAVA_HOME)/bin/javac -verbose -source 1.7 -target 1.7 -d $(PROJECT_BUILD_PATH)/obj -bootclasspath $(JAVA_HOME)/jre/lib/rt.jar -classpath $(ANDROID_HOME)/platforms/android-$(ANDROID_API_VERSION)/android.jar -d $(PROJECT_BUILD_PATH)/obj $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/R.java $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java + +# Compile .class files into Dalvik executable bytecode (.dex) +# NOTE: Since Android 5.0, Dalvik interpreter (JIT) has been replaced by ART (AOT) +compile_project_class_dex: + $(ANDROID_BUILD_TOOLS)/dx --verbose --dex --output=$(PROJECT_BUILD_PATH)/bin/classes.dex $(PROJECT_BUILD_PATH)/obj + +# Create Android APK package: bin/$(PROJECT_NAME).unsigned.apk +# NOTE: Requires compiled classes.dex and lib$(PROJECT_LIBRARY_NAME).so +# NOTE: Use -A resources to define additional directory in which to find raw asset files +create_project_apk_package: + $(ANDROID_BUILD_TOOLS)/aapt package -f -M $(PROJECT_BUILD_PATH)/AndroidManifest.xml -S $(PROJECT_BUILD_PATH)/res -A $(PROJECT_BUILD_PATH)/assets -I $(ANDROID_HOME)/platforms/android-$(ANDROID_API_VERSION)/android.jar -F $(PROJECT_BUILD_PATH)/bin/$(PROJECT_NAME).unsigned.apk $(PROJECT_BUILD_PATH)/bin + cd $(PROJECT_BUILD_PATH) && $(ANDROID_BUILD_TOOLS)/aapt add bin/$(PROJECT_NAME).unsigned.apk lib/$(ANDROID_ARCH_NAME)/lib$(PROJECT_LIBRARY_NAME).so $(PROJECT_SHARED_LIBS) + +# Create signed APK package using generated Key: bin/$(PROJECT_NAME).signed.apk +sign_project_apk_package: + $(JAVA_HOME)/bin/jarsigner -keystore $(PROJECT_BUILD_PATH)/$(PROJECT_NAME).keystore -storepass $(APP_KEYSTORE_PASS) -keypass $(APP_KEYSTORE_PASS) -signedjar $(PROJECT_BUILD_PATH)/bin/$(PROJECT_NAME).signed.apk $(PROJECT_BUILD_PATH)/bin/$(PROJECT_NAME).unsigned.apk $(PROJECT_NAME)Key + +# Create zip-aligned APK package: $(PROJECT_NAME).apk +zipalign_project_apk_package: + $(ANDROID_BUILD_TOOLS)/zipalign -f 4 $(PROJECT_BUILD_PATH)/bin/$(PROJECT_NAME).signed.apk $(PROJECT_NAME).apk + +# Install $(PROJECT_NAME).apk to default emulator/device +# NOTE: Use -e (emulator) or -d (device) parameters if required +install: + $(ANDROID_PLATFORM_TOOLS)/adb install $(PROJECT_NAME).apk + +# Check supported ABI for the device (armeabi-v7a, arm64-v8a, x86, x86_64) +check_device_abi: + $(ANDROID_PLATFORM_TOOLS)/adb shell getprop ro.product.cpu.abi + +# Monitorize output log coming from device, only raylib tag +logcat: + $(ANDROID_PLATFORM_TOOLS)/adb logcat -c + $(ANDROID_PLATFORM_TOOLS)/adb logcat raylib:V *:S + +# Install and monitorize $(PROJECT_NAME).apk to default emulator/device +deploy: + $(ANDROID_PLATFORM_TOOLS)/adb install $(PROJECT_NAME).apk + $(ANDROID_PLATFORM_TOOLS)/adb logcat -c + $(ANDROID_PLATFORM_TOOLS)/adb logcat raylib:V *:S + +#$(ANDROID_PLATFORM_TOOLS)/adb logcat *:W + +# Clean everything +clean: +ifeq ($(OS),Windows_NT) + del $(PROJECT_BUILD_PATH)\* /f /s /q + rmdir $(PROJECT_BUILD_PATH) /s /q +else + rm -r $(PROJECT_BUILD_PATH) +endif + @echo Cleaning done diff --git a/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/examples/Makefile.Web b/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/examples/Makefile.Web new file mode 100644 index 0000000..709072b --- /dev/null +++ b/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/examples/Makefile.Web @@ -0,0 +1,1634 @@ +#************************************************************************************************** +# +# raylib makefile for multiple platforms +# +# This file supports building raylib examples for the following platforms: +# +# > PLATFORM_DESKTOP +# - Defaults to PLATFORM_DESKTOP_GLFW +# > PLATFORM_DESKTOP_GFLW (GLFW backend): +# - Windows (Win32, Win64) +# - Linux (X11/Wayland desktop mode) +# - macOS/OSX (x64, arm64) +# - FreeBSD, OpenBSD, NetBSD, DragonFly (X11 desktop) +# > PLATFORM_DESKTOP_SDL (SDL backend): +# - Windows (Win32, Win64) +# - Linux (X11/Wayland desktop mode) +# - Others (not tested) +# > PLATFORM_DESKTOP_RGFW (RGFW backend): +# - Windows (Win32, Win64) +# - Linux (X11 desktop mode) +# - macOS/OSX (x64, arm64 (not tested)) +# - Others (not tested) +# > PLATFORM_WEB_RGFW: +# - HTML5 (WebAssembly) +# > PLATFORM_WEB: +# - HTML5 (WebAssembly) +# > PLATFORM_DRM: +# - Raspberry Pi 0-5 (DRM/KMS) +# - Linux DRM subsystem (KMS mode) +# > PLATFORM_ANDROID: +# - Android (ARM, ARM64) +# +# Copyright (c) 2013-2026 Ramon Santamaria (@raysan5) +# +# This software is provided "as-is", without any express or implied warranty. In no event +# will the authors be held liable for any damages arising from the use of this software. +# +# Permission is granted to anyone to use this software for any purpose, including commercial +# applications, and to alter it and redistribute it freely, subject to the following restrictions: +# +# 1. The origin of this software must not be misrepresented; you must not claim that you +# wrote the original software. If you use this software in a product, an acknowledgment +# in the product documentation would be appreciated but is not required. +# +# 2. Altered source versions must be plainly marked as such, and must not be misrepresented +# as being the original software. +# +# 3. This notice may not be removed or altered from any source distribution. +# +#************************************************************************************************** + +.PHONY: all clean + +# Define required environment variables +#------------------------------------------------------------------------------------------------ +# Define target platform: PLATFORM_DESKTOP, PLATFORM_DESKTOP_SDL, PLATFORM_DRM, PLATFORM_ANDROID, PLATFORM_WEB, PLATFORM_WEB_RGFW +PLATFORM ?= PLATFORM_WEB + +ifeq ($(PLATFORM),$(filter $(PLATFORM),PLATFORM_DESKTOP_GLFW PLATFORM_DESKTOP_SDL PLATFORM_DESKTOP_RGFW)) + TARGET_PLATFORM := $(PLATFORM) + override PLATFORM = PLATFORM_DESKTOP +else + ifeq ($(PLATFORM), PLATFORM_DESKTOP) + TARGET_PLATFORM = PLATFORM_DESKTOP_GLFW + else + TARGET_PLATFORM = $(PLATFORM) + endif +endif + +# Define required raylib variables +PROJECT_NAME ?= raylib_examples +RAYLIB_VERSION ?= 6.0.0 +RAYLIB_PATH ?= .. + +# Define raylib source code path +RAYLIB_SRC_PATH ?= ../src + +# Locations of raylib.h and libraylib.a/libraylib.so +# NOTE: Those variables are only used for PLATFORM_OS: LINUX, BSD +DESTDIR ?= /usr/local +RAYLIB_INCLUDE_PATH ?= $(DESTDIR)/include +RAYLIB_LIB_PATH ?= $(DESTDIR)/lib + +# Library type compilation: STATIC (.a) or SHARED (.so/.dll) +RAYLIB_LIBTYPE ?= STATIC + +# Build mode for project: DEBUG or RELEASE +BUILD_MODE ?= RELEASE + +# Use external GLFW library instead of rglfw module +USE_EXTERNAL_GLFW ?= FALSE + +# PLATFORM_DESKTOP_SDL: It requires SDL library to be provided externally +# WARNING: Library is not included in raylib, it MUST be configured by users +SDL_INCLUDE_PATH ?= $(RAYLIB_SRC_PATH)/external/SDL2/include +SDL_LIBRARY_PATH ?= $(RAYLIB_SRC_PATH)/external/SDL2/lib +SDL_LIBRARIES ?= -lSDL2 -lSDL2main + +# Use Wayland display server protocol on Linux desktop (by default it uses X11 windowing system) +# NOTE: This variable is only used for PLATFORM_OS: LINUX +USE_WAYLAND_DISPLAY ?= FALSE + +# PLATFORM_WEB: Default properties +BUILD_WEB_ASYNCIFY ?= TRUE +BUILD_WEB_SHELL ?= $(RAYLIB_PATH)/src/shell.html +BUILD_WEB_HEAP_SIZE ?= 134217728 +BUILD_WEB_RESOURCES ?= FALSE +BUILD_WEB_RESOURCES_PATH ?= $(dir $<)resources@resources +# Use WebGL2 backend (OpenGL 3.0) +# WARNING: Requires raylib compiled with GRAPHICS_API_OPENGL_ES3 +BUILD_WEB_WEBGL2 ?= FALSE + +# Determine PLATFORM_OS when required +ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW PLATFORM_DESKTOP_SDL PLATFORM_DESKTOP_RGFW PLATFORM_WEB PLATFORM_WEB_RGFW)) + # No uname.exe on MinGW!, but OS=Windows_NT on Windows! + # ifeq ($(UNAME),Msys) -> Windows + ifeq ($(OS),Windows_NT) + PLATFORM_OS = WINDOWS + else + UNAMEOS = $(shell uname) + ifeq ($(UNAMEOS),Linux) + PLATFORM_OS = LINUX + endif + ifeq ($(UNAMEOS),FreeBSD) + PLATFORM_OS = BSD + endif + ifeq ($(UNAMEOS),OpenBSD) + PLATFORM_OS = BSD + endif + ifeq ($(UNAMEOS),NetBSD) + PLATFORM_OS = BSD + endif + ifeq ($(UNAMEOS),DragonFly) + PLATFORM_OS = BSD + endif + ifeq ($(UNAMEOS),Darwin) + PLATFORM_OS = OSX + endif + endif +endif +ifeq ($(TARGET_PLATFORM),PLATFORM_DRM) + UNAMEOS = $(shell uname) + ifeq ($(UNAMEOS),Linux) + PLATFORM_OS = LINUX + endif +endif + +# RAYLIB_PATH adjustment for LINUX platform +# TODO: Do we really need this? +ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW) + ifeq ($(PLATFORM_OS),LINUX) + RAYLIB_PREFIX ?= .. + RAYLIB_PATH = $(realpath $(RAYLIB_PREFIX)) + endif +endif + +# Default path for raylib on Raspberry Pi +ifeq ($(TARGET_PLATFORM),PLATFORM_DRM) + RAYLIB_PATH ?= /home/pi/raylib +endif + +# Define raylib release directory for compiled library +RAYLIB_RELEASE_PATH ?= $(RAYLIB_PATH)/src + +ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW)) + ifeq ($(PLATFORM_OS),WINDOWS) + # Emscripten required variables + EMSDK_PATH ?= C:/raylib/emsdk + EMSCRIPTEN_PATH ?= $(EMSDK_PATH)/upstream/emscripten + CLANG_PATH = $(EMSDK_PATH)/upstream/bin + PYTHON_PATH = $(EMSDK_PATH)/python/3.13.3_64bit + NODE_PATH = $(EMSDK_PATH)/node/22.16.0_64bit/bin + export PATH = $(EMSDK_PATH);$(EMSCRIPTEN_PATH);$(CLANG_PATH);$(NODE_PATH);$(PYTHON_PATH):$$(PATH) + endif +endif + +# Define default C compiler: CC +#------------------------------------------------------------------------------------------------ +CC = gcc + +ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW) + ifeq ($(PLATFORM_OS),OSX) + # OSX default compiler + CC = clang + endif + ifeq ($(PLATFORM_OS),BSD) + # FreeBSD, OpenBSD, NetBSD, DragonFly default compiler + CC = clang + endif +endif +ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW)) + # HTML5 emscripten compiler + # WARNING: To compile to HTML5, code must be redesigned + # to use emscripten.h and emscripten_set_main_loop() + CC = emcc +endif + +# Define default make program: MAKE +#------------------------------------------------------------------------------------------------ +MAKE ?= make + +ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW) + ifeq ($(PLATFORM_OS),WINDOWS) + MAKE = mingw32-make + endif +endif +ifeq ($(TARGET_PLATFORM),PLATFORM_ANDROID) + MAKE = mingw32-make +endif +ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW)) + ifeq ($(PLATFORM_OS),WINDOWS) + MAKE = mingw32-make + else + EMMAKE := $(shell command -v emmake) + ifneq (, $(EMMAKE)) + MAKE = $(EMMAKE) make + else + MAKE = mingw32-make + endif + endif +endif + +# Define compiler flags: CFLAGS +#------------------------------------------------------------------------------------------------ +# -O1 defines optimization level +# -g include debug information on compilation +# -s strip unnecessary data from build +# -Wall turns on most, but not all, compiler warnings +# -std=c99 defines C language mode (standard C from 1999 revision) +# -std=gnu99 defines C language mode (GNU C from 1999 revision) +# -Wno-missing-braces ignore invalid warning (GCC bug 53119) +# -Wno-unused-value ignore unused return values of some functions (i.e. fread()) +# -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec +CFLAGS = -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces -Wunused-result + +ifeq ($(BUILD_MODE),DEBUG) + CFLAGS += -g -D_DEBUG +else + ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW)) + ifeq ($(BUILD_WEB_ASYNCIFY),TRUE) + CFLAGS += -O3 + else + CFLAGS += -Os + endif + else + CFLAGS += -O2 + endif +endif + +# Additional flags for compiler (if desired) +# -Wextra enables some extra warning flags that are not enabled by -Wall +# -Wmissing-prototypes warn if a global function is defined without a previous prototype declaration +# -Wstrict-prototypes warn if a function is declared or defined without specifying the argument types +# -Werror=implicit-function-declaration catch function calls without prior declaration +#CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes +ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW) + ifeq ($(PLATFORM_OS),LINUX) + ifeq ($(RAYLIB_LIBTYPE),STATIC) + CFLAGS += -D_DEFAULT_SOURCE + endif + ifeq ($(RAYLIB_LIBTYPE),SHARED) + # Explicitly enable runtime link to libraylib.so + CFLAGS += -Wl,-rpath,$(RAYLIB_RELEASE_PATH) + endif + endif +endif +ifeq ($(TARGET_PLATFORM),PLATFORM_DRM) + CFLAGS += -std=gnu99 -DEGL_NO_X11 +endif + +# Define include paths for required headers: INCLUDE_PATHS +# NOTE: Some external/extras libraries could be required (stb, easings...) +#------------------------------------------------------------------------------------------------ +INCLUDE_PATHS = -I. -I$(RAYLIB_PATH)/src -I$(RAYLIB_PATH)/src/external $(EXTRA_INCLUDE_PATHS) + +# Define additional directories containing required header files +ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW) + ifeq ($(PLATFORM_OS),BSD) + INCLUDE_PATHS += -I$(RAYLIB_INCLUDE_PATH) -I/usr/pkg/include -I/usr/X11R7/include + endif + ifeq ($(PLATFORM_OS),LINUX) + INCLUDE_PATHS += -I$(RAYLIB_INCLUDE_PATH) + endif +endif +ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_SDL) + INCLUDE_PATHS += -I$(SDL_INCLUDE_PATH) +endif +ifeq ($(TARGET_PLATFORM),PLATFORM_DRM) + INCLUDE_PATHS += -I$(RAYLIB_INCLUDE_PATH) + INCLUDE_PATHS += -I/usr/include/libdrm +endif + +# Define library paths containing required libs: LDFLAGS +#------------------------------------------------------------------------------------------------ +LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src + +ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW) + ifeq ($(PLATFORM_OS),WINDOWS) + # NOTE: The resource .rc file contains windows executable icon and properties + LDFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data + # -Wl,--subsystem,windows hides the console window + ifeq ($(BUILD_MODE), RELEASE) + LDFLAGS += -Wl,--subsystem,windows + endif + endif + ifeq ($(PLATFORM_OS),LINUX) + LDFLAGS += -L$(RAYLIB_LIB_PATH) + endif + ifeq ($(PLATFORM_OS),BSD) + LDFLAGS += -Lsrc -L$(RAYLIB_LIB_PATH) + endif +endif +ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_SDL) + ifeq ($(PLATFORM_OS),WINDOWS) + # NOTE: The resource .rc file contains windows executable icon and properties + LDFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data + # -Wl,--subsystem,windows hides the console window + ifeq ($(BUILD_MODE), RELEASE) + LDFLAGS += -Wl,--subsystem,windows + endif + endif + LDFLAGS += -L$(SDL_LIBRARY_PATH) +endif +ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW)) + # -Os # size optimization + # -O2 # optimization level 2, if used, also set --memory-init-file 0 + # -sUSE_GLFW=3 # Use glfw3 library (context/input management) + # -sALLOW_MEMORY_GROWTH=1 # to allow memory resizing -> WARNING: Audio buffers could FAIL! + # -sTOTAL_MEMORY=16777216 # to specify heap memory size (default = 16MB) (67108864 = 64MB) + # -sUSE_PTHREADS=1 # multithreading support + # -sWASM=0 # disable Web Assembly, emitted by default + # -sASYNCIFY # lets synchronous C/C++ code interact with asynchronous JS + # -sFORCE_FILESYSTEM=1 # force filesystem to load/save files data + # -sASSERTIONS=1 # enable runtime checks for common memory allocation errors (-O1 and above turn it off) + # -sMINIFY_HTML=0 # minify generated html from shell.html + # --profiling # include information for code profiling + # --memory-init-file 0 # to avoid an external memory initialization code file (.mem) + # --preload-file resources # specify a resources folder for data compilation + # --source-map-base # allow debugging in browser with source map + # --shell-file shell.html # define a custom shell .html and output extension + LDFLAGS += -sTOTAL_MEMORY=$(BUILD_WEB_HEAP_SIZE) -sFORCE_FILESYSTEM=1 -sEXPORTED_RUNTIME_METHODS=ccall -sMINIFY_HTML=0 + + # Using GLFW3 library (instead of RGFW) + ifeq ($(TARGET_PLATFORM),PLATFORM_WEB) + LDFLAGS += -sUSE_GLFW=3 + endif + + # Build using asyncify + ifeq ($(BUILD_WEB_ASYNCIFY),TRUE) + LDFLAGS += -sASYNCIFY + endif + + # NOTE: Flags required for WebGL 2.0 (OpenGL ES 3.0) + # WARNING: Requires raylib compiled with GRAPHICS_API_OPENGL_ES3 + ifeq ($(BUILD_WEB_WEBGL2),TRUE) + LDFLAGS += -sMIN_WEBGL_VERSION=2 -sMAX_WEBGL_VERSION=2 + endif + + # Add resources building if required + ifeq ($(BUILD_WEB_RESOURCES),TRUE) + LDFLAGS += --preload-file $(BUILD_WEB_RESOURCES_PATH) + endif + + # Add debug mode flags if required + ifeq ($(BUILD_MODE),DEBUG) + LDFLAGS += -sASSERTIONS=1 --profiling + endif + + # Define a custom shell .html and output extension + LDFLAGS += --shell-file $(BUILD_WEB_SHELL) + EXT = .html + + # NOTE: Simple raylib examples are compiled to be interpreter with asyncify, that way, + # we can compile same code for ALL platforms with no change required, but, working on bigger + # projects, code needs to be refactored to avoid a blocking while() loop, moving Update and Draw + # logic to a self contained function: UpdateDrawFrame(), check core_basic_window_web.c for reference. + +endif + +# Define libraries required on linking: LDLIBS +# NOTE: To link libraries (lib.so or lib.a), use -l +#------------------------------------------------------------------------------------------------ +ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW) + ifeq ($(PLATFORM_OS),WINDOWS) + # Libraries for Windows desktop compilation + # NOTE: WinMM library required to set high-res timer resolution + LDLIBS = -lraylib -lopengl32 -lgdi32 -lwinmm + endif + ifeq ($(PLATFORM_OS),LINUX) + # Libraries for Debian GNU/Linux desktop compiling + # NOTE: Required packages: libegl1-mesa-dev + LDLIBS = -lraylib -lGL -lm -lpthread -ldl -lrt + + # On X11 requires also below libraries + LDLIBS += -lX11 + # NOTE: It seems additional libraries are not required any more, latest GLFW just dlopen them + #LDLIBS += -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor + + # On Wayland windowing system, additional libraries requires + ifeq ($(USE_WAYLAND_DISPLAY),TRUE) + LDLIBS += -lwayland-client -lwayland-cursor -lwayland-egl -lxkbcommon + endif + # Explicit link to libc + ifeq ($(RAYLIB_LIBTYPE),SHARED) + LDLIBS += -lc + endif + + # NOTE: On ARM 32bit arch, miniaudio requires atomics library + LDLIBS += -latomic + endif + ifeq ($(PLATFORM_OS),OSX) + # Libraries for OSX 10.9 desktop compiling + # NOTE: Required packages: libopenal-dev libegl1-mesa-dev + LDLIBS = -lraylib -framework OpenGL -framework Cocoa -framework IOKit -framework CoreAudio -framework CoreVideo + endif + ifeq ($(PLATFORM_OS),BSD) + # Libraries for FreeBSD, OpenBSD, NetBSD, DragonFly desktop compiling + # NOTE: Required packages: mesa-libs + LDFLAGS += -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib + LDLIBS = -lraylib -lGL -lm -lpthread + + # On XWindow requires also below libraries + LDLIBS += -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor + endif + ifeq ($(USE_EXTERNAL_GLFW),TRUE) + # NOTE: It could require additional packages installed: libglfw3-dev + LDLIBS += -lglfw + endif +endif +ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_SDL) + ifeq ($(PLATFORM_OS),WINDOWS) + # Libraries for Windows desktop compilation + LDLIBS = -lraylib $(SDL_LIBRARIES) -lopengl32 -lgdi32 + endif + ifeq ($(PLATFORM_OS),LINUX) + # Libraries for Debian GNU/Linux desktop compiling + # NOTE: Required packages: libegl1-mesa-dev + LDLIBS = -lraylib $(SDL_LIBRARIES) -lGL -lm -lpthread -ldl -lrt + + # On X11 requires also below libraries + LDLIBS += -lX11 + # NOTE: It seems additional libraries are not required any more, latest GLFW just dlopen them + #LDLIBS += -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor + + # On Wayland windowing system, additional libraries requires + ifeq ($(USE_WAYLAND_DISPLAY),TRUE) + LDLIBS += -lwayland-client -lwayland-cursor -lwayland-egl -lxkbcommon + endif + # Explicit link to libc + ifeq ($(RAYLIB_LIBTYPE),SHARED) + LDLIBS += -lc + endif + + # NOTE: On ARM 32bit arch, miniaudio requires atomics library + LDLIBS += -latomic + endif +endif +ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_RGFW) + ifeq ($(PLATFORM_OS),WINDOWS) + # Libraries for Windows desktop compilation + LDFLAGS += -L..\src + LDLIBS = -lraylib -lgdi32 -lwinmm -lopengl32 + endif + ifeq ($(PLATFORM_OS),LINUX) + # Libraries for Debian GNU/Linux desktop compipling + # NOTE: Required packages: libegl1-mesa-dev + LDFLAGS += -L../src + LDLIBS = -lraylib -lGL -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor -lm -lpthread -ldl -lrt + + # Explicit link to libc + ifeq ($(RAYLIB_LIBTYPE),SHARED) + LDLIBS += -lc + endif + + # NOTE: On ARM 32bit arch, miniaudio requires atomics library + LDLIBS += -latomic + endif + ifeq ($(PLATFORM_OS),OSX) + # Libraries for Debian GNU/Linux desktop compiling + # NOTE: Required packages: libegl1-mesa-dev + LDFLAGS += -L../src + LDLIBS = -lraylib -lm + LDLIBS += -framework Foundation -framework AppKit -framework IOKit -framework OpenGL -framework CoreVideo + endif +endif +ifeq ($(TARGET_PLATFORM),PLATFORM_DRM) + # Libraries for DRM compiling + # NOTE: Required packages: libasound2-dev (ALSA) + LDLIBS = -lraylib -lGLESv2 -lEGL -lpthread -lrt -lm -lgbm -ldrm -ldl -latomic +endif +ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW)) + # Libraries for web (HTML5) compiling + LDLIBS = $(RAYLIB_RELEASE_PATH)/libraylib.web.a +endif + +CURRENT_MAKEFILE = $(lastword $(MAKEFILE_LIST)) + +# Define source code object files required +#------------------------------------------------------------------------------------------------ +#EXAMPLES_LIST_START +CORE = \ + core/core_2d_camera \ + core/core_2d_camera_mouse_zoom \ + core/core_2d_camera_platformer \ + core/core_2d_camera_split_screen \ + core/core_3d_camera_first_person \ + core/core_3d_camera_fps \ + core/core_3d_camera_free \ + core/core_3d_camera_mode \ + core/core_3d_camera_split_screen \ + core/core_3d_picking \ + core/core_automation_events \ + core/core_basic_screen_manager \ + core/core_basic_window \ + core/core_clipboard_text \ + core/core_compute_hash \ + core/core_custom_frame_control \ + core/core_custom_logging \ + core/core_delta_time \ + core/core_directory_files \ + core/core_drop_files \ + core/core_highdpi_demo \ + core/core_highdpi_testbed \ + core/core_input_actions \ + core/core_input_gamepad \ + core/core_input_gestures \ + core/core_input_gestures_testbed \ + core/core_input_keys \ + core/core_input_mouse \ + core/core_input_mouse_wheel \ + core/core_input_multitouch \ + core/core_input_virtual_controls \ + core/core_keyboard_testbed \ + core/core_monitor_detector \ + core/core_random_sequence \ + core/core_random_values \ + core/core_render_texture \ + core/core_scissor_test \ + core/core_screen_recording \ + core/core_smooth_pixelperfect \ + core/core_storage_values \ + core/core_text_file_loading \ + core/core_undo_redo \ + core/core_viewport_scaling \ + core/core_vr_simulator \ + core/core_window_flags \ + core/core_window_letterbox \ + core/core_window_should_close \ + core/core_window_web \ + core/core_world_screen + +SHAPES = \ + shapes/shapes_ball_physics \ + shapes/shapes_basic_shapes \ + shapes/shapes_bouncing_ball \ + shapes/shapes_bullet_hell \ + shapes/shapes_circle_sector_drawing \ + shapes/shapes_clock_of_clocks \ + shapes/shapes_collision_area \ + shapes/shapes_colors_palette \ + shapes/shapes_dashed_line \ + shapes/shapes_digital_clock \ + shapes/shapes_double_pendulum \ + shapes/shapes_easings_ball \ + shapes/shapes_easings_box \ + shapes/shapes_easings_rectangles \ + shapes/shapes_easings_testbed \ + shapes/shapes_following_eyes \ + shapes/shapes_hilbert_curve \ + shapes/shapes_kaleidoscope \ + shapes/shapes_lines_bezier \ + shapes/shapes_lines_drawing \ + shapes/shapes_logo_raylib \ + shapes/shapes_logo_raylib_anim \ + shapes/shapes_math_angle_rotation \ + shapes/shapes_math_sine_cosine \ + shapes/shapes_mouse_trail \ + shapes/shapes_penrose_tile \ + shapes/shapes_pie_chart \ + shapes/shapes_rectangle_advanced \ + shapes/shapes_rectangle_scaling \ + shapes/shapes_recursive_tree \ + shapes/shapes_ring_drawing \ + shapes/shapes_rlgl_color_wheel \ + shapes/shapes_rlgl_triangle \ + shapes/shapes_rounded_rectangle_drawing \ + shapes/shapes_simple_particles \ + shapes/shapes_splines_drawing \ + shapes/shapes_starfield_effect \ + shapes/shapes_top_down_lights \ + shapes/shapes_triangle_strip \ + shapes/shapes_vector_angle + +TEXTURES = \ + textures/textures_background_scrolling \ + textures/textures_blend_modes \ + textures/textures_bunnymark \ + textures/textures_cellular_automata \ + textures/textures_clipboard_image \ + textures/textures_fog_of_war \ + textures/textures_framebuffer_rendering \ + textures/textures_gif_player \ + textures/textures_image_channel \ + textures/textures_image_drawing \ + textures/textures_image_generation \ + textures/textures_image_kernel \ + textures/textures_image_loading \ + textures/textures_image_processing \ + textures/textures_image_rotate \ + textures/textures_image_text \ + textures/textures_logo_raylib \ + textures/textures_magnifying_glass \ + textures/textures_mouse_painting \ + textures/textures_npatch_drawing \ + textures/textures_particles_blending \ + textures/textures_polygon_drawing \ + textures/textures_raw_data \ + textures/textures_screen_buffer \ + textures/textures_sprite_animation \ + textures/textures_sprite_button \ + textures/textures_sprite_explosion \ + textures/textures_sprite_stacking \ + textures/textures_srcrec_dstrec \ + textures/textures_textured_curve \ + textures/textures_tiled_drawing \ + textures/textures_to_image + +TEXT = \ + text/text_3d_drawing \ + text/text_codepoints_loading \ + text/text_font_filters \ + text/text_font_loading \ + text/text_font_sdf \ + text/text_font_spritefont \ + text/text_format_text \ + text/text_inline_styling \ + text/text_input_box \ + text/text_rectangle_bounds \ + text/text_sprite_fonts \ + text/text_strings_management \ + text/text_unicode_emojis \ + text/text_unicode_ranges \ + text/text_words_alignment \ + text/text_writing_anim + +MODELS = \ + models/models_animation_blend_custom \ + models/models_animation_blending \ + models/models_animation_gpu_skinning \ + models/models_animation_timing \ + models/models_basic_voxel \ + models/models_billboard_rendering \ + models/models_bone_socket \ + models/models_box_collisions \ + models/models_cubicmap_rendering \ + models/models_decals \ + models/models_directional_billboard \ + models/models_first_person_maze \ + models/models_geometric_shapes \ + models/models_heightmap_rendering \ + models/models_loading \ + models/models_loading_gltf \ + models/models_loading_iqm \ + models/models_loading_m3d \ + models/models_loading_vox \ + models/models_mesh_generation \ + models/models_mesh_picking \ + models/models_orthographic_projection \ + models/models_point_rendering \ + models/models_rlgl_solar_system \ + models/models_rotating_cube \ + models/models_skybox_rendering \ + models/models_tesseract_view \ + models/models_textured_cube \ + models/models_waving_cubes \ + models/models_yaw_pitch_roll + +SHADERS = \ + shaders/shaders_ascii_rendering \ + shaders/shaders_basic_lighting \ + shaders/shaders_basic_pbr \ + shaders/shaders_cel_shading \ + shaders/shaders_color_correction \ + shaders/shaders_custom_uniform \ + shaders/shaders_deferred_rendering \ + shaders/shaders_depth_rendering \ + shaders/shaders_depth_writing \ + shaders/shaders_eratosthenes_sieve \ + shaders/shaders_fog_rendering \ + shaders/shaders_game_of_life \ + shaders/shaders_hot_reloading \ + shaders/shaders_hybrid_rendering \ + shaders/shaders_julia_set \ + shaders/shaders_lightmap_rendering \ + shaders/shaders_mandelbrot_set \ + shaders/shaders_mesh_instancing \ + shaders/shaders_model_shader \ + shaders/shaders_multi_sample2d \ + shaders/shaders_normalmap_rendering \ + shaders/shaders_palette_switch \ + shaders/shaders_postprocessing \ + shaders/shaders_raymarching_rendering \ + shaders/shaders_rlgl_compute \ + shaders/shaders_rounded_rectangle \ + shaders/shaders_shadowmap_rendering \ + shaders/shaders_shapes_textures \ + shaders/shaders_simple_mask \ + shaders/shaders_spotlight_rendering \ + shaders/shaders_texture_outline \ + shaders/shaders_texture_rendering \ + shaders/shaders_texture_tiling \ + shaders/shaders_texture_waves \ + shaders/shaders_vertex_displacement + +AUDIO = \ + audio/audio_mixed_processor \ + audio/audio_module_playing \ + audio/audio_music_stream \ + audio/audio_raw_stream \ + audio/audio_sound_loading \ + audio/audio_sound_multi \ + audio/audio_sound_positioning \ + audio/audio_spectrum_visualizer \ + audio/audio_stream_callback \ + audio/audio_stream_effects + +# Default target entry +all: $(CORE) $(SHAPES) $(TEXT) $(TEXTURES) $(MODELS) $(SHADERS) $(AUDIO) + +core: $(CORE) +shapes: $(SHAPES) +textures: $(TEXTURES) +text: $(TEXT) +models: $(MODELS) +shaders: $(SHADERS) +audio: $(AUDIO) + +# Compile CORE examples +core/core_2d_camera: core/core_2d_camera.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_2d_camera_mouse_zoom: core/core_2d_camera_mouse_zoom.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_2d_camera_platformer: core/core_2d_camera_platformer.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_2d_camera_split_screen: core/core_2d_camera_split_screen.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_3d_camera_first_person: core/core_3d_camera_first_person.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_3d_camera_fps: core/core_3d_camera_fps.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_3d_camera_free: core/core_3d_camera_free.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_3d_camera_mode: core/core_3d_camera_mode.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_3d_camera_split_screen: core/core_3d_camera_split_screen.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_3d_picking: core/core_3d_picking.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_automation_events: core/core_automation_events.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_basic_screen_manager: core/core_basic_screen_manager.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_basic_window: core/core_basic_window.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_clipboard_text: core/core_clipboard_text.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_compute_hash: core/core_compute_hash.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_custom_frame_control: core/core_custom_frame_control.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_custom_logging: core/core_custom_logging.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_delta_time: core/core_delta_time.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_directory_files: core/core_directory_files.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_drop_files: core/core_drop_files.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_highdpi_demo: core/core_highdpi_demo.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_highdpi_testbed: core/core_highdpi_testbed.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_input_actions: core/core_input_actions.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_input_gamepad: core/core_input_gamepad.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file core/resources/ps3.png@resources/ps3.png \ + --preload-file core/resources/xbox.png@resources/xbox.png + +core/core_input_gestures: core/core_input_gestures.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_input_gestures_testbed: core/core_input_gestures_testbed.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_input_keys: core/core_input_keys.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_input_mouse: core/core_input_mouse.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_input_mouse_wheel: core/core_input_mouse_wheel.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_input_multitouch: core/core_input_multitouch.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_input_virtual_controls: core/core_input_virtual_controls.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_keyboard_testbed: core/core_keyboard_testbed.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_monitor_detector: core/core_monitor_detector.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_random_sequence: core/core_random_sequence.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_random_values: core/core_random_values.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_render_texture: core/core_render_texture.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_scissor_test: core/core_scissor_test.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_screen_recording: core/core_screen_recording.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_smooth_pixelperfect: core/core_smooth_pixelperfect.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_storage_values: core/core_storage_values.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_text_file_loading: core/core_text_file_loading.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file core/resources/text_file.txt@resources/text_file.txt + +core/core_undo_redo: core/core_undo_redo.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_viewport_scaling: core/core_viewport_scaling.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_vr_simulator: core/core_vr_simulator.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file core/resources/shaders/glsl100/distortion.fs@resources/shaders/glsl100/distortion.fs + +core/core_window_flags: core/core_window_flags.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_window_letterbox: core/core_window_letterbox.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_window_should_close: core/core_window_should_close.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_window_web: core/core_window_web.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_world_screen: core/core_world_screen.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +# Compile SHAPES examples +shapes/shapes_ball_physics: shapes/shapes_ball_physics.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_basic_shapes: shapes/shapes_basic_shapes.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_bouncing_ball: shapes/shapes_bouncing_ball.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_bullet_hell: shapes/shapes_bullet_hell.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_circle_sector_drawing: shapes/shapes_circle_sector_drawing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_clock_of_clocks: shapes/shapes_clock_of_clocks.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_collision_area: shapes/shapes_collision_area.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_colors_palette: shapes/shapes_colors_palette.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_dashed_line: shapes/shapes_dashed_line.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_digital_clock: shapes/shapes_digital_clock.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_double_pendulum: shapes/shapes_double_pendulum.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_easings_ball: shapes/shapes_easings_ball.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_easings_box: shapes/shapes_easings_box.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_easings_rectangles: shapes/shapes_easings_rectangles.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_easings_testbed: shapes/shapes_easings_testbed.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_following_eyes: shapes/shapes_following_eyes.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_hilbert_curve: shapes/shapes_hilbert_curve.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_kaleidoscope: shapes/shapes_kaleidoscope.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_lines_bezier: shapes/shapes_lines_bezier.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_lines_drawing: shapes/shapes_lines_drawing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_logo_raylib: shapes/shapes_logo_raylib.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_logo_raylib_anim: shapes/shapes_logo_raylib_anim.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_math_angle_rotation: shapes/shapes_math_angle_rotation.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_math_sine_cosine: shapes/shapes_math_sine_cosine.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_mouse_trail: shapes/shapes_mouse_trail.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_penrose_tile: shapes/shapes_penrose_tile.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_pie_chart: shapes/shapes_pie_chart.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_rectangle_advanced: shapes/shapes_rectangle_advanced.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_rectangle_scaling: shapes/shapes_rectangle_scaling.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_recursive_tree: shapes/shapes_recursive_tree.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_ring_drawing: shapes/shapes_ring_drawing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_rlgl_color_wheel: shapes/shapes_rlgl_color_wheel.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_rlgl_triangle: shapes/shapes_rlgl_triangle.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_rounded_rectangle_drawing: shapes/shapes_rounded_rectangle_drawing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_simple_particles: shapes/shapes_simple_particles.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_splines_drawing: shapes/shapes_splines_drawing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_starfield_effect: shapes/shapes_starfield_effect.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_top_down_lights: shapes/shapes_top_down_lights.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_triangle_strip: shapes/shapes_triangle_strip.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_vector_angle: shapes/shapes_vector_angle.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +# Compile TEXTURES examples +textures/textures_background_scrolling: textures/textures_background_scrolling.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/cyberpunk_street_background.png@resources/cyberpunk_street_background.png \ + --preload-file textures/resources/cyberpunk_street_midground.png@resources/cyberpunk_street_midground.png \ + --preload-file textures/resources/cyberpunk_street_foreground.png@resources/cyberpunk_street_foreground.png + +textures/textures_blend_modes: textures/textures_blend_modes.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/cyberpunk_street_background.png@resources/cyberpunk_street_background.png \ + --preload-file textures/resources/cyberpunk_street_foreground.png@resources/cyberpunk_street_foreground.png + +textures/textures_bunnymark: textures/textures_bunnymark.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/raybunny.png@resources/raybunny.png + +textures/textures_cellular_automata: textures/textures_cellular_automata.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +textures/textures_clipboard_image: textures/textures_clipboard_image.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +textures/textures_fog_of_war: textures/textures_fog_of_war.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +textures/textures_framebuffer_rendering: textures/textures_framebuffer_rendering.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +textures/textures_gif_player: textures/textures_gif_player.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/scarfy_run.gif@resources/scarfy_run.gif + +textures/textures_image_channel: textures/textures_image_channel.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/fudesumi.png@resources/fudesumi.png + +textures/textures_image_drawing: textures/textures_image_drawing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/cat.png@resources/cat.png \ + --preload-file textures/resources/parrots.png@resources/parrots.png \ + --preload-file textures/resources/custom_jupiter_crash.png@resources/custom_jupiter_crash.png + +textures/textures_image_generation: textures/textures_image_generation.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +textures/textures_image_kernel: textures/textures_image_kernel.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/cat.png@resources/cat.png + +textures/textures_image_loading: textures/textures_image_loading.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/raylib_logo.png@resources/raylib_logo.png + +textures/textures_image_processing: textures/textures_image_processing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/parrots.png@resources/parrots.png + +textures/textures_image_rotate: textures/textures_image_rotate.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/raylib_logo.png@resources/raylib_logo.png + +textures/textures_image_text: textures/textures_image_text.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/parrots.png@resources/parrots.png \ + --preload-file textures/resources/KAISG.ttf@resources/KAISG.ttf + +textures/textures_logo_raylib: textures/textures_logo_raylib.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/raylib_logo.png@resources/raylib_logo.png + +textures/textures_magnifying_glass: textures/textures_magnifying_glass.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/raybunny.png@resources/raybunny.png \ + --preload-file textures/resources/parrots.png@resources/parrots.png + +textures/textures_mouse_painting: textures/textures_mouse_painting.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +textures/textures_npatch_drawing: textures/textures_npatch_drawing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/ninepatch_button.png@resources/ninepatch_button.png + +textures/textures_particles_blending: textures/textures_particles_blending.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/spark_flame.png@resources/spark_flame.png + +textures/textures_polygon_drawing: textures/textures_polygon_drawing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/cat.png@resources/cat.png + +textures/textures_raw_data: textures/textures_raw_data.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/fudesumi.raw@resources/fudesumi.raw + +textures/textures_screen_buffer: textures/textures_screen_buffer.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +textures/textures_sprite_animation: textures/textures_sprite_animation.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/scarfy.png@resources/scarfy.png + +textures/textures_sprite_button: textures/textures_sprite_button.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/buttonfx.wav@resources/buttonfx.wav \ + --preload-file textures/resources/button.png@resources/button.png + +textures/textures_sprite_explosion: textures/textures_sprite_explosion.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/boom.wav@resources/boom.wav \ + --preload-file textures/resources/explosion.png@resources/explosion.png + +textures/textures_sprite_stacking: textures/textures_sprite_stacking.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/booth.png@resources/booth.png + +textures/textures_srcrec_dstrec: textures/textures_srcrec_dstrec.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/scarfy.png@resources/scarfy.png + +textures/textures_textured_curve: textures/textures_textured_curve.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/road.png@resources/road.png + +textures/textures_tiled_drawing: textures/textures_tiled_drawing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/patterns.png@resources/patterns.png + +textures/textures_to_image: textures/textures_to_image.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/raylib_logo.png@resources/raylib_logo.png + +# Compile TEXT examples +text/text_3d_drawing: text/text_3d_drawing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file text/resources/shaders/glsl100/alpha_discard.fs@resources/shaders/glsl100/alpha_discard.fs + +text/text_codepoints_loading: text/text_codepoints_loading.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file text/resources/DotGothic16-Regular.ttf@resources/DotGothic16-Regular.ttf + +text/text_font_filters: text/text_font_filters.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file text/resources/KAISG.ttf@resources/KAISG.ttf + +text/text_font_loading: text/text_font_loading.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file text/resources/pixantiqua.fnt@resources/pixantiqua.fnt \ + --preload-file text/resources/pixantiqua.png@resources/pixantiqua.png \ + --preload-file text/resources/pixantiqua.ttf@resources/pixantiqua.ttf + +text/text_font_sdf: text/text_font_sdf.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file text/resources/anonymous_pro_bold.ttf@resources/anonymous_pro_bold.ttf \ + --preload-file text/resources/shaders/glsl100/sdf.fs@resources/shaders/glsl100/sdf.fs + +text/text_font_spritefont: text/text_font_spritefont.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file text/resources/custom_mecha.png@resources/custom_mecha.png \ + --preload-file text/resources/custom_alagard.png@resources/custom_alagard.png \ + --preload-file text/resources/custom_jupiter_crash.png@resources/custom_jupiter_crash.png + +text/text_format_text: text/text_format_text.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +text/text_inline_styling: text/text_inline_styling.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +text/text_input_box: text/text_input_box.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +text/text_rectangle_bounds: text/text_rectangle_bounds.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +text/text_sprite_fonts: text/text_sprite_fonts.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file text/resources/sprite_fonts/alagard.png@resources/sprite_fonts/alagard.png \ + --preload-file text/resources/sprite_fonts/pixelplay.png@resources/sprite_fonts/pixelplay.png \ + --preload-file text/resources/sprite_fonts/mecha.png@resources/sprite_fonts/mecha.png \ + --preload-file text/resources/sprite_fonts/setback.png@resources/sprite_fonts/setback.png \ + --preload-file text/resources/sprite_fonts/romulus.png@resources/sprite_fonts/romulus.png \ + --preload-file text/resources/sprite_fonts/pixantiqua.png@resources/sprite_fonts/pixantiqua.png \ + --preload-file text/resources/sprite_fonts/alpha_beta.png@resources/sprite_fonts/alpha_beta.png \ + --preload-file text/resources/sprite_fonts/jupiter_crash.png@resources/sprite_fonts/jupiter_crash.png + +text/text_strings_management: text/text_strings_management.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +text/text_unicode_emojis: text/text_unicode_emojis.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file text/resources/dejavu.fnt@resources/dejavu.fnt \ + --preload-file text/resources/dejavu.png@resources/dejavu.png \ + --preload-file text/resources/noto_cjk.fnt@resources/noto_cjk.fnt \ + --preload-file text/resources/noto_cjk.png@resources/noto_cjk.png \ + --preload-file text/resources/symbola.fnt@resources/symbola.fnt \ + --preload-file text/resources/symbola.png@resources/symbola.png + +text/text_unicode_ranges: text/text_unicode_ranges.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file text/resources/NotoSansTC-Regular.ttf@resources/NotoSansTC-Regular.ttf + +text/text_words_alignment: text/text_words_alignment.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +text/text_writing_anim: text/text_writing_anim.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +# Compile MODELS examples +models/models_animation_blend_custom: models/models_animation_blend_custom.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/models/gltf/greenman.glb@resources/models/gltf/greenman.glb \ + --preload-file models/resources/shaders/glsl100/skinning.vs@resources/shaders/glsl100/skinning.vs \ + --preload-file models/resources/shaders/glsl100/skinning.fs@resources/shaders/glsl100/skinning.fs + +models/models_animation_blending: models/models_animation_blending.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/models/gltf/robot.glb@resources/models/gltf/robot.glb \ + --preload-file models/resources/shaders/glsl100/skinning.vs@resources/shaders/glsl100/skinning.vs \ + --preload-file models/resources/shaders/glsl100/skinning.fs@resources/shaders/glsl100/skinning.fs + +models/models_animation_gpu_skinning: models/models_animation_gpu_skinning.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/models/gltf/greenman.glb@resources/models/gltf/greenman.glb \ + --preload-file models/resources/shaders/glsl100/skinning.vs@resources/shaders/glsl100/skinning.vs \ + --preload-file models/resources/shaders/glsl100/skinning.fs@resources/shaders/glsl100/skinning.fs + +models/models_animation_timing: models/models_animation_timing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/models/gltf/robot.glb@resources/models/gltf/robot.glb + +models/models_basic_voxel: models/models_basic_voxel.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +models/models_billboard_rendering: models/models_billboard_rendering.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/billboard.png@resources/billboard.png + +models/models_bone_socket: models/models_bone_socket.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/models/gltf/greenman.glb@resources/models/gltf/greenman.glb \ + --preload-file models/resources/models/gltf/greenman_hat.glb@resources/models/gltf/greenman_hat.glb \ + --preload-file models/resources/models/gltf/greenman_sword.glb@resources/models/gltf/greenman_sword.glb \ + --preload-file models/resources/models/gltf/greenman_shield.glb@resources/models/gltf/greenman_shield.glb + +models/models_box_collisions: models/models_box_collisions.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +models/models_cubicmap_rendering: models/models_cubicmap_rendering.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/cubicmap.png@resources/cubicmap.png \ + --preload-file models/resources/cubicmap_atlas.png@resources/cubicmap_atlas.png + +models/models_decals: models/models_decals.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/models/obj/character.obj@resources/models/obj/character.obj \ + --preload-file models/resources/models/obj/character_diffuse.png@resources/models/obj/character_diffuse.png \ + --preload-file models/resources/raylib_logo.png@resources/raylib_logo.png + +models/models_directional_billboard: models/models_directional_billboard.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/skillbot.png@resources/skillbot.png + +models/models_first_person_maze: models/models_first_person_maze.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/cubicmap.png@resources/cubicmap.png \ + --preload-file models/resources/cubicmap_atlas.png@resources/cubicmap_atlas.png + +models/models_geometric_shapes: models/models_geometric_shapes.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +models/models_heightmap_rendering: models/models_heightmap_rendering.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/heightmap.png@resources/heightmap.png + +models/models_loading: models/models_loading.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/models/obj/castle.obj@resources/models/obj/castle.obj \ + --preload-file models/resources/models/obj/castle_diffuse.png@resources/models/obj/castle_diffuse.png + +models/models_loading_gltf: models/models_loading_gltf.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/models/gltf/robot.glb@resources/models/gltf/robot.glb + +models/models_loading_iqm: models/models_loading_iqm.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/models/iqm/guy.iqm@resources/models/iqm/guy.iqm \ + --preload-file models/resources/models/iqm/guytex.png@resources/models/iqm/guytex.png \ + --preload-file models/resources/models/iqm/guyanim.iqm@resources/models/iqm/guyanim.iqm + +models/models_loading_m3d: models/models_loading_m3d.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/models/m3d/cesium_man.m3d@resources/models/m3d/cesium_man.m3d + +models/models_loading_vox: models/models_loading_vox.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/models/vox/chr_knight.vox@resources/models/vox/chr_knight.vox \ + --preload-file models/resources/models/vox/chr_sword.vox@resources/models/vox/chr_sword.vox \ + --preload-file models/resources/models/vox/monu9.vox@resources/models/vox/monu9.vox \ + --preload-file models/resources/models/vox/fez.vox@resources/models/vox/fez.vox \ + --preload-file models/resources/shaders/glsl100/voxel_lighting.vs@resources/shaders/glsl100/voxel_lighting.vs \ + --preload-file models/resources/shaders/glsl100/voxel_lighting.fs@resources/shaders/glsl100/voxel_lighting.fs + +models/models_mesh_generation: models/models_mesh_generation.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +models/models_mesh_picking: models/models_mesh_picking.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/models/obj/turret.obj@resources/models/obj/turret.obj \ + --preload-file models/resources/models/obj/turret_diffuse.png@resources/models/obj/turret_diffuse.png + +models/models_orthographic_projection: models/models_orthographic_projection.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +models/models_point_rendering: models/models_point_rendering.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +models/models_rlgl_solar_system: models/models_rlgl_solar_system.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +models/models_rotating_cube: models/models_rotating_cube.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/cubicmap_atlas.png@resources/cubicmap_atlas.png + +models/models_skybox_rendering: models/models_skybox_rendering.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/shaders/glsl100/skybox.vs@resources/shaders/glsl100/skybox.vs \ + --preload-file models/resources/shaders/glsl100/skybox.fs@resources/shaders/glsl100/skybox.fs \ + --preload-file models/resources/shaders/glsl100/cubemap.vs@resources/shaders/glsl100/cubemap.vs \ + --preload-file models/resources/shaders/glsl100/cubemap.fs@resources/shaders/glsl100/cubemap.fs \ + --preload-file models/resources/dresden_square_2k.hdr@resources/dresden_square_2k.hdr \ + --preload-file models/resources/skybox.png@resources/skybox.png + +models/models_tesseract_view: models/models_tesseract_view.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +models/models_textured_cube: models/models_textured_cube.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/cubicmap_atlas.png@resources/cubicmap_atlas.png + +models/models_waving_cubes: models/models_waving_cubes.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +models/models_yaw_pitch_roll: models/models_yaw_pitch_roll.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/models/obj/plane.obj@resources/models/obj/plane.obj \ + --preload-file models/resources/models/obj/plane_diffuse.png@resources/models/obj/plane_diffuse.png + +# Compile SHADERS examples +shaders/shaders_ascii_rendering: shaders/shaders_ascii_rendering.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/fudesumi.png@resources/fudesumi.png \ + --preload-file shaders/resources/raysan.png@resources/raysan.png \ + --preload-file shaders/resources/shaders/glsl100/ascii.fs@resources/shaders/glsl100/ascii.fs + +shaders/shaders_basic_lighting: shaders/shaders_basic_lighting.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/lighting.vs@resources/shaders/glsl100/lighting.vs \ + --preload-file shaders/resources/shaders/glsl100/lighting.fs@resources/shaders/glsl100/lighting.fs + +shaders/shaders_basic_pbr: shaders/shaders_basic_pbr.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/pbr.vs@resources/shaders/glsl100/pbr.vs \ + --preload-file shaders/resources/shaders/glsl100/pbr.fs@resources/shaders/glsl100/pbr.fs \ + --preload-file shaders/resources/models/old_car_new.glb@resources/models/old_car_new.glb \ + --preload-file shaders/resources/old_car_d.png@resources/old_car_d.png \ + --preload-file shaders/resources/old_car_mra.png@resources/old_car_mra.png \ + --preload-file shaders/resources/old_car_n.png@resources/old_car_n.png \ + --preload-file shaders/resources/old_car_e.png@resources/old_car_e.png \ + --preload-file shaders/resources/models/plane.glb@resources/models/plane.glb \ + --preload-file shaders/resources/road_a.png@resources/road_a.png \ + --preload-file shaders/resources/road_mra.png@resources/road_mra.png \ + --preload-file shaders/resources/road_n.png@resources/road_n.png + +shaders/shaders_cel_shading: shaders/shaders_cel_shading.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/models/old_car_new.glb@resources/models/old_car_new.glb \ + --preload-file shaders/resources/shaders/glsl100/cel.vs@resources/shaders/glsl100/cel.vs \ + --preload-file shaders/resources/shaders/glsl100/cel.fs@resources/shaders/glsl100/cel.fs \ + --preload-file shaders/resources/shaders/glsl100/outline_hull.vs@resources/shaders/glsl100/outline_hull.vs \ + --preload-file shaders/resources/shaders/glsl100/outline_hull.fs@resources/shaders/glsl100/outline_hull.fs + +shaders/shaders_color_correction: shaders/shaders_color_correction.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/parrots.png@resources/parrots.png \ + --preload-file shaders/resources/cat.png@resources/cat.png \ + --preload-file shaders/resources/mandrill.png@resources/mandrill.png \ + --preload-file shaders/resources/fudesumi.png@resources/fudesumi.png \ + --preload-file shaders/resources/shaders/glsl100/color_correction.fs@resources/shaders/glsl100/color_correction.fs + +shaders/shaders_custom_uniform: shaders/shaders_custom_uniform.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/models/barracks.obj@resources/models/barracks.obj \ + --preload-file shaders/resources/models/barracks_diffuse.png@resources/models/barracks_diffuse.png \ + --preload-file shaders/resources/shaders/glsl100/swirl.fs@resources/shaders/glsl100/swirl.fs + +shaders/shaders_deferred_rendering: shaders/shaders_deferred_rendering.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/gbuffer.vs@resources/shaders/glsl100/gbuffer.vs \ + --preload-file shaders/resources/shaders/glsl100/gbuffer.fs@resources/shaders/glsl100/gbuffer.fs \ + --preload-file shaders/resources/shaders/glsl100/deferred_shading.vs@resources/shaders/glsl100/deferred_shading.vs \ + --preload-file shaders/resources/shaders/glsl100/deferred_shading.fs@resources/shaders/glsl100/deferred_shading.fs + +shaders/shaders_depth_rendering: shaders/shaders_depth_rendering.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/depth_render.fs@resources/shaders/glsl100/depth_render.fs + +shaders/shaders_depth_writing: shaders/shaders_depth_writing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/depth_write.fs@resources/shaders/glsl100/depth_write.fs + +shaders/shaders_eratosthenes_sieve: shaders/shaders_eratosthenes_sieve.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/eratosthenes.fs@resources/shaders/glsl100/eratosthenes.fs + +shaders/shaders_fog_rendering: shaders/shaders_fog_rendering.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/texel_checker.png@resources/texel_checker.png \ + --preload-file shaders/resources/shaders/glsl100/lighting.vs@resources/shaders/glsl100/lighting.vs \ + --preload-file shaders/resources/shaders/glsl100/fog.fs@resources/shaders/glsl100/fog.fs + +shaders/shaders_game_of_life: shaders/shaders_game_of_life.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/game_of_life.fs@resources/shaders/glsl100/game_of_life.fs \ + --preload-file shaders/resources/game_of_life/r_pentomino.png@resources/game_of_life/r_pentomino.png \ + --preload-file shaders/resources/game_of_life/glider.png@resources/game_of_life/glider.png \ + --preload-file shaders/resources/game_of_life/acorn.png@resources/game_of_life/acorn.png \ + --preload-file shaders/resources/game_of_life/spaceships.png@resources/game_of_life/spaceships.png \ + --preload-file shaders/resources/game_of_life/still_lifes.png@resources/game_of_life/still_lifes.png \ + --preload-file shaders/resources/game_of_life/oscillators.png@resources/game_of_life/oscillators.png \ + --preload-file shaders/resources/game_of_life/puffer_train.png@resources/game_of_life/puffer_train.png \ + --preload-file shaders/resources/game_of_life/glider_gun.png@resources/game_of_life/glider_gun.png \ + --preload-file shaders/resources/game_of_life/breeder.png@resources/game_of_life/breeder.png + +shaders/shaders_hot_reloading: shaders/shaders_hot_reloading.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/reload.fs@resources/shaders/glsl100/reload.fs + +shaders/shaders_hybrid_rendering: shaders/shaders_hybrid_rendering.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/hybrid_raymarch.fs@resources/shaders/glsl100/hybrid_raymarch.fs \ + --preload-file shaders/resources/shaders/glsl100/hybrid_raster.fs@resources/shaders/glsl100/hybrid_raster.fs + +shaders/shaders_julia_set: shaders/shaders_julia_set.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/julia_set.fs@resources/shaders/glsl100/julia_set.fs + +shaders/shaders_lightmap_rendering: shaders/shaders_lightmap_rendering.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/lightmap.vs@resources/shaders/glsl100/lightmap.vs \ + --preload-file shaders/resources/shaders/glsl100/lightmap.fs@resources/shaders/glsl100/lightmap.fs \ + --preload-file shaders/resources/cubicmap_atlas.png@resources/cubicmap_atlas.png \ + --preload-file shaders/resources/spark_flame.png@resources/spark_flame.png + +shaders/shaders_mandelbrot_set: shaders/shaders_mandelbrot_set.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/mandelbrot_set.fs@resources/shaders/glsl100/mandelbrot_set.fs + +shaders/shaders_mesh_instancing: shaders/shaders_mesh_instancing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/lighting_instancing.vs@resources/shaders/glsl100/lighting_instancing.vs \ + --preload-file shaders/resources/shaders/glsl100/lighting.fs@resources/shaders/glsl100/lighting.fs + +shaders/shaders_model_shader: shaders/shaders_model_shader.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/models/watermill.obj@resources/models/watermill.obj \ + --preload-file shaders/resources/models/watermill_diffuse.png@resources/models/watermill_diffuse.png \ + --preload-file shaders/resources/shaders/glsl100/grayscale.fs@resources/shaders/glsl100/grayscale.fs + +shaders/shaders_multi_sample2d: shaders/shaders_multi_sample2d.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/color_mix.fs@resources/shaders/glsl100/color_mix.fs + +shaders/shaders_normalmap_rendering: shaders/shaders_normalmap_rendering.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/normalmap.vs@resources/shaders/glsl100/normalmap.vs \ + --preload-file shaders/resources/shaders/glsl100/normalmap.fs@resources/shaders/glsl100/normalmap.fs \ + --preload-file shaders/resources/models/plane.glb@resources/models/plane.glb \ + --preload-file shaders/resources/tiles_diffuse.png@resources/tiles_diffuse.png \ + --preload-file shaders/resources/tiles_normal.png@resources/tiles_normal.png + +shaders/shaders_palette_switch: shaders/shaders_palette_switch.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/palette_switch.fs@resources/shaders/glsl100/palette_switch.fs + +shaders/shaders_postprocessing: shaders/shaders_postprocessing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/models/church.obj@resources/models/church.obj \ + --preload-file shaders/resources/models/church_diffuse.png@resources/models/church_diffuse.png \ + --preload-file shaders/resources/shaders/glsl100/grayscale.fs@resources/shaders/glsl100/grayscale.fs \ + --preload-file shaders/resources/shaders/glsl100/posterization.fs@resources/shaders/glsl100/posterization.fs \ + --preload-file shaders/resources/shaders/glsl100/dream_vision.fs@resources/shaders/glsl100/dream_vision.fs \ + --preload-file shaders/resources/shaders/glsl100/pixelizer.fs@resources/shaders/glsl100/pixelizer.fs \ + --preload-file shaders/resources/shaders/glsl100/cross_hatching.fs@resources/shaders/glsl100/cross_hatching.fs \ + --preload-file shaders/resources/shaders/glsl100/cross_stitching.fs@resources/shaders/glsl100/cross_stitching.fs \ + --preload-file shaders/resources/shaders/glsl100/predator.fs@resources/shaders/glsl100/predator.fs \ + --preload-file shaders/resources/shaders/glsl100/scanlines.fs@resources/shaders/glsl100/scanlines.fs \ + --preload-file shaders/resources/shaders/glsl100/fisheye.fs@resources/shaders/glsl100/fisheye.fs \ + --preload-file shaders/resources/shaders/glsl100/sobel.fs@resources/shaders/glsl100/sobel.fs \ + --preload-file shaders/resources/shaders/glsl100/bloom.fs@resources/shaders/glsl100/bloom.fs \ + --preload-file shaders/resources/shaders/glsl100/blur.fs@resources/shaders/glsl100/blur.fs + +shaders/shaders_raymarching_rendering: shaders/shaders_raymarching_rendering.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/raymarching.fs@resources/shaders/glsl100/raymarching.fs + +shaders/shaders_rlgl_compute: shaders/shaders_rlgl_compute.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shaders/shaders_rounded_rectangle: shaders/shaders_rounded_rectangle.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/base.vs@resources/shaders/glsl100/base.vs \ + --preload-file shaders/resources/shaders/glsl100/rounded_rectangle.fs@resources/shaders/glsl100/rounded_rectangle.fs + +shaders/shaders_shadowmap_rendering: shaders/shaders_shadowmap_rendering.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/shadowmap.vs@resources/shaders/glsl100/shadowmap.vs \ + --preload-file shaders/resources/shaders/glsl100/shadowmap.fs@resources/shaders/glsl100/shadowmap.fs \ + --preload-file shaders/resources/models/robot.glb@resources/models/robot.glb + +shaders/shaders_shapes_textures: shaders/shaders_shapes_textures.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/fudesumi.png@resources/fudesumi.png \ + --preload-file shaders/resources/shaders/glsl100/grayscale.fs@resources/shaders/glsl100/grayscale.fs + +shaders/shaders_simple_mask: shaders/shaders_simple_mask.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/mask.fs@resources/shaders/glsl100/mask.fs \ + --preload-file shaders/resources/plasma.png@resources/plasma.png \ + --preload-file shaders/resources/mask.png@resources/mask.png + +shaders/shaders_spotlight_rendering: shaders/shaders_spotlight_rendering.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/raysan.png@resources/raysan.png \ + --preload-file shaders/resources/shaders/glsl100/spotlight.fs@resources/shaders/glsl100/spotlight.fs + +shaders/shaders_texture_outline: shaders/shaders_texture_outline.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/fudesumi.png@resources/fudesumi.png \ + --preload-file shaders/resources/shaders/glsl100/outline.fs@resources/shaders/glsl100/outline.fs + +shaders/shaders_texture_rendering: shaders/shaders_texture_rendering.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/cubes_panning.fs@resources/shaders/glsl100/cubes_panning.fs + +shaders/shaders_texture_tiling: shaders/shaders_texture_tiling.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/cubicmap_atlas.png@resources/cubicmap_atlas.png \ + --preload-file shaders/resources/shaders/glsl100/tiling.fs@resources/shaders/glsl100/tiling.fs + +shaders/shaders_texture_waves: shaders/shaders_texture_waves.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/space.png@resources/space.png \ + --preload-file shaders/resources/shaders/glsl100/wave.fs@resources/shaders/glsl100/wave.fs + +shaders/shaders_vertex_displacement: shaders/shaders_vertex_displacement.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/vertex_displacement.vs@resources/shaders/glsl100/vertex_displacement.vs \ + --preload-file shaders/resources/shaders/glsl100/vertex_displacement.fs@resources/shaders/glsl100/vertex_displacement.fs + +# Compile AUDIO examples +audio/audio_mixed_processor: audio/audio_mixed_processor.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file audio/resources/country.mp3@resources/country.mp3 \ + --preload-file audio/resources/coin.wav@resources/coin.wav + +audio/audio_module_playing: audio/audio_module_playing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file audio/resources/mini1111.xm@resources/mini1111.xm + +audio/audio_music_stream: audio/audio_music_stream.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file audio/resources/country.mp3@resources/country.mp3 + +audio/audio_raw_stream: audio/audio_raw_stream.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +audio/audio_sound_loading: audio/audio_sound_loading.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file audio/resources/sound.wav@resources/sound.wav \ + --preload-file audio/resources/target.ogg@resources/target.ogg + +audio/audio_sound_multi: audio/audio_sound_multi.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file audio/resources/sound.wav@resources/sound.wav + +audio/audio_sound_positioning: audio/audio_sound_positioning.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file audio/resources/coin.wav@resources/coin.wav + +audio/audio_spectrum_visualizer: audio/audio_spectrum_visualizer.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file audio/resources/shaders/glsl100/fft.fs@resources/shaders/glsl100/fft.fs \ + --preload-file audio/resources/country.mp3@resources/country.mp3 + +audio/audio_stream_callback: audio/audio_stream_callback.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +audio/audio_stream_effects: audio/audio_stream_effects.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file audio/resources/country.mp3@resources/country.mp3 +#EXAMPLES_LIST_END + +# Clean everything +clean: +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),WINDOWS) + del *.o *.exe /s + endif + ifeq ($(PLATFORM_OS),LINUX) + find . -type f -executable -delete + rm -fv *.o + endif + ifeq ($(PLATFORM_OS),OSX) + find . -type f -perm +ugo+x -delete + rm -f *.o + endif +endif +ifeq ($(PLATFORM),PLATFORM_DRM) + find . -type f -executable -delete + rm -fv *.o +endif +ifeq ($(PLATFORM),$(filter $(PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW)) + del *.o *.html *.js +endif + @echo Cleaning done diff --git a/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/examples/README.md b/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/examples/README.md new file mode 100644 index 0000000..d486415 --- /dev/null +++ b/zig-pkg/raylib-6.0.0-whq8uCSwLgWWeF3ec3dbG6Rr36SLFL-s2WJ1Q_2E22Bb/examples/README.md @@ -0,0 +1,284 @@ +## Building the Examples + +The examples assume you have already built the `raylib` library in `../src`. + +### With GNU make + +- `make` builds all examples +- `make [module]` builds all examples for a particular module (e.g `make core`) +- `make [module]/[name]` builds one examples for a particular module (e.g `make core/core_basic_window`) + +### With Zig + +The [Zig](https://ziglang.org/) toolchain can compile `C` and `C++` in addition to `Zig`. +You may find it easier to use than other toolchains, especially when it comes to cross-compiling. + +- `zig build` to compile all examples +- `zig build [module]` to compile all examples for a module (e.g. `zig build core`) +- `zig build [example]` to compile _and run_ a particular example (e.g. `zig build core_basic_window`) + +## EXAMPLES COLLECTION [TOTAL: 212] + +### category: core [49] + +Examples using raylib [core](../src/rcore.c) module platform functionality: window creation, inputs, drawing modes and system functionality. + +| example | image | difficulty
level | version
created | last version
updated | original
developer | +|-----------|--------|:-------------------:|:------------------:|:-----------------------:|:----------------------| +| [core_basic_window](core/core_basic_window.c) | core_basic_window | ⭐☆☆☆ | 1.0 | 1.0 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_delta_time](core/core_delta_time.c) | core_delta_time | ⭐☆☆☆ | 5.5 | 6.0 | [Robin](https://github.com/RobinsAviary) | +| [core_input_keys](core/core_input_keys.c) | core_input_keys | ⭐☆☆☆ | 1.0 | 1.0 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_input_mouse](core/core_input_mouse.c) | core_input_mouse | ⭐☆☆☆ | 1.0 | 5.5 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_input_mouse_wheel](core/core_input_mouse_wheel.c) | core_input_mouse_wheel | ⭐☆☆☆ | 1.1 | 1.3 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_input_gamepad](core/core_input_gamepad.c) | core_input_gamepad | ⭐☆☆☆ | 1.1 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_input_multitouch](core/core_input_multitouch.c) | core_input_multitouch | ⭐☆☆☆ | 2.1 | 2.5 | [Berni](https://github.com/Berni8k) | +| [core_input_gestures](core/core_input_gestures.c) | core_input_gestures | ⭐⭐☆☆ | 1.4 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_input_gestures_testbed](core/core_input_gestures_testbed.c) | core_input_gestures_testbed | ⭐⭐⭐☆ | 5.0 | 6.0 | [ubkp](https://github.com/ubkp) | +| [core_input_virtual_controls](core/core_input_virtual_controls.c) | core_input_virtual_controls | ⭐⭐☆☆ | 5.0 | 5.0 | [GreenSnakeLinux](https://github.com/GreenSnakeLinux) | +| [core_2d_camera](core/core_2d_camera.c) | core_2d_camera | ⭐⭐☆☆ | 1.5 | 3.0 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_2d_camera_mouse_zoom](core/core_2d_camera_mouse_zoom.c) | core_2d_camera_mouse_zoom | ⭐⭐☆☆ | 4.2 | 4.2 | [Jeffery Myers](https://github.com/JeffM2501) | +| [core_2d_camera_platformer](core/core_2d_camera_platformer.c) | core_2d_camera_platformer | ⭐⭐⭐☆ | 2.5 | 3.0 | [arvyy](https://github.com/arvyy) | +| [core_2d_camera_split_screen](core/core_2d_camera_split_screen.c) | core_2d_camera_split_screen | ⭐⭐⭐⭐️ | 4.5 | 4.5 | [Gabriel dos Santos Sanches](https://github.com/gabrielssanches) | +| [core_3d_camera_mode](core/core_3d_camera_mode.c) | core_3d_camera_mode | ⭐☆☆☆ | 1.0 | 1.0 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_3d_camera_free](core/core_3d_camera_free.c) | core_3d_camera_free | ⭐☆☆☆ | 1.3 | 1.3 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_3d_camera_first_person](core/core_3d_camera_first_person.c) | core_3d_camera_first_person | ⭐⭐☆☆ | 1.3 | 1.3 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_3d_camera_split_screen](core/core_3d_camera_split_screen.c) | core_3d_camera_split_screen | ⭐⭐⭐☆ | 3.7 | 4.0 | [Jeffery Myers](https://github.com/JeffM2501) | +| [core_3d_camera_fps](core/core_3d_camera_fps.c) | core_3d_camera_fps | ⭐⭐⭐☆ | 5.5 | 5.5 | [Agnis Aldiņš](https://github.com/nezvers) | +| [core_3d_picking](core/core_3d_picking.c) | core_3d_picking | ⭐⭐☆☆ | 1.3 | 4.0 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_world_screen](core/core_world_screen.c) | core_world_screen | ⭐⭐☆☆ | 1.3 | 1.4 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_window_flags](core/core_window_flags.c) | core_window_flags | ⭐⭐⭐☆ | 3.5 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_window_letterbox](core/core_window_letterbox.c) | core_window_letterbox | ⭐⭐☆☆ | 2.5 | 4.0 | [Anata](https://github.com/anatagawa) | +| [core_window_should_close](core/core_window_should_close.c) | core_window_should_close | ⭐☆☆☆ | 4.2 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_monitor_detector](core/core_monitor_detector.c) | core_monitor_detector | ⭐☆☆☆ | 5.5 | 5.6 | [Maicon Santana](https://github.com/maiconpintoabreu) | +| [core_custom_logging](core/core_custom_logging.c) | core_custom_logging | ⭐⭐⭐☆ | 2.5 | 2.5 | [Pablo Marcos Oltra](https://github.com/pamarcos) | +| [core_drop_files](core/core_drop_files.c) | core_drop_files | ⭐⭐☆☆ | 1.3 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_random_values](core/core_random_values.c) | core_random_values | ⭐☆☆☆ | 1.1 | 1.1 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_storage_values](core/core_storage_values.c) | core_storage_values | ⭐⭐☆☆ | 1.4 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_vr_simulator](core/core_vr_simulator.c) | core_vr_simulator | ⭐⭐⭐☆ | 2.5 | 4.0 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_scissor_test](core/core_scissor_test.c) | core_scissor_test | ⭐☆☆☆ | 2.5 | 3.0 | [Chris Dill](https://github.com/MysteriousSpace) | +| [core_basic_screen_manager](core/core_basic_screen_manager.c) | core_basic_screen_manager | ⭐☆☆☆ | 4.0 | 4.0 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_custom_frame_control](core/core_custom_frame_control.c) | core_custom_frame_control | ⭐⭐⭐⭐️ | 4.0 | 4.0 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_smooth_pixelperfect](core/core_smooth_pixelperfect.c) | core_smooth_pixelperfect | ⭐⭐⭐☆ | 3.7 | 4.0 | [Giancamillo Alessandroni](https://github.com/NotManyIdeasDev) | +| [core_random_sequence](core/core_random_sequence.c) | core_random_sequence | ⭐☆☆☆ | 5.0 | 5.0 | [Dalton Overmyer](https://github.com/REDl3east) | +| [core_automation_events](core/core_automation_events.c) | core_automation_events | ⭐⭐⭐☆ | 5.0 | 5.0 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_highdpi_demo](core/core_highdpi_demo.c) | core_highdpi_demo | ⭐⭐☆☆ | 5.0 | 5.5 | [Jonathan Marler](https://github.com/marler8997) | +| [core_render_texture](core/core_render_texture.c) | core_render_texture | ⭐☆☆☆ | 6.0 | 6.0 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_undo_redo](core/core_undo_redo.c) | core_undo_redo | ⭐⭐⭐☆ | 5.5 | 5.6 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_viewport_scaling](core/core_viewport_scaling.c) | core_viewport_scaling | ⭐⭐☆☆ | 5.5 | 5.5 | [Agnis Aldiņš](https://github.com/nezvers) | +| [core_input_actions](core/core_input_actions.c) | core_input_actions | ⭐⭐☆☆ | 5.5 | 5.6 | [Jett](https://github.com/JettMonstersGoBoom) | +| [core_directory_files](core/core_directory_files.c) | core_directory_files | ⭐☆☆☆ | 5.5 | 5.6 | [Hugo ARNAL](https://github.com/hugoarnal) | +| [core_highdpi_testbed](core/core_highdpi_testbed.c) | core_highdpi_testbed | ⭐☆☆☆ | 6.0 | 6.0 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_screen_recording](core/core_screen_recording.c) | core_screen_recording | ⭐⭐☆☆ | 6.0 | 6.0 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_clipboard_text](core/core_clipboard_text.c) | core_clipboard_text | ⭐⭐☆☆ | 6.0 | 6.0 | [Ananth S](https://github.com/Ananth1839) | +| [core_text_file_loading](core/core_text_file_loading.c) | core_text_file_loading | ⭐☆☆☆ | 5.5 | 5.6 | [Aanjishnu Bhattacharyya](https://github.com/NimComPoo-04) | +| [core_compute_hash](core/core_compute_hash.c) | core_compute_hash | ⭐⭐☆☆ | 6.0 | 6.0 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_keyboard_testbed](core/core_keyboard_testbed.c) | core_keyboard_testbed | ⭐⭐☆☆ | 5.6 | 5.6 | [Ramon Santamaria](https://github.com/raysan5) | +| [core_window_web](core/core_window_web.c) | core_window_web | ⭐☆☆☆ | 1.3 | 5.5 | [Ramon Santamaria](https://github.com/raysan5) | + +### category: shapes [40] + +Examples using raylib shapes drawing functionality, provided by raylib [shapes](../src/rshapes.c) module. + +| example | image | difficulty
level | version
created | last version
updated | original
developer | +|-----------|--------|:-------------------:|:------------------:|:-----------------------:|:----------------------| +| [shapes_basic_shapes](shapes/shapes_basic_shapes.c) | shapes_basic_shapes | ⭐☆☆☆ | 1.0 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) | +| [shapes_bouncing_ball](shapes/shapes_bouncing_ball.c) | shapes_bouncing_ball | ⭐☆☆☆ | 2.5 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | +| [shapes_bullet_hell](shapes/shapes_bullet_hell.c) | shapes_bullet_hell | ⭐☆☆☆ | 5.6 | 5.6 | [Zero](https://github.com/zerohorsepower) | +| [shapes_colors_palette](shapes/shapes_colors_palette.c) | shapes_colors_palette | ⭐⭐☆☆ | 1.0 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | +| [shapes_logo_raylib](shapes/shapes_logo_raylib.c) | shapes_logo_raylib | ⭐☆☆☆ | 1.0 | 1.0 | [Ramon Santamaria](https://github.com/raysan5) | +| [shapes_logo_raylib_anim](shapes/shapes_logo_raylib_anim.c) | shapes_logo_raylib_anim | ⭐⭐☆☆ | 2.5 | 4.0 | [Ramon Santamaria](https://github.com/raysan5) | +| [shapes_rectangle_scaling](shapes/shapes_rectangle_scaling.c) | shapes_rectangle_scaling | ⭐⭐☆☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) | +| [shapes_lines_bezier](shapes/shapes_lines_bezier.c) | shapes_lines_bezier | ⭐☆☆☆ | 1.7 | 1.7 | [Ramon Santamaria](https://github.com/raysan5) | +| [shapes_collision_area](shapes/shapes_collision_area.c) | shapes_collision_area | ⭐⭐☆☆ | 2.5 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | +| [shapes_following_eyes](shapes/shapes_following_eyes.c) | shapes_following_eyes | ⭐⭐☆☆ | 2.5 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | +| [shapes_easings_ball](shapes/shapes_easings_ball.c) | shapes_easings_ball | ⭐⭐☆☆ | 2.5 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | +| [shapes_easings_box](shapes/shapes_easings_box.c) | shapes_easings_box | ⭐⭐☆☆ | 2.5 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | +| [shapes_easings_rectangles](shapes/shapes_easings_rectangles.c) | shapes_easings_rectangles | ⭐⭐⭐☆ | 2.0 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) | +| [shapes_recursive_tree](shapes/shapes_recursive_tree.c) | shapes_recursive_tree | ⭐⭐⭐☆ | 6.0 | 6.0 | [Jopestpe](https://github.com/jopestpe) | +| [shapes_ring_drawing](shapes/shapes_ring_drawing.c) | shapes_ring_drawing | ⭐⭐⭐☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) | +| [shapes_circle_sector_drawing](shapes/shapes_circle_sector_drawing.c) | shapes_circle_sector_drawing | ⭐⭐⭐☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) | +| [shapes_rounded_rectangle_drawing](shapes/shapes_rounded_rectangle_drawing.c) | shapes_rounded_rectangle_drawing | ⭐⭐⭐☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) | +| [shapes_top_down_lights](shapes/shapes_top_down_lights.c) | shapes_top_down_lights | ⭐⭐⭐⭐️ | 4.2 | 4.2 | [Jeffery Myers](https://github.com/JeffM2501) | +| [shapes_rectangle_advanced](shapes/shapes_rectangle_advanced.c) | shapes_rectangle_advanced | ⭐⭐⭐⭐️ | 5.5 | 5.5 | [Everton Jr.](https://github.com/evertonse) | +| [shapes_splines_drawing](shapes/shapes_splines_drawing.c) | shapes_splines_drawing | ⭐⭐⭐☆ | 5.0 | 5.0 | [Ramon Santamaria](https://github.com/raysan5) | +| [shapes_digital_clock](shapes/shapes_digital_clock.c) | shapes_digital_clock | ⭐⭐⭐⭐️ | 5.5 | 5.6 | [Hamza RAHAL](https://github.com/hmz-rhl) | +| [shapes_double_pendulum](shapes/shapes_double_pendulum.c) | shapes_double_pendulum | ⭐⭐☆☆ | 5.5 | 5.5 | [JoeCheong](https://github.com/Joecheong2006) | +| [shapes_dashed_line](shapes/shapes_dashed_line.c) | shapes_dashed_line | ⭐☆☆☆ | 5.5 | 5.5 | [Luís Almeida](https://github.com/luis605) | +| [shapes_triangle_strip](shapes/shapes_triangle_strip.c) | shapes_triangle_strip | ⭐⭐☆☆ | 6.0 | 6.0 | [Jopestpe](https://github.com/jopestpe) | +| [shapes_vector_angle](shapes/shapes_vector_angle.c) | shapes_vector_angle | ⭐⭐☆☆ | 1.0 | 5.0 | [Ramon Santamaria](https://github.com/raysan5) | +| [shapes_pie_chart](shapes/shapes_pie_chart.c) | shapes_pie_chart | ⭐⭐⭐☆ | 5.5 | 5.6 | [Gideon Serfontein](https://github.com/GideonSerf) | +| [shapes_kaleidoscope](shapes/shapes_kaleidoscope.c) | shapes_kaleidoscope | ⭐⭐☆☆ | 5.5 | 5.6 | [Hugo ARNAL](https://github.com/hugoarnal) | +| [shapes_clock_of_clocks](shapes/shapes_clock_of_clocks.c) | shapes_clock_of_clocks | ⭐⭐☆☆ | 5.5 | 6.0 | [JP Mortiboys](https://github.com/themushroompirates) | +| [shapes_math_sine_cosine](shapes/shapes_math_sine_cosine.c) | shapes_math_sine_cosine | ⭐⭐☆☆ | 6.0 | 6.0 | [Jopestpe](https://github.com/jopestpe) | +| [shapes_mouse_trail](shapes/shapes_mouse_trail.c) |