| '''OpenGL extension ARB.clear_texture |
| |
| This module customises the behaviour of the |
| OpenGL.raw.GL.ARB.clear_texture to provide a more |
| Python-friendly API |
| |
| Overview (from the spec) |
| |
| Texture objects are fundamental to the operation of OpenGL. They are |
| used as a source for texture sampling and destination for rendering |
| as well as being accessed in shaders for image load/store operations |
| It is also possible to invalidate the contents of a texture. It is |
| currently only possible to set texture image data to known values by |
| uploading some or all of a image array from application memory or by |
| attaching it to a framebuffer object and using the Clear or ClearBuffer |
| commands. |
| |
| Both uploading initial texture data and clearing by attaching to a |
| framebuffer have potential disadvantages when one simply wants to |
| initialize texture data to a known value. Uploading initial data |
| requires the application to allocate a (potentially large) chunk |
| of memory and transferring that to the GL. This can be a costly |
| operation both in terms of memory bandwidth and power usage. |
| Alternatively, attaching a texture level to a framebuffer to clear it |
| may not be possible if the texture format isn't supported for |
| rendering, or even if it is, attaching the image to a framebuffer object |
| may cause the texture to be allocated in certain types of memory, which |
| it may otherwise not need to be placed in. |
| |
| This extension solves these problems by providing a mechanism whereby |
| the contents of a texture image array can be set to known values by |
| using the ClearTexImage or ClearTexSubImage commands. These commands |
| can also be useful for initializing an image that will be used for |
| atomic shader operations. |
| |
| The official definition of this extension is available here: |
| http://www.opengl.org/registry/specs/ARB/clear_texture.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.clear_texture import * |
| from OpenGL.raw.GL.ARB.clear_texture import _EXTENSION_NAME |
|
|
| def glInitClearTextureARB(): |
| '''Return boolean indicating whether this extension is available''' |
| from OpenGL import extensions |
| return extensions.hasGLExtension( _EXTENSION_NAME ) |
|
|
| |
| glClearTexImage=wrapper.wrapper(glClearTexImage).setInputArraySize( |
| 'data', None |
| ) |
| |
| glClearTexSubImage=wrapper.wrapper(glClearTexSubImage).setInputArraySize( |
| 'data', None |
| ) |
| |