| '''OpenGL extension NV.sample_locations |
| |
| This module customises the behaviour of the |
| OpenGL.raw.GLES2.NV.sample_locations to provide a more |
| Python-friendly API |
| |
| Overview (from the spec) |
| |
| This extension allows an application to modify the locations of samples |
| within a pixel used in multisample rasterization. Additionally, it allows |
| applications to specify different sample locations for each pixel in a |
| group of adjacent pixels, which may increase antialiasing quality |
| (particularly if a custom resolve shader is used that takes advantage of |
| these different locations). |
| |
| It is common for implementations to optimize the storage of depth values |
| by storing values that can be used to reconstruct depth at each sample |
| location, rather than storing separate depth values for each sample. For |
| example, the depth values from a single triangle can be represented using |
| plane equations. When the depth value for a sample is needed, it is |
| automatically evaluated at the sample location. Modifying the sample |
| locations causes the reconstruction to no longer evaluate the same depth |
| values as when the samples were originally generated. This extension |
| provides a command to "resolve" and store per-sample depth values using |
| the currently programmed sample locations, which allows the application to |
| manage this issue if/when necessary. |
| |
| The programmable sample locations are used during rasterization and for |
| evaluation of depth functions during normal geometric rendering. The |
| programmable locations are associated with a framebuffer object rather |
| than an individual depth buffer, so if the depth buffer is used as a |
| texture the texture sampling may be done at the standard sample |
| locations. Additionally, commands that do not render geometric primitives |
| (e.g. ReadPixels, BlitFramebuffer, CopyTexSubImage2D, etc.) may use the |
| standard sample locations to resolve depth functions rather than the |
| programmable locations. If a single depth buffer is used at different |
| times with different sample locations, the depth functions may be |
| interpreted using the current sample locations. |
| |
| The official definition of this extension is available here: |
| http://www.opengl.org/registry/specs/NV/sample_locations.txt |
| ''' |
| from OpenGL import platform, constant, arrays |
| from OpenGL import extensions, wrapper |
| import ctypes |
| from OpenGL.raw.GLES2 import _types, _glgets |
| from OpenGL.raw.GLES2.NV.sample_locations import * |
| from OpenGL.raw.GLES2.NV.sample_locations import _EXTENSION_NAME |
|
|
| def glInitSampleLocationsNV(): |
| '''Return boolean indicating whether this extension is available''' |
| from OpenGL import extensions |
| return extensions.hasGLExtension( _EXTENSION_NAME ) |
|
|
|
|
| |