ebiten/internal/cglfw/native_linbsd.go
2023-10-07 17:13:28 +09:00

71 lines
1.6 KiB
Go

// SPDX-License-Identifier: Apache-2.0
// SPDX-FileCopyrightText: 2012 The glfw3-go Authors
// SPDX-FileCopyrightText: 2023 The Ebitengine Authors
//go:build freebsd || linux || netbsd || openbsd
package cglfw
//#include <stdlib.h>
//#define GLFW_EXPOSE_NATIVE_X11
//#define GLFW_EXPOSE_NATIVE_GLX
//#define GLFW_INCLUDE_NONE
//#include "glfw3_unix.h"
//#include "glfw3native_unix.h"
import "C"
import "unsafe"
func GetX11Display() *C.Display {
ret := C.glfwGetX11Display()
panicError()
return ret
}
// GetX11Adapter returns the RRCrtc of the monitor.
func (m *Monitor) GetX11Adapter() C.RRCrtc {
ret := C.glfwGetX11Adapter(m.data)
panicError()
return ret
}
// GetX11Monitor returns the RROutput of the monitor.
func (m *Monitor) GetX11Monitor() C.RROutput {
ret := C.glfwGetX11Monitor(m.data)
panicError()
return ret
}
// GetX11Window returns the Window of the window.
func (w *Window) GetX11Window() C.Window {
ret := C.glfwGetX11Window(w.data)
panicError()
return ret
}
// GetGLXContext returns the GLXContext of the window.
func (w *Window) GetGLXContext() C.GLXContext {
ret := C.glfwGetGLXContext(w.data)
panicError()
return ret
}
// GetGLXWindow returns the GLXWindow of the window.
func (w *Window) GetGLXWindow() C.GLXWindow {
ret := C.glfwGetGLXWindow(w.data)
panicError()
return ret
}
// SetX11SelectionString sets the X11 selection string.
func SetX11SelectionString(str string) {
s := C.CString(str)
defer C.free(unsafe.Pointer(s))
C.glfwSetX11SelectionString(s)
}
// GetX11SelectionString gets the X11 selection string.
func GetX11SelectionString() string {
s := C.glfwGetX11SelectionString()
return C.GoString(s)
}