Add RGFW backend
This commit is contained in:
parent
1868520849
commit
7810550d63
23 changed files with 8110 additions and 28 deletions
|
@ -1,5 +1,5 @@
|
||||||
//go:build darwin && !sdl
|
//go:build darwin && !rgfw && !sdl
|
||||||
// +build darwin,!sdl
|
// +build darwin,!rgfw,!sdl
|
||||||
|
|
||||||
package rl
|
package rl
|
||||||
|
|
||||||
|
|
19
raylib/cgo_darwin_rgfw.go
Normal file
19
raylib/cgo_darwin_rgfw.go
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
//go:build darwin && rgfw && !sdl
|
||||||
|
// +build darwin,rgfw,!sdl
|
||||||
|
|
||||||
|
package rl
|
||||||
|
|
||||||
|
/*
|
||||||
|
#cgo darwin LDFLAGS: -framework Foundation -framework AppKit -framework CoreVideo
|
||||||
|
#cgo darwin CFLAGS: -x objective-c -Wno-deprecated-declarations -Wno-implicit-const-int-float-conversion -DPLATFORM_DESKTOP_RGFW
|
||||||
|
|
||||||
|
#cgo darwin,!es2,!es3 LDFLAGS: -framework OpenGL
|
||||||
|
|
||||||
|
#cgo darwin,opengl11,!es2,!es3 CFLAGS: -DGRAPHICS_API_OPENGL_11
|
||||||
|
#cgo darwin,opengl21,!es2,!es3 CFLAGS: -DGRAPHICS_API_OPENGL_21
|
||||||
|
#cgo darwin,opengl43,!es2,!es3 CFLAGS: -DGRAPHICS_API_OPENGL_43
|
||||||
|
#cgo darwin,!opengl11,!opengl21,!opengl43,!es2,!es3 CFLAGS: -DGRAPHICS_API_OPENGL_33
|
||||||
|
#cgo darwin,es2,!es3 CFLAGS: -DGRAPHICS_API_OPENGL_ES2
|
||||||
|
#cgo darwin,es3,!es2 CFLAGS: -DGRAPHICS_API_OPENGL_ES3
|
||||||
|
*/
|
||||||
|
import "C"
|
|
@ -1,5 +1,5 @@
|
||||||
//go:build darwin && sdl
|
//go:build darwin && sdl && !rgfw
|
||||||
// +build darwin,sdl
|
// +build darwin,sdl,!rgfw
|
||||||
|
|
||||||
package rl
|
package rl
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
//go:build freebsd && !linux && !drm && !sdl && !android
|
//go:build freebsd && !linux && !rgfw && !drm && !sdl && !android
|
||||||
// +build freebsd,!linux,!drm,!sdl,!android
|
// +build freebsd,!linux,!rgfw,!drm,!sdl,!android
|
||||||
|
|
||||||
package rl
|
package rl
|
||||||
|
|
||||||
|
|
19
raylib/cgo_freebsd_rgfw.go
Normal file
19
raylib/cgo_freebsd_rgfw.go
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
//go:build freebsd && rgfw && !linux && !drm && !sdl && !android
|
||||||
|
// +build freebsd,rgfw,!linux,!drm,!sdl,!android
|
||||||
|
|
||||||
|
package rl
|
||||||
|
|
||||||
|
/*
|
||||||
|
#cgo freebsd CFLAGS: -I. -I/usr/local/include -DPLATFORM_DESKTOP_RGFW
|
||||||
|
#cgo freebsd LDFLAGS: -L/usr/local/lib -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor -lm -lpthread -ldl -lrt
|
||||||
|
|
||||||
|
#cgo freebsd,!es2,!es3 LDFLAGS: -lGL
|
||||||
|
|
||||||
|
#cgo freebsd,opengl11,!es2,!es3 CFLAGS: -DGRAPHICS_API_OPENGL_11
|
||||||
|
#cgo freebsd,opengl21,!es2,!es3 CFLAGS: -DGRAPHICS_API_OPENGL_21
|
||||||
|
#cgo freebsd,opengl43,!es2,!es3 CFLAGS: -DGRAPHICS_API_OPENGL_43
|
||||||
|
#cgo freebsd,!opengl11,!opengl21,!opengl43,!es2,!es3 CFLAGS: -DGRAPHICS_API_OPENGL_33
|
||||||
|
#cgo freebsd,es2,!es3 CFLAGS: -DGRAPHICS_API_OPENGL_ES2
|
||||||
|
#cgo freebsd,es3,!es2 CFLAGS: -DGRAPHICS_API_OPENGL_ES3
|
||||||
|
*/
|
||||||
|
import "C"
|
|
@ -1,5 +1,5 @@
|
||||||
//go:build freebsd && !linux && !drm && sdl && !android
|
//go:build freebsd && !linux && sdl && !rgfw && !drm && !android
|
||||||
// +build freebsd,!linux,!drm,sdl,!android
|
// +build freebsd,!linux,sdl,!rgfw,!drm,!android
|
||||||
|
|
||||||
package rl
|
package rl
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
//go:build linux && !drm && !sdl && !android
|
//go:build linux && !rgfw && !drm && !sdl && !android
|
||||||
// +build linux,!drm,!sdl,!android
|
// +build linux,!rgfw,!drm,!sdl,!android
|
||||||
|
|
||||||
package rl
|
package rl
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
//go:build linux && drm && !sdl && !android
|
//go:build linux && drm && !rgfw && !sdl && !android
|
||||||
// +build linux,drm,!sdl,!android
|
// +build linux,drm,!rgfw,!sdl,!android
|
||||||
|
|
||||||
package rl
|
package rl
|
||||||
|
|
||||||
|
|
20
raylib/cgo_linux_rgfw.go
Normal file
20
raylib/cgo_linux_rgfw.go
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
//go:build linux && rgfw && !drm && !sdl && !android
|
||||||
|
// +build linux,rgfw,!drm,!sdl,!android
|
||||||
|
|
||||||
|
package rl
|
||||||
|
|
||||||
|
/*
|
||||||
|
#cgo linux,!es2 LDFLAGS: -lm
|
||||||
|
#cgo linux CFLAGS: -DPLATFORM_DESKTOP_RGFW -Wno-builtin-declaration-mismatch -Wno-discarded-qualifiers -Wno-int-conversion
|
||||||
|
#cgo linux LDFLAGS: -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor -lm -lpthread -ldl -lrt
|
||||||
|
|
||||||
|
#cgo linux,!es2,!es3 LDFLAGS: -lGL
|
||||||
|
|
||||||
|
#cgo linux,opengl11,!es2,!es3 CFLAGS: -DGRAPHICS_API_OPENGL_11
|
||||||
|
#cgo linux,opengl21,!es2,!es3 CFLAGS: -DGRAPHICS_API_OPENGL_21
|
||||||
|
#cgo linux,opengl43,!es2,!es3 CFLAGS: -DGRAPHICS_API_OPENGL_43
|
||||||
|
#cgo linux,!opengl11,!opengl21,!opengl43,!es2,!es3 CFLAGS: -DGRAPHICS_API_OPENGL_33
|
||||||
|
#cgo linux,es2,!es3 CFLAGS: -DGRAPHICS_API_OPENGL_ES2
|
||||||
|
#cgo linux,es3,!es2 CFLAGS: -DGRAPHICS_API_OPENGL_ES3
|
||||||
|
*/
|
||||||
|
import "C"
|
|
@ -1,5 +1,5 @@
|
||||||
//go:build linux && !drm && sdl && !android
|
//go:build linux && sdl && !rgfw && !drm && !android
|
||||||
// +build linux,!drm,sdl,!android
|
// +build linux,sdl,!rgfw,!drm,!android
|
||||||
|
|
||||||
package rl
|
package rl
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
//go:build openbsd && !linux && !drm && !sdl && !android
|
//go:build openbsd && !linux && !rgfw && !drm && !sdl && !android
|
||||||
// +build openbsd,!linux,!drm,!sdl,!android
|
// +build openbsd,!linux,!rgfw,!drm,!sdl,!android
|
||||||
|
|
||||||
package rl
|
package rl
|
||||||
|
|
||||||
|
|
19
raylib/cgo_openbsd_rgfw.go
Normal file
19
raylib/cgo_openbsd_rgfw.go
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
//go:build openbsd && rgfw && !linux && !sdl && !drm && !android
|
||||||
|
// +build openbsd,rgfw,!linux,!sdl,!drm,!android
|
||||||
|
|
||||||
|
package rl
|
||||||
|
|
||||||
|
/*
|
||||||
|
#cgo openbsd CFLAGS: -I. -I/usr/X11R6/include -DPLATFORM_DESKTOP_RGFW
|
||||||
|
#cgo openbsd LDFLAGS: -L/usr/X11R6/lib -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor -lm -lpthread -ldl -lrt
|
||||||
|
|
||||||
|
#cgo openbsd,!es2,!es3 LDFLAGS: -lGL
|
||||||
|
|
||||||
|
#cgo openbsd,opengl11,!es2,!es3 CFLAGS: -DGRAPHICS_API_OPENGL_11
|
||||||
|
#cgo openbsd,opengl21,!es2,!es3 CFLAGS: -DGRAPHICS_API_OPENGL_21
|
||||||
|
#cgo openbsd,opengl43,!es2,!es3 CFLAGS: -DGRAPHICS_API_OPENGL_43
|
||||||
|
#cgo openbsd,!opengl11,!opengl21,!opengl43,!es2,!es3 CFLAGS: -DGRAPHICS_API_OPENGL_33
|
||||||
|
#cgo openbsd,es2,!es3 CFLAGS: -DGRAPHICS_API_OPENGL_ES2
|
||||||
|
#cgo openbsd,es3,!es2 CFLAGS: -DGRAPHICS_API_OPENGL_ES3
|
||||||
|
*/
|
||||||
|
import "C"
|
|
@ -1,5 +1,5 @@
|
||||||
//go:build openbsd && !linux && !drm && sdl && !android
|
//go:build openbsd && !linux && sdl && !rgfw && !drm && !android
|
||||||
// +build openbsd,!linux,!drm,sdl,!android
|
// +build openbsd,!linux,sdl,!rgfw,!drm,!android
|
||||||
|
|
||||||
package rl
|
package rl
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
//go:build windows && !sdl
|
//go:build windows && !rgfw && !sdl
|
||||||
// +build windows,!sdl
|
// +build windows,!rgfw,!sdl
|
||||||
|
|
||||||
package rl
|
package rl
|
||||||
|
|
||||||
|
|
19
raylib/cgo_windows_rgfw.go
Normal file
19
raylib/cgo_windows_rgfw.go
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
//go:build windows && rgfw && !sdl
|
||||||
|
// +build windows,rgfw,!sdl
|
||||||
|
|
||||||
|
package rl
|
||||||
|
|
||||||
|
/*
|
||||||
|
#cgo windows LDFLAGS: -lgdi32 -lwinmm
|
||||||
|
#cgo windows CFLAGS: -Iexternal -DPLATFORM_DESKTOP_RGFW -Wno-stringop-overflow -Wno-discarded-qualifiers
|
||||||
|
|
||||||
|
#cgo windows,!es2,!es3 LDFLAGS: -lopengl32
|
||||||
|
|
||||||
|
#cgo windows,opengl11,!es2,!es3 CFLAGS: -DGRAPHICS_API_OPENGL_11
|
||||||
|
#cgo windows,opengl21,!es2,!es3 CFLAGS: -DGRAPHICS_API_OPENGL_21
|
||||||
|
#cgo windows,opengl43,!es2,!es3 CFLAGS: -DGRAPHICS_API_OPENGL_43
|
||||||
|
#cgo windows,!opengl11,!opengl21,!opengl43,!es2,!es3 CFLAGS: -DGRAPHICS_API_OPENGL_33
|
||||||
|
#cgo windows,es2,!es3 CFLAGS: -DGRAPHICS_API_OPENGL_ES2
|
||||||
|
#cgo windows,es3,!es2 CFLAGS: -DGRAPHICS_API_OPENGL_ES3
|
||||||
|
*/
|
||||||
|
import "C"
|
|
@ -1,5 +1,5 @@
|
||||||
//go:build windows && sdl
|
//go:build windows && sdl && !rgfw
|
||||||
// +build windows,sdl
|
// +build windows,sdl,!rgfw
|
||||||
|
|
||||||
package rl
|
package rl
|
||||||
|
|
||||||
|
|
6353
raylib/external/RGFW.h
vendored
Normal file
6353
raylib/external/RGFW.h
vendored
Normal file
File diff suppressed because it is too large
Load diff
|
@ -116,6 +116,7 @@ func (a *asset) Read(p []byte) (n int, err error) {
|
||||||
if n == 0 && len(p) > 0 {
|
if n == 0 && len(p) > 0 {
|
||||||
return 0, io.EOF
|
return 0, io.EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
return n, nil
|
return n, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -124,11 +125,13 @@ func (a *asset) Seek(offset int64, whence int) (int64, error) {
|
||||||
if off == -1 {
|
if off == -1 {
|
||||||
return 0, fmt.Errorf("bad result for offset=%d, whence=%d", offset, whence)
|
return 0, fmt.Errorf("bad result for offset=%d, whence=%d", offset, whence)
|
||||||
}
|
}
|
||||||
|
|
||||||
return int64(off), nil
|
return int64(off), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *asset) Close() error {
|
func (a *asset) Close() error {
|
||||||
C.AAsset_close(a.ptr)
|
C.AAsset_close(a.ptr)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
//go:build !sdl && !drm && !android
|
//go:build !rgfw && !sdl && !drm && !android
|
||||||
// +build !sdl,!drm,!android
|
// +build !rgfw,!sdl,!drm,!android
|
||||||
|
|
||||||
package rl
|
package rl
|
||||||
|
|
||||||
|
|
102
raylib/platform_desktop_rgfw.go
Normal file
102
raylib/platform_desktop_rgfw.go
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
//go:build rgfw && !sdl && !drm && !android
|
||||||
|
// +build rgfw,!sdl,!drm,!android
|
||||||
|
|
||||||
|
package rl
|
||||||
|
|
||||||
|
/*
|
||||||
|
#include "raylib.h"
|
||||||
|
#include <stdlib.h>
|
||||||
|
*/
|
||||||
|
import "C"
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
"unsafe"
|
||||||
|
)
|
||||||
|
|
||||||
|
// InitWindow - Initialize Window and OpenGL Graphics
|
||||||
|
func InitWindow(width int32, height int32, title string) {
|
||||||
|
cwidth := (C.int)(width)
|
||||||
|
cheight := (C.int)(height)
|
||||||
|
|
||||||
|
ctitle := C.CString(title)
|
||||||
|
defer C.free(unsafe.Pointer(ctitle))
|
||||||
|
|
||||||
|
C.InitWindow(cwidth, cheight, ctitle)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetCallbackFunc - Sets callback function
|
||||||
|
func SetCallbackFunc(func()) {
|
||||||
|
}
|
||||||
|
|
||||||
|
// ShowCursor - Shows cursor
|
||||||
|
func ShowCursor() {
|
||||||
|
C.ShowCursor()
|
||||||
|
}
|
||||||
|
|
||||||
|
// HideCursor - Hides cursor
|
||||||
|
func HideCursor() {
|
||||||
|
C.HideCursor()
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsCursorHidden - Returns true if cursor is not visible
|
||||||
|
func IsCursorHidden() bool {
|
||||||
|
ret := C.IsCursorHidden()
|
||||||
|
v := bool(ret)
|
||||||
|
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsCursorOnScreen - Check if cursor is on the current screen.
|
||||||
|
func IsCursorOnScreen() bool {
|
||||||
|
ret := C.IsCursorOnScreen()
|
||||||
|
v := bool(ret)
|
||||||
|
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
|
||||||
|
// EnableCursor - Enables cursor
|
||||||
|
func EnableCursor() {
|
||||||
|
C.EnableCursor()
|
||||||
|
}
|
||||||
|
|
||||||
|
// DisableCursor - Disables cursor
|
||||||
|
func DisableCursor() {
|
||||||
|
C.DisableCursor()
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsFileDropped - Check if a file have been dropped into window
|
||||||
|
func IsFileDropped() bool {
|
||||||
|
ret := C.IsFileDropped()
|
||||||
|
v := bool(ret)
|
||||||
|
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
|
||||||
|
// LoadDroppedFiles - Load dropped filepaths
|
||||||
|
func LoadDroppedFiles() []string {
|
||||||
|
ret := C.LoadDroppedFiles()
|
||||||
|
defer C.UnloadDroppedFiles(ret)
|
||||||
|
|
||||||
|
tmpslice := (*[1 << 24]*C.char)(unsafe.Pointer(ret.paths))[:ret.count:ret.count]
|
||||||
|
gostrings := make([]string, ret.count)
|
||||||
|
for i, s := range tmpslice {
|
||||||
|
gostrings[i] = C.GoString(s)
|
||||||
|
}
|
||||||
|
|
||||||
|
return gostrings
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnloadDroppedFiles - Unload dropped filepaths
|
||||||
|
func UnloadDroppedFiles() {
|
||||||
|
}
|
||||||
|
|
||||||
|
// OpenAsset - Open asset
|
||||||
|
func OpenAsset(name string) (Asset, error) {
|
||||||
|
f, err := os.Open(name)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return f, nil
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
//go:build sdl && !drm && !android
|
//go:build sdl && !rgfw && !drm && !android
|
||||||
// +build sdl,!drm,!android
|
// +build sdl,!rgfw,!drm,!android
|
||||||
|
|
||||||
package rl
|
package rl
|
||||||
|
|
||||||
|
@ -43,6 +43,7 @@ func HideCursor() {
|
||||||
func IsCursorHidden() bool {
|
func IsCursorHidden() bool {
|
||||||
ret := C.IsCursorHidden()
|
ret := C.IsCursorHidden()
|
||||||
v := bool(ret)
|
v := bool(ret)
|
||||||
|
|
||||||
return v
|
return v
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,6 +51,7 @@ func IsCursorHidden() bool {
|
||||||
func IsCursorOnScreen() bool {
|
func IsCursorOnScreen() bool {
|
||||||
ret := C.IsCursorOnScreen()
|
ret := C.IsCursorOnScreen()
|
||||||
v := bool(ret)
|
v := bool(ret)
|
||||||
|
|
||||||
return v
|
return v
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,6 +69,7 @@ func DisableCursor() {
|
||||||
func IsFileDropped() bool {
|
func IsFileDropped() bool {
|
||||||
ret := C.IsFileDropped()
|
ret := C.IsFileDropped()
|
||||||
v := bool(ret)
|
v := bool(ret)
|
||||||
|
|
||||||
return v
|
return v
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,5 +97,6 @@ func OpenAsset(name string) (Asset, error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return f, nil
|
return f, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
//go:build linux && drm && !sdl && !android
|
//go:build linux && drm && !rgfw && !sdl && !android
|
||||||
// +build linux,drm,!sdl,!android
|
// +build linux,drm,!rgfw,!sdl,!android
|
||||||
|
|
||||||
package rl
|
package rl
|
||||||
|
|
||||||
|
|
1524
raylib/platforms/rcore_desktop_rgfw.c
Normal file
1524
raylib/platforms/rcore_desktop_rgfw.c
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue