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 and Visual C++ runtime are included in the Python wheels.

To use a different GLFW library, you can set PYGLFW_LIBRARY to its location.

macOS

The 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, please follow the steps for Linux below, to build and install GLFW yourself, then place it in one of the library search paths or set PYGLFW_LIBRARY to the location of the library.

Linux

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

Uploaded Python 2Python 3Windows x86-64

glfw-1.8.7-py2.py3-none-win32.whl (494.8 kB view details)

Uploaded Python 2Python 3Windows x86

glfw-1.8.7-py2.py3-none-macosx_10_6_intel.whl (98.0 kB view details)

Uploaded Python 2Python 3macOS 10.6+ Intel (x86-64, i386)

File details

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

File metadata

  • Download URL: glfw-1.8.7.tar.gz
  • Upload date:
  • Size: 24.0 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.7.tar.gz
Algorithm Hash digest
SHA256 210f02ede536da5f9f48c0c23abe0b33136cb2280f3a85f77616e2d5035591b9
MD5 acdcd7af79cdb56e486fc7906265f480
BLAKE2b-256 95e508f451af5e5447d25c6f7304b1a649f780de61aa84cab590fe414a963d5c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: glfw-1.8.7-py2.py3-none-win_amd64.whl
  • Upload date:
  • Size: 490.7 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.7-py2.py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 0b6479f62907283ffc3955e12425e55356f7879f2662b77d7dc00d7439c36f0a
MD5 6340e01280e7378e06e87d7d2cd22dc4
BLAKE2b-256 d71be47041aea497d7f652cc9ff691254f99ef549c0815e9caaefa3d827277d9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: glfw-1.8.7-py2.py3-none-win32.whl
  • Upload date:
  • Size: 494.8 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.7-py2.py3-none-win32.whl
Algorithm Hash digest
SHA256 6b1b9842d3215ff32fab03c03ff7c38bb266329aae87de7e880d327341b75860
MD5 9655aebbc3a0ee2f0fbedd5761854614
BLAKE2b-256 e45e0608c83ec66701ff1364d57538d9b833d8f268bab0eb67f4a558fb02bca6

See more details on using hashes here.

File details

Details for the file glfw-1.8.7-py2.py3-none-macosx_10_6_intel.whl.

File metadata

  • Download URL: glfw-1.8.7-py2.py3-none-macosx_10_6_intel.whl
  • Upload date:
  • Size: 98.0 kB
  • Tags: Python 2, Python 3, macOS 10.6+ Intel (x86-64, i386)
  • 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.7-py2.py3-none-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 b1f6dd95ab482ac35b0740afed63ed9ebb10a0431df04d2aceafb89f8acf8356
MD5 1d9fe670ef6d37dccbce3cbc59cc4b69
BLAKE2b-256 03aeb0950dfc1b9f2c0a9b8ce22df72f1fb8ab8700507aab74f09dd5092a2ab1

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