| | """Convenience API for using Frame Buffer Objects""" |
| | from OpenGL.extensions import alternate |
| | from OpenGL.GL.ARB.framebuffer_object import * |
| | from OpenGL.GL.EXT.framebuffer_object import * |
| | from OpenGL.GL.EXT.framebuffer_multisample import * |
| | from OpenGL.GL.EXT.framebuffer_blit import * |
| |
|
| | glBindFramebuffer = alternate(glBindFramebuffer,glBindFramebufferEXT) |
| | glBindRenderbuffer = alternate( glBindRenderbuffer, glBindRenderbufferEXT ) |
| | glCheckFramebufferStatus = alternate( glCheckFramebufferStatus, glCheckFramebufferStatusEXT ) |
| | glDeleteFramebuffers = alternate( glDeleteFramebuffers, glDeleteFramebuffersEXT ) |
| | glDeleteRenderbuffers = alternate( glDeleteRenderbuffers, glDeleteRenderbuffersEXT ) |
| | glFramebufferRenderbuffer = alternate( glFramebufferRenderbuffer, glFramebufferRenderbufferEXT ) |
| | glFramebufferTexture1D = alternate( glFramebufferTexture1D, glFramebufferTexture1DEXT ) |
| | glFramebufferTexture2D = alternate( glFramebufferTexture2D, glFramebufferTexture2DEXT ) |
| | glFramebufferTexture3D = alternate( glFramebufferTexture3D, glFramebufferTexture3DEXT ) |
| | glGenFramebuffers = alternate( glGenFramebuffers, glGenFramebuffersEXT ) |
| | glGenRenderbuffers = alternate( glGenRenderbuffers, glGenRenderbuffersEXT ) |
| | glGenerateMipmap = alternate( glGenerateMipmap, glGenerateMipmapEXT ) |
| | glGetFramebufferAttachmentParameteriv = alternate( glGetFramebufferAttachmentParameteriv, glGetFramebufferAttachmentParameterivEXT ) |
| | glGetRenderbufferParameteriv = alternate( glGetRenderbufferParameteriv, glGetRenderbufferParameterivEXT ) |
| | glIsFramebuffer = alternate( glIsFramebuffer, glIsFramebufferEXT ) |
| | glIsRenderbuffer = alternate( glIsRenderbuffer, glIsRenderbufferEXT ) |
| | glRenderbufferStorage = alternate( glRenderbufferStorage, glRenderbufferStorageEXT ) |
| |
|
| | glBlitFramebuffer = alternate( glBlitFramebuffer, glBlitFramebufferEXT ) |
| | glRenderbufferStorageMultisample = alternate( glRenderbufferStorageMultisample, glRenderbufferStorageMultisampleEXT ) |
| |
|
| | |
| | |
| |
|
| |
|
| | def checkFramebufferStatus(): |
| | """Utility method to check status and raise errors""" |
| | status = glCheckFramebufferStatus( GL_FRAMEBUFFER ) |
| | if status == GL_FRAMEBUFFER_COMPLETE: |
| | return True |
| | from OpenGL.error import GLError |
| | description = None |
| | for error_constant in [ |
| | GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT, |
| | GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT, |
| | GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS, |
| | GL_FRAMEBUFFER_INCOMPLETE_FORMATS, |
| | GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER, |
| | GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER, |
| | GL_FRAMEBUFFER_UNSUPPORTED, |
| | ]: |
| | if status == error_constant: |
| | status = error_constant |
| | description = str(status) |
| | raise GLError( |
| | err=status, |
| | result=status, |
| | baseOperation=glCheckFramebufferStatus, |
| | description=description, |
| | ) |
| |
|