glfw-clj.core

Wrappers for GLFW functions.

Any function that does not explicitly say it can be called from any thread should be called only from the main thread.

GLFW enums are represented with keywords in this namespace sans the GLFW_ prefix, and are in lower kebab case. GLFW_TRUE and GLFW_FALSE are represented with booleans.

client-api-opts

context-api-opts

context-robustness-opts

create-cursor

(create-cursor image hotspot-x hotspot-y)

Creates and returns a custom cursor object.

The resulting cursor object should be cleaned up with destroy-cursor.

The hotspot is the location in pixels of the point on the cursor which will be reported as its location, starting from the top left.

See set-cursor, set-window-icon.

create-standard-cursor

(create-standard-cursor standard-cursor)

Create a cursor object with a standard shape.

See standard-cursors, create-cursor.

create-window

(create-window width height title)(create-window width height title monitor)(create-window width height title monitor share)

Constructs a brand new window of the given size and with the given title.

If the window should be created as a fullscreen window, then pass a monitor object. The share parameter is another window object which the context will share resources with.

Returns an opaque window object.

See destroy-window.

cursor-modes

default-window-hints

(default-window-hints)

Resets all the window creation init-hints to their default values.

destroy-cursor

(destroy-cursor cursor)

Destroy a cursor object and release its related resources.

All remaining cursors are also destroyed on terminate.

See create-cursor.

destroy-window

(destroy-window window)

Destroys the given window.

See create-window.

enum->error-code

enum->init-hint

enum->input-mode

enum->key

enum->key-event

enum->mouse-button

enum->standard-cursor

enum->window-hint

error-code->enum

error-codes

extension-supported

(extension-supported extension-name)

Checks if a given api extension is supported for the given context.

This can search both for context creation extensions and client extensions.

This function does not apply to Vulkan. If you are using Vulkan see get-required-instance-extensions, and use vkEnumerateInstanceExtensionProperties and vkEnumerateDeviceExtensionProperties instead.

focus-window

(focus-window window)

Requests focus on the window, bringing it to the front.

The window should already be visible and not iconified.

Do not use this function to steal focus from other applications unless you are absolutely sure that is what the user wants. Prefer using attention requests.

See request-window-attention.

get-clipboard-string

(get-clipboard-string window)

Gets the content of the system clipboard as a UTF-8 encoded string.

If the clipboard is empty or is not encoded as a valid UTF-8 string then nil is returned and a :glfw-clj.core/format-unavailable error is generated.

get-current-context

(get-current-context)

Gets the window whose context is bound to the current thread.

get-cursor-pos

(get-cursor-pos window)

Gets the current cursor position as a vector of the x and y.

The coordinates are screen coordinates starting from the top left corner of the content area of the window.

If the cursor is disabled then the value is not connected to the window directly and is unbounded.

get-error

(get-error)

Gets the most recent error which has occurred on this thread.

If there is an error to fetch, it is returned as an ex-info with the message as the error description and the key :type in the ex-data with the error code’s human-readable name.

This function may be called before init.

get-framebuffer-size

(get-framebuffer-size window)

Gets the size in pixels of the framebuffer for rendering to the window, as a vector.

get-gamepad-name

(get-gamepad-name jid)

Returns the human-readable name of the gamepad from the gamepad mapping assigned to the joystick jid.

If the joystick does not exist or does not have a gamepad mapping, returns nil.

get-gamepad-state

(get-gamepad-state jid)

Gets the state of the joystick jid remapped to an Xbox-like gamepad.

If the joystick does not exist, returns nil.

Returns a map with the keys :buttons and :axes.

:buttons is a set of currently pressed button names. The buttons are :a, :b :x, :y, :left-bumper, :right-bumper, :back, :start, :guide, :left-thumb, :right-thumb, :dpad-up, :dpad-right, :dpad-down, and :dpad-left.

The :guide button may not be available as it is often hooked by the system or by Steam.

:axes is a map from :left-stick and :right-stick to vectors of the x and y values of the axis, as doubles from -1.0 to 1.0, and from :left-trigger and :right-trigger to a number from 0 to 1.0.

Unavailable buttons and axes will report as not pressed and 0.0 respectively.

get-gamma-ramp

(get-gamma-ramp monitor)

Gets the gamma ramp for the monitor.

The gamma ramp is a sequence of maps with the keys :red, :green, and :blue, all of which map to unsigned shorts.

get-input-mode

(get-input-mode window input-mode)

Gets the value of the given input-mode for the window.

Values for :glfw-clj.core/cursor are :glfw-clj.core/normal, as well as hidden, and disabled keywords in the same ns.

Other modes are either true or false.

See input-modes.

get-joystick-axes

(get-joystick-axes jid)

Gets a vector of all the joystick axis values for the joystick jid.

All the returned values are floats from -1.0 to 1.0.

get-joystick-buttons

(get-joystick-buttons jid)

Gets a vector of all the buttons for the joystick jid.

All the returned values are :glfw-clj.core/press or :glfw-clj.core/release.

By default all hats are also included as sets of four buttons in the order up, right, down, left, and they are returned in the same order as get-joystick-hats.

These can be elided from this list if the init-hint :glfw-clj.core/joystick-hat-buttons is set to false.

get-joystick-guid

(get-joystick-guid jid)

Get the SDL-compatible GUID as a hex string of the joystick jid.

This GUID is what’s used to identify a joystick as a gamepad. Each GUID identifies a model of joystick, but not is not unique to a particular connected joystick (e.g. all wired Xbox 360 controllers will have the same GUID). These GUIDs may also be different between platforms.

get-joystick-hats

(get-joystick-hats jid)

Gets a vector of the state of all hats on the joystick jid.

The hats are sets of keywords representing the directions pressed.

See hats.

get-joystick-name

(get-joystick-name jid)

Get the name of the joystick jid.

If the joystick is not present, returns nil.

get-joystick-user-pointer

(get-joystick-user-pointer jid)

Gets the user appointer attached to the joystick jid.

This is used to fetch data attached to the joystick from inside the joystick callback without relying on global state.

See set-joystick-user-pointer.

get-key

(get-key window key)

Gets the most recent key event for the key in window.

Returns either :glfw-clj.core/press or :glfw-clj.core/release. To get the higher-level input :glfw-clj.core/repeat you must use the callback via set-key-callback.

get-key-name

(get-key-name key scancode)

Get the printable name of a key as a string.

This is generally the character the key will produce without any modifier keys, intended for displaying keybindings to a user.

If the key is nil or :glfw-clj.core/key-unknown, it is ignored and scancode is used, otherwise scancode is ignored.

For non-printable keys, returns nil.

get-key-scancode

(get-key-scancode key)

Gets the scancode of the key.

If the key is unknown or nil, or the key doesn’t exist on the keyboard, returns nil.

get-monitor-content-scale

(get-monitor-content-scale monitor)

Gets the x and y scale of the content in the monitor.

The content scale is the ratio between the current DPI and the platform default DPI.

get-monitor-name

(get-monitor-name monitor)

Gets a human-readable, non-unique name for the monitor.

get-monitor-physical-size

(get-monitor-physical-size monitor)

Gets the size of the monitor in millimeters.

Returns a vector of the width and height.

get-monitor-pos

(get-monitor-pos monitor)

Gets the virtual screen coordinate of the upper left corner of the monitor.

get-monitor-user-pointer

(get-monitor-user-pointer monitor)

Gets the user-defined pointer for the monitor.

get-monitor-workarea

(get-monitor-workarea monitor)

Gets the upper left point and extents of the monitor’s work area.

This is returned as a vector of the x and y position of the upper left corner of the monitor, and the width and height of the work area.

The work area excludes things like a menubar or hotbar.

If there is no OS hotbar, the width and height are the resolution of the monitor in screen coordinates.

get-monitors

(get-monitors)

Gets a sequence of opaque monitor objects.

get-mouse-button

(get-mouse-button window mouse-button)

Gets the most recent button event for the mouse-button in window.

Returns either :glfw-clj.core/press or :glfw-clj.core/release

get-primary-monitor

(get-primary-monitor)

Gets an opaque handle to the current primary monitor.

get-proc-address

(get-proc-address proc-name)

Returns a pointer to the specified procedure.

The returned address is not guaranteed to be the same between contexts.

This function may return a non-nil value even for unsupported functions. Always check the version and extensions supported first.

This function does not apply if you are using Vulkan. If you are using Vulkan, see get-instance-proc-address, and use vkGetInstanceProcAddr and vkGetDeviceProcAddr instead.

The pointer is valid until the context is destroyed.

get-time

(get-time)

Gets the current time in seconds.

The returned time counts from the call to init by default, but can be altered with set-time.

This uses the highest-resolution monotonic time available on the current platform.

This function may be called from any thread.

get-timer-frequency

(get-timer-frequency)

Gets the frequency in Hz of the raw system timer.

Returns 0 if there was an error.

This function may be called from any thread.

See get-timer-value.

get-timer-value

(get-timer-value)

Gets the current raw timer value.

The raw timer value is an integral value which does not have a consistent mapping to a particular length of time. To convert this to a consistent time, divide it by the timer frequency.

This function may be called from any thread.

See get-timer-frequency.

get-version

(get-version)

Gets a vector of the major, minor, and revision version of GLFW.

This can be called on any thread, and before init.

get-version-string

(get-version-string)

Gets a string of the version of GLFW.

Don’t parse the string to get the version. Instead use get-version.

This can be called on any thread, and before init.

get-video-mode

(get-video-mode monitor)

Get the current video mode set on the monitor.

See get-video-modes.

get-video-modes

(get-video-modes monitor)

Get all video modes supported by the monitor.

Each video mode is a map with the keys :width, :height, :red-bits, :green-bits, :blue-bits, and :refresh-rate, all of which are integer values.

get-window-attrib

(get-window-attrib window attrib)

Gets the current value of attrib from the window.

Framebuffer related hints are not attributes.

get-window-content-scale

(get-window-content-scale window)

Gets the current content scale for the given window.

The content scale is the ratio between the current DPI and the platform default DPI.

get-window-frame-size

(get-window-frame-size window)

Gets the size of the window (including decorations).

Returns a vector of the pixel lengths of the left, top, right, and bottom edges of the window.

get-window-monitor

(get-window-monitor window)

Gets an opaque representation of the monitor for the window.

Returns null if the window is not a fullscreen window.

get-window-opacity

(get-window-opacity window)

Gets the opacity of the window, including any decorations.

get-window-pos

(get-window-pos window)

Gets the current x and y position of the given window as a vector.

get-window-size

(get-window-size window)

Gets the width and height of the content area of the given window as a vector.

get-window-user-pointer

(get-window-user-pointer window)

Gets a user-defined pointer value associated with the window.

hats

hide-window

(hide-window window)

Hides the window if it was previously shown.

iconify-window

(iconify-window window)

Minimizes the window if it was previously restored.

On a fullscreen window, returns the monitor to its original resolution until the window is restored.

init

(init)

Initializes GLFW.

Returns true if it initializes successfully. Automatically terminates GLFW if it fails. If it succeeds, then you should call terminate before application exit.

init-hint

(init-hint init-hint bool)

Sets the given hint with the boolean value.

The hint must be one of the values from init-hints.

Hints starting with :cocoa are MacOS-specific.

This must be called before init.

init-hint->enum

init-hints

input-mode->enum

input-modes

joystick-is-gamepad

(joystick-is-gamepad jid)

Returns if the joystick jid is present and has a gamepad mapping.

joystick-present

(joystick-present jid)

Returns if a joystick with the given jid is present.

All other functions that take a jid first check if it is present, so this need not be called before them.

key->enum

key-event->enum

key-events

keys

make-context-current

(make-context-current window)

Binds the context for the given window to the current thread.

Only one context can be bound on the thread at once. If nil is passed, any context already bound to this thread will be released.

maximize-window

(maximize-window window)

Maximizes the window.

If the window was fullscreen, this function does nothing.

mods

mouse-button->enum

mouse-buttons

opengl-profile-opts

poll-events

(poll-events)

Process all events on all the windows.

This may call the callbacks which are set, however the callbacks may be called at other times depending on the platform.

On some platforms certain window events will block. The window-refresh callback should perform any rendering during these events.

Joystick input does not depend on event processing.

post-empty-event

(post-empty-event)

Post an empty event to the event queue, causing wait-events and wait-events-timeout to return.

raw-mouse-motion-supported

(raw-mouse-motion-supported)

Returns if raw mouse motion is supported by the current system.

This value will not change after init is called, so it needs only be called once.

Raw mouse motion is useful in situations where mouse input is used for something besides moving a cursor, and as such raw mouse motion is only provided when the cursor input mode is disabled.

release-behavior-opts

request-window-attention

(request-window-attention window)

Requests the attention of the user on the window.

Once the user has given the application attention, usually by focusing the window, the attention request ends.

restore-window

(restore-window window)

Restores the window to its chosen resolution if it was previously maximized or iconified.

If the window was fullscreen, returns the monitor to its original resolution.

set-char-callback

(set-char-callback window callback)(set-char-callback window callback scope)

Sets the callback to be called when a character is input.

This is used for Unicode character input.

The callback is a function of the window and a string representing a single unicode character. It may or may not be representable in a char. The return value is ignored.

Returns the old callback if any was set.

set-char-mods-callback

deprecated

(set-char-mods-callback window callback)(set-char-mods-callback window callback scope)

Sets the callback to be called when a character is input, including key mods.

This is used for Unicode character input.

The callback is a function of the window and a string representing a single unicode character, plus a key mod set. The unicode character may or may not be representable in a char. The return value is ignored.

Returns the old callback if any was set.

Deprecated and will be removed in GLFW 4.0.

set-clipboard-string

(set-clipboard-string window s)

Sets the system clipboard to the specified, UTF-8 encoded string.

set-cursor

(set-cursor window cursor)

Sets the cursor image for the given window to the passed cursor object.

The cursor image will only be visible when the cursor mode is :glfw-clj.core/cursor-normal.

See create-cursor, create-standard-cursor.

set-cursor-enter-callback

(set-cursor-enter-callback window callback)(set-cursor-enter-callback window callback scope)

Sets the callback to be called when the mouse enters the content area of the window.

The callback is a function of the window and a boolean, which will be true if the cursor is now in the window, and false if it is no longer in the window. The return value is ignored.

Returns the old callback if any was set.

set-cursor-pos

(set-cursor-pos window xpos ypos)

Sets the position of the cursor relative to the window.

Do not use this function to implement things like camera controls. Instead set the cursor mode to disabled.

set-cursor-pos-callback

(set-cursor-pos-callback window callback)(set-cursor-pos-callback window callback scope)

Sets the callback to be called when the mouse moves.

The callback is a function of the window and the new x and y position of the cursor. The return value is ignored.

The position is provided in screen coordinates relative to the upper left of the window.

Returns the old callback if any was set.

set-drop-callback

(set-drop-callback window callback)(set-drop-callback window callback scope)

Sets the callback to be called when a file is dropped into the window.

The callback is a function of the window and a vector of file paths. The return value is ignored.

Returns the old callback if any was set.

set-error-callback

(set-error-callback callback)(set-error-callback callback scope)

Sets the global error callback for GLFW.

The callback is a function of an integer error code and a string description.

Returns the previous callback, or nil if there was none.

If scope is passed, the callback will be kept valid for the duration of that scope. If it is not, a mem/global-scope is used. If the callback is called by GLFW after the scope has been released, it will cause a JVM crash.

This function may be called before init.

set-framebuffer-size-callback

(set-framebuffer-size-callback window callback)(set-framebuffer-size-callback window callback scope)

Sets the window framebuffer size callback for the window.

The callback is a function of the window the event is from and two ints for the size of the framebuffer.

Returns the previous callback, or nil if there was none.

If scope is passed, the callback will be kept valid for the duration of that scope. If it is not, a mem/global-scope is used.

set-gamma

(set-gamma monitor gamma)

Generates an appropriately sized gamma ramp for the exponent and calls set-gamma-ramp with it.

set-gamma-ramp

(set-gamma-ramp monitor gamma-ramp)

Sets the gamma ramp for the monitor.

See get-gamma-ramp.

set-input-mode

(set-input-mode window input-mode mode)

Sets the input-mode for the given window.

Mode values for :glfw-clj.core/cursor are :glfw-clj.core/normal, as well as hidden, and disabled keywords in the same ns.

Other modes take true or false.

See input-modes.

set-joystick-callback

(set-joystick-callback callback)(set-joystick-callback callback scope)

Sets the callback to be called when a joystick connection event occurs.

The callback is a function of the jid of the joystick and a keyword representing a connection event. The return value is ignored.

For joystick connection events to be processed, one of the event processing functions like poll-events must be called.

Returns the old callback if any was set.

See connection-events.

set-joystick-user-pointer

(set-joystick-user-pointer jid pointer)

Set a user pointer attached to the joystick jid.

This is used to enable not depending on global state inside the joystick callback.

See get-joystick-user-pointer.

set-key-callback

(set-key-callback window callback)(set-key-callback window callback scope)

Sets the callback to be called when a key event occurs.

This should not be used for text input. Instead use set-char-callback.

The callback is a function of the window, a key name, scancode, key event, and active key mods at the time of the event. The return value is ignored.

When the window loses focus, artificial key release events are generated for all currently pressed keys. You can distinguish the difference between real events and these generated ones by the fact that the focus loss event will be processed before these release events.

Some keys will register with a key name of :glfw-clj.core/key-unknown. These are keys that GLFW has no name for and are identified by the scancode passed. They are platform and keyboard-specific, so should not be used across devices, and cannot be queried with get-key.

In some cases additional events will be generated by GLFW, which may have a scancode of 0.

Returns the old callback, if any was set.

set-monitor-callback

(set-monitor-callback callback)(set-monitor-callback callback scope)

Set a callback to be called whenever the monitor configuration changes.

The callback is a function of a monitor and one of :connected or :disconnected.

set-monitor-user-pointer

(set-monitor-user-pointer monitor pointer)

Sets a user-defined pointer for the monitor.

Useful when code needs to rely on the monitor but not on global state.

set-mouse-button-callback

(set-mouse-button-callback window callback)(set-mouse-button-callback window callback scope)

Sets the callback to be called when a mouse button is pressed.

The callback is a function of the window, the mouse button the event is connected with, and the event. The return value is ignored.

When focus is lost on the window, synthetic mouse button release events are sent for all currently-pressed buttons. These events will be handled after the focus event.

Returns the old callback if any was set.

set-scroll-callback

(set-scroll-callback window callback)(set-scroll-callback window callback scope)

Sets the callback to be called when the scroll wheel is rotated.

The callback is a function of the window and the x and y offsets that were scrolled since the last time events were processed. The return value is ignored.

Returns the old callback if any was set.

set-time

(set-time time)

Set the current time to be counted from.

The number must be a positive, finite number less than 18446744073.0, which is approximately 584.5 years.

This limit is based on the largest number of nanoseconds that can be stored in a 64-bit integer, and may be increased in the future.

This function may be called from any thread, but is not atomic or synchronized in any way with calls to get-time, and so must be externally synchronized.

set-window-aspect-ratio

(set-window-aspect-ratio window ratio)(set-window-aspect-ratio window numer denom)

Sets a required aspect ratio of the content area of the window.

This has no effect on fullscreen windows.

The ratio must be rational?, with the numerator and denominator extracted before being passed to the 3-arity version of this function.

set-window-attrib

(set-window-attrib window attrib value)

Sets the value of attrib for the window.

Can only set :decorated, :resizable, :floating, :auto-iconify, and :focus-on-show.

set-window-close-callback

(set-window-close-callback window callback)(set-window-close-callback window callback scope)

Sets the window close callback for the window.

The callback is a function of the window the event is from.

Returns the previous callback, or nil if there was none.

If scope is passed, the callback will be kept valid for the duration of that scope. If it is not, a mem/global-scope is used.

set-window-content-scale-callback

(set-window-content-scale-callback window callback)(set-window-content-scale-callback window callback scope)

Sets the window content scale callback for the window.

The callback is a function of the window the event is from and two floats for the size of the framebuffer.

Returns the previous callback, or nil if there was none.

If scope is passed, the callback will be kept valid for the duration of that scope. If it is not, a mem/global-scope is used.

set-window-focus-callback

(set-window-focus-callback window callback)(set-window-focus-callback window callback scope)

Sets the window focus callback for the window.

The callback is a function of the window the event is from and a boolean of if the window is focused.

Returns the previous callback, or nil if there was none.

If scope is passed, the callback will be kept valid for the duration of that scope. If it is not, a mem/global-scope is used.

set-window-icon

(set-window-icon window images)

Sets the icon of the window to one of the images.

The image with the closest resolution to the one desired by the OS will be used, rescaling if needed.

Each image is a map with the keys :width, :height, and :pixels. The :width and :height are integers, while :pixels is a pointer to the memory which will be copied for the icon. The image data will be finished copying before this function returns.

The image data is 8 bits color per channel, RGBA, little-endian, and non-premultiplied. Pixels are arranged in rows starting from the top left.

set-window-iconify-callback

(set-window-iconify-callback window callback)(set-window-iconify-callback window callback scope)

Sets the window iconify callback for the window.

The callback is a function of the window the event is from and a boolean of if the window is iconified.

Returns the previous callback, or nil if there was none.

If scope is passed, the callback will be kept valid for the duration of that scope. If it is not, a mem/global-scope is used.

set-window-maximize-callback

(set-window-maximize-callback window callback)(set-window-maximize-callback window callback scope)

Sets the window maximize callback for the window.

The callback is a function of the window the event is from and a boolean of if the window is maximized.

Returns the previous callback, or nil if there was none.

If scope is passed, the callback will be kept valid for the duration of that scope. If it is not, a mem/global-scope is used.

set-window-monitor

(set-window-monitor window monitor width height refresh-rate)(set-window-monitor window x-pos y-pos width height)(set-window-monitor window monitor x-pos y-pos width height refresh-rate)

Sets the window to be fullscreen on monitor, or to windowed mode if nil.

If monitor is nil, the refresh-rate is ignored. If monitor is non-nil, then x-pos and y-pos are ignored. Alternate-arity versions of the function are provided to match those uses.

set-window-opacity

(set-window-opacity window opacity)

Sets the opacity of the window, including any decorations.

set-window-pos

(set-window-pos window x y)

Sets the x and y positions of the given window.

set-window-pos-callback

(set-window-pos-callback window callback)(set-window-pos-callback window callback scope)

Sets the position callback for the given window.

The callback is a function of the window the event is from and the two ints describing the new position of the window.

Returns the previous callback, or nil if there was none.

If scope is passed, the callback will be kept valid for the duration of that scope. If it is not, a mem/global-scope is used.

set-window-refresh-callback

(set-window-refresh-callback window callback)(set-window-refresh-callback window callback scope)

Sets the window refresh callback for the window.

The callback is a function of the window the event is from.

Returns the previous callback, or nil if there was none.

If scope is passed, the callback will be kept valid for the duration of that scope. If it is not, a mem/global-scope is used.

set-window-should-close

(set-window-should-close window bool)

Sets the given window’s close flag.

set-window-size

(set-window-size window width height)

Sets the width and height of the content area of window.

set-window-size-callback

(set-window-size-callback window callback)(set-window-size-callback window callback scope)

Sets the window resize callback for the window.

The callback is a function of the window the event is from and the two ints describing the new size of the content area of the window.

Returns the previous callback, or nil if there was none.

If scope is passed, the callback will be kept valid for the duration of that scope. If it is not, a mem/global-scope is used.

set-window-size-limits

(set-window-size-limits window min-width min-height max-width max-height)

Sets the size limits of the content area of the window

set-window-title

(set-window-title window title)

Sets the title of the given window.

set-window-user-pointer

(set-window-user-pointer window pointer)

Sets a user-defined pointer value associated with the window.

The current value is retained until the window is destroyed.

show-window

(show-window window)

Shows the window if it was previously hidden.

standard-cursor->enum

standard-cursors

swap-buffers

(swap-buffers window)

Swap the front and back buffers of a GL or GLES context for window.

If the swap interval is greater than zero, the GPU driver will wait that many screen updates before swapping the buffers.

When rendering with Vulkan, use vkQueuePresentKHR instead.

swap-interval

(swap-interval int)

Sets the number of vblanks to wait for before showing the buffer.

A context must be current on this thread to call this function.

This function does not apply to Vulkan. If you are rendering using Vulkan, set the present mode of your swapchain instead.

See make-context-current.

terminate

(terminate)

Shuts down GLFW.

The contexts of any windows must not be current on any other thread when this is called.

update-gamepad-mappings

(update-gamepad-mappings mappings)

Parse the passed mappings string and update internal list.

The mappings string can contain either a single gamepad mapping, or many mappings separated by newlines. The parser supports the full format of gamecontrollerdb.txt source file including empty lines and comments.

See the Gamepad Mappings Guide for a full description of the format.

If there is already a mapping for a passed GUID, it will be overriden with the new mapping. If terminate is called, followed by a second init, the internal mappings will be reset to their defaults.

wait-events

(wait-events)

Blocks the thread until at least one event is available, and processes it.

See poll-events.

wait-events-timeout

(wait-events-timeout timeout)

Process events as wait-events, but returns after timeout seconds.

See poll-events.

window-hint

(window-hint hint value)

Sets a window hint for the next window to be created.

window-hint->enum

window-hint-string

(window-hint-string hint value)

Sets a string-valued window hint for the next window to be created.

window-hints

window-should-close

(window-should-close window)

Checks if the given window’s close flag is set.