| '''OpenGL extension SGIX.reference_plane |
| |
| This module customises the behaviour of the |
| OpenGL.raw.GL.SGIX.reference_plane to provide a more |
| Python-friendly API |
| |
| Overview (from the spec) |
| |
| This extension allows a group of coplanar primitives to be rendered |
| without depth-buffering artifacts. This is accomplished by generating |
| the depth values for all the primitives from a single ``reference plane'' |
| rather than from the primitives themselves. This ensures that all the |
| primitives in the group have exactly the same depth value at any given |
| sample point, no matter what imprecision may exist in the original |
| specifications of the primitives or in the GL's coordinate transformation |
| process. |
| |
| The reference plane is defined by a four-component plane equation. |
| When glReferencePlaneSGIX is called, equation is transformed by the |
| transpose-adjoint of a matrix that is the complete object-coordinate |
| to clip-coordinate transformation. The resulting clip-coordinate |
| coefficients are transformed by the current viewport when the reference |
| plane is enabled. |
| |
| The reference plane is enabled and disabled with glEnable and glDisable. |
| |
| If the reference plane is enabled, a fragment (xf,yf,zf) will have a |
| new z coordinate generated from (xf,yf) by giving it the same z value |
| that the reference plane would have at (xf,yf). |
| |
| The official definition of this extension is available here: |
| http://www.opengl.org/registry/specs/SGIX/reference_plane.txt |
| ''' |
| from OpenGL import platform, constant, arrays |
| from OpenGL import extensions, wrapper |
| import ctypes |
| from OpenGL.raw.GL import _types, _glgets |
| from OpenGL.raw.GL.SGIX.reference_plane import * |
| from OpenGL.raw.GL.SGIX.reference_plane import _EXTENSION_NAME |
|
|
| def glInitReferencePlaneSGIX(): |
| '''Return boolean indicating whether this extension is available''' |
| from OpenGL import extensions |
| return extensions.hasGLExtension( _EXTENSION_NAME ) |
|
|
| glReferencePlaneSGIX=wrapper.wrapper(glReferencePlaneSGIX).setInputArraySize( |
| 'equation', 4 |
| ) |
| |