| | '''OpenGL extension SGIX.ycrcb |
| | |
| | This module customises the behaviour of the |
| | OpenGL.raw.GL.SGIX.ycrcb to provide a more |
| | Python-friendly API |
| | |
| | Overview (from the spec) |
| | |
| | This extension provides a method for OpenGL to read and store |
| | images that are defined in standard YCRCB 422 and 444 video formats. |
| | As with the CYMK extension, conversion to RGBA takes place immediately |
| | following the unpack pixel store, and preceding the pack pixel store |
| | operations, and is only available on transfers to and from memory. |
| | The algorithms that convert between YCRCB and RGBA are "black-box" |
| | in nature, and left undefined by the extension. |
| | |
| | Two new formats are added, YCRCB_422_SGIX and YCRCB_444_SGIX. |
| | |
| | To handle the difference in sampling rate for 422 video, the pixel |
| | storage operations treat YCRCB_422_SGIX as a 2 component format, |
| | where the first component represents chroma, and the second luma. |
| | The chroma component alternates between Cb and Cr values on |
| | a per pixel basis. If the specified image <width> parameter is not |
| | a multiple of 2, then fragments or texels that result from processing |
| | the <width>th column of pixels will have undefined color value. |
| | |
| | YCRCB_444_SGIX is defined as a 3 component format representing |
| | the Cb, Y, and Cr values per pixel. |
| | |
| | As with the CMYK extension, this extension doesn't preclude the |
| | possiblity of other higher quality conversion methods. |
| | |
| | The official definition of this extension is available here: |
| | http://www.opengl.org/registry/specs/SGIX/ycrcb.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.ycrcb import * |
| | from OpenGL.raw.GL.SGIX.ycrcb import _EXTENSION_NAME |
| |
|
| | def glInitYcrcbSGIX(): |
| | '''Return boolean indicating whether this extension is available''' |
| | from OpenGL import extensions |
| | return extensions.hasGLExtension( _EXTENSION_NAME ) |
| |
|
| |
|
| | |
| | from OpenGL import images as _i |
| | _i.COMPONENT_COUNTS[ GL_YCRCB_422_SGIX ] = 1 |
| | _i.COMPONENT_COUNTS[ GL_YCRCB_444_SGIX ] = 1 |
| |
|