mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-20 00:31:13 +00:00
gl/context: add generic feature checking
At the moment it simply delegates to the subclass.
This commit is contained in:
parent
d80630f011
commit
b30023f571
3 changed files with 28 additions and 0 deletions
|
@ -742,6 +742,7 @@ gst_gl_context_get_display
|
||||||
gst_gl_context_get_gl_api
|
gst_gl_context_get_gl_api
|
||||||
gst_gl_context_get_gl_context
|
gst_gl_context_get_gl_context
|
||||||
gst_gl_context_get_platform
|
gst_gl_context_get_platform
|
||||||
|
gst_gl_context_check_feature
|
||||||
<SUBSECTION Standard>
|
<SUBSECTION Standard>
|
||||||
GST_GL_CONTEXT
|
GST_GL_CONTEXT
|
||||||
GST_GL_IS_CONTEXT
|
GST_GL_IS_CONTEXT
|
||||||
|
|
|
@ -1032,6 +1032,31 @@ gst_gl_context_get_gl_version (GstGLContext * context, gint * maj, gint * min)
|
||||||
*min = context->priv->gl_minor;
|
*min = context->priv->gl_minor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gst_gl_context_check_feature:
|
||||||
|
* @context: a #GstGLContext
|
||||||
|
* @feature: a platform specific 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.
|
||||||
|
*
|
||||||
|
* Returns: Whether @feature is supported by @context
|
||||||
|
*/
|
||||||
|
gboolean
|
||||||
|
gst_gl_context_check_feature (GstGLContext * context, const gchar * feature)
|
||||||
|
{
|
||||||
|
GstGLContextClass *context_class;
|
||||||
|
|
||||||
|
g_return_val_if_fail (GST_GL_IS_CONTEXT (context), FALSE);
|
||||||
|
g_return_val_if_fail (feature != NULL, FALSE);
|
||||||
|
|
||||||
|
context_class = GST_GL_CONTEXT_GET_CLASS (context);
|
||||||
|
if (!context_class->check_feature)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
return context_class->check_feature (context, feature);
|
||||||
|
}
|
||||||
|
|
||||||
static GstGLAPI
|
static GstGLAPI
|
||||||
gst_gl_wrapped_context_get_gl_api (GstGLContext * context)
|
gst_gl_wrapped_context_get_gl_api (GstGLContext * context)
|
||||||
{
|
{
|
||||||
|
|
|
@ -103,6 +103,7 @@ struct _GstGLContextClass {
|
||||||
GstGLContext *other_context, GError ** error);
|
GstGLContext *other_context, GError ** error);
|
||||||
void (*destroy_context) (GstGLContext *context);
|
void (*destroy_context) (GstGLContext *context);
|
||||||
void (*swap_buffers) (GstGLContext *context);
|
void (*swap_buffers) (GstGLContext *context);
|
||||||
|
gboolean (*check_feature) (GstGLContext *context, const gchar *feature);
|
||||||
|
|
||||||
/*< private >*/
|
/*< private >*/
|
||||||
gpointer _reserved[GST_PADDING];
|
gpointer _reserved[GST_PADDING];
|
||||||
|
@ -132,6 +133,7 @@ gboolean gst_gl_context_set_window (GstGLContext *context, GstGLWindow *win
|
||||||
GstGLWindow * gst_gl_context_get_window (GstGLContext *context);
|
GstGLWindow * gst_gl_context_get_window (GstGLContext *context);
|
||||||
|
|
||||||
void gst_gl_context_get_gl_version (GstGLContext *context, gint *maj, gint *min);
|
void gst_gl_context_get_gl_version (GstGLContext *context, gint *maj, gint *min);
|
||||||
|
gboolean gst_gl_context_check_feature (GstGLContext *context, const gchar *feature);
|
||||||
|
|
||||||
/* FIXME: remove */
|
/* FIXME: remove */
|
||||||
void gst_gl_context_thread_add (GstGLContext * context,
|
void gst_gl_context_thread_add (GstGLContext * context,
|
||||||
|
|
Loading…
Reference in a new issue