| '''OpenGL extension IMG.bindless_texture |
| |
| This module customises the behaviour of the |
| OpenGL.raw.GLES2.IMG.bindless_texture to provide a more |
| Python-friendly API |
| |
| Overview (from the spec) |
| |
| This extension allows OpenGL ES applications to access texture objects in |
| shaders without first binding each texture to one of a limited number of |
| texture image units. Using this extension, an application can query a |
| 64-bit unsigned integer texture handle for each texture that it wants to |
| access and then use that handle directly in GLSL ES. This extensions |
| significantly reduces the amount of API and internal GL driver overhead |
| needed to manage resource bindings. |
| |
| This extension adds no new data types to GLSL. Instead, it uses existing |
| sampler data types and allows them to be populated with texture handles. |
| This extension also permits sampler types to be used as uniform block |
| members as well as default uniforms. Additionally, new APIs are provided to |
| load values for sampler uniforms with 64-bit handle inputs. The use of |
| existing integer-based Uniform* APIs is still permitted, in which case the |
| integer specified will identify a texture image. For samplers with values |
| specified as texture image units, the GL implementation will translate the |
| unit number to an internal handle as required. |
| |
| The official definition of this extension is available here: |
| http://www.opengl.org/registry/specs/IMG/bindless_texture.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.IMG.bindless_texture import * |
| from OpenGL.raw.GLES2.IMG.bindless_texture import _EXTENSION_NAME |
|
|
| def glInitBindlessTextureIMG(): |
| '''Return boolean indicating whether this extension is available''' |
| from OpenGL import extensions |
| return extensions.hasGLExtension( _EXTENSION_NAME ) |
|
|
| |
| glUniformHandleui64vIMG=wrapper.wrapper(glUniformHandleui64vIMG).setInputArraySize( |
| 'value', None |
| ) |
| |
| glProgramUniformHandleui64vIMG=wrapper.wrapper(glProgramUniformHandleui64vIMG).setInputArraySize( |
| 'values', None |
| ) |
| |