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
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 |
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] |
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.
gpointer gst_gl_context_default_get_proc_address (GstGLContext *context
,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 retreived using this method.
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.
void gst_gl_context_thread_add (GstGLContext *context
,GstGLContextThreadFunc func
,gpointer data
);
Execute func
in the OpenGL thread of context
with data
MT-safe
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.
guintptr
gst_gl_context_get_gl_context (GstGLContext *context
);
Gets the backing OpenGL context used by context
.
GstGLPlatform
gst_gl_context_get_gl_platform (GstGLContext *context
);
Gets the OpenGL platform that used by context
.
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.
gboolean gst_gl_context_check_gl_version (GstGLContext *context
,GstGLAPI api
,gint maj
,gint min
);
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
.