Package: glfw
This module provides Python bindings forGLFW(on GitHub:glfw/glfw). It is actypeswrapper which keeps very close to the original GLFW API,
except for:function names use the pythonicwords_with_underscoresnotation
instead ofcamelCaseGLFW_andglfwprefixes have been removed, as their function
is replaced by the module namespace
(you can usefrom glfw.GLFW import *if you prefer the naming
convention used by the GLFW C API)structs have been replaced with Python sequences and namedtuplesfunctions likeglfwGetMonitorsreturn a list instead of a pointer
and an object countGamma ramps use floats between 0.0 and 1.0 instead of unsigned shorts
(useglfw.NORMALIZE_GAMMA_RAMPS=Falseto disable this)GLFW errors are reported asglfw.GLFWErrorwarnings if no error
callback is set (useglfw.ERROR_REPORTING=Falseto disable this,
set it to ‘warn’ instead to issue warnings, set it to ‘log’ to log it
using the ‘glfw’ logger or set it to a dict to define the behavior for
specific error codes)instead of a sequence forGLFWimagestructs, PIL/pillowImageobjects can be usedInstallationpyGLFW can be installed using pip:pipinstallglfwWindowsThe GLFW shared library and Visual C++ runtime are included in the Python wheels.To use a different GLFW library, you can setPYGLFW_LIBRARYto its location.macOSThe GLFW shared library for 64-bit is included in the Python wheels for macOS.If you are using a 32-bit Python installation or otherwise cannot use the
library downloaded with the wheel, you can build and install it yourself bycompiling GLFW from source(use-DBUILD_SHARED_LIBS=ON).pyGLFW will search for the library in a list of search paths (including those
inDYLD_LIBRARY_PATH). If you want to use a specific library, you can set
thePYGLFW_LIBRARYenvironment variable to its path.LinuxThe GLFW shared library is included in the Python wheels for Linux. Although
pyGLFW will try to detect whether the GLFW library for Wayland or X11 should
be used, you can set thePYGLFW_LIBRARY_VARIANTvariable towaylandorx11to select either variant of the library.If you cannot use these on your system, you can install the GLFW shared
library using a package management system (e.g.apt install libglfw3on Debian or Ubuntu) or you can build and install it yourself bycompiling GLFW from source(use-DBUILD_SHARED_LIBS=ON).pyGLFW will search for the library in a list of search paths (including those
inLD_LIBRARY_PATH). If you want to use a specific library, you can set
thePYGLFW_LIBRARYenvironment variable to its path.cx_Freeze / PyInstallerpyGLFW will search for the GLFW library in the current working directory, the directory
of the executable and in the package on non-Windows platforms if running in an
executable frozen with cx_Freeze or PyInstaller, unless thePYGLFW_LIBRARYenvironment variable is set.Development VersionIf you are using the development version of GLFW and would like to use wrappers
for currently unreleased macros and functions, you can instead install:pipinstallglfw[preview]or set thePYGLFW_PREVIEWenvironment variable.Note, however, that there will be a slight delay between the development
version of GLFW and the wrappers provided by this package.Example CodeThe example from theGLFW
documentationported to
pyGLFW:importglfwdefmain():# Initialize the libraryifnotglfw.init():return# Create a windowed mode window and its OpenGL contextwindow=glfw.create_window(640,480,"Hello World",None,None)ifnotwindow:glfw.terminate()return# Make the window's context currentglfw.make_context_current(window)# Loop until the user closes the windowwhilenotglfw.window_should_close(window):# Render here, e.g. using pyOpenGL# Swap front and back buffersglfw.swap_buffers(window)# Poll for and process eventsglfw.poll_events()glfw.terminate()if__name__=="__main__":main()