mirror of
https://github.com/carp-lang/Carp.git
synced 2024-09-17 16:38:14 +03:00
GLFW bindings (automatically generated).
This commit is contained in:
parent
cdae9caf9b
commit
633be61c50
91
core/GLFW.carp
Normal file
91
core/GLFW.carp
Normal file
@ -0,0 +1,91 @@
|
||||
(system-include "GLFW/glfw3.h")
|
||||
(add-lib "-lglfw3")
|
||||
(mac-only
|
||||
(add-lib "-framework Cocoa -framework OpenGL -framework IOKit -framework CoreVideo"))
|
||||
|
||||
(defmodule GLFW
|
||||
(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")
|
||||
(register create-window (λ [Int Int (Ptr Char) (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")
|
||||
(register set-window-title (λ [(Ptr GLFWwindow) (Ptr Char)] ()) "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")
|
||||
(register set-clipboard-string (λ [(Ptr GLFWwindow) (Ptr Char)] ()) "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")
|
||||
(register extension-supported (λ [(Ptr Char)] Int) "glfwExtensionSupported")
|
||||
(register get-proc-address (λ [(Ptr Char)] GLFWglproc) "glfwGetProcAddress")
|
||||
(register vulkan-supported (λ [] Int) "glfwVulkanSupported")
|
||||
(register get-instance-proc-address (λ [VkInstance (Ptr Char)] 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")
|
||||
)
|
12
examples/glfw.carp
Normal file
12
examples/glfw.carp
Normal file
@ -0,0 +1,12 @@
|
||||
(load "GLFW.carp")
|
||||
(use GLFW)
|
||||
|
||||
(defn-do main []
|
||||
(let-do [_ (init)
|
||||
window (create-window 400 300 (String.cstr "GLFW <3 CARP") NULL NULL)]
|
||||
(make-context-current window)
|
||||
(while (= 0 (window-should-close window))
|
||||
(do
|
||||
(swap-buffers window)
|
||||
(poll-events))))
|
||||
0)
|
@ -19,3 +19,7 @@ char *blah(int *x, float* y);
|
||||
vector2 *more(vector3* in);
|
||||
|
||||
GLFWAPI GLFWwindow* glfwCreateWindow(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
|
||||
|
||||
|
||||
// TODO:
|
||||
GLFWAPI void glfwPollEvents(void);
|
||||
|
@ -56,9 +56,8 @@ parseHeaderFile path src prefix kebab =
|
||||
stars2 <- stars
|
||||
name <- Parsec.many1 identifierChar
|
||||
Parsec.many spaceOrTab
|
||||
Parsec.char '('
|
||||
argTypeStrings <- Parsec.sepBy arg (Parsec.char ',')
|
||||
Parsec.char ')'
|
||||
argTypeStrings <- Parsec.try voidArg <|>
|
||||
argList
|
||||
Parsec.many spaceOrTab
|
||||
Parsec.char ';'
|
||||
Parsec.many spaceOrTab
|
||||
@ -75,6 +74,16 @@ parseHeaderFile path src prefix kebab =
|
||||
else [(XObj (Str emitName) Nothing Nothing)]
|
||||
)) Nothing Nothing]
|
||||
|
||||
voidArg :: Parsec.Parsec String () [(String, Int)]
|
||||
voidArg = do _ <- Parsec.string "(void)"
|
||||
return []
|
||||
|
||||
argList :: Parsec.Parsec String () [(String, Int)]
|
||||
argList = do Parsec.char '('
|
||||
args <- Parsec.sepBy arg (Parsec.char ',')
|
||||
Parsec.char ')'
|
||||
return args
|
||||
|
||||
arg :: Parsec.Parsec String () (String, Int)
|
||||
arg = do Parsec.many spaceOrTab
|
||||
_ <- Parsec.option "" $ do Parsec.string "const"
|
||||
|
Loading…
Reference in New Issue
Block a user