A ctypes-based wrapper for GLFW3.
Project description
This module provides Python bindings for GLFW (on GitHub: glfw/glfw). It is a ctypes wrapper which keeps very close to the original GLFW API, except for:
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
Installation
pyGLFW can be installed using pip:
pip install glfw
Windows
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.
Example Code
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()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for glfw-1.8.4-py2.py3-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 169b1a5fa8ac0e72ae6675d75bd6bf538cf05f26545051ea24240c7deb5fe6ad |
|
MD5 | ee0f90d9bd89d1b1ec4b8ed186e4b924 |
|
BLAKE2b-256 | 1f3166a65c0612f4586f54ab6816e16af30864b5b8047ed95afa28da91250585 |
Hashes for glfw-1.8.4-py2.py3-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab1d34993401545a51c2bcdb2cff26d73b81c7ddd67e83a680a5e7ac0cede929 |
|
MD5 | ebdfd06447dcc1f2b384bd998560ddb0 |
|
BLAKE2b-256 | ff91916e9882e838dabc5f2bff93d4583043e6c370b13e9627008743eaf93dbb |