All Projects → FlorianRhiem → Pyglfw

FlorianRhiem / Pyglfw

Licence: mit
Python bindings for GLFW

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Pyglfw

Rabbittoolbox
🤸🏾‍♀️👗开源的动画渲染软件,提倡以简单、易用,高质量的物理演算以及渲染质量和性能,为喜爱二次元动画的用户降低视频制作门槛
Stars: ✭ 309 (+127.21%)
Mutual labels:  opengl, glfw
Silk.net
The high-speed OpenAL, OpenGL, Vulkan, and GLFW bindings library your mother warned you about.
Stars: ✭ 534 (+292.65%)
Mutual labels:  opengl, glfw
Magnum
Lightweight and modular C++11 graphics middleware for games and data visualization
Stars: ✭ 3,728 (+2641.18%)
Mutual labels:  opengl, glfw
Nimgl
NimGL is a Nim library that offers bindings for popular libraries used in computer graphics
Stars: ✭ 218 (+60.29%)
Mutual labels:  opengl, glfw
Bgfx
Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
Stars: ✭ 10,252 (+7438.24%)
Mutual labels:  opengl, glfw
Rust Pushrod
Cross Platform GUI Library for Rust
Stars: ✭ 292 (+114.71%)
Mutual labels:  opengl, glfw
Oreon Engine
OpenGL/Vulkan Java 3D Engine
Stars: ✭ 431 (+216.91%)
Mutual labels:  opengl, glfw
Ludo
A libretro frontend written in golang
Stars: ✭ 366 (+169.12%)
Mutual labels:  opengl, glfw
Glfw.jl
Julia interface to GLFW, a multi-platform library for creating windows with OpenGL contexts and managing input and events.
Stars: ✭ 82 (-39.71%)
Mutual labels:  opengl, glfw
Glfw
Go bindings for GLFW 3
Stars: ✭ 1,069 (+686.03%)
Mutual labels:  opengl, glfw
Lwjgl3 Tutorial
Tutorial for the Lightweight Java Game Library (LWJGL) 3
Stars: ✭ 199 (+46.32%)
Mutual labels:  opengl, glfw
Opengl cmake skeleton
❤️ A ready to use cmake skeleton using GLFW, Glew and glm. 👍
Stars: ✭ 118 (-13.24%)
Mutual labels:  opengl, glfw
Vxr
General purpose engine written in C++ with emphasis on materials rendering (PBR, clear coat, anisotropy, iridescence)
Stars: ✭ 181 (+33.09%)
Mutual labels:  opengl, glfw
Lwjgl3
LWJGL is a Java library that enables cross-platform access to popular native APIs useful in the development of graphics (OpenGL, Vulkan), audio (OpenAL), parallel computing (OpenCL, CUDA) and XR (OpenVR, LibOVR) applications.
Stars: ✭ 3,540 (+2502.94%)
Mutual labels:  opengl, glfw
Flextgl
OpenGL and Vulkan header and loader generator.
Stars: ✭ 180 (+32.35%)
Mutual labels:  opengl, glfw
Lighthouse2
Lighthouse 2 framework for real-time ray tracing
Stars: ✭ 542 (+298.53%)
Mutual labels:  opengl, glfw
Physics3d
A 3D physics engine
Stars: ✭ 101 (-25.74%)
Mutual labels:  opengl, glfw
Borealis
Hardware accelerated, controller and TV oriented UI library for PC and Nintendo Switch (libnx).
Stars: ✭ 135 (-0.74%)
Mutual labels:  opengl, glfw
Cute Deferred Shading
Cute little deferred shading implementation.
Stars: ✭ 129 (-5.15%)
Mutual labels:  opengl
Shadows
Shädows - A Shadows & Lights engine for löve
Stars: ✭ 134 (-1.47%)
Mutual labels:  opengl

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.

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.

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()
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].