Class EXTFramebufferObject



  • public class EXTFramebufferObject
    extends java.lang.Object
    Native bindings to the EXT_framebuffer_object extension.

    This extension defines a simple interface for drawing to rendering destinations other than the buffers provided to the GL by the window-system.

    In this extension, these newly defined rendering destinations are known collectively as "framebuffer-attachable images". This extension provides a mechanism for attaching framebuffer-attachable images to the GL framebuffer as one of the standard GL logical buffers: color, depth, and stencil. (Attaching a framebuffer-attachable image to the accum logical buffer is left for a future extension to define). When a framebuffer-attachable image is attached to the framebuffer, it is used as the source and destination of fragment operations.

    By allowing the use of a framebuffer-attachable image as a rendering destination, this extension enables a form of "offscreen" rendering. Furthermore, "render to texture" is supported by allowing the images of a texture to be used as framebuffer-attachable images. A particular image of a texture object is selected for use as a framebuffer-attachable image by specifying the mipmap level, cube map face (for a cube map texture), and z-offset (for a 3D texture) that identifies the image. The "render to texture" semantics of this extension are similar to performing traditional rendering to the framebuffer, followed immediately by a call to CopyTexSubImage. However, by using this extension instead, an application can achieve the same effect, but with the advantage that the GL can usually eliminate the data copy that would have been incurred by calling CopyTexSubImage.

    This extension also defines a new GL object type, called a "renderbuffer", which encapsulates a single 2D pixel image. The image of renderbuffer can be used as a framebuffer-attachable image for generalized offscreen rendering and it also provides a means to support rendering to GL logical buffer types which have no corresponding texture format (stencil, accum, etc). A renderbuffer is similar to a texture in that both renderbuffers and textures can be independently allocated and shared among multiple contexts. The framework defined by this extension is general enough that support for attaching images from GL objects other than textures and renderbuffers could be added by layered extensions.

    To facilitate efficient switching between collections of framebuffer-attachable images, this extension introduces another new GL object, called a framebuffer object. A framebuffer object contains the state that defines the traditional GL framebuffer, including its set of images. Prior to this extension, it was the window-system which defined and managed this collection of images, traditionally by grouping them into a "drawable". The window-system API's would also provide a function (i.e., wglMakeCurrent, glXMakeCurrent, aglSetDrawable, etc.) to bind a drawable with a GL context (as is done in the WGL_ARB_pbuffer extension). In this extension however, this functionality is subsumed by the GL and the GL provides the function BindFramebufferEXT to bind a framebuffer object to the current context. Later, the context can bind back to the window-system-provided framebuffer in order to display rendered content.

    Previous extensions that enabled rendering to a texture have been much more complicated. One example is the combination of ARB_pbuffer and ARB_render_texture, both of which are window-system extensions. This combination requires calling MakeCurrent, an operation that may be expensive, to switch between the window and the pbuffer drawables. An application must create one pbuffer per renderable texture in order to portably use ARB_render_texture. An application must maintain at least one GL context per texture format, because each context can only operate on a single pixelformat or FBConfig. All of these characteristics make ARB_render_texture both inefficient and cumbersome to use.

    EXT_framebuffer_object, on the other hand, is both simpler to use and more efficient than ARB_render_texture. The EXT_framebuffer_object API is contained wholly within the GL API and has no (non-portable) window-system components. Under EXT_framebuffer_object, it is not necessary to create a second GL context when rendering to a texture image whose format differs from that of the window. Finally, unlike the pbuffers of ARB_render_texture, a single framebuffer object can facilitate rendering to an unlimited number of texture objects.

    Promoted to core in OpenGL 3.0.

    • Field Detail

      • GL_FRAMEBUFFER_EXT

        public static final int GL_FRAMEBUFFER_EXT
        Accepted by the target parameter of BindFramebufferEXT, CheckFramebufferStatusEXT, FramebufferTexture{1D|2D|3D}EXT, FramebufferRenderbufferEXT, and GetFramebufferAttachmentParameterivEXT.
        See Also:
        Constant Field Values
      • GL_RENDERBUFFER_EXT

        public static final int GL_RENDERBUFFER_EXT
        Accepted by the target parameter of BindRenderbufferEXT, RenderbufferStorageEXT, and GetRenderbufferParameterivEXT, and returned by GetFramebufferAttachmentParameterivEXT.
        See Also:
        Constant Field Values
      • GL_STENCIL_INDEX1_EXT

        public static final int GL_STENCIL_INDEX1_EXT
        Accepted by the internalformat parameter of RenderbufferStorageEXT.
        See Also:
        Constant Field Values
      • GL_STENCIL_INDEX4_EXT

        public static final int GL_STENCIL_INDEX4_EXT
        Accepted by the internalformat parameter of RenderbufferStorageEXT.
        See Also:
        Constant Field Values
      • GL_STENCIL_INDEX8_EXT

        public static final int GL_STENCIL_INDEX8_EXT
        Accepted by the internalformat parameter of RenderbufferStorageEXT.
        See Also:
        Constant Field Values
      • GL_STENCIL_INDEX16_EXT

        public static final int GL_STENCIL_INDEX16_EXT
        Accepted by the internalformat parameter of RenderbufferStorageEXT.
        See Also:
        Constant Field Values
      • GL_RENDERBUFFER_WIDTH_EXT

        public static final int GL_RENDERBUFFER_WIDTH_EXT
        Accepted by the pname parameter of GetRenderbufferParameterivEXT.
        See Also:
        Constant Field Values
      • GL_RENDERBUFFER_HEIGHT_EXT

        public static final int GL_RENDERBUFFER_HEIGHT_EXT
        Accepted by the pname parameter of GetRenderbufferParameterivEXT.
        See Also:
        Constant Field Values
      • GL_RENDERBUFFER_INTERNAL_FORMAT_EXT

        public static final int GL_RENDERBUFFER_INTERNAL_FORMAT_EXT
        Accepted by the pname parameter of GetRenderbufferParameterivEXT.
        See Also:
        Constant Field Values
      • GL_RENDERBUFFER_RED_SIZE_EXT

        public static final int GL_RENDERBUFFER_RED_SIZE_EXT
        Accepted by the pname parameter of GetRenderbufferParameterivEXT.
        See Also:
        Constant Field Values
      • GL_RENDERBUFFER_GREEN_SIZE_EXT

        public static final int GL_RENDERBUFFER_GREEN_SIZE_EXT
        Accepted by the pname parameter of GetRenderbufferParameterivEXT.
        See Also:
        Constant Field Values
      • GL_RENDERBUFFER_BLUE_SIZE_EXT

        public static final int GL_RENDERBUFFER_BLUE_SIZE_EXT
        Accepted by the pname parameter of GetRenderbufferParameterivEXT.
        See Also:
        Constant Field Values
      • GL_RENDERBUFFER_ALPHA_SIZE_EXT

        public static final int GL_RENDERBUFFER_ALPHA_SIZE_EXT
        Accepted by the pname parameter of GetRenderbufferParameterivEXT.
        See Also:
        Constant Field Values
      • GL_RENDERBUFFER_DEPTH_SIZE_EXT

        public static final int GL_RENDERBUFFER_DEPTH_SIZE_EXT
        Accepted by the pname parameter of GetRenderbufferParameterivEXT.
        See Also:
        Constant Field Values
      • GL_RENDERBUFFER_STENCIL_SIZE_EXT

        public static final int GL_RENDERBUFFER_STENCIL_SIZE_EXT
        Accepted by the pname parameter of GetRenderbufferParameterivEXT.
        See Also:
        Constant Field Values
      • GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT

        public static final int GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT
        Accepted by the pname parameter of GetFramebufferAttachmentParameterivEXT.
        See Also:
        Constant Field Values
      • GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT

        public static final int GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT
        Accepted by the pname parameter of GetFramebufferAttachmentParameterivEXT.
        See Also:
        Constant Field Values
      • GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT

        public static final int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT
        Accepted by the pname parameter of GetFramebufferAttachmentParameterivEXT.
        See Also:
        Constant Field Values
      • GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT

        public static final int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT
        Accepted by the pname parameter of GetFramebufferAttachmentParameterivEXT.
        See Also:
        Constant Field Values
      • GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT

        public static final int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT
        Accepted by the pname parameter of GetFramebufferAttachmentParameterivEXT.
        See Also:
        Constant Field Values
      • GL_COLOR_ATTACHMENT0_EXT

        public static final int GL_COLOR_ATTACHMENT0_EXT
        Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}EXT, FramebufferRenderbufferEXT, and GetFramebufferAttachmentParameterivEXT.
        See Also:
        Constant Field Values
      • GL_COLOR_ATTACHMENT1_EXT

        public static final int GL_COLOR_ATTACHMENT1_EXT
        Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}EXT, FramebufferRenderbufferEXT, and GetFramebufferAttachmentParameterivEXT.
        See Also:
        Constant Field Values
      • GL_COLOR_ATTACHMENT2_EXT

        public static final int GL_COLOR_ATTACHMENT2_EXT
        Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}EXT, FramebufferRenderbufferEXT, and GetFramebufferAttachmentParameterivEXT.
        See Also:
        Constant Field Values
      • GL_COLOR_ATTACHMENT3_EXT

        public static final int GL_COLOR_ATTACHMENT3_EXT
        Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}EXT, FramebufferRenderbufferEXT, and GetFramebufferAttachmentParameterivEXT.
        See Also:
        Constant Field Values
      • GL_COLOR_ATTACHMENT4_EXT

        public static final int GL_COLOR_ATTACHMENT4_EXT
        Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}EXT, FramebufferRenderbufferEXT, and GetFramebufferAttachmentParameterivEXT.
        See Also:
        Constant Field Values
      • GL_COLOR_ATTACHMENT5_EXT

        public static final int GL_COLOR_ATTACHMENT5_EXT
        Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}EXT, FramebufferRenderbufferEXT, and GetFramebufferAttachmentParameterivEXT.
        See Also:
        Constant Field Values
      • GL_COLOR_ATTACHMENT6_EXT

        public static final int GL_COLOR_ATTACHMENT6_EXT
        Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}EXT, FramebufferRenderbufferEXT, and GetFramebufferAttachmentParameterivEXT.
        See Also:
        Constant Field Values
      • GL_COLOR_ATTACHMENT7_EXT

        public static final int GL_COLOR_ATTACHMENT7_EXT
        Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}EXT, FramebufferRenderbufferEXT, and GetFramebufferAttachmentParameterivEXT.
        See Also:
        Constant Field Values
      • GL_COLOR_ATTACHMENT8_EXT

        public static final int GL_COLOR_ATTACHMENT8_EXT
        Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}EXT, FramebufferRenderbufferEXT, and GetFramebufferAttachmentParameterivEXT.
        See Also:
        Constant Field Values
      • GL_COLOR_ATTACHMENT9_EXT

        public static final int GL_COLOR_ATTACHMENT9_EXT
        Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}EXT, FramebufferRenderbufferEXT, and GetFramebufferAttachmentParameterivEXT.
        See Also:
        Constant Field Values
      • GL_COLOR_ATTACHMENT10_EXT

        public static final int GL_COLOR_ATTACHMENT10_EXT
        Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}EXT, FramebufferRenderbufferEXT, and GetFramebufferAttachmentParameterivEXT.
        See Also:
        Constant Field Values
      • GL_COLOR_ATTACHMENT11_EXT

        public static final int GL_COLOR_ATTACHMENT11_EXT
        Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}EXT, FramebufferRenderbufferEXT, and GetFramebufferAttachmentParameterivEXT.
        See Also:
        Constant Field Values
      • GL_COLOR_ATTACHMENT12_EXT

        public static final int GL_COLOR_ATTACHMENT12_EXT
        Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}EXT, FramebufferRenderbufferEXT, and GetFramebufferAttachmentParameterivEXT.
        See Also:
        Constant Field Values
      • GL_COLOR_ATTACHMENT13_EXT

        public static final int GL_COLOR_ATTACHMENT13_EXT
        Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}EXT, FramebufferRenderbufferEXT, and GetFramebufferAttachmentParameterivEXT.
        See Also:
        Constant Field Values
      • GL_COLOR_ATTACHMENT14_EXT

        public static final int GL_COLOR_ATTACHMENT14_EXT
        Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}EXT, FramebufferRenderbufferEXT, and GetFramebufferAttachmentParameterivEXT.
        See Also:
        Constant Field Values
      • GL_COLOR_ATTACHMENT15_EXT

        public static final int GL_COLOR_ATTACHMENT15_EXT
        Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}EXT, FramebufferRenderbufferEXT, and GetFramebufferAttachmentParameterivEXT.
        See Also:
        Constant Field Values
      • GL_DEPTH_ATTACHMENT_EXT

        public static final int GL_DEPTH_ATTACHMENT_EXT
        Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}EXT, FramebufferRenderbufferEXT, and GetFramebufferAttachmentParameterivEXT.
        See Also:
        Constant Field Values
      • GL_STENCIL_ATTACHMENT_EXT

        public static final int GL_STENCIL_ATTACHMENT_EXT
        Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}EXT, FramebufferRenderbufferEXT, and GetFramebufferAttachmentParameterivEXT.
        See Also:
        Constant Field Values
      • GL_FRAMEBUFFER_COMPLETE_EXT

        public static final int GL_FRAMEBUFFER_COMPLETE_EXT
        Returned by CheckFramebufferStatusEXT().
        See Also:
        Constant Field Values
      • GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT

        public static final int GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT
        Returned by CheckFramebufferStatusEXT().
        See Also:
        Constant Field Values
      • GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT

        public static final int GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT
        Returned by CheckFramebufferStatusEXT().
        See Also:
        Constant Field Values
      • GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT

        public static final int GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT
        Returned by CheckFramebufferStatusEXT().
        See Also:
        Constant Field Values
      • GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT

        public static final int GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT
        Returned by CheckFramebufferStatusEXT().
        See Also:
        Constant Field Values
      • GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT

        public static final int GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT
        Returned by CheckFramebufferStatusEXT().
        See Also:
        Constant Field Values
      • GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT

        public static final int GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT
        Returned by CheckFramebufferStatusEXT().
        See Also:
        Constant Field Values
      • GL_FRAMEBUFFER_UNSUPPORTED_EXT

        public static final int GL_FRAMEBUFFER_UNSUPPORTED_EXT
        Returned by CheckFramebufferStatusEXT().
        See Also:
        Constant Field Values
      • GL_FRAMEBUFFER_BINDING_EXT

        public static final int GL_FRAMEBUFFER_BINDING_EXT
        Accepted by GetIntegerv().
        See Also:
        Constant Field Values
      • GL_RENDERBUFFER_BINDING_EXT

        public static final int GL_RENDERBUFFER_BINDING_EXT
        Accepted by GetIntegerv().
        See Also:
        Constant Field Values
      • GL_MAX_COLOR_ATTACHMENTS_EXT

        public static final int GL_MAX_COLOR_ATTACHMENTS_EXT
        Accepted by GetIntegerv().
        See Also:
        Constant Field Values
      • GL_MAX_RENDERBUFFER_SIZE_EXT

        public static final int GL_MAX_RENDERBUFFER_SIZE_EXT
        Accepted by GetIntegerv().
        See Also:
        Constant Field Values
      • GL_INVALID_FRAMEBUFFER_OPERATION_EXT

        public static final int GL_INVALID_FRAMEBUFFER_OPERATION_EXT
        Returned by GetError().
        See Also:
        Constant Field Values
    • Method Detail

      • glIsRenderbufferEXT

        public static boolean glIsRenderbufferEXT(int renderbuffer)
      • glBindRenderbufferEXT

        public static void glBindRenderbufferEXT(int target,
                                                 int renderbuffer)
      • glDeleteRenderbuffersEXT

        public static void glDeleteRenderbuffersEXT(java.nio.IntBuffer renderbuffers)
      • glDeleteRenderbuffersEXT

        public static void glDeleteRenderbuffersEXT(int renderbuffer)
      • glGenRenderbuffersEXT

        public static void glGenRenderbuffersEXT(java.nio.IntBuffer renderbuffers)
      • glGenRenderbuffersEXT

        public static int glGenRenderbuffersEXT()
      • glRenderbufferStorageEXT

        public static void glRenderbufferStorageEXT(int target,
                                                    int internalformat,
                                                    int width,
                                                    int height)
      • glGetRenderbufferParameterivEXT

        public static void glGetRenderbufferParameterivEXT(int target,
                                                           int pname,
                                                           java.nio.IntBuffer params)
      • glGetRenderbufferParameteriEXT

        public static int glGetRenderbufferParameteriEXT(int target,
                                                         int pname)
      • glIsFramebufferEXT

        public static boolean glIsFramebufferEXT(int framebuffer)
      • glBindFramebufferEXT

        public static void glBindFramebufferEXT(int target,
                                                int framebuffer)
      • glDeleteFramebuffersEXT

        public static void glDeleteFramebuffersEXT(java.nio.IntBuffer framebuffers)
      • glDeleteFramebuffersEXT

        public static void glDeleteFramebuffersEXT(int framebuffer)
      • glGenFramebuffersEXT

        public static void glGenFramebuffersEXT(java.nio.IntBuffer framebuffers)
      • glGenFramebuffersEXT

        public static int glGenFramebuffersEXT()
      • glCheckFramebufferStatusEXT

        public static int glCheckFramebufferStatusEXT(int target)
      • glFramebufferTexture1DEXT

        public static void glFramebufferTexture1DEXT(int target,
                                                     int attachment,
                                                     int textarget,
                                                     int texture,
                                                     int level)
      • glFramebufferTexture2DEXT

        public static void glFramebufferTexture2DEXT(int target,
                                                     int attachment,
                                                     int textarget,
                                                     int texture,
                                                     int level)
      • glFramebufferTexture3DEXT

        public static void glFramebufferTexture3DEXT(int target,
                                                     int attachment,
                                                     int textarget,
                                                     int texture,
                                                     int level,
                                                     int zoffset)
      • glFramebufferRenderbufferEXT

        public static void glFramebufferRenderbufferEXT(int target,
                                                        int attachment,
                                                        int renderbuffertarget,
                                                        int renderbuffer)
      • glGetFramebufferAttachmentParameterivEXT

        public static void glGetFramebufferAttachmentParameterivEXT(int target,
                                                                    int attachment,
                                                                    int pname,
                                                                    java.nio.IntBuffer params)
      • glGetFramebufferAttachmentParameteriEXT

        public static int glGetFramebufferAttachmentParameteriEXT(int target,
                                                                  int attachment,
                                                                  int pname)
      • glGenerateMipmapEXT

        public static void glGenerateMipmapEXT(int target)
      • glDeleteRenderbuffersEXT

        public static void glDeleteRenderbuffersEXT(int[] renderbuffers)
        Array version of: DeleteRenderbuffersEXT
      • glGenRenderbuffersEXT

        public static void glGenRenderbuffersEXT(int[] renderbuffers)
        Array version of: GenRenderbuffersEXT
      • glGetRenderbufferParameterivEXT

        public static void glGetRenderbufferParameterivEXT(int target,
                                                           int pname,
                                                           int[] params)
      • glDeleteFramebuffersEXT

        public static void glDeleteFramebuffersEXT(int[] framebuffers)
        Array version of: DeleteFramebuffersEXT
      • glGenFramebuffersEXT

        public static void glGenFramebuffersEXT(int[] framebuffers)
        Array version of: GenFramebuffersEXT
      • glGetFramebufferAttachmentParameterivEXT

        public static void glGetFramebufferAttachmentParameterivEXT(int target,
                                                                    int attachment,
                                                                    int pname,
                                                                    int[] params)