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 (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

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.7.1.tar.gz (19.5 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.7.1-py2.py3-none-win_amd64.whl (59.2 kB view details)

Uploaded Python 2Python 3Windows x86-64

glfw-1.7.1-py2.py3-none-win32.whl (55.4 kB view details)

Uploaded Python 2Python 3Windows x86

File details

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

File metadata

  • Download URL: glfw-1.7.1.tar.gz
  • Upload date:
  • Size: 19.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.8.1 pkginfo/1.4.1 requests/2.13.0 setuptools/28.8.0 requests-toolbelt/0.7.1 clint/0.5.1 CPython/2.7.13 Darwin/16.7.0

File hashes

Hashes for glfw-1.7.1.tar.gz
Algorithm Hash digest
SHA256 51e2539e0e39eac124f47e4e032f817cd87b0d4f4836b65b90925e66adeb514d
MD5 8f8273c1794bfaaa881f823dedf46092
BLAKE2b-256 5d65c6275744a01425195f1f446e022e5dfa6497aa68479a3952e434e04b2fa0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: glfw-1.7.1-py2.py3-none-win_amd64.whl
  • Upload date:
  • Size: 59.2 kB
  • Tags: Python 2, Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.8.1 pkginfo/1.4.1 requests/2.13.0 setuptools/28.8.0 requests-toolbelt/0.7.1 clint/0.5.1 CPython/2.7.13 Darwin/16.7.0

File hashes

Hashes for glfw-1.7.1-py2.py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 776b36a46875ec4e8ea0e206213935841261851f5bc19edd78d4d32cf0949580
MD5 7d67ad11ae3bb356393f1f6340e964d6
BLAKE2b-256 4f7ef706b2bfa1ab587d5fa2005ed1db5107570355d925712f3e745c3b27cb7a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: glfw-1.7.1-py2.py3-none-win32.whl
  • Upload date:
  • Size: 55.4 kB
  • Tags: Python 2, Python 3, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.8.1 pkginfo/1.4.1 requests/2.13.0 setuptools/28.8.0 requests-toolbelt/0.7.1 clint/0.5.1 CPython/2.7.13 Darwin/16.7.0

File hashes

Hashes for glfw-1.7.1-py2.py3-none-win32.whl
Algorithm Hash digest
SHA256 e8dfd4c774ba4643f84716bf13f191c2d7309a568b7e22ed11a40969a0aef786
MD5 887e2db9bca0a9854e70910895eaa566
BLAKE2b-256 af3b2f8c60fcb0a486eae4dd18c29de22ed667aed5e81f16874102f8580b5900

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