From ea071de5c237c4f0e69bb97fb022476a4b98f23b Mon Sep 17 00:00:00 2001 From: Milan Nikolic Date: Tue, 3 Dec 2024 09:06:39 +0100 Subject: [PATCH] Add support for SDL3 --- README.md | 1 + raylib/cgo_darwin.go | 4 ++-- raylib/cgo_darwin_rgfw.go | 4 ++-- raylib/cgo_darwin_sdl.go | 13 +++++++++---- raylib/cgo_freebsd.go | 4 ++-- raylib/cgo_freebsd_rgfw.go | 4 ++-- raylib/cgo_freebsd_sdl.go | 16 ++++++++++++---- raylib/cgo_linux.go | 4 ++-- raylib/cgo_linux_drm.go | 4 ++-- raylib/cgo_linux_rgfw.go | 4 ++-- raylib/cgo_linux_sdl.go | 15 +++++++++++---- raylib/cgo_openbsd.go | 4 ++-- raylib/cgo_openbsd_rgfw.go | 4 ++-- raylib/cgo_openbsd_sdl.go | 16 ++++++++++++---- raylib/cgo_windows.go | 4 ++-- raylib/cgo_windows_rgfw.go | 4 ++-- raylib/cgo_windows_sdl.go | 14 ++++++++++---- raylib/platform_desktop.go | 4 ++-- raylib/platform_desktop_rgfw.go | 4 ++-- raylib/platform_desktop_sdl.go | 7 +++++-- raylib/platform_drm.go | 4 ++-- 21 files changed, 88 insertions(+), 50 deletions(-) diff --git a/README.md b/README.md index a916b78e..78fbe916 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,7 @@ It is also possible to build the DLL yourself. You can find more info at [raylib * `drm` - build for Linux native [DRM](https://en.wikipedia.org/wiki/Direct_Rendering_Manager) mode, including Raspberry Pi 4 and other devices (PLATFORM_DRM) * `sdl` - build for [SDL](https://github.com/libsdl-org/SDL) backend (PLATFORM_DESKTOP_SDL) +* `sdl3` - build for [SDL](https://github.com/libsdl-org/SDL) v3 backend (PLATFORM_DESKTOP_SDL3) * `rgfw` - build for [RGFW](https://github.com/ColleagueRiley/RGFW) backend (PLATFORM_DESKTOP_RGFW) * `noaudio` - disables audio functions * `opengl43` - uses OpenGL 4.3 backend diff --git a/raylib/cgo_darwin.go b/raylib/cgo_darwin.go index 919518c5..575fb886 100644 --- a/raylib/cgo_darwin.go +++ b/raylib/cgo_darwin.go @@ -1,5 +1,5 @@ -//go:build darwin && !rgfw && !sdl -// +build darwin,!rgfw,!sdl +//go:build darwin && !rgfw && !sdl && !sdl3 +// +build darwin,!rgfw,!sdl,!sdl3 package rl diff --git a/raylib/cgo_darwin_rgfw.go b/raylib/cgo_darwin_rgfw.go index 619c3fd8..3006c241 100644 --- a/raylib/cgo_darwin_rgfw.go +++ b/raylib/cgo_darwin_rgfw.go @@ -1,5 +1,5 @@ -//go:build darwin && rgfw && !sdl -// +build darwin,rgfw,!sdl +//go:build darwin && rgfw && !sdl && !sdl3 +// +build darwin,rgfw,!sdl,!sdl3 package rl diff --git a/raylib/cgo_darwin_sdl.go b/raylib/cgo_darwin_sdl.go index e0902ea7..a5d3a083 100644 --- a/raylib/cgo_darwin_sdl.go +++ b/raylib/cgo_darwin_sdl.go @@ -1,12 +1,17 @@ -//go:build darwin && sdl && !rgfw -// +build darwin,sdl,!rgfw +//go:build darwin && (sdl || sdl3) && !rgfw +// +build darwin +// +build sdl sdl3 +// +build !rgfw package rl /* #cgo darwin LDFLAGS: -framework Cocoa -framework IOKit -framework CoreVideo -framework CoreFoundation -#cgo darwin CFLAGS: -Wno-deprecated-declarations -Wno-implicit-const-int-float-conversion -DPLATFORM_DESKTOP_SDL -#cgo darwin pkg-config: sdl2 +#cgo darwin CFLAGS: -Wno-deprecated-declarations -Wno-implicit-const-int-float-conversion +#cgo darwin,sdl CFLAGS: -DPLATFORM_DESKTOP_SDL +#cgo darwin,sdl3 CFLAGS: -DPLATFORM_DESKTOP_SDL -DPLATFORM_DESKTOP_SDL3 +#cgo darwin,sdl pkg-config: sdl2 +#cgo darwin,sdl3 pkg-config: sdl3 #cgo darwin,!es2,!es3 LDFLAGS: -framework OpenGL diff --git a/raylib/cgo_freebsd.go b/raylib/cgo_freebsd.go index 99d6491b..c29c7312 100644 --- a/raylib/cgo_freebsd.go +++ b/raylib/cgo_freebsd.go @@ -1,5 +1,5 @@ -//go:build freebsd && !linux && !rgfw && !drm && !sdl && !android -// +build freebsd,!linux,!rgfw,!drm,!sdl,!android +//go:build freebsd && !linux && !rgfw && !drm && !sdl && !sdl3 && !android +// +build freebsd,!linux,!rgfw,!drm,!sdl,!sdl3,!android package rl diff --git a/raylib/cgo_freebsd_rgfw.go b/raylib/cgo_freebsd_rgfw.go index 35c81424..6df34b84 100644 --- a/raylib/cgo_freebsd_rgfw.go +++ b/raylib/cgo_freebsd_rgfw.go @@ -1,5 +1,5 @@ -//go:build freebsd && rgfw && !linux && !drm && !sdl && !android -// +build freebsd,rgfw,!linux,!drm,!sdl,!android +//go:build freebsd && rgfw && !linux && !drm && !sdl && !sdl3 && !android +// +build freebsd,rgfw,!linux,!drm,!sdl,!sdl3,!android package rl diff --git a/raylib/cgo_freebsd_sdl.go b/raylib/cgo_freebsd_sdl.go index a54ff474..cc56b7e3 100644 --- a/raylib/cgo_freebsd_sdl.go +++ b/raylib/cgo_freebsd_sdl.go @@ -1,13 +1,21 @@ -//go:build freebsd && !linux && sdl && !rgfw && !drm && !android -// +build freebsd,!linux,sdl,!rgfw,!drm,!android +//go:build freebsd && !linux && (sdl || sdl3) && !rgfw && !drm && !android +// +build freebsd +// +build !linux +// +build sdl sdl3 +// +build !rgfw +// +build !drm +// +build !android package rl /* -#cgo freebsd CFLAGS: -I. -I/usr/local/include -DPLATFORM_DESKTOP_SDL +#cgo freebsd CFLAGS: -I. -I/usr/local/include +#cgo freebsd,sdl CFLAGS: -DPLATFORM_DESKTOP_SDL +#cgo freebsd,sdl3 CFLAGS: -DPLATFORM_DESKTOP_SDL -DPLATFORM_DESKTOP_SDL3 #cgo freebsd LDFLAGS: -L/usr/local/lib -#cgo freebsd pkg-config: sdl2 +#cgo freebsd,sdl pkg-config: sdl2 +#cgo freebsd,sdl3 pkg-config: sdl3 #cgo freebsd,!es2,!es3 LDFLAGS: -lGL diff --git a/raylib/cgo_linux.go b/raylib/cgo_linux.go index d6c3b81d..453d5630 100644 --- a/raylib/cgo_linux.go +++ b/raylib/cgo_linux.go @@ -1,5 +1,5 @@ -//go:build linux && !rgfw && !drm && !sdl && !android -// +build linux,!rgfw,!drm,!sdl,!android +//go:build linux && !rgfw && !drm && !sdl && !sdl3 && !android +// +build linux,!rgfw,!drm,!sdl,!sdl3,!android package rl diff --git a/raylib/cgo_linux_drm.go b/raylib/cgo_linux_drm.go index afc1ac08..c50ce913 100644 --- a/raylib/cgo_linux_drm.go +++ b/raylib/cgo_linux_drm.go @@ -1,5 +1,5 @@ -//go:build linux && drm && !rgfw && !sdl && !android -// +build linux,drm,!rgfw,!sdl,!android +//go:build linux && drm && !rgfw && !sdl && !sdl3 && !android +// +build linux,drm,!rgfw,!sdl,!sdl3,!android package rl diff --git a/raylib/cgo_linux_rgfw.go b/raylib/cgo_linux_rgfw.go index 54ea8f93..75858362 100644 --- a/raylib/cgo_linux_rgfw.go +++ b/raylib/cgo_linux_rgfw.go @@ -1,5 +1,5 @@ -//go:build linux && rgfw && !drm && !sdl && !android -// +build linux,rgfw,!drm,!sdl,!android +//go:build linux && rgfw && !drm && !sdl && !sdl3 && !android +// +build linux,rgfw,!drm,!sdl,!sdl3,!android package rl diff --git a/raylib/cgo_linux_sdl.go b/raylib/cgo_linux_sdl.go index 90f3186b..cde87da5 100644 --- a/raylib/cgo_linux_sdl.go +++ b/raylib/cgo_linux_sdl.go @@ -1,12 +1,19 @@ -//go:build linux && sdl && !rgfw && !drm && !android -// +build linux,sdl,!rgfw,!drm,!android +//go:build linux && (sdl || sdl3) && !rgfw && !drm && !android +// +build linux +// +build sdl sdl3 +// +build !rgfw +// +build !drm +// +build !android package rl /* #cgo linux,!es2 LDFLAGS: -lm -#cgo linux CFLAGS: -DPLATFORM_DESKTOP_SDL -Wno-stringop-overflow -#cgo linux pkg-config: sdl2 +#cgo linux CFLAGS: -Wno-stringop-overflow +#cgo linux,sdl CFLAGS: -DPLATFORM_DESKTOP_SDL +#cgo linux,sdl3 CFLAGS: -DPLATFORM_DESKTOP_SDL -DPLATFORM_DESKTOP_SDL3 +#cgo linux,sdl pkg-config: sdl2 +#cgo linux,sdl3 pkg-config: sdl3 #cgo linux,!es2,!es3 LDFLAGS: -lGL diff --git a/raylib/cgo_openbsd.go b/raylib/cgo_openbsd.go index 9e8d6b51..a40ee1cb 100644 --- a/raylib/cgo_openbsd.go +++ b/raylib/cgo_openbsd.go @@ -1,5 +1,5 @@ -//go:build openbsd && !linux && !rgfw && !drm && !sdl && !android -// +build openbsd,!linux,!rgfw,!drm,!sdl,!android +//go:build openbsd && !linux && !rgfw && !drm && !sdl && !sdl3 && !android +// +build openbsd,!linux,!rgfw,!drm,!sdl,!sdl3,!android package rl diff --git a/raylib/cgo_openbsd_rgfw.go b/raylib/cgo_openbsd_rgfw.go index a46ef7ae..11441dc3 100644 --- a/raylib/cgo_openbsd_rgfw.go +++ b/raylib/cgo_openbsd_rgfw.go @@ -1,5 +1,5 @@ -//go:build openbsd && rgfw && !linux && !sdl && !drm && !android -// +build openbsd,rgfw,!linux,!sdl,!drm,!android +//go:build openbsd && rgfw && !linux && !sdl && !sdl3 && !drm && !android +// +build openbsd,rgfw,!linux,!sdl,!sdl3,!drm,!android package rl diff --git a/raylib/cgo_openbsd_sdl.go b/raylib/cgo_openbsd_sdl.go index 2bd9f10f..4fe5e5a3 100644 --- a/raylib/cgo_openbsd_sdl.go +++ b/raylib/cgo_openbsd_sdl.go @@ -1,13 +1,21 @@ -//go:build openbsd && !linux && sdl && !rgfw && !drm && !android -// +build openbsd,!linux,sdl,!rgfw,!drm,!android +//go:build openbsd && !linux && (sdl || sdl3) && !rgfw && !drm && !android +// +build openbsd +// +build !linux +// +build sdl sdl3 +// +build !rgfw +// +build !drm +// +build !android package rl /* -#cgo openbsd CFLAGS: -I. -I/usr/X11R6/include -DPLATFORM_DESKTOP_SDL +#cgo openbsd CFLAGS: -I. -I/usr/X11R6/include +#cgo openbsd,sdl CFLAGS: -DPLATFORM_DESKTOP_SDL +#cgo openbsd,sdl3 CFLAGS: -DPLATFORM_DESKTOP_SDL -DPLATFORM_DESKTOP_SDL3 #cgo openbsd LDFLAGS: -L/usr/X11R6/lib -#cgo openbsd pkg-config: sdl2 +#cgo openbsd,sdl pkg-config: sdl2 +#cgo openbsd,sdl3 pkg-config: sdl3 #cgo openbsd,!es2,!es3 LDFLAGS: -lGL diff --git a/raylib/cgo_windows.go b/raylib/cgo_windows.go index ee4ef36d..c2cd0442 100644 --- a/raylib/cgo_windows.go +++ b/raylib/cgo_windows.go @@ -1,5 +1,5 @@ -//go:build windows && !rgfw && !sdl -// +build windows,!rgfw,!sdl +//go:build windows && !rgfw && !sdl && !sdl3 +// +build windows,!rgfw,!sdl,!sdl3 package rl diff --git a/raylib/cgo_windows_rgfw.go b/raylib/cgo_windows_rgfw.go index 3508152a..eea463d1 100644 --- a/raylib/cgo_windows_rgfw.go +++ b/raylib/cgo_windows_rgfw.go @@ -1,5 +1,5 @@ -//go:build windows && rgfw && !sdl -// +build windows,rgfw,!sdl +//go:build windows && rgfw && !sdl && !sdl3 +// +build windows,rgfw,!sdl,!sdl3 package rl diff --git a/raylib/cgo_windows_sdl.go b/raylib/cgo_windows_sdl.go index 04cbd1ee..58d53a40 100644 --- a/raylib/cgo_windows_sdl.go +++ b/raylib/cgo_windows_sdl.go @@ -1,11 +1,17 @@ -//go:build windows && sdl && !rgfw -// +build windows,sdl,!rgfw +//go:build windows && (sdl || sdl3) && !rgfw +// +build windows +// +build sdl sdl3 +// +build !rgfw package rl /* -#cgo windows LDFLAGS: -lgdi32 -lwinmm -lole32 -lSDL2 -#cgo windows CFLAGS: -Iexternal -DPLATFORM_DESKTOP_SDL -Wno-stringop-overflow +#cgo windows LDFLAGS: -lgdi32 -lwinmm -lole32 +#cgo windows,sdl LDFLAGS: -lSDL2 +#cgo windows,sdl3 LDFLAGS: -lSDL3 +#cgo windows CFLAGS: -Iexternal -Wno-stringop-overflow +#cgo windows,sdl CFLAGS: -DPLATFORM_DESKTOP_SDL +#cgo windows,sdl3 CFLAGS: -DPLATFORM_DESKTOP_SDL -DPLATFORM_DESKTOP_SDL3 #cgo windows,!es2,!es3 LDFLAGS: -lopengl32 diff --git a/raylib/platform_desktop.go b/raylib/platform_desktop.go index bda078d8..91634fb5 100644 --- a/raylib/platform_desktop.go +++ b/raylib/platform_desktop.go @@ -1,5 +1,5 @@ -//go:build !rgfw && !sdl && !drm && !android -// +build !rgfw,!sdl,!drm,!android +//go:build !rgfw && !sdl && !sdl3 && !drm && !android +// +build !rgfw,!sdl,!sdl3,!drm,!android package rl diff --git a/raylib/platform_desktop_rgfw.go b/raylib/platform_desktop_rgfw.go index 5cfe6a24..ba77eecc 100644 --- a/raylib/platform_desktop_rgfw.go +++ b/raylib/platform_desktop_rgfw.go @@ -1,5 +1,5 @@ -//go:build rgfw && !sdl && !drm && !android -// +build rgfw,!sdl,!drm,!android +//go:build rgfw && !sdl && !sdl3 && !drm && !android +// +build rgfw,!sdl,!sdl3,!drm,!android package rl diff --git a/raylib/platform_desktop_sdl.go b/raylib/platform_desktop_sdl.go index ee930d6e..82cf7ad1 100644 --- a/raylib/platform_desktop_sdl.go +++ b/raylib/platform_desktop_sdl.go @@ -1,5 +1,8 @@ -//go:build sdl && !rgfw && !drm && !android -// +build sdl,!rgfw,!drm,!android +//go:build (sdl || sdl3) && !rgfw && !drm && !android +// +build sdl sdl3 +// +build !rgfw +// +build !drm +// +build !android package rl diff --git a/raylib/platform_drm.go b/raylib/platform_drm.go index 6618e0e4..fa036d5d 100644 --- a/raylib/platform_drm.go +++ b/raylib/platform_drm.go @@ -1,5 +1,5 @@ -//go:build linux && drm && !rgfw && !sdl && !android -// +build linux,drm,!rgfw,!sdl,!android +//go:build linux && drm && !rgfw && !sdl && !sdl3 && !android +// +build linux,drm,!rgfw,!sdl,!sdl3,!android package rl