GLFW.jl
Julia interface to GLFW 3, a multi-platform library for creating windows with OpenGL or OpenGL ES contexts and receiving many kinds of input. GLFW has native support for Windows, OS X and many Unix-like systems using the X Window System, such as Linux and FreeBSD.
Example
import GLFW
# Create a window and its OpenGL context
window = GLFW.CreateWindow(640, 480, "GLFW.jl")
# Make the window's context current
GLFW.MakeContextCurrent(window)
# Loop until the user closes the window
while !GLFW.WindowShouldClose(window)
# Render here
# Swap front and back buffers
GLFW.SwapBuffers(window)
# Poll for and process events
GLFW.PollEvents()
end
Interface
Read the GLFW documentation for detailed instructions on how to use the library. The Julia interface is almost identical to the underlying C interface, with a few notable differences:
- Clipboard (
glfwGetClipboard
,glfwSetClipboard
) and time (glfwGetTime
,glfwSetTime
) functions have been omitted because Julia's standard library already supports similar functionality. -
glfwInit
andglfwTerminate
are called automatically using the__init__
andatexit
functions. While it is okay to still call them explicitly, it is redundant and not required.
Footnotes
- While it is possible (and often convenient) to use closures or anonymous functions as callbacks, they are potentially less performant than using a top-level function.
- Special thanks to @afterwise for writing an early implementation of GLFW 3 support.