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

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


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.8.4.tar.gz (24.6 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.8.4-py2.py3-none-win_amd64.whl (87.5 kB view details)

Uploaded Python 2Python 3Windows x86-64

glfw-1.8.4-py2.py3-none-win32.whl (81.2 kB view details)

Uploaded Python 2Python 3Windows x86

File details

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

File metadata

  • Download URL: glfw-1.8.4.tar.gz
  • Upload date:
  • Size: 24.6 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.8.4.tar.gz
Algorithm Hash digest
SHA256 65891182413d7a7141e07d8cebb69fae640236e890eb3645fdd8512d8aa9d0e2
MD5 62bc87a61548e5b37a7a0c381d4445fd
BLAKE2b-256 30266b40e0a7dfd6f40d083ddc58005ff39574defb0faaea5c3c088c53ae0728

See more details on using hashes here.

File details

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

File metadata

  • Download URL: glfw-1.8.4-py2.py3-none-win_amd64.whl
  • Upload date:
  • Size: 87.5 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.8.4-py2.py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 169b1a5fa8ac0e72ae6675d75bd6bf538cf05f26545051ea24240c7deb5fe6ad
MD5 ee0f90d9bd89d1b1ec4b8ed186e4b924
BLAKE2b-256 1f3166a65c0612f4586f54ab6816e16af30864b5b8047ed95afa28da91250585

See more details on using hashes here.

File details

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

File metadata

  • Download URL: glfw-1.8.4-py2.py3-none-win32.whl
  • Upload date:
  • Size: 81.2 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.8.4-py2.py3-none-win32.whl
Algorithm Hash digest
SHA256 ab1d34993401545a51c2bcdb2cff26d73b81c7ddd67e83a680a5e7ac0cede929
MD5 ebdfd06447dcc1f2b384bd998560ddb0
BLAKE2b-256 ff91916e9882e838dabc5f2bff93d4583043e6c370b13e9627008743eaf93dbb

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