GLFW bindings (automatically generated).

This commit is contained in:
Erik Svedäng 2018-02-27 16:48:31 +01:00
parent cdae9caf9b
commit 633be61c50
4 changed files with 119 additions and 3 deletions

91
core/GLFW.carp Normal file
View 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
View 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)

View File

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

View File

@ -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"