GstGLDisplay

GstGLDisplay — window system display connection abstraction

Functions

Signals

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstGLDisplay

Description

GstGLDisplay represents a connection to the underlying windowing system. Elements are required to make use of GstContext to share and propogate a GstGLDisplay.

There are a number of environment variables that influence the choice of platform and window system specific functionality.

  • GST_GL_WINDOW influences the window system to use. Common values are 'x11', 'wayland', 'win32' or 'cocoa'.

  • GST_GL_PLATFORM influences the OpenGL platform to use. Common values are 'egl', 'glx', 'wgl' or 'cgl'.

  • GST_GL_API influences the OpenGL API requested by the OpenGL platform. Common values are 'opengl' and 'gles2'.

Certain window systems require a special function to be called to initialize threading support. As this GStreamer GL library does not preclude concurrent access to the windowing system, it is strongly advised that applications ensure that threading support has been initialized before any other toolkit/library functionality is accessed. Failure to do so could result in sudden application abortion during execution. The most notably example of such a function is X11's XInitThreads().

Functions

gst_gl_display_new ()

GstGLDisplay *
gst_gl_display_new (void);

Returns

a new GstGLDisplay.

[transfer full]

Since: 1.4


gst_gl_display_get_handle_type ()

GstGLDisplayType
gst_gl_display_get_handle_type (GstGLDisplay *display);

Parameters

display

a GstGLDisplay

 

Returns

the GstGLDisplayType of display

Since: 1.4


gst_gl_display_filter_gl_api ()

void
gst_gl_display_filter_gl_api (GstGLDisplay *display,
                              GstGLAPI api);

limit the use of OpenGL to the requested gl_api . This is intended to allow application and elements to request a specific set of OpenGL API's based on what they support. See gst_gl_context_get_gl_api() for the retreiving the API supported by a GstGLContext.

Parameters

display

a GstGLDisplay

 

gl_api

a GstGLAPI to filter with

 

gst_gl_display_get_gl_api ()

GstGLAPI
gst_gl_display_get_gl_api (GstGLDisplay *display);

see gst_gl_display_filter_gl_api() for what the returned value represents

Parameters

display

a GstGLDisplay

 

Returns

the GstGLAPI configured for display


gst_gl_display_add_context ()

gboolean
gst_gl_display_add_context (GstGLDisplay *display,
                            GstGLContext *context);

Parameters

display

a GstGLDisplay

 

context

a GstGLContext.

[transfer none]

Returns

whether context was successfully added. FALSE may be returned if there already exists another context for context 's active thread.

Must be called with the object lock held.

Since: 1.6


gst_gl_display_get_gl_context_for_thread ()

GstGLContext *
gst_gl_display_get_gl_context_for_thread
                               (GstGLDisplay *display,
                                GThread *thread);

Parameters

display

a GstGLDisplay

 

thread

a GThread

 

Returns

the GstGLContext current on thread or NULL

Must be called with the object lock held.

[transfer full]

Since: 1.6


gst_gl_display_get_handle ()

guintptr
gst_gl_display_get_handle (GstGLDisplay *display);

gst_context_get_gl_display ()

gboolean
gst_context_get_gl_display (GstContext *context,
                            GstGLDisplay **display);

Parameters

context

a GstContext

 

display

resulting GstGLDisplay

 

Returns

Whether display was in context

Since: 1.4


gst_context_set_gl_display ()

void
gst_context_set_gl_display (GstContext *context,
                            GstGLDisplay *display);

Sets display on context

Parameters

context

a GstContext

 

display

resulting GstGLDisplay

 

Since: 1.4

Types and Values

GST_GL_DISPLAY_CONTEXT_TYPE

#define GST_GL_DISPLAY_CONTEXT_TYPE "gst.gl.GLDisplay"

enum GstGLDisplayType

Members

GST_GL_DISPLAY_TYPE_NONE

   

GST_GL_DISPLAY_TYPE_X11

   

GST_GL_DISPLAY_TYPE_WAYLAND

   

GST_GL_DISPLAY_TYPE_COCOA

   

GST_GL_DISPLAY_TYPE_WIN32

   

GST_GL_DISPLAY_TYPE_DISPMANX

   

GST_GL_DISPLAY_TYPE_EGL

   

GST_GL_DISPLAY_TYPE_ANY

   

GstGLDisplay

typedef struct _GstGLDisplay GstGLDisplay;

The contents of a GstGLDisplay are private and should only be accessed through the provided API

Signal Details

The “create-context” signal

GstGLContext*
user_function (GstGLDisplay *object,
               GstGLContext *context,
               gpointer      user_data)

Overrides the GstGLContext creation mechanism. It can be called in any thread and it is emitted with display's object lock held.

Parameters

object

the GstGLDisplay

 

context

other context to share resources with.

 

user_data

user data set when the signal handler was connected.

 

Returns

the new context.

Flags: Run Last

See Also

GstContext, GstGLContext, GstGLWindow