| """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, |
| ) |
|
|