egl: Pass EGL errors via custom error domain
Introduce META_EGL_ERROR and have the error code be EGL error codes. https://bugzilla.gnome.org/show_bug.cgi?id=779112
This commit is contained in:
parent
3821ed162b
commit
d8ee96c6cb
@ -70,13 +70,11 @@ struct _MetaEgl
|
|||||||
|
|
||||||
G_DEFINE_TYPE (MetaEgl, meta_egl, G_TYPE_OBJECT)
|
G_DEFINE_TYPE (MetaEgl, meta_egl, G_TYPE_OBJECT)
|
||||||
|
|
||||||
|
G_DEFINE_QUARK (-meta-egl-error-quark, meta_egl_error)
|
||||||
|
|
||||||
static const char *
|
static const char *
|
||||||
get_egl_error_str (void)
|
get_egl_error_str (EGLint error_number)
|
||||||
{
|
{
|
||||||
EGLint error_number;
|
|
||||||
|
|
||||||
error_number = eglGetError ();
|
|
||||||
|
|
||||||
switch (error_number)
|
switch (error_number)
|
||||||
{
|
{
|
||||||
case EGL_SUCCESS:
|
case EGL_SUCCESS:
|
||||||
@ -133,14 +131,16 @@ get_egl_error_str (void)
|
|||||||
static void
|
static void
|
||||||
set_egl_error (GError **error)
|
set_egl_error (GError **error)
|
||||||
{
|
{
|
||||||
|
EGLint error_number;
|
||||||
const char *error_str;
|
const char *error_str;
|
||||||
|
|
||||||
if (!error)
|
if (!error)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
error_str = get_egl_error_str ();
|
error_number = eglGetError ();
|
||||||
g_set_error_literal (error, G_IO_ERROR,
|
error_str = get_egl_error_str (error_number);
|
||||||
G_IO_ERROR_FAILED,
|
g_set_error_literal (error, META_EGL_ERROR,
|
||||||
|
error_number,
|
||||||
error_str);
|
error_str);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -200,7 +200,8 @@ meta_egl_has_extensions (MetaEgl *egl,
|
|||||||
extensions_str = (const char *) eglQueryString (display, EGL_EXTENSIONS);
|
extensions_str = (const char *) eglQueryString (display, EGL_EXTENSIONS);
|
||||||
if (!extensions_str)
|
if (!extensions_str)
|
||||||
{
|
{
|
||||||
g_warning ("Failed to query string: %s", get_egl_error_str ());
|
g_warning ("Failed to query string: %s",
|
||||||
|
get_egl_error_str (eglGetError ()));
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,9 +29,13 @@
|
|||||||
#include <EGL/eglext.h>
|
#include <EGL/eglext.h>
|
||||||
#include <glib-object.h>
|
#include <glib-object.h>
|
||||||
|
|
||||||
|
#define META_EGL_ERROR meta_egl_error_quark ()
|
||||||
|
|
||||||
#define META_TYPE_EGL (meta_egl_get_type ())
|
#define META_TYPE_EGL (meta_egl_get_type ())
|
||||||
G_DECLARE_FINAL_TYPE (MetaEgl, meta_egl, META, EGL, GObject)
|
G_DECLARE_FINAL_TYPE (MetaEgl, meta_egl, META, EGL, GObject)
|
||||||
|
|
||||||
|
GQuark meta_egl_error_quark (void);
|
||||||
|
|
||||||
gboolean meta_egl_has_extensions (MetaEgl *egl,
|
gboolean meta_egl_has_extensions (MetaEgl *egl,
|
||||||
EGLDisplay display,
|
EGLDisplay display,
|
||||||
char ***missing_extensions,
|
char ***missing_extensions,
|
||||||
|
Loading…
Reference in New Issue
Block a user