pyopengl
Standard OpenGL bindings for Python
3.1.10
5.0M downloads/mo
#2184 most downloaded on PyPI
mcfletch/pyopengl
What this package is like to depend on
Last release 1 months ago
13 Jul 2026
Release timing varies
gaps range from 3 weeks to 3.5 years
This project publishes no release notes
the list below is its commits, not an announcement
Nothing withdrawn
no release was ever pulled
20 years old
42 releases · first in 2006
1 release in the last 12 months
see the full history below
Release timeline
34 releases · Nov 2006 to Jul 2026Releases
latest 42-
4.0.0a113 Jul 2026 pre-releaseCommits, not release notes
This project publishes no release notes. Between
3.1.10and4.0.0a1there were 50 commits, 50 of them substantive:- BUGFIXES Bugfixes for numpy scalar changes and shader compilation fixes
- PACKAGING update the license to the spdx form
- TESTSUITE glfx version of the test suite runner
- TESTSUITE Allow use of glfw for the decorator test suites
- TESTSUITE Bugfix for test case checking absolute equality
- TESTSUITE Default to glfw, flip the glfw and pygame displays on exit
- BREAKING CHANGE Require python 3.9+ to support SPDX and numpy 2.x only
- TESTSUITE Switch to using basetestcase for the test_core module
- BUGFIX EGL Enumeration check-script was crashing if one device couldn't initialise
- TESTSUITE allow for using glfw to test on non-glx linux
- GLES Bugfix and size-checks on image functions, smoke-test in test suite
- BUGFIX Doubly-wrapped entry point was crashing vertex_array_object import
- BUGFIX gl histogram double-wrapping of functions due to newer generator
- BUGFIX glDrawBuffersEXT was getting wrapped to glDrawBuffers
- FEATURE Support int64 uint64 types for array parameters
- LOGS Use a real decorator for logs to cleanup tools view of types
- GLES Test suite organisation, coverage, usability wrappers
- ARB vertex_shader Allow for passing in the size parameter in the wrapper
- Bugfix glGetTexImageCompressed fixes (was ignoring the level)
- BUGFIX constants greater than sys.maxint were incorrectly converted
…and 30 more.
-
3.1.1018 Aug 2025Commits, not release notes
This project publishes no release notes. Between
release-3.1.7and3.1.10there were 74 commits, 65 of them substantive:- Fix ctypes FormatHandler for Python 3.12+
- Fix README.txt typo in accelerate's setup.cfg
- gh#101 Allow for fallbacks to work on glx lookup for modern linux glx test update
- PYTHON3.12 Support python3.12 via cython 3.x wrappers
- AUTOGENERATED Cython wrappers
- GH#92 Hopefully correct handling of big-endian platforms for struct-based buffer api test
- TESTS Current tox complains if requirements.txt isn't present but is referenced
- fix resource warning
- PYPY3 Add support for pypy3 in FormatHandler
- Treat any falsy context as invalid
- Return type for *GetCurrentContext is a pointer on all platforms
- BUGFIX Numpy intp type for latest numpy
- WRAPPERS Regenerated C wrappers with latest Cython
- PYTHON3.12 Add Python3.12 to the test matrix in tox
- TESTCASE Don't bomb out during egl test when there's no egl devices
- FORMATTING Cleanup formatting in a few modules
- RUFF Provide ruff rules to allow for checks/fixes
- CYTHON Switch to installing/running current cython during build rather than checking in wrappers
- PYTHON3.12 Reduce the number of iterations in memory leak test to avoid JIT triggering
- TESTS Avoid using buffer api on unsupported types for 3.7 and 3.8
…and 45 more.
-
3.1.920 Jan 2025Nothing published for this version
-
3.1.9a202 Jan 2025 pre-releaseNothing published for this version
-
3.1.9a131 Dec 2024 pre-releaseNothing published for this version
-
3.1.723 May 2023Commits, not release notes
This project publishes no release notes. Between
release-3.1.1a1andrelease-3.1.7there were 250 commits, 235 of them substantive:- Fix logging reference in a test-case (refactoring error)
- Python 3.x scoping rules fix for dealing with logging failed library loads
- Update codegenerator to use github registry
- Refresh generated files with the current OpenGL registry
- Fix glGet crashes due to cleanup/memory issues
- SF #7 ensure that specifier and prefix are 8-bit before doing startswith
- SF #7 integrate Tom Goddard's patch to make WGL extension prefixes 8-bit
- Github #6 extension types for EGL to byte-strings
- Github #6 fix allow for passing force_extension through function creation
- Remove unused import in test suite helper
- GitHub #5 verify that memory usage doesn't spike with transfer of VBO
- Move the test_accel_leak test so it can use shared code for memory checking
- GitHub #2 missing type-count declarations for texture_rg extension
- Add a .travis.yml to see if we can run tests there, rename requirements file
- Requirements are just listed, not in a file
- Install accelerate from local, add a travis-ci badge to readme
- Only run the PyOpenGL tests in travis
- Yet more pickiness for travis...
- Switch to 24-bit contexts and try to get GLX and RENDER extensions
- Yet further attempts to get a glx capable visual
…and 215 more.
-
3.1.620 Feb 2022Nothing published for this version
-
3.1.504 Jan 2020Nothing published for this version
-
3.1.430 Nov 2019Nothing published for this version
-
3.1.3rc126 Oct 2019 pre-releaseNothing published for this version
-
3.1.3b205 Nov 2018 pre-releaseNothing published for this version
-
3.1.3b112 Aug 2018 pre-releaseNothing published for this version
-
3.1.1a113 Feb 2015 pre-releaseCommits, not release notes
This project publishes no release notes. Between
release-3.1.0andrelease-3.1.1a1there were 43 commits, 42 of them substantive:- distutils on windows does not allow for absolute paths
- Trivial test to print current glsl version available
- Update generator to handle current khronos registry
- Regeneration, but there is a lot of regressions due to output mapping failures
- Add fixed and clamp types to core GL
- Sort the gl_out_parameters for consistency
- A few tweaks to make regeneration avoid massive pointless changes
- Complete the update to OpenGL 1.5 from current khronos registry
- Eliminate the "exceptional" wrapper which is no longer needed for glgentextures
- Refactoring error for reference to generic arrayDataType
- Rebuild on current xml sources
- Allow use of opaque pointers as keys in dictionaries...
- Missing import of the NULL_8_BYTE
- Update from current registry
- Make the wrapper error message more helpful in debugging failures
- Provide a GLfixedArray converter to allow fixed array functions to be defined
- Some code-cleanup in the exceptional module
- Ignore all eric project directories
- Allow for passing in flag to not perform validation of shader
- New alias for the EGLImageKHR, apparently
…and 22 more.
-
3.1.026 Jun 2014Commits, not release notes
This project publishes no release notes. Between
release-3.1.0b3andrelease-3.1.0there were 2 commits, 2 of them substantive:- Only test glsl if that version is supported
- Version bump to 3.1.0 final
-
3.1.0b325 May 2014 pre-releaseCommits, not release notes
This project publishes no release notes. Between
release-3.1.0b2andrelease-3.1.0b3there were 81 commits, 80 of them substantive:- Use an explicitly defined glutInit NullFunction rather than a None so that you-don't-have-GLUT raises a useful message
- Work around build-failure in accelerate by filtering out known-bad flag on OS-X
- Bug-fix for unicode argument pass through and test for same, missing parameter to a call
- Something is calling from_param with a second argument, but what is eluding me, allow the second param for now
- Test the unicode behaviour under python2 and 3
- Update VBO wrapper to properly use glBufferSubData when updating VBO arrays
- New vendor "NOK" added to EGL
- Updated spec text from OpenGL.org
- Get a test working for the debug messages mechanism, fill in a few glget constants
- Guess at the output sizes for most of the un-sized glget values
- Use the khronos enum groups to populate glGet mapping
- Update with missing values from chromium project
- Use chromium table to validate our table, update our table with the extra args
- Updated GLGET mechanism with table merged from chromium/regal
- Add regal license
- Format licenses a bit more consistently
- Store out the set of output variables for later use
- Incorrect reference in wrapper code
- Use automated output-argument wrapping everywhere we can do it, multi-arg calcsize and multiple-output functions not yet working
- Mapping of parameter which are output (currently just in gl.spec)
…and 60 more.
-
3.1.0b224 Mar 2014 pre-releaseCommits, not release notes
This project publishes no release notes. Between
release-3.1.0b1andrelease-3.1.0b2there were 96 commits, 96 of them substantive:- On EGL platforms, OpenGL may be available, if it is, provide access to it
- Remove support for extremely old ctypes from python versions we don't support
- Fix regression where default value of context-checking was flipped
- OpenGL is a valid api for EGL hosting, use it if available, otherwise es2
- Use the core log retrieval mechanism instead of the ARB one
- Python-3 compat for glut init test
- Eliminate use of old-style print in the PyOpenGL test scripts
- More fixes for python3 for the test suite
- Modernize error handling in array data type
- Only consider non-optional elements in checking argument length
- Start work on getting orPassIn for output to work, currently just allows for NULL pass-in, but doesn't use a passed-in value (i.e. still generates it even if you pass in a new value).
- Test handling of orInput array data handlers
- Do OrInput handling on array data-types
- Regenerated wrappers
- Support orinput functionality in the non-accelerated data-paths
- Add orPassIn to all current setOutput calls, as it makes the api more C-like
- Starting work on making error handling respect the api source
- Move error handling to per-api definitions so that GLES uses GLES get error etc.
- Missing platform import
- Fix the non-accelerated error checking branch...
…and 76 more.
-
3.1.0b111 Feb 2014 pre-releaseCommits, not release notes
This project publishes no release notes. Between
release-3.0.2andrelease-3.1.0b1there were 244 commits, 242 of them substantive:- Switch to string print functions
- Extremely old exception syntax removed
- Eliminate apply
- Explicitly convert possible iterable to a list in error reports
- Switch to modern exception format
- Python 2/3 run-time determination
- Make import absolute
- Remove code for extremely old versions of Python
- Imports for tk
- Force map results to a list, use a list comprehension instead of map
- Provide Python 3 bool methods
- Drop L suffix on longs
- Reduce is no longer a built-in
- Handle renaming of str to bytes and unicode to str, as well as unification of long and int
- Rework code so that references are always to bytes or unicode, never to str save where the meaning is "human readable"
- range vs. xrange
- Stop use of 2to3 for the project...
- Don't re-convert the values into unicode afterward
- No syntax errors, but no pygame means it doesn't run
- Sigh, apparently ctypes won't auto-convert unicode down, so we're going to get lots of failures :(
…and 222 more.
-
3.1.0a306 Sep 2013 pre-releaseNothing published for this version
-
3.1.0a130 May 2013 pre-releaseNothing published for this version
-
3.0.202 Oct 2012Commits, not release notes
This project publishes no release notes. Between
release-3.0.2a4andrelease-3.0.2there were 57 commits, 57 of them substantive:- Uncomment the test, make repr more readable
- Typo-fix
- Eliminate some syntax errors with keyword argument names
- Regenerated, no big changes...
- The tess_combine test is still failing, but it appears to be a test-case problem, not a problem with the actual tesselation; new traditional cb test-case works perfectly well...
- More attempts to get the glutess operations working...
- Escape any python keyword which appears as a parameter name (add a _ character). Add a new amd extension.
- Merge with the upstream (sigh) basically did the same thing twice...
- Version bump
- Patch from Stephan Wenger fixing a number of constant references, adds some integer constants to the image processing code.
- Version bump
- Regenerated the numpy format handler with a more modern version of cython
- Converting to a python build script to build both 32 and 64 bit and automate the process
- Now builds 64 and 32 bit with the vc7/vc9 suffix (though currently no vc7 64-bit)
- Download the glut binaries for win32/win64 instead of attempting to build them ourselves
- Remove the old build mechanism
- Make win64 load size-suffix dlls, add the 64-bit dlls for glut and gle
- Missing import
- Adapted hasGLExtension to accept a str (i.e. unicode string under Python3)
- Fixed: getExtensionProcedure should get the names as a bytes object, not unicode (in Python 3)
…and 37 more.
-
3.0.2b222 Aug 2012 pre-releaseNothing published for this version
-
3.0.2a509 Feb 2012 pre-releaseNothing published for this version
-
3.0.2a402 Feb 2012 pre-releaseNothing published for this version
-
3.0.2a331 Jan 2012 pre-releaseNothing published for this version
-
3.0.2a209 Jan 2012 pre-releaseNothing published for this version
-
3.0.2a112 Sep 2011 pre-releaseNothing published for this version
-
3.0.125 Feb 2010Nothing published for this version
-
3.0.1b228 Dec 2009 pre-releaseNothing published for this version
-
3.0.1b111 Nov 2009 pre-releaseNothing published for this version
-
3.0.1a411 Sep 2009 pre-releaseNothing published for this version
-
3.0.1a316 Aug 2009 pre-releaseNothing published for this version
-
3.0.1a2no date pre-releaseNothing published for this version
-
3.0.0no dateNothing published for this version
-
3.0.0c115 Feb 2009 pre-releaseNothing published for this version
-
3.0.0b8no date pre-releaseNothing published for this version
-
3.0.0b615 Sep 2008 pre-releaseNothing published for this version
-
3.0.0b4no date pre-releaseNothing published for this version
-
3.0.0b3no date pre-releaseNothing published for this version
-
3.0.0b2no date pre-releaseNothing published for this version
-
3.0.0b1no date pre-releaseNothing published for this version
-
3.0.0a522 Nov 2006 pre-releaseNothing published for this version
-
2.0.1.09no dateNothing published for this version