'''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 ) ### END AUTOGENERATED SECTION