| | '''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 |
| | ) |
| | |