|
'''OpenGL extension EXT.draw_buffers |
|
|
|
This module customises the behaviour of the |
|
OpenGL.raw.GLES2.EXT.draw_buffers to provide a more |
|
Python-friendly API |
|
|
|
Overview (from the spec) |
|
|
|
This extension increases the number of available framebuffer object |
|
color attachment points, extends OpenGL ES 2.0 to allow multiple output |
|
colors, and provides a mechanism for directing those outputs to |
|
multiple color buffers. |
|
|
|
This extension is similar to the combination of the GL_NV_draw_buffers |
|
and GL_NV_fbo_color_attachments extensions, but imposes certain |
|
restrictions informed by the OpenGL ES 3.0 API. |
|
|
|
The official definition of this extension is available here: |
|
http://www.opengl.org/registry/specs/EXT/draw_buffers.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.EXT.draw_buffers import * |
|
from OpenGL.raw.GLES2.EXT.draw_buffers import _EXTENSION_NAME |
|
|
|
def glInitDrawBuffersEXT(): |
|
'''Return boolean indicating whether this extension is available''' |
|
from OpenGL import extensions |
|
return extensions.hasGLExtension( _EXTENSION_NAME ) |
|
|
|
|
|
glDrawBuffersEXT=wrapper.wrapper(glDrawBuffersEXT).setInputArraySize( |
|
'bufs', None |
|
) |
|
|
|
from OpenGL.lazywrapper import lazy as _lazy |
|
|
|
@_lazy( glDrawBuffers ) |
|
def glDrawBuffers( baseOperation, n=None, bufs=None ): |
|
"""glDrawBuffers( bufs ) -> bufs |
|
|
|
Wrapper will calculate n from dims of bufs if only |
|
one argument is provided... |
|
""" |
|
if bufs is None: |
|
bufs = n |
|
n = None |
|
bufs = arrays.GLenumArray.asArray( bufs ) |
|
if n is None: |
|
n = arrays.GLenumArray.arraySize( bufs ) |
|
return baseOperation( n,bufs ) |
|
|