Files
Odin/vendor/glfw/wrapper.odin
T

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);
}