Skip to main content

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

  • 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

For Windows users, the GLFW shared library is included in the Python wheels. Linux and macOS users need to install the library themselves 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

glfw-1.6.0.tar.gz (16.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

glfw-1.6.0-py2.py3-none-win_amd64.whl (56.0 kB view details)

Uploaded Python 2Python 3Windows x86-64

glfw-1.6.0-py2.py3-none-win32.whl (52.2 kB view details)

Uploaded Python 2Python 3Windows x86

File details

Details for the file glfw-1.6.0.tar.gz.

File metadata

  • Download URL: glfw-1.6.0.tar.gz
  • Upload date:
  • Size: 16.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for glfw-1.6.0.tar.gz
Algorithm Hash digest
SHA256 f06f5483b404e1f89fe34048c17c5910dfb63de312cb4e2fec4bdfb83e0a4801
MD5 45f65476c6e8145d477b249f4ead63f1
BLAKE2b-256 d253f52d1dd6175eaf1f4aca81602aa7454f97c3568804f2f1029549f45e9134

See more details on using hashes here.

File details

Details for the file glfw-1.6.0-py2.py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for glfw-1.6.0-py2.py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 ff514abf81e83c9ff16e5aa06f55b137a0302ce9c035ac401b875c701beacc14
MD5 f0fd71f757a4cad00e6e8179d1063bfa
BLAKE2b-256 9ee89f925cf388ee9f1a0bbd941477aa61cf24176c4067f44543a3d239ef4929

See more details on using hashes here.

File details

Details for the file glfw-1.6.0-py2.py3-none-win32.whl.

File metadata

  • Download URL: glfw-1.6.0-py2.py3-none-win32.whl
  • Upload date:
  • Size: 52.2 kB
  • Tags: Python 2, Python 3, Windows x86
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for glfw-1.6.0-py2.py3-none-win32.whl
Algorithm Hash digest
SHA256 4bfe0c929082af51a337af40be7c2105748ee8f815f0e7663cf654608773541a
MD5 86f71e146e682579ff97306030026fa5
BLAKE2b-256 d1fbd869bb80d6cc6c6e6756bf3807fefc7daa234b26f377826ede77dd78abbc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page