Appendix A. Changes
Prev |  | Next

## Appendix A. Changes

2.0.0.44

1. Fixed PyMem_Del -> PyObject_Del bug; Patch #455646.
2. Made `glDrawRangeElementsEXT` more like other array functions including adding decoration variants
3. Added some aliases for various extension initialization functions.
4. Added the GL_OML_subsample, GL_OML_resample, and GL_OML_interlace extensions
5. Fixed Numeric import bug in the interface_util library.
6. Added quaternion class.
7. Changed comments over to C style.
8. Fixed install bug which prevented installation of demos.

2.0.0.42beta

1. Added GL 1.0 compatibility.
2. Moved `info.py` into the new scripts directory
3. Added a "__build__" attribute to `OpenGL/__init__.py`
4. Added the GL_EXT_texture_object, GL_EXT_polygon_offset, and the GL_EXT_vertex_array extensions
5. Made `glDrawElements` more like other array functions including adding decoration variants

2.0.0.40beta

1. Fixed the export name of `gluPwlCurve` and `gluNurbsCurve`
2. Fixed mishandling of count parameter in `gluPwlCurve` and changed the prototype to `gluPwlCurve(nobj, points, type)`.
3. Changed proto of `gluNurbsCurve` to `gluNurbsCurve(nobj, knot, ctlarray, type) -> None`
4. Changed prototype of `gluNurbsSurface` to `gluNurbsSurface(nobj, sknot, tknot, ctlarray, type) -> None`
5. Added initialization functions to extension modules.
6. Added the platform specific source `platform.c`
7. Killed the `OpenGL.extensions` module, no longer needed.
8. Added a `trackball` module.

2.0.0.34b3

1. Fixed the export name of `gluTessVertex`, was `_gluTessVertex`.
2. Fixed misuse of `PyObject_CallFunction` which resulted in wrong number of arguments passed when only one argument was being passed to a callback. Affected several functions in the GLU and GLUT modules.
3. Added locking mechanism to `GLUtesselator` and `GLUnurbs` to prevent user data from being collected by the garbage collector.
4. Fixed prototype of `gluUnProject4`, was missing `clipW` argument.
5. Fixed prototypes of `gluBuild1DMipmapLevels`, was missing some arguments.
6. Fixed `gluNurbsCallbackData wrapper`, wrong object pointer cast.
7. Changed list separator in config files to `os.pathsep` instead of a comma.
8. Fixed bug in `PyObject_Dimension` on non-Numeric arrays.
9. Fixed docstrings of `glTexImage2D`
10. `setup.py` now adds the current directory to the search path. Needed since build_py has to execute various configure programs.

2.0.0.27b2

1. When testing for a `GLerror` an attempt is now made to verify that the current context is valid. This avoids strange behavior like `glutDestroyWindow` throwing `GLerror` when it is used to destroy the current window. Also in 2.0b1 a maximum limit of 16 errors could be return by `GLerror`. This was done to avoid infinite loop result resulting from calls to `glGetError` without a valid context. This is not needed anymore, so the hard-coded limit has been removed.
2. Fixed `sys.argv` bugs in knot and molehill demos.
3. Added short name aliases like `glTranslate` = `glTranslated`.
4. Fixed `glGetBooleanv`, now needs only one argument.
5. Added build number to setup.
6. The current version number of the entire PyOpenGL system is now stored in `__version__`.
7. Fixed various Python 1.5/1.6 incompatibilities.
8. Fixed image routines which return packed images like `glGetPolygonStipple`.
9. Added `glGetPolgonStippleub` and `glPolygonStippleub` to use arrays instead of packed strings.
10. Fixed bugs in `glMap{1|2}{f|d}` in the automatic selection of `ustride` and `vstride` arguments.
11. Fixed `glRenderMode` and `glSelectBuffer` to avoid the strange behavior of `glSelectBuffer(0, NULL)` on some systems.
12. `glutInit` now raises TypeError if its single argument is not a non-string sequence.
13. Removed the GL_EXT_polygon_offset extension since it is a standard part of OpenGL 1.1 and some systems seem to define GL_EXT_polygon_offset yet don't export `glPolygonOffsetEXT`.
14. Fixed bug in `glGetBooleanv` which caused it to return the wrong number of values, i.e. not parameter specific.
15. Fixed a bug in WGL routines in which the previous error wasn't cleared.
16. Added support for GLU 1.0 and 1.1 to support Mesa.
17. Added the `info` script.
18. Added new platform specific config files.
19. Fixed broken prototypes in `GL.EXT.coordinate_frame`, `GL.EXT.cull_vertex`, `GL.EXT.multi_draw_arrays` and `GL.EXT.fog_coord`.
20. Changed the generation of shadow wrappers a bit and turned the `GL` and `GLU` modules into shadow wrappers.

2.0b1

1. `WGL` modules now throw `WindowsError` (`OSError` for Python 2.0) on a windows error.
2. Added `GLerror` to `GL` and `GLUerror` to `GLU`. `"except GLerror, e:"` now works.
3. `GLerror` now handles multiple errors resulting from distributed systems.

2.0a4

1. Made the viewport argument to `gluPickMatrix` a keyword.
2. Added a `glSelectWithCallback` function. This function is pretty trivial since `glRenderMode` already returns a selection buffer. See the release notes.
3. Made the order arguments to `glMap{1|2}{f|v}v` automatic and removed the stride arguments.
4. Changed `GLexception` and `GLUexception` to `GLerror` and `GLUerror`.
5. Killed the `RTS` module.
6. Killed the `GL.Autodesk.facet_arrays` module. Doesn't look as though it is possible to support it using the current memory management model.
7. `glRenderMode` now returns the instance of `glFeedbackBuffer` or `glSelectBuffer` instead of a copy. It also resets the GL's pointer to the buffer to `NULL` after it's done.
8. Fixed build bug in which modules with the same name like `WGL.ARB.extensions_string` and `WGL.EXT.extensions_string` had conflicting obj names (really a work around for a distutils bug.)
9. Fixed `WGL.EXT.extensions_string` prototype and reference in `extensions.py`
10. Removed `checkExtension` and `raiseExtension`.
11. Made considerable changes to the `extensions` module.
12. `GLerror` with a code of `GL_INVALID_OPERATION` is now thrown on an attempt use an unsupported extension. This is done to match the OpenGL 1.2 behavior of GL_ARB_imaging.

2.0a3

1. Improved font and menu code of `GLUT`.
2. Added the `GLE` module.
3. Fixed exported name of `gluNurbsSurface`, was `_gluNurbsSurface`.
4. Added `RTS` module and `hello2rts` demo.
5. The array code of PyOpenGL now works even if Numeric support was compiled in, but Numeric is not found at runtime.
6. A `NotImplementedError` is thrown if an extension is not available even on systems that use static extensions. If the extension is available and `glGetProcAddress` fails then an `ImportError` is thrown.
7. Fixed Joystick callback in GLUT 4.0 code (`poll_interval` parameter was missing.)
8. Added support for preliminary GLUT 4.0 code. It's inclusion depends on the macro `GLUT_XLIB_IMPLEMENTATION` not on the macro `GLUT_API_VERSION` since `GLUT_API_VERSION` does not include the minor version number.
9. Added `glTexSubImage1D{ub|b|us|s|ui|i|f|d}` and `glTexSubImage2D{ub|b|us|s|ui|i|f|d}`
10. Added support for 3D and 4D texturing.
11. Added GLU 1.3 support.
12. Added lots more extensions (the running tally is now at 165.)

2.0a2

1. Changed the base class of `GLUexception` to `EnvironmentError` instead of `Exception`
2. Added support for `glInterleavedArrays`.
3. Removed nonsense variants of `glVertexPointer`, etc. such as `glVertexPointerub`. No corresponding GL calls exist.
4. Added collection of convenience functions (`glVertexd`, `glVertexf`, etc.) to avoid silly calls like `glVertex3f([0, 1, 2])` or `glColor4f(0, 1, 2, 3)`
5. Changed the exception thrown on an attempt to use an unsupported extension to `NotImplementedError` instead of `ImportError`.
6. Added the module `extensions` which does various useful things like getting the list of implemented or supported extensions.
7. Added extension support for `GLU`.
8. Removed `glGetError` since any `GL` error will now throw an instance of `GLexception` which is derived from `EnvironmentError`.
9. Added multi-window support to `GLUT`. Window callbacks are now window specific as per the specification.
10. Added `gluScaleImagef`, `glScaleImagei`, etc. to `GLU`.
11. Changed implementation of `GLUnurbs` and `GLUquadric` to match that of `GLUtesselator` to prepare for addition of GLU 1.3 support.
12. The model view matrix, projection matrix, and viewport arguments to `gluProject` and `gluUnProject` are now optional.
13. Added lots more extensions....

Prev | Home | Next
Contributing | Up | Appendix B. Licenses