Top |
GstGLContext wraps an OpenGL context object in a uniform API. As a result of the limitation on OpenGL context, this object is not thread safe unless specified and must only be activated in a single thread.
void (*GstGLContextThreadFunc) (GstGLContext *context
,gpointer data
);
Represents a function to run in the GL thread with context
and data
GstGLContext *
gst_gl_context_new (GstGLDisplay *display
);
Create a new GstGLContext with the specified display
Since: 1.4
GstGLContext * gst_gl_context_new_wrapped (GstGLDisplay *display
,guintptr handle
,GstGLPlatform context_type
,GstGLAPI available_apis
);
Wraps an existing OpenGL context into a GstGLContext.
display |
||
handle |
the OpenGL context to wrap |
|
context_type |
a GstGLPlatform specifying the type of context in |
|
available_apis |
a GstGLAPI containing the available OpenGL apis in |
Since: 1.4
gboolean gst_gl_context_create (GstGLContext *context
,GstGLContext *other_context
,GError **error
);
Creates an OpenGL context in the current thread with the specified
other_context
as a context to share shareable OpenGL objects with. See the
OpenGL specification for what is shared between contexts.
If an error occurs, and error
is not NULL
, then error will contain details
of the error and FALSE
will be returned.
Should only be called once.
context |
a GstGLContext: |
|
other_context |
a GstGLContext to share OpenGL objects with. |
[allow-none] |
error |
a GError. |
[allow-none] |
Since: 1.4
void
gst_gl_context_destroy (GstGLContext *context
);
Destroys an OpenGL context.
Should only be called after gst_gl_context_create()
has been successfully
called for this context.
Since: 1.6
gboolean gst_gl_context_activate (GstGLContext *context
,gboolean activate
);
(De)activate the OpenGL context represented by this context
.
In OpenGL terms, calls eglMakeCurrent or similar with this context and the
currently set window. See gst_gl_context_set_window()
for details.
Since: 1.4
gpointer gst_gl_context_default_get_proc_address (GstGLAPI gl_api
,const gchar *name
);
gpointer gst_gl_context_get_proc_address (GstGLContext *context
,const gchar *name
);
Get a function pointer to a specified opengl function, name
. If the the
specific function does not exist, NULL is returned instead.
Platform specfic functions (names starting 'egl', 'glX', 'wgl', etc) can also be retrieved using this method.
Since: 1.4
GstGLWindow *
gst_gl_context_get_window (GstGLContext *context
);
Since: 1.4
gboolean gst_gl_context_set_window (GstGLContext *context
,GstGLWindow *window
);
Set's the current window on context
to window
. The window can only be
changed before gst_gl_context_create()
has been called and the window
is not
already running.
Since: 1.4
void gst_gl_context_thread_add (GstGLContext *context
,GstGLContextThreadFunc func
,gpointer data
);
Execute func
in the OpenGL thread of context
with data
MT-safe
Since: 1.4
GstGLDisplay *
gst_gl_context_get_display (GstGLContext *context
);
Since: 1.4
GstGLAPI
gst_gl_context_get_gl_api (GstGLContext *context
);
Get the currently enabled OpenGL api.
The currently available API may be limited by the GstGLDisplay in use and/or the GstGLWindow chosen.
Since: 1.4
guintptr
gst_gl_context_get_gl_context (GstGLContext *context
);
Gets the backing OpenGL context used by context
.
Since: 1.4
GstGLPlatform
gst_gl_context_get_gl_platform (GstGLContext *context
);
Gets the OpenGL platform that used by context
.
Since: 1.4
guintptr
gst_gl_context_get_current_gl_context (GstGLPlatform platform
);
Since: 1.6
GstGLAPI gst_gl_context_get_current_gl_api (guint *major
,guint *minor
);
If an error occurs, major
and minor
aren't modified and GST_GL_API_NONE
is
returned.
major |
(allow-none): the major version. |
[out] |
minor |
(allow-none): the minor version. |
[out] |
The version supported by the OpenGL context current in the calling
thread or GST_GL_API_NONE
Since: 1.6
GThread *
gst_gl_context_get_thread (GstGLContext *context
);
Since: 1.6
gboolean gst_gl_context_can_share (GstGLContext *context
,GstGLContext *other_context
);
Since: 1.6
gboolean gst_gl_context_check_feature (GstGLContext *context
,const gchar *feature
);
Some features require that the context be created before it is possible to determine their existence and so will fail if that is not the case.
Since: 1.4
gboolean gst_gl_context_check_gl_version (GstGLContext *context
,GstGLAPI api
,gint maj
,gint min
);
Since: 1.4
void gst_gl_context_get_gl_version (GstGLContext *context
,gint *maj
,gint *min
);
Returns the OpenGL version implemented by context
. See
gst_gl_context_get_gl_api()
for retreiving the OpenGL api implemented by
context
.
Since: 1.4
gboolean gst_gl_context_fill_info (GstGLContext *context
,GError **error
);
Fills context
's info (version, extensions, vtable, etc) from the GL
context in the current thread. Typically used with wrapped contexts to
allow wrapped contexts to be used as regular GstGLContext's.
Since: 1.6
GstGLContext *
gst_gl_context_get_current (void
);
See also gst_gl_context_activate()
.
Since: 1.6