Carp/core/GLFW.carp

165 lines
9.9 KiB
Plaintext
Raw Normal View History

(system-include "GLFW/glfw3.h")
2019-06-14 11:46:15 +03:00
(add-pkg "glfw3")
2021-07-05 15:48:35 +03:00
(doc GFLW "is a thin wrapper around the [GLFW](https://www.glfw.org/)
library.")
(defmodule GLFW
2020-06-19 00:19:31 +03:00
;; Methods
(register init (λ [] Int) "glfwInit")
(register terminate (λ [] ()) "glfwTerminate")
(register get-version (λ [(Ptr Int) (Ptr Int) (Ptr Int)] ()) "glfwGetVersion")
(register set-error-callback (λ [GLFWerrorfun] GLFWerrorfun) "glfwSetErrorCallback")
(register get-monitors (λ [(Ptr Int)] (Ptr (Ptr GLFWmonitor))) "glfwGetMonitors")
(register get-primary-monitor (λ [] (Ptr GLFWmonitor)) "glfwGetPrimaryMonitor")
(register get-monitor-pos (λ [(Ptr GLFWmonitor) (Ptr Int) (Ptr Int)] ()) "glfwGetMonitorPos")
(register get-monitor-physical-size (λ [(Ptr GLFWmonitor) (Ptr Int) (Ptr Int)] ()) "glfwGetMonitorPhysicalSize")
(register set-monitor-callback (λ [GLFWmonitorfun] GLFWmonitorfun) "glfwSetMonitorCallback")
(register set-gamma (λ [(Ptr GLFWmonitor) Float] ()) "glfwSetGamma")
(register set-gamma-ramp (λ [(Ptr GLFWmonitor) (Ptr GLFWgammaramp)] ()) "glfwSetGammaRamp")
(register default-window-hints (λ [] ()) "glfwDefaultWindowHints")
(register window-hint (λ [Int Int] ()) "glfwWindowHint")
2020-05-11 17:10:35 +03:00
(register create-window (λ [Int Int (Ptr CChar) (Ptr GLFWmonitor) (Ptr GLFWwindow)] (Ptr GLFWwindow)) "glfwCreateWindow")
(register destroy-window (λ [(Ptr GLFWwindow)] ()) "glfwDestroyWindow")
(register window-should-close (λ [(Ptr GLFWwindow)] Int) "glfwWindowShouldClose")
(register set-window-should-close (λ [(Ptr GLFWwindow) Int] ()) "glfwSetWindowShouldClose")
2020-05-11 17:10:35 +03:00
(register set-window-title (λ [(Ptr GLFWwindow) (Ptr CChar)] ()) "glfwSetWindowTitle")
(register set-window-icon (λ [(Ptr GLFWwindow) Int (Ptr GLFWimage)] ()) "glfwSetWindowIcon")
(register get-window-pos (λ [(Ptr GLFWwindow) (Ptr Int) (Ptr Int)] ()) "glfwGetWindowPos")
(register set-window-pos (λ [(Ptr GLFWwindow) Int Int] ()) "glfwSetWindowPos")
(register get-window-size (λ [(Ptr GLFWwindow) (Ptr Int) (Ptr Int)] ()) "glfwGetWindowSize")
(register set-window-size-limits (λ [(Ptr GLFWwindow) Int Int Int Int] ()) "glfwSetWindowSizeLimits")
(register set-window-aspect-ratio (λ [(Ptr GLFWwindow) Int Int] ()) "glfwSetWindowAspectRatio")
(register set-window-size (λ [(Ptr GLFWwindow) Int Int] ()) "glfwSetWindowSize")
(register get-framebuffer-size (λ [(Ptr GLFWwindow) (Ptr Int) (Ptr Int)] ()) "glfwGetFramebufferSize")
(register get-window-frame-size (λ [(Ptr GLFWwindow) (Ptr Int) (Ptr Int) (Ptr Int) (Ptr Int)] ()) "glfwGetWindowFrameSize")
(register iconify-window (λ [(Ptr GLFWwindow)] ()) "glfwIconifyWindow")
(register restore-window (λ [(Ptr GLFWwindow)] ()) "glfwRestoreWindow")
(register maximize-window (λ [(Ptr GLFWwindow)] ()) "glfwMaximizeWindow")
(register show-window (λ [(Ptr GLFWwindow)] ()) "glfwShowWindow")
(register hide-window (λ [(Ptr GLFWwindow)] ()) "glfwHideWindow")
(register focus-window (λ [(Ptr GLFWwindow)] ()) "glfwFocusWindow")
(register get-window-monitor (λ [(Ptr GLFWwindow)] (Ptr GLFWmonitor)) "glfwGetWindowMonitor")
(register set-window-monitor (λ [(Ptr GLFWwindow) (Ptr GLFWmonitor) Int Int Int Int Int] ()) "glfwSetWindowMonitor")
(register get-window-attrib (λ [(Ptr GLFWwindow) Int] Int) "glfwGetWindowAttrib")
(register set-window-user-pointer (λ [(Ptr GLFWwindow) (Ptr ())] ()) "glfwSetWindowUserPointer")
(register get-window-user-pointer (λ [(Ptr GLFWwindow)] (Ptr ())) "glfwGetWindowUserPointer")
(register set-window-pos-callback (λ [(Ptr GLFWwindow) GLFWwindowposfun] GLFWwindowposfun) "glfwSetWindowPosCallback")
(register set-window-size-callback (λ [(Ptr GLFWwindow) GLFWwindowsizefun] GLFWwindowsizefun) "glfwSetWindowSizeCallback")
(register set-window-close-callback (λ [(Ptr GLFWwindow) GLFWwindowclosefun] GLFWwindowclosefun) "glfwSetWindowCloseCallback")
(register set-window-refresh-callback (λ [(Ptr GLFWwindow) GLFWwindowrefreshfun] GLFWwindowrefreshfun) "glfwSetWindowRefreshCallback")
(register set-window-focus-callback (λ [(Ptr GLFWwindow) GLFWwindowfocusfun] GLFWwindowfocusfun) "glfwSetWindowFocusCallback")
(register set-window-iconify-callback (λ [(Ptr GLFWwindow) GLFWwindowiconifyfun] GLFWwindowiconifyfun) "glfwSetWindowIconifyCallback")
(register set-framebuffer-size-callback (λ [(Ptr GLFWwindow) GLFWframebuffersizefun] GLFWframebuffersizefun) "glfwSetFramebufferSizeCallback")
(register poll-events (λ [] ()) "glfwPollEvents")
(register wait-events (λ [] ()) "glfwWaitEvents")
(register wait-events-timeout (λ [Double] ()) "glfwWaitEventsTimeout")
(register post-empty-event (λ [] ()) "glfwPostEmptyEvent")
(register get-input-mode (λ [(Ptr GLFWwindow) Int] Int) "glfwGetInputMode")
(register set-input-mode (λ [(Ptr GLFWwindow) Int Int] ()) "glfwSetInputMode")
(register get-key (λ [(Ptr GLFWwindow) Int] Int) "glfwGetKey")
(register get-mouse-button (λ [(Ptr GLFWwindow) Int] Int) "glfwGetMouseButton")
(register get-cursor-pos (λ [(Ptr GLFWwindow) (Ptr Double) (Ptr Double)] ()) "glfwGetCursorPos")
(register set-cursor-pos (λ [(Ptr GLFWwindow) Double Double] ()) "glfwSetCursorPos")
(register create-cursor (λ [(Ptr GLFWimage) Int Int] (Ptr GLFWcursor)) "glfwCreateCursor")
(register create-standard-cursor (λ [Int] (Ptr GLFWcursor)) "glfwCreateStandardCursor")
(register destroy-cursor (λ [(Ptr GLFWcursor)] ()) "glfwDestroyCursor")
(register set-cursor (λ [(Ptr GLFWwindow) (Ptr GLFWcursor)] ()) "glfwSetCursor")
(register set-key-callback (λ [(Ptr GLFWwindow) GLFWkeyfun] GLFWkeyfun) "glfwSetKeyCallback")
(register set-char-callback (λ [(Ptr GLFWwindow) GLFWcharfun] GLFWcharfun) "glfwSetCharCallback")
(register set-char-mods-callback (λ [(Ptr GLFWwindow) GLFWcharmodsfun] GLFWcharmodsfun) "glfwSetCharModsCallback")
(register set-mouse-button-callback (λ [(Ptr GLFWwindow) GLFWmousebuttonfun] GLFWmousebuttonfun) "glfwSetMouseButtonCallback")
(register set-cursor-pos-callback (λ [(Ptr GLFWwindow) GLFWcursorposfun] GLFWcursorposfun) "glfwSetCursorPosCallback")
(register set-cursor-enter-callback (λ [(Ptr GLFWwindow) GLFWcursorenterfun] GLFWcursorenterfun) "glfwSetCursorEnterCallback")
(register set-scroll-callback (λ [(Ptr GLFWwindow) GLFWscrollfun] GLFWscrollfun) "glfwSetScrollCallback")
(register set-drop-callback (λ [(Ptr GLFWwindow) GLFWdropfun] GLFWdropfun) "glfwSetDropCallback")
(register joystick-present (λ [Int] Int) "glfwJoystickPresent")
(register set-joystick-callback (λ [GLFWjoystickfun] GLFWjoystickfun) "glfwSetJoystickCallback")
2020-05-11 17:10:35 +03:00
(register set-clipboard-string (λ [(Ptr GLFWwindow) (Ptr CChar)] ()) "glfwSetClipboardString")
(register get-time (λ [] Double) "glfwGetTime")
(register set-time (λ [Double] ()) "glfwSetTime")
(register get-timer-value (λ [] uint64_t) "glfwGetTimerValue")
(register get-timer-frequency (λ [] uint64_t) "glfwGetTimerFrequency")
(register make-context-current (λ [(Ptr GLFWwindow)] ()) "glfwMakeContextCurrent")
(register get-current-context (λ [] (Ptr GLFWwindow)) "glfwGetCurrentContext")
(register swap-buffers (λ [(Ptr GLFWwindow)] ()) "glfwSwapBuffers")
(register swap-interval (λ [Int] ()) "glfwSwapInterval")
2020-05-11 17:10:35 +03:00
(register extension-supported (λ [(Ptr CChar)] Int) "glfwExtensionSupported")
(register get-proc-address (λ [(Ptr CChar)] GLFWglproc) "glfwGetProcAddress")
(register vulkan-supported (λ [] Int) "glfwVulkanSupported")
2020-05-11 17:10:35 +03:00
(register get-instance-proc-address (λ [VkInstance (Ptr CChar)] GLFWvkproc) "glfwGetInstanceProcAddress")
(register get-physical-device-presentation-support (λ [VkInstance VkPhysicalDevice uint32_t] Int) "glfwGetPhysicalDevicePresentationSupport")
(register create-window-surface (λ [VkInstance (Ptr GLFWwindow) (Ptr VkAllocationCallbacks) (Ptr VkSurfaceKHR)] VkResult) "glfwCreateWindowSurface")
2020-06-19 00:19:31 +03:00
;; Basic constants
(register FALSE Int "GLFW_FALSE")
(register TRUE Int "GLFW_TRUE")
(register STICKY_KEYS Int "GLFW_STICKY_KEYS")
;; Key and button actions
(register RELEASE Int "GLFW_RELEASE")
(register PRESS Int "GLFW_PRESS")
(register REPEAT Int "GLFW_REPEAT")
;; Keycodes
(defmodule Keycode
(register RETURN Int "GLFW_KEY_ENTER")
(register SPACE Int "GLFW_KEY_SPACE")
(register ESCAPE Int "GLFW_KEY_ESCAPE")
(register LEFT Int "GLFW_KEY_LEFT")
(register RIGHT Int "GLFW_KEY_RIGHT")
(register UP Int "GLFW_KEY_UP")
(register DOWN Int "GLFW_KEY_DOWN")
(register NUM_1 Int "GLFW_KEY_1")
(register NUM_2 Int "GLFW_KEY_2")
(register NUM_3 Int "GLFW_KEY_3")
(register NUM_4 Int "GLFW_KEY_4")
(register NUM_5 Int "GLFW_KEY_5")
(register NUM_6 Int "GLFW_KEY_6")
(register NUM_7 Int "GLFW_KEY_7")
(register NUM_8 Int "GLFW_KEY_8")
(register NUM_9 Int "GLFW_KEY_9")
(register NUM_0 Int "GLFW_KEY_0")
(register A Int "GLFW_KEY_A")
(register B Int "GLFW_KEY_B")
(register C Int "GLFW_KEY_C")
(register D Int "GLFW_KEY_D")
(register E Int "GLFW_KEY_E")
(register F Int "GLFW_KEY_F")
(register G Int "GLFW_KEY_G")
(register H Int "GLFW_KEY_H")
(register I Int "GLFW_KEY_I")
(register J Int "GLFW_KEY_J")
(register K Int "GLFW_KEY_K")
(register L Int "GLFW_KEY_L")
(register M Int "GLFW_KEY_M")
(register N Int "GLFW_KEY_N")
(register O Int "GLFW_KEY_O")
(register P Int "GLFW_KEY_P")
(register Q Int "GLFW_KEY_Q")
(register R Int "GLFW_KEY_R")
(register S Int "GLFW_KEY_S")
(register T Int "GLFW_KEY_T")
(register U Int "GLFW_KEY_U")
(register V Int "GLFW_KEY_V")
(register W Int "GLFW_KEY_W")
(register X Int "GLFW_KEY_X")
(register Y Int "GLFW_KEY_Y")
(register Z Int "GLFW_KEY_Z")
(register PERIOD Int "GLFW_KEY_PERIOD")
(register COMMA Int "GLFW_KEY_COMMA")
(register MINUS Int "GLFW_KEY_MINUS")
(register TAB Int "GLFW_KEY_TAB")
(register BACKSPACE Int "GLFW_KEY_BACKSPACE")
)
;; Mouse buttons
(defmodule Mouse
(register BUTTON_LEFT Int "GLFW_MOUSE_BUTTON_LEFT")
(register BUTTON_RIGHT Int "GLFW_MOUSE_BUTTON_RIGHT")
(register BUTTON_MIDDLE Int "GLFW_MOUSE_BUTTON_MIDDLE")
)
)