| '''OpenGL extension SGIX.pixel_tiles |
| |
| This module customises the behaviour of the |
| OpenGL.raw.GL.SGIX.pixel_tiles to provide a more |
| Python-friendly API |
| |
| Overview (from the spec) |
| |
| This extension deals with the interaction of existing GL functions that |
| read pixels from memory, applications that use grids of tiles of pixels, |
| and convolution. |
| |
| Applications that deal with large multi-dimensional images sometimes |
| break the image into a grid of rectangular tiles of pixels. Such an |
| approach can help control memory use and expedite roaming through an |
| image that is large with respect to the available memory. |
| |
| GL functions that cause pixels to be read from memory (e.g., DrawPixels |
| and TexImage2D) assume the pixels are stored as a single series of rows |
| of pixels. The grid of tiles is essentially a sequence of the structures |
| that the pixel reading functions assume. When an application that uses |
| tiling uses a GL function such as DrawPixels, it must iterate |
| through the tiles, either coalescing the tiles into a single tile in |
| preparation for a single GL call or calling the GL function for each tile. |
| |
| The convolution operation imposes strict ordering on the way pixels |
| in a subimage that crosses tile boundaries must be transferred: the rows |
| of pixels transferred must span the entire subimage. Applications |
| that use tiles of pixels and convolution must copy the subimage to be |
| transferred from the grid of tiles to a contiguous region, then pass the |
| now-contiguous rows of pixels to the convolution function. If the |
| coalescing of tiles is not needed for some other reason or is not a |
| side effect of some necessary operation, it is just redundant movement |
| of the pixels. |
| |
| This extension seeks to eliminate the extra copy of data by extending the |
| existing GL functions to accept, as a source of pixels in memory, a |
| grid of tiles of pixels in addition to the current sequence of rows |
| of pixels. |
| |
| |
| The official definition of this extension is available here: |
| http://www.opengl.org/registry/specs/SGIX/pixel_tiles.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.pixel_tiles import * |
| from OpenGL.raw.GL.SGIX.pixel_tiles import _EXTENSION_NAME |
|
|
| def glInitPixelTilesSGIX(): |
| '''Return boolean indicating whether this extension is available''' |
| from OpenGL import extensions |
| return extensions.hasGLExtension( _EXTENSION_NAME ) |
|
|
|
|
| |