From 6d5444a31cf9ce53995183669456c168cf2b5e18 Mon Sep 17 00:00:00 2001 From: imterah Date: Mon, 23 Jun 2025 12:00:57 -0400 Subject: [PATCH] chore: Get raylib POC working --- .gitignore | 2 +- Makefile | 13 +++++++++++++ README.md | 2 +- app/main.go | 16 ++++++++++++++++ go.mod | 7 +++++-- go.sum | 10 ++++++++++ unrealxr | 2 +- 7 files changed, 47 insertions(+), 5 deletions(-) create mode 100644 Makefile diff --git a/.gitignore b/.gitignore index 4df5f94..3ef1354 100644 --- a/.gitignore +++ b/.gitignore @@ -29,4 +29,4 @@ go.work.sum # development dirs data # artifacts -app/app +uxr diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..b5d2de6 --- /dev/null +++ b/Makefile @@ -0,0 +1,13 @@ +APP_DIR := ./app +OUTPUT := uxr +TAGS := drm drm_leasing drm_disable_input + +.PHONY: all build clean + +all: build + +build: + go build -tags '$(TAGS)' -o $(OUTPUT) $(APP_DIR) + +clean: + rm -f $(OUTPUT) diff --git a/README.md b/README.md index a87c344..785e5a7 100644 --- a/README.md +++ b/README.md @@ -28,4 +28,4 @@ If you're using Nix/NixOS, all you need to do is use `nix-shell` to enter the de ## Building -TODO. +Just run `make` in the root directory. diff --git a/app/main.go b/app/main.go index a7bf8f4..11b66ad 100644 --- a/app/main.go +++ b/app/main.go @@ -14,6 +14,8 @@ import ( "github.com/goccy/go-yaml" "github.com/kirsle/configdir" "github.com/urfave/cli/v3" + + rl "git.terah.dev/UnrealXR/raylib-go/raylib" ) func mainEntrypoint(context.Context, *cli.Command) error { @@ -100,6 +102,20 @@ func mainEntrypoint(context.Context, *cli.Command) error { log.Info("Initializing XR headset") + rl.InitWindow(800, 450, "raylib [core] example - basic window") + defer rl.CloseWindow() + + rl.SetTargetFPS(60) + + for !rl.WindowShouldClose() { + rl.BeginDrawing() + + rl.ClearBackground(rl.RayWhite) + rl.DrawText("Congrats! You created your first window!", 190, 200, 20, rl.LightGray) + + rl.EndDrawing() + } + return nil } diff --git a/go.mod b/go.mod index b09e4fc..4df2f71 100644 --- a/go.mod +++ b/go.mod @@ -3,6 +3,8 @@ module git.terah.dev/UnrealXR/unrealxr go 1.24.3 require ( + git.terah.dev/UnrealXR/raylib-go/raylib v0.55.2-0.20250623002739-1468af2636e1 // indirect + git.terah.dev/imterah/goevdi v0.0.0-20250211014657-96d98ad0735c // indirect github.com/anoopengineer/edidparser v0.0.0-20240602223913-86ca9ed3d2b0 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc // indirect @@ -11,6 +13,7 @@ require ( github.com/charmbracelet/x/ansi v0.8.0 // indirect github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd // indirect github.com/charmbracelet/x/term v0.2.1 // indirect + github.com/ebitengine/purego v0.8.4 // indirect github.com/go-logfmt/logfmt v0.6.0 // indirect github.com/goccy/go-yaml v1.18.0 // indirect github.com/google/uuid v1.6.0 // indirect @@ -22,6 +25,6 @@ require ( github.com/rivo/uniseg v0.4.7 // indirect github.com/urfave/cli/v3 v3.3.8 // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect - golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect - golang.org/x/sys v0.30.0 // indirect + golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b // indirect + golang.org/x/sys v0.33.0 // indirect ) diff --git a/go.sum b/go.sum index 63b1134..4040ae3 100644 --- a/go.sum +++ b/go.sum @@ -1,3 +1,7 @@ +git.terah.dev/UnrealXR/raylib-go/raylib v0.55.2-0.20250623002739-1468af2636e1 h1:cO/veKc8mon3Zlueq1sEc047B04fk/hoBJSn+btMLDI= +git.terah.dev/UnrealXR/raylib-go/raylib v0.55.2-0.20250623002739-1468af2636e1/go.mod h1:ZRirF2UuVWSbl2ux7oyHwXcinni9msejCvtIsXbT8yY= +git.terah.dev/imterah/goevdi v0.0.0-20250211014657-96d98ad0735c h1:Ys33r6kjCyCs8N3ofSzCGxxL1gLIfetIiO1uL5UIsAM= +git.terah.dev/imterah/goevdi v0.0.0-20250211014657-96d98ad0735c/go.mod h1:RmxqlNaEJ+6qbHpyw6ivJhXlRYT1RcsZ9gzNOsFXfOA= github.com/anoopengineer/edidparser v0.0.0-20240602223913-86ca9ed3d2b0 h1:rTfysyBCL7LPbq9GFpQbllvKT8vEI93lQUwksMMxHMI= github.com/anoopengineer/edidparser v0.0.0-20240602223913-86ca9ed3d2b0/go.mod h1:fEt61NePh3ZMxA+g3iC4CaGzY9lEsHRUkYJY2x0lBAw= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= @@ -14,6 +18,8 @@ github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd h1:vy0G github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd/go.mod h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs= github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ= github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg= +github.com/ebitengine/purego v0.8.4 h1:CF7LEKg5FFOsASUj0+QwaXf8Ht6TlFxg09+S9wz0omw= +github.com/ebitengine/purego v0.8.4/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/goccy/go-yaml v1.18.0 h1:8W7wMFS12Pcas7KU+VVkaiCng+kG8QiFeFwzFb+rwuw= @@ -39,6 +45,10 @@ github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavM github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= +golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b h1:M2rDM6z3Fhozi9O7NWsxAkg/yqS/lQJ6PmkyIV3YP+o= +golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b/go.mod h1:3//PLf8L/X+8b4vuAfHzxeRUl04Adcb341+IGKfnqS8= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= +golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= diff --git a/unrealxr b/unrealxr index 764a6d9..512cfa2 100755 --- a/unrealxr +++ b/unrealxr @@ -1 +1 @@ -sudo UNREALXR_LOG_LEVEL="$UNREALXR_LOG_LEVEL" LD_LIBRARY_PATH="$LD_LIBRARY_PATH" UNREALXR_CONFIG_PATH="$UNREALXR_CONFIG_PATH" UNREALXR_DATA_PATH="$UNREALXR_DATA_PATH" WAYLAND_DISPLAY="$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY" XDG_RUNTIME_DIR="/user/run/0" ./app/app +sudo UNREALXR_LOG_LEVEL="$UNREALXR_LOG_LEVEL" LD_LIBRARY_PATH="$LD_LIBRARY_PATH" UNREALXR_CONFIG_PATH="$UNREALXR_CONFIG_PATH" UNREALXR_DATA_PATH="$UNREALXR_DATA_PATH" WAYLAND_DISPLAY="$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY" XDG_RUNTIME_DIR="/user/run/0" ./uxr