mirror of
https://github.com/Ed94/Odin.git
synced 2026-06-21 21:24:59 -07:00
231 lines
7.5 KiB
Odin
231 lines
7.5 KiB
Odin
package glfw
|
|
|
|
import "core:c"
|
|
import glfw "bindings"
|
|
|
|
Init :: glfw.Init;
|
|
Terminate :: glfw.Terminate;
|
|
|
|
InitHint :: glfw.InitHint;
|
|
|
|
GetVersion :: proc "c" () -> (major, minor, rev: c.int) {
|
|
glfw.GetVersion(&major, &minor, &rev);
|
|
return;
|
|
}
|
|
GetError :: proc "c" () -> (description: string, code: c.int) {
|
|
desc: cstring;
|
|
code = glfw.GetError(&desc);
|
|
description = string(desc);
|
|
return;
|
|
}
|
|
|
|
GetPrimaryMonitor :: glfw.GetPrimaryMonitor;
|
|
GetMonitors :: proc "c" () -> []MonitorHandle {
|
|
count: c.int;
|
|
monitors := glfw.GetMonitors(&count);
|
|
return monitors[:count];
|
|
}
|
|
GetMonitorPos :: proc "c" (monitor: MonitorHandle) -> (xpos, ypos: c.int) {
|
|
glfw.GetMonitorPos(monitor, &xpos, &ypos);
|
|
return;
|
|
}
|
|
GetMonitorPhysicalSize :: proc "c" (monitor: MonitorHandle) -> (widthMM, heightMM: c.int) {
|
|
glfw.GetMonitorPhysicalSize(monitor, &widthMM, &heightMM);
|
|
return;
|
|
}
|
|
GetMonitorContentScale :: proc "c" (monitor: MonitorHandle) -> (xscale, yscale: f32) {
|
|
glfw.GetMonitorContentScale(monitor, &xscale, &yscale);
|
|
return;
|
|
}
|
|
|
|
SetMonitorUserPointer :: glfw.SetMonitorUserPointer;
|
|
GetMonitorUserPointer :: glfw.GetMonitorUserPointer;
|
|
|
|
GetVideoMode :: glfw.GetVideoMode;
|
|
SetGamma :: glfw.SetGamma;
|
|
GetGammaRamp :: glfw.GetGammaRamp;
|
|
SetGammaRamp :: glfw.SetGammaRamp;
|
|
|
|
CreateWindow :: glfw.CreateWindow;
|
|
DestroyWindow :: glfw.DestroyWindow;
|
|
|
|
WindowHint :: glfw.WindowHint;
|
|
DefaultWindowHints :: glfw.DefaultWindowHints;
|
|
WindowHintString :: glfw.WindowHintString;
|
|
WindowShouldClose :: glfw.WindowShouldClose;
|
|
|
|
SwapInterval :: glfw.SwapInterval;
|
|
SwapBuffers :: glfw.SwapBuffers;
|
|
|
|
SetWindowTitle :: glfw.SetWindowTitle;
|
|
SetWindowIcon :: proc "c" (window: WindowHandle, images: []Image) {
|
|
glfw.SetWindowIcon(window, c.int(len(images)), raw_data(images));
|
|
}
|
|
SetWindowPos :: glfw.SetWindowPos;
|
|
SetWindowSizeLimits :: glfw.SetWindowSizeLimits;
|
|
SetWindowAspectRatio :: glfw.SetWindowAspectRatio;
|
|
SetWindowSize :: glfw.SetWindowSize;
|
|
GetWindowPos :: proc "c" (window: WindowHandle) -> (xpos, ypos: c.int) {
|
|
glfw.GetWindowPos(window, &xpos, &ypos);
|
|
return;
|
|
}
|
|
GetWindowSize :: proc "c" (window: WindowHandle) -> (width, height: c.int) {
|
|
glfw.GetWindowSize(window, &width, &height);
|
|
return;
|
|
}
|
|
GetFramebufferSize :: proc "c" (window: WindowHandle) -> (width, height: c.int) {
|
|
glfw.GetFramebufferSize(window, &width, &height);
|
|
return;
|
|
}
|
|
GetWindowFrameSize :: proc "c" (window: WindowHandle) -> (left, top, right, bottom: c.int) {
|
|
glfw.GetWindowFrameSize(window, &left, &top, &right, &bottom);
|
|
return;
|
|
}
|
|
|
|
GetWindowContentScale :: proc "c" (window: WindowHandle) -> (xscale, yscale: f32) {
|
|
glfw.GetWindowContentScale(window, &xscale, &yscale);
|
|
return;
|
|
}
|
|
GetWindowOpacity :: glfw.GetWindowOpacity;
|
|
SetWindowOpacity :: glfw.SetWindowOpacity;
|
|
|
|
GetVersionString :: proc "c" () -> string {
|
|
return string(glfw.GetVersionString());
|
|
}
|
|
GetMonitorName :: proc "c" (monitor: MonitorHandle) -> string {
|
|
return string(glfw.GetMonitorName(monitor));
|
|
}
|
|
GetClipboardString :: proc "c" (window: WindowHandle) -> string {
|
|
return string(glfw.GetClipboardString(window));
|
|
}
|
|
GetVideoModes :: proc "c" (monitor: MonitorHandle) -> []VidMode {
|
|
count: c.int;
|
|
modes := glfw.GetVideoModes(monitor, &count);
|
|
return modes[:count];
|
|
}
|
|
|
|
GetKey :: glfw.GetKey;
|
|
GetKeyName :: proc "c" (key, scancode: c.int) -> string {
|
|
return string(glfw.GetKeyName(key, scancode));
|
|
}
|
|
SetWindowShouldClose :: glfw.SetWindowShouldClose;
|
|
JoystickPresent :: glfw.JoystickPresent;
|
|
GetJoystickName :: proc "c" (joy: c.int) -> string {
|
|
return string(glfw.GetJoystickName(joy));
|
|
}
|
|
GetKeyScancode :: glfw.GetKeyScancode;
|
|
|
|
IconifyWindow :: glfw.IconifyWindow;
|
|
RestoreWindow :: glfw.RestoreWindow;
|
|
MaximizeWindow :: glfw.MaximizeWindow;
|
|
ShowWindow :: glfw.ShowWindow;
|
|
HideWindow :: glfw.HideWindow;
|
|
FocusWindow :: glfw.FocusWindow;
|
|
|
|
RequestWindowAttention :: glfw.RequestWindowAttention;
|
|
|
|
GetWindowMonitor :: glfw.GetWindowMonitor;
|
|
SetWindowMonitor :: glfw.SetWindowMonitor;
|
|
GetWindowAttrib :: glfw.GetWindowAttrib;
|
|
SetWindowUserPointer :: glfw.SetWindowUserPointer;
|
|
GetWindowUserPointer :: glfw.GetWindowUserPointer;
|
|
|
|
SetWindowAttrib :: glfw.SetWindowAttrib;
|
|
|
|
PollEvents :: glfw.PollEvents;
|
|
WaitEvents :: glfw.WaitEvents;
|
|
WaitEventsTimeout :: glfw.WaitEventsTimeout;
|
|
PostEmptyEvent :: glfw.PostEmptyEvent;
|
|
|
|
GetInputMode :: glfw.GetInputMode;
|
|
SetInputMode :: glfw.SetInputMode;
|
|
|
|
GetMouseButton :: glfw.GetMouseButton;
|
|
GetCursorPos :: proc "c" (window: WindowHandle) -> (xpos, ypos: f64) {
|
|
glfw.GetCursorPos(window, &xpos, &ypos);
|
|
return;
|
|
}
|
|
SetCursorPos :: glfw.SetCursorPos;
|
|
|
|
CreateCursor :: glfw.CreateCursor;
|
|
DestroyCursor :: glfw.DestroyCursor;
|
|
SetCursor :: glfw.SetCursor;
|
|
CreateStandardCursor :: glfw.CreateStandardCursor;
|
|
|
|
GetJoystickAxes :: proc "c" (joy: c.int) -> []f32 {
|
|
count: c.int;
|
|
axes := glfw.GetJoystickAxes(joy, &count);
|
|
return axes[:count];
|
|
}
|
|
GetJoystickButtons :: proc "c" (joy: c.int) -> []u8 {
|
|
count: c.int;
|
|
buttons := glfw.GetJoystickButtons(joy, &count);
|
|
return buttons[:count];
|
|
}
|
|
GetJoystickHats :: proc "c" (jid: c.int) -> []u8 {
|
|
count: c.int;
|
|
hats := glfw.GetJoystickHats(jid, &count);
|
|
return hats[:count];
|
|
}
|
|
GetJoystickGUID :: proc "c" (jid: c.int) -> string {
|
|
return string(glfw.GetJoystickGUID(jid));
|
|
}
|
|
SetJoystickUserPointer :: glfw.SetJoystickUserPointer;
|
|
GetJoystickUserPointer :: glfw.GetJoystickUserPointer;
|
|
JoystickIsGamepad :: glfw.JoystickIsGamepad;
|
|
UpdateGamepadMappings :: glfw.UpdateGamepadMappings;
|
|
GetGamepadName :: proc "c" (jid: c.int) -> string {
|
|
return string(glfw.GetGamepadName(jid));
|
|
}
|
|
GetGamepadState :: glfw.GetGamepadState;
|
|
|
|
SetClipboardString :: glfw.SetClipboardString;
|
|
|
|
SetTime :: glfw.SetTime;
|
|
GetTime :: glfw.GetTime;
|
|
GetTimerValue :: glfw.GetTimerValue;
|
|
GetTimerFrequency :: glfw.GetTimerFrequency;
|
|
|
|
MakeContextCurrent :: glfw.MakeContextCurrent;
|
|
GetCurrentContext :: glfw.GetCurrentContext;
|
|
GetProcAddress :: glfw.GetProcAddress;
|
|
ExtensionSupported :: glfw.ExtensionSupported;
|
|
|
|
VulkanSupported :: glfw.VulkanSupported;
|
|
GetRequiredInstanceExtensions :: proc "c" () -> []cstring {
|
|
count: u32;
|
|
exts := glfw.GetRequiredInstanceExtensions(&count);
|
|
return exts[:count];
|
|
}
|
|
GetInstanceProcAddress :: glfw.GetInstanceProcAddress;
|
|
GetPhysicalDevicePresentationSupport :: glfw.GetPhysicalDevicePresentationSupport;
|
|
CreateWindowSurface :: glfw.CreateWindowSurface;
|
|
|
|
SetWindowIconifyCallback :: glfw.SetWindowIconifyCallback;
|
|
SetWindowRefreshCallback :: glfw.SetWindowRefreshCallback;
|
|
SetWindowFocusCallback :: glfw.SetWindowFocusCallback;
|
|
SetWindowCloseCallback :: glfw.SetWindowCloseCallback;
|
|
SetWindowSizeCallback :: glfw.SetWindowSizeCallback;
|
|
SetWindowPosCallback :: glfw.SetWindowPosCallback;
|
|
SetFramebufferSizeCallback :: glfw.SetFramebufferSizeCallback;
|
|
SetDropCallback :: glfw.SetDropCallback;
|
|
SetMonitorCallback :: glfw.SetMonitorCallback;
|
|
SetWindowMaximizeCallback :: glfw.SetWindowMaximizeCallback;
|
|
SetWindowContentScaleCallback :: glfw.SetWindowContentScaleCallback;
|
|
|
|
SetKeyCallback :: glfw.SetKeyCallback;
|
|
SetMouseButtonCallback :: glfw.SetMouseButtonCallback;
|
|
SetCursorPosCallback :: glfw.SetCursorPosCallback;
|
|
SetScrollCallback :: glfw.SetScrollCallback;
|
|
SetCharCallback :: glfw.SetCharCallback;
|
|
SetCharModsCallback :: glfw.SetCharModsCallback;
|
|
SetCursorEnterCallback :: glfw.SetCursorEnterCallback;
|
|
SetJoystickCallback :: glfw.SetJoystickCallback;
|
|
|
|
SetErrorCallback :: glfw.SetErrorCallback;
|
|
|
|
|
|
// Used by vendor:OpenGL
|
|
gl_set_proc_address :: proc(p: rawptr, name: cstring) {
|
|
(^rawptr)(p)^ = GetProcAddress(name);
|
|
} |