Package: cyglfw3
Python bindings forGLFW 3+using Cython.Provides an API which matches the C API.DifferencesEnumerations have dropped their “GLFW_” prefix.Functions have dropped their “glfw” prefix.{Get|Set}UserPointer is not accessible as it doesn’t make sense for Python.The {Get|Set}Time functions are available but Python’s time module should be used in preference.C Code#include <GLFW/glfw3.h>
int main(void)
{
    GLFWwindow* window;

    /* Initialize the library */
    if (!glfwInit())
        return -1;

    /* Create a windowed mode window and its OpenGL context */
    window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);

    if (!window)
    {
        glfwTerminate();
        return -1;
    }

    glfwMakeContextCurrent(window);
    while (!glfwWindowShowClose(window))
    {
        /* Render here */

        /* Display the render buffer */
        glfwSwapBuffers(window);

        /* Pump the message queue */
        glfwPollEvents();
    }

    /* Shutdown */
    glfwTerminate();
    return 0;
}Python Code# needed if you're running the OS-X system python
try:
    from AppKit import NSApp, NSApplication
except:
    pass

import cyglfw3 as glfw
if not glfw.Init():
    exit()

window = glfw.CreateWindow(640, 480, 'Hello World')
if not window:
    glfw.Terminate()
    exit()

glfw.MakeContextCurrent(window)
while not glfw.WindowShouldClose(window):
    # Render here

    # Swap front and back buffers
    glfw.SwapBuffers(window)

    # Poll for and process events
    glfw.PollEvents()

glfw.Terminate()Prefix Compatible CodeA compatibility layer is provided to be 1:1 compatible with other GLFW3 wrappers.
Commonly, these don’t drop theGLFW_prefix from constants, nor theglfwprefix
from functions.To use the compatibility module, useimport cyglfw3.compatible as glfw:# needed if you're running the OS-X system python
try:
    from AppKit import NSApp, NSApplication
except:
    pass

import cyglfw3.compatible as glfw
if not glfw.glfwInit():
    exit()

window = glfw.glfwCreateWindow(640, 480, 'Hello World')
if not window:
    glfw.glfwTerminate()
    exit()

glfw.glfwMakeContextCurrent(window)
while not glfw.glfwWindowShouldClose(window):
    # Render here

    # Swap front and back buffers
    glfw.glfwSwapBuffers(window)

    # Poll for and process events
    glfw.glfwPollEvents()

glfw.glfwTerminate()Installationpip install cyglfw3Manual BuildingIf you have trouble building CyGLFW3, please raise an issue on Github.When specifying the include path, ensure that the GLFW directory is a sub-directory
of that path.
For example: the path /usr/local/include/GLFW would use include /usr/local/includeThe lib path should contain the glfw library file.OS-X / LinuxCyGLFW3 provides support for OS-XHomebrewandMacPorts.Linux builds should work with any package manager.python setup.py build_ext -iSpecifying an alternate GLFW installation path:env CPATH=<include path> LIBRARY_PATH=<lib path> python setup.py build_ext -iWindowsThe following commands are untested, please report their success or failure.set GLFW_ROOT=<path to include/GLFW/glfw3.h>
python setup.py build_ext -iIf you getImportError: DLL load failed: The specified procedure could not be found.Please place the glfw3.dll fromlib-vc2012in the installation path.Common ProblemsPyOpenGL reports the OpenGL version as None and my GL functions do nothing!You _must_ set an active context or your OpenGL calls will go no where:glfw.MakeContextCurrent(window)This is by design in GLFW3.DependenciesPython 2.7 / 3.4CythonGLFW 3