| | '''OpenGL extension MESA.window_pos |
| | |
| | This module customises the behaviour of the |
| | OpenGL.raw.GL.MESA.window_pos to provide a more |
| | Python-friendly API |
| | |
| | Overview (from the spec) |
| | |
| | In order to set the current raster position to a specific window |
| | coordinate with the RasterPos command, the modelview matrix, projection |
| | matrix and viewport must be set very carefully. Furthermore, if the |
| | desired window coordinate is outside of the window's bounds one must |
| | rely on a subtle side-effect of the Bitmap command in order to circumvent |
| | frustum clipping. |
| | |
| | This extension provides a set of functions to directly set the |
| | current raster position, bypassing the modelview matrix, the |
| | projection matrix and the viewport to window mapping. Furthermore, |
| | clip testing is not performed. |
| | |
| | This greatly simplifies the process of setting the current raster |
| | position to a specific window coordinate prior to calling DrawPixels, |
| | CopyPixels or Bitmap. |
| | |
| | The official definition of this extension is available here: |
| | http://www.opengl.org/registry/specs/MESA/window_pos.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.MESA.window_pos import * |
| | from OpenGL.raw.GL.MESA.window_pos import _EXTENSION_NAME |
| |
|
| | def glInitWindowPosMESA(): |
| | '''Return boolean indicating whether this extension is available''' |
| | from OpenGL import extensions |
| | return extensions.hasGLExtension( _EXTENSION_NAME ) |
| |
|
| | glWindowPos2dvMESA=wrapper.wrapper(glWindowPos2dvMESA).setInputArraySize( |
| | 'v', 2 |
| | ) |
| | glWindowPos2fvMESA=wrapper.wrapper(glWindowPos2fvMESA).setInputArraySize( |
| | 'v', 2 |
| | ) |
| | glWindowPos2ivMESA=wrapper.wrapper(glWindowPos2ivMESA).setInputArraySize( |
| | 'v', 2 |
| | ) |
| | glWindowPos2svMESA=wrapper.wrapper(glWindowPos2svMESA).setInputArraySize( |
| | 'v', 2 |
| | ) |
| | glWindowPos3dvMESA=wrapper.wrapper(glWindowPos3dvMESA).setInputArraySize( |
| | 'v', 3 |
| | ) |
| | glWindowPos3fvMESA=wrapper.wrapper(glWindowPos3fvMESA).setInputArraySize( |
| | 'v', 3 |
| | ) |
| | glWindowPos3ivMESA=wrapper.wrapper(glWindowPos3ivMESA).setInputArraySize( |
| | 'v', 3 |
| | ) |
| | glWindowPos3svMESA=wrapper.wrapper(glWindowPos3svMESA).setInputArraySize( |
| | 'v', 3 |
| | ) |
| | glWindowPos4dvMESA=wrapper.wrapper(glWindowPos4dvMESA).setInputArraySize( |
| | 'v', 4 |
| | ) |
| | glWindowPos4fvMESA=wrapper.wrapper(glWindowPos4fvMESA).setInputArraySize( |
| | 'v', 4 |
| | ) |
| | glWindowPos4ivMESA=wrapper.wrapper(glWindowPos4ivMESA).setInputArraySize( |
| | 'v', 4 |
| | ) |
| | glWindowPos4svMESA=wrapper.wrapper(glWindowPos4svMESA).setInputArraySize( |
| | 'v', 4 |
| | ) |
| | |