Top |
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', 'opengl3' 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()
.
GstGLDisplayType
gst_gl_display_get_handle_type (GstGLDisplay *display
);
Since: 1.4
void gst_gl_display_filter_gl_api (GstGLDisplay *display
,GstGLAPI gl_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.
GstGLAPI
gst_gl_display_get_gl_api (GstGLDisplay *display
);
see gst_gl_display_filter_gl_api()
for what the returned value represents
gboolean gst_gl_display_add_context (GstGLDisplay *display
,GstGLContext *context
);
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
GstGLContext * gst_gl_display_get_gl_context_for_thread (GstGLDisplay *display
,GThread *thread
);
the GstGLContext current on thread
or NULL
Must be called with the object lock held.
[transfer full]
Since: 1.6
gboolean gst_gl_display_create_context (GstGLDisplay *display
,GstGLContext *other_context
,GstGLContext **p_context
,GError **error
);
It requires the display's object lock to be held.
display |
||
other_context |
other GstGLContext to share resources with. |
[transfer none] |
p_context |
resulting GstGLContext. |
[transfer full][out] |
error |
resulting GError. |
[allow-none] |
Since: 1.6
GstGLWindow *
gst_gl_display_create_window (GstGLDisplay *display
);
It requires the display's object lock to be held.
GstGLWindow * gst_gl_display_find_window (GstGLDisplay *display
,gpointer data
,GCompareFunc compare_func
);
Execute compare_func
over the list of windows stored by display
. The
first argment to compare_func
is the GstGLWindow being checked and the
second argument is data
.
display |
||
data |
some data to pass to |
[closure] |
compare_func |
a comparison function to run. |
[scope call] |
Since: 1.12
gboolean gst_gl_display_remove_window (GstGLDisplay *display
,GstGLWindow *window
);
Since: 1.12
gboolean gst_context_get_gl_display (GstContext *context
,GstGLDisplay **display
);
Since: 1.4
void gst_context_set_gl_display (GstContext *context
,GstGLDisplay *display
);
Sets display
on context
Since: 1.4
#define GST_GL_DISPLAY_CONTEXT_TYPE "gst.gl.GLDisplay"
The name used in GstContext queries for requesting a GstGLDisplay
typedef struct _GstGLDisplay GstGLDisplay;
The contents of a GstGLDisplay are private and should only be accessed through the provided API
“create-context”
signalGstGLContext* 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.
object |
the GstGLDisplay |
|
context |
other context to share resources with. |
[transfer none] |
user_data |
user data set when the signal handler was connected. |
Flags: Run Last