## GstGLFramebuffer GstGLFramebuffer — OpenGL framebuffer abstraction |

## Functions

GstGLFramebuffer * | gst_gl_framebuffer_new ()
GstGLFramebuffer * | gst_gl_framebuffer_new_with_default_depth ()
void | gst_gl_framebuffer_attach ()
void | gst_gl_framebuffer_bind ()
void | gst_gl_context_clear_framebuffer ()
gboolean | gst_gl_framebuffer_draw_to_texture ()
void | gst_gl_framebuffer_get_effective_dimensions ()
guint | gst_gl_framebuffer_get_id ()

## Types and Values

| GstGLFramebuffer
struct | GstGLFramebufferClass

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── GstObject
                ╰── GstGLFramebuffer

## Description

A GstGLFramebuffer represents and holds an OpenGL framebuffer object with it's associated attachments.

A GstGLFramebuffer can be created with `gst_gl_framebuffer_new()` or `gst_gl_framebuffer_new_with_default_depth()` and bound with `gst_gl_framebuffer_bind()`. Other resources can be bound with `gst_gl_framebuffer_attach()`

Note: OpenGL framebuffers are not shareable resources so cannot be used between multiple OpenGL contexts.

## Functions

### gst_gl_framebuffer_new ()

    GstGLFramebuffer *
    gst_gl_framebuffer_new (GstGLContext *context);

#### Parameters

context | a GstGLContext |

#### Returns

a new GstGLFramebuffer

Since: 1.10

### gst_gl_framebuffer_new_with_default_depth ()

    GstGLFramebuffer *
    gst_gl_framebuffer_new_with_default_depth
                                   (GstGLContext *context,
                                    guint width,
                                    guint height);

#### Parameters

context | a GstGLContext |
width | width for the depth buffer |
height | for the depth buffer |

#### Returns

a new GstGLFramebuffer with a depth buffer of `width` and `height`

Since: 1.10

### gst_gl_framebuffer_attach ()

    void
    gst_gl_framebuffer_attach (GstGLFramebuffer *fb,
                               guint attachment_point,
                               GstGLBaseMemory *mem);

attach `mem` to `attachment_point`

#### Parameters

fb | a GstGLFramebuffer |
attachment_point | the OpenGL attachment point to bind `mem` to |
mem | the memory object to bind to `attachment_point` |

Since: 1.10

### gst_gl_framebuffer_bind ()

    void
    gst_gl_framebuffer_bind (GstGLFramebuffer *fb);

Bind `fb` into the current thread

#### Parameters

fb | a GstGLFramebuffer |

Since: 1.10

### gst_gl_context_clear_framebuffer ()

    void
    gst_gl_context_clear_framebuffer (GstGLContext *context);

Unbind the current framebuffer

#### Parameters

context | a GstGLContext |

Since: 1.10

### gst_gl_framebuffer_draw_to_texture ()

    gboolean
    gst_gl_framebuffer_draw_to_texture (GstGLFramebuffer *fb,
                                        GstGLMemory *mem,
                                        GstGLFramebufferFunc func,
                                        gpointer user_data);

Perform the steps necessary to have the output of a glDraw* command in `func` update the contents of `mem` .

#### Parameters

fb | a GstGLFramebuffer |
mem | the GstGLMemory to draw to |
func | the function to run. | [scope call]
user_data | data to pass to `func` |

#### Returns

the result of executing `func`

Since: 1.10

### gst_gl_framebuffer_get_effective_dimensions ()

    void
    gst_gl_framebuffer_get_effective_dimensions
                                   (GstGLFramebuffer *fb,
                                    guint *width,
                                    guint *height);

Retreive the effective dimensions from the current attachments attached to `fb` .

#### Parameters

fb | a GstGLFramebuffer |
width | output width. | [out][allow-none]
height | output height. | [out][allow-none]

Since: 1.10

### gst_gl_framebuffer_get_id ()

    guint
    gst_gl_framebuffer_get_id (GstGLFramebuffer *fb);

#### Parameters

fb | a GstGLFramebuffer |

#### Returns

the OpenGL id for `fb`

Since: 1.10

## Types and Values

### GstGLFramebuffer

    typedef struct _GstGLFramebuffer GstGLFramebuffer;

Opaque GstGLFramebuffer struct

### struct GstGLFramebufferClass

    struct GstGLFramebufferClass {
    };

Opaque GstGLFramebufferClass struct

## See Also

GstGLBaseMemory, GstGLMemory, GstGLContext