| | '''OpenGL extension SGI.cushion |
| | |
| | This module customises the behaviour of the |
| | OpenGL.raw.GLX.SGI.cushion to provide a more |
| | Python-friendly API |
| | |
| | Overview (from the spec) |
| | |
| | This extension is directed at constant frame-rate applications. Such |
| | applications are written to ensure that a new image is generated every |
| | N video frame periods, where N is itself a small constant integer. |
| | If the application is unable to generate a frame within N video frame |
| | periods, it is said to have dropped a frame. Dropping a frame is a |
| | *bad thing*. |
| | |
| | Constant frame-rate applications make every effort to avoid dropping |
| | frames. In particular, they monitor the utilization of graphics |
| | resources during the rendering of the current frame in order to predict |
| | the behavior of subsequent frames. If such prediction indicates that |
| | a frame may be dropped, the rendering complexity of the frame is |
| | reduced (e.g. by using models of lower geometric resolution) so as to |
| | avoid the overload condition. |
| | |
| | Unfortunately, because exact prediction is not possible, and because |
| | there is no elasticity in the buffering of images, it is necessary |
| | for constant frame-rate applications to under utilize the graphics |
| | hardware. This extension adds elasticity to the buffering of completed |
| | images, in order to allow constant frame-rate applications to make full |
| | use of the available graphics computation without dropping frames. |
| | It further allows this elasticity to be controlled by the application in |
| | order to minimize the introduction of latency that could otherwise |
| | occur. |
| | |
| | Applications that will benefit from this extension include simulation, |
| | walk-through, and multimedia playback. |
| | |
| | WARNING - Silicon Graphics has filed for patent protection for some |
| | of the techniques described in this extension document. |
| | |
| | The official definition of this extension is available here: |
| | http://www.opengl.org/registry/specs/SGI/cushion.txt |
| | ''' |
| | from OpenGL import platform, constant, arrays |
| | from OpenGL import extensions, wrapper |
| | import ctypes |
| | from OpenGL.raw.GLX import _types, _glgets |
| | from OpenGL.raw.GLX.SGI.cushion import * |
| | from OpenGL.raw.GLX.SGI.cushion import _EXTENSION_NAME |
| |
|
| | def glInitCushionSGI(): |
| | '''Return boolean indicating whether this extension is available''' |
| | from OpenGL import extensions |
| | return extensions.hasGLExtension( _EXTENSION_NAME ) |
| |
|
| |
|
| | |