glfw


Nameglfw JSON
Version 2.7.0 PyPI version JSON
download
home_pagehttps://github.com/FlorianRhiem/pyGLFW
SummaryA ctypes-based wrapper for GLFW3.
upload_time2024-02-24 10:01:28
maintainer
docs_urlNone
authorFlorian Rhiem
requires_python
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            pyGLFW
======

This module provides Python bindings for `GLFW <http://www.glfw.org/>`__
(on GitHub: `glfw/glfw <http://github.com/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`` warnings if no error
   callback is set (use ``glfw.ERROR_REPORTING=False`` to disable this,
   set it to 'warn' instead to issue warnings, set it to 'log' to log it
   using the 'glfw' logger or set it to a dict to define the behavior for
   specific error codes)
-  instead of a sequence for ``GLFWimage`` structs, PIL/pillow ``Image``
   objects can be used

Installation
------------

pyGLFW can be installed using pip:

.. code:: sh

    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, you can build and install it yourself by
`compiling GLFW from source <http://www.glfw.org/docs/latest/compile.html>`__
(use ``-DBUILD_SHARED_LIBS=ON``).

pyGLFW will search for the library in a list of search paths (including those
in ``DYLD_LIBRARY_PATH``). If you want to use a specific library, you can set
the ``PYGLFW_LIBRARY`` environment variable to its path.

Linux
~~~~~

The GLFW shared library is included in the Python wheels for Linux. Although
pyGLFW will try to detect whether the GLFW library for Wayland or X11 should
be used, you can set the ``PYGLFW_LIBRARY_VARIANT`` variable to ``wayland`` or
``x11`` to select either variant of the library.

If you cannot use these on your system, you can install the GLFW shared
library using a package management system (e.g. ``apt install libglfw3``
on Debian or Ubuntu) or you can build and install it yourself by
`compiling GLFW from source <http://www.glfw.org/docs/latest/compile.html>`__
(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.

cx_Freeze / PyInstaller
~~~~~~~~~~~~~~~~~~~~~~~

pyGLFW will search for the GLFW library in the current working directory, the directory
of the executable and in the package on non-Windows platforms if running in an
executable frozen with cx_Freeze or PyInstaller, unless the ``PYGLFW_LIBRARY``
environment variable is set.

Development Version
~~~~~~~~~~~~~~~~~~~

If you are using the development version of GLFW and would like to use wrappers
for currently unreleased macros and functions, you can instead install:

.. code:: sh

    pip install glfw[preview]

or set the ``PYGLFW_PREVIEW`` environment variable.

Note, however, that there will be a slight delay between the development
version of GLFW and the wrappers provided by this package.

Example Code
------------

The example from the `GLFW
documentation <http://www.glfw.org/documentation.html>`__ ported to
pyGLFW:

.. code:: python

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



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/FlorianRhiem/pyGLFW",
    "name": "glfw",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "",
    "author": "Florian Rhiem",
    "author_email": "florian.rhiem@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/1f/fe/fd827e0e0babed43c08949644d1c2cafe5bc0f0ddcd369248eb27841c81c/glfw-2.7.0.tar.gz",
    "platform": null,
    "description": "pyGLFW\n======\n\nThis module provides Python bindings for `GLFW <http://www.glfw.org/>`__\n(on GitHub: `glfw/glfw <http://github.com/glfw/glfw>`__). It is a\n``ctypes`` wrapper which keeps very close to the original GLFW API,\nexcept for:\n\n-  function names use the pythonic ``words_with_underscores`` notation\n   instead of ``camelCase``\n-  ``GLFW_`` and ``glfw`` prefixes have been removed, as their function\n   is replaced by the module namespace\n   (you can use ``from glfw.GLFW import *`` if you prefer the naming\n   convention used by the GLFW C API)\n-  structs have been replaced with Python sequences and namedtuples\n-  functions like ``glfwGetMonitors`` return a list instead of a pointer\n   and an object count\n-  Gamma ramps use floats between 0.0 and 1.0 instead of unsigned shorts\n   (use ``glfw.NORMALIZE_GAMMA_RAMPS=False`` to disable this)\n-  GLFW errors are reported as ``glfw.GLFWError`` warnings if no error\n   callback is set (use ``glfw.ERROR_REPORTING=False`` to disable this,\n   set it to 'warn' instead to issue warnings, set it to 'log' to log it\n   using the 'glfw' logger or set it to a dict to define the behavior for\n   specific error codes)\n-  instead of a sequence for ``GLFWimage`` structs, PIL/pillow ``Image``\n   objects can be used\n\nInstallation\n------------\n\npyGLFW can be installed using pip:\n\n.. code:: sh\n\n    pip install glfw\n\nWindows\n~~~~~~~\n\nThe GLFW shared library and Visual C++ runtime are included in the Python wheels.\n\nTo use a different GLFW library, you can set ``PYGLFW_LIBRARY`` to its location.\n\nmacOS\n~~~~~\n\nThe GLFW shared library for 64-bit is included in the Python wheels for macOS.\n\nIf you are using a 32-bit Python installation or otherwise cannot use the\nlibrary downloaded with the wheel, you can build and install it yourself by\n`compiling GLFW from source <http://www.glfw.org/docs/latest/compile.html>`__\n(use ``-DBUILD_SHARED_LIBS=ON``).\n\npyGLFW will search for the library in a list of search paths (including those\nin ``DYLD_LIBRARY_PATH``). If you want to use a specific library, you can set\nthe ``PYGLFW_LIBRARY`` environment variable to its path.\n\nLinux\n~~~~~\n\nThe GLFW shared library is included in the Python wheels for Linux. Although\npyGLFW will try to detect whether the GLFW library for Wayland or X11 should\nbe used, you can set the ``PYGLFW_LIBRARY_VARIANT`` variable to ``wayland`` or\n``x11`` to select either variant of the library.\n\nIf you cannot use these on your system, you can install the GLFW shared\nlibrary using a package management system (e.g. ``apt install libglfw3``\non Debian or Ubuntu) or you can build and install it yourself by\n`compiling GLFW from source <http://www.glfw.org/docs/latest/compile.html>`__\n(use ``-DBUILD_SHARED_LIBS=ON``).\n\npyGLFW will search for the library in a list of search paths (including those\nin ``LD_LIBRARY_PATH``). If you want to use a specific library, you can set\nthe ``PYGLFW_LIBRARY`` environment variable to its path.\n\ncx_Freeze / PyInstaller\n~~~~~~~~~~~~~~~~~~~~~~~\n\npyGLFW will search for the GLFW library in the current working directory, the directory\nof the executable and in the package on non-Windows platforms if running in an\nexecutable frozen with cx_Freeze or PyInstaller, unless the ``PYGLFW_LIBRARY``\nenvironment variable is set.\n\nDevelopment Version\n~~~~~~~~~~~~~~~~~~~\n\nIf you are using the development version of GLFW and would like to use wrappers\nfor currently unreleased macros and functions, you can instead install:\n\n.. code:: sh\n\n    pip install glfw[preview]\n\nor set the ``PYGLFW_PREVIEW`` environment variable.\n\nNote, however, that there will be a slight delay between the development\nversion of GLFW and the wrappers provided by this package.\n\nExample Code\n------------\n\nThe example from the `GLFW\ndocumentation <http://www.glfw.org/documentation.html>`__ ported to\npyGLFW:\n\n.. code:: python\n\n    import glfw\n\n    def main():\n        # Initialize the library\n        if not glfw.init():\n            return\n        # Create a windowed mode window and its OpenGL context\n        window = glfw.create_window(640, 480, \"Hello World\", None, None)\n        if not window:\n            glfw.terminate()\n            return\n\n        # Make the window's context current\n        glfw.make_context_current(window)\n\n        # Loop until the user closes the window\n        while not glfw.window_should_close(window):\n            # Render here, e.g. using pyOpenGL\n\n            # Swap front and back buffers\n            glfw.swap_buffers(window)\n\n            # Poll for and process events\n            glfw.poll_events()\n\n        glfw.terminate()\n\n    if __name__ == \"__main__\":\n        main()\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A ctypes-based wrapper for GLFW3.",
    "version": "2.7.0",
    "project_urls": {
        "Homepage": "https://github.com/FlorianRhiem/pyGLFW"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d1d740c26020bca98785bbb052b8c536324de77f0587d3fdec02e64fe77d73cb",
                "md5": "bf690957e9265edf7f5d09b8625c17e3",
                "sha256": "bd82849edcceda4e262bd1227afaa74b94f9f0731c1197863cd25c15bfc613fc"
            },
            "downloads": -1,
            "filename": "glfw-2.7.0-py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38-none-macosx_10_6_intel.whl",
            "has_sig": false,
            "md5_digest": "bf690957e9265edf7f5d09b8625c17e3",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38",
            "requires_python": null,
            "size": 97004,
            "upload_time": "2024-02-24T10:01:09",
            "upload_time_iso_8601": "2024-02-24T10:01:09.717800Z",
            "url": "https://files.pythonhosted.org/packages/d1/d7/40c26020bca98785bbb052b8c536324de77f0587d3fdec02e64fe77d73cb/glfw-2.7.0-py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38-none-macosx_10_6_intel.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4d70a5ed74aa489163a72a52b03a02ff3d49b1c82c7edd5be78f09a292c29e21",
                "md5": "e57149130d6b2f9c694114ddfad9f4d5",
                "sha256": "56ea163c964bb0bc336def2d6a6a1bd42f9db4b870ef834ac77d7b7ee68b8dfc"
            },
            "downloads": -1,
            "filename": "glfw-2.7.0-py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38-none-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "e57149130d6b2f9c694114ddfad9f4d5",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38",
            "requires_python": null,
            "size": 94534,
            "upload_time": "2024-02-24T10:01:12",
            "upload_time_iso_8601": "2024-02-24T10:01:12.151990Z",
            "url": "https://files.pythonhosted.org/packages/4d/70/a5ed74aa489163a72a52b03a02ff3d49b1c82c7edd5be78f09a292c29e21/glfw-2.7.0-py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38-none-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6e82179be3e7fc237bd9a32eca6b813e0274acced867f6e501b4c02c29a0eb4a",
                "md5": "99726f9f798b857e10a94dccd73f0ee3",
                "sha256": "463aab9e5567c83d8120556b3a845807c60950ed0218fc1283368f46f5ece331"
            },
            "downloads": -1,
            "filename": "glfw-2.7.0-py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38-none-manylinux2010_i686.whl",
            "has_sig": false,
            "md5_digest": "99726f9f798b857e10a94dccd73f0ee3",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38",
            "requires_python": null,
            "size": 116615,
            "upload_time": "2024-02-24T10:01:14",
            "upload_time_iso_8601": "2024-02-24T10:01:14.298403Z",
            "url": "https://files.pythonhosted.org/packages/6e/82/179be3e7fc237bd9a32eca6b813e0274acced867f6e501b4c02c29a0eb4a/glfw-2.7.0-py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38-none-manylinux2010_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3d67fbfda5bee27e2d16500d43eff07b48024b82ece528bb4981d96c4f89623b",
                "md5": "47ab42869875b90a417661b7eab71110",
                "sha256": "a6f54188dfc349e5426b0ada84843f6eb35a3811d8dbf57ae49c448e7d683bb4"
            },
            "downloads": -1,
            "filename": "glfw-2.7.0-py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38-none-manylinux2010_x86_64.whl",
            "has_sig": false,
            "md5_digest": "47ab42869875b90a417661b7eab71110",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38",
            "requires_python": null,
            "size": 122720,
            "upload_time": "2024-02-24T10:01:16",
            "upload_time_iso_8601": "2024-02-24T10:01:16.588590Z",
            "url": "https://files.pythonhosted.org/packages/3d/67/fbfda5bee27e2d16500d43eff07b48024b82ece528bb4981d96c4f89623b/glfw-2.7.0-py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38-none-manylinux2010_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9f72bcab7489105f768f609c8bc631fc5ec4ddeca0db81745f2f3f21528d8c9c",
                "md5": "6aa2d16a704caf75b0cfece7849b91f2",
                "sha256": "e33568b0aba2045a3d7555f22fcf83fafcacc7c2fc4cb995741894ea51e43ab6"
            },
            "downloads": -1,
            "filename": "glfw-2.7.0-py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38-none-manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "6aa2d16a704caf75b0cfece7849b91f2",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38",
            "requires_python": null,
            "size": 202524,
            "upload_time": "2024-02-24T10:01:17",
            "upload_time_iso_8601": "2024-02-24T10:01:17.890330Z",
            "url": "https://files.pythonhosted.org/packages/9f/72/bcab7489105f768f609c8bc631fc5ec4ddeca0db81745f2f3f21528d8c9c/glfw-2.7.0-py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38-none-manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ece8462afb18f3627d11d4dab74228b52094e1a121d57fe57957c821c50bbfba",
                "md5": "ad0cd501071aa7af6a78e76de2c21b4e",
                "sha256": "d8630dd9673860c427abde5b79bbc348e02eccde8a3f2a802c5a2a4fb5d79fb8"
            },
            "downloads": -1,
            "filename": "glfw-2.7.0-py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38-none-manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ad0cd501071aa7af6a78e76de2c21b4e",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38",
            "requires_python": null,
            "size": 211764,
            "upload_time": "2024-02-24T10:01:20",
            "upload_time_iso_8601": "2024-02-24T10:01:20.147915Z",
            "url": "https://files.pythonhosted.org/packages/ec/e8/462afb18f3627d11d4dab74228b52094e1a121d57fe57957c821c50bbfba/glfw-2.7.0-py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38-none-manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1d027eaa19a61508c43f1c24d9da25368dc98e2fd9f7fdb0a1727e4eb687e2e8",
                "md5": "2ca51828130a4f5f39325a31d1cd4120",
                "sha256": "ff92d14ac1c7afa9c5deb495c335b485868709880e6e080e99ace7026d74c756"
            },
            "downloads": -1,
            "filename": "glfw-2.7.0-py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38-none-win32.whl",
            "has_sig": false,
            "md5_digest": "2ca51828130a4f5f39325a31d1cd4120",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38",
            "requires_python": null,
            "size": 497757,
            "upload_time": "2024-02-24T10:01:22",
            "upload_time_iso_8601": "2024-02-24T10:01:22.659621Z",
            "url": "https://files.pythonhosted.org/packages/1d/02/7eaa19a61508c43f1c24d9da25368dc98e2fd9f7fdb0a1727e4eb687e2e8/glfw-2.7.0-py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38-none-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5c66645ed28b13680fe65de1d5334bb9cbb41c5f46e225c0b58b1b2994d5a6a3",
                "md5": "b59e0c43814244573b36bb06d45aa5b8",
                "sha256": "20d4b31a5a6a61fb787b25f8408204e0e248313cc500953071d13d30a2e5cc9d"
            },
            "downloads": -1,
            "filename": "glfw-2.7.0-py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "b59e0c43814244573b36bb06d45aa5b8",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38",
            "requires_python": null,
            "size": 493850,
            "upload_time": "2024-02-24T10:01:25",
            "upload_time_iso_8601": "2024-02-24T10:01:25.661383Z",
            "url": "https://files.pythonhosted.org/packages/5c/66/645ed28b13680fe65de1d5334bb9cbb41c5f46e225c0b58b1b2994d5a6a3/glfw-2.7.0-py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1ffefd827e0e0babed43c08949644d1c2cafe5bc0f0ddcd369248eb27841c81c",
                "md5": "85449b41b2c808fdddb9f305bab01cd6",
                "sha256": "0e209ad38fa8c5be67ca590d7b17533d95ad1eb57d0a3f07b98131db69b79000"
            },
            "downloads": -1,
            "filename": "glfw-2.7.0.tar.gz",
            "has_sig": false,
            "md5_digest": "85449b41b2c808fdddb9f305bab01cd6",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 31401,
            "upload_time": "2024-02-24T10:01:28",
            "upload_time_iso_8601": "2024-02-24T10:01:28.420124Z",
            "url": "https://files.pythonhosted.org/packages/1f/fe/fd827e0e0babed43c08949644d1c2cafe5bc0f0ddcd369248eb27841c81c/glfw-2.7.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-24 10:01:28",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "FlorianRhiem",
    "github_project": "pyGLFW",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "glfw"
}
        
Elapsed time: 0.25815s