A ctypes-based wrapper for GLFW3.
- function names use the pythonic words_with_underscores notation instead of camelCase
- GLFW_ and glfw prefixes have been removed, as their function is replaced by the module namespace (you can use from glfw.GLFW import * if you prefer the naming convention used by the GLFW C API)
- structs have been replaced with Python sequences and namedtuples
- functions like glfwGetMonitors return a list instead of a pointer and an object count
- Gamma ramps use floats between 0.0 and 1.0 instead of unsigned shorts (use glfw.NORMALIZE_GAMMA_RAMPS=False to disable this)
- GLFW errors are reported as glfw.GLFWError exceptions if no error callback is set (use glfw.ERROR_REPORTING=False to disable this)
- instead of a sequence for GLFWimage structs, PIL/pillow Image objects can be used
pyGLFW can be installed using pip:
pip install glfw
The GLFW shared library is included in the Python wheels for Windows, but the correct Microsoft Visual C++ Redistributable will be required:
Alternatively, you can download a shared library built for a runtime already installed on your system from glfw.org.
Linux and macOS
You will need to install the GLFW shared library yourself and should compile GLFW from source (use -DBUILD_SHARED_LIBS=ON).
pyGLFW will search for the library in a list of search paths (including those in LD_LIBRARY_PATH on Linux and DYLD_LIBRARY_PATH on macOS). If you want to use a specific library, you can set the PYGLFW_LIBRARY environment variable to its path.
The example from the GLFW documentation ported to pyGLFW:
import glfw def main(): # Initialize the library if not glfw.init(): return # Create a windowed mode window and its OpenGL context window = glfw.create_window(640, 480, "Hello World", None, None) if not window: glfw.terminate() return # Make the window's context current glfw.make_context_current(window) # Loop until the user closes the window while not glfw.window_should_close(window): # Render here, e.g. using pyOpenGL # Swap front and back buffers glfw.swap_buffers(window) # Poll for and process events glfw.poll_events() glfw.terminate() if __name__ == "__main__": main()
Release history Release notifications
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size glfw-1.8.4-py2.py3-none-win32.whl (81.2 kB)||File type Wheel||Python version py2.py3||Upload date||Hashes View hashes|
|Filename, size glfw-1.8.4-py2.py3-none-win_amd64.whl (87.5 kB)||File type Wheel||Python version py2.py3||Upload date||Hashes View hashes|
|Filename, size glfw-1.8.4.tar.gz (24.6 kB)||File type Source||Python version None||Upload date||Hashes View hashes|
Hashes for glfw-1.8.4-py2.py3-none-win32.whl
Hashes for glfw-1.8.4-py2.py3-none-win_amd64.whl