| | '''OpenGL extension ARB.framebuffer_sRGB |
| | |
| | This module customises the behaviour of the |
| | OpenGL.raw.GL.ARB.framebuffer_sRGB to provide a more |
| | Python-friendly API |
| | |
| | Overview (from the spec) |
| | |
| | Conventionally, OpenGL assumes framebuffer color components are stored |
| | in a linear color space. In particular, framebuffer blending is a |
| | linear operation. |
| | |
| | The sRGB color space is based on typical (non-linear) monitor |
| | characteristics expected in a dimly lit office. It has been |
| | standardized by the International Electrotechnical Commission (IEC) |
| | as IEC 61966-2-1. The sRGB color space roughly corresponds to 2.2 |
| | gamma correction. |
| | |
| | This extension adds a framebuffer capability for sRGB framebuffer |
| | update and blending. When blending is disabled but the new sRGB |
| | updated mode is enabled (assume the framebuffer supports the |
| | capability), high-precision linear color component values for red, |
| | green, and blue generated by fragment coloring are encoded for sRGB |
| | prior to being written into the framebuffer. When blending is enabled |
| | along with the new sRGB update mode, red, green, and blue framebuffer |
| | color components are treated as sRGB values that are converted to |
| | linear color values, blended with the high-precision color values |
| | generated by fragment coloring, and then the blend result is encoded |
| | for sRGB just prior to being written into the framebuffer. |
| | |
| | The primary motivation for this extension is that it allows OpenGL |
| | applications to render into a framebuffer that is scanned to a monitor |
| | configured to assume framebuffer color values are sRGB encoded. |
| | This assumption is roughly true of most PC monitors with default |
| | gamma correction. This allows applications to achieve faithful |
| | color reproduction for OpenGL rendering without adjusting the |
| | monitor's gamma correction. |
| | |
| | The official definition of this extension is available here: |
| | http://www.opengl.org/registry/specs/ARB/framebuffer_sRGB.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.ARB.framebuffer_sRGB import * |
| | from OpenGL.raw.GL.ARB.framebuffer_sRGB import _EXTENSION_NAME |
| |
|
| | def glInitFramebufferSrgbARB(): |
| | '''Return boolean indicating whether this extension is available''' |
| | from OpenGL import extensions |
| | return extensions.hasGLExtension( _EXTENSION_NAME ) |
| |
|
| |
|
| | |