[mutter] cogl: Move GL context/version details into the driver
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] cogl: Move GL context/version details into the driver
- Date: Thu, 18 Jun 2020 18:19:36 +0000 (UTC)
commit 1285619bcf18f3ad4502108e43abb842961146ab
Author: Adam Jackson <ajax redhat com>
Date: Tue Jan 28 15:15:44 2020 -0500
cogl: Move GL context/version details into the driver
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1194
cogl/cogl/cogl-context-private.h | 14 -----
cogl/cogl/cogl-context.c | 92 ------------------------------
cogl/cogl/driver/gl/cogl-util-gl-private.h | 14 +++++
cogl/cogl/driver/gl/cogl-util-gl.c | 88 ++++++++++++++++++++++++++++
4 files changed, 102 insertions(+), 106 deletions(-)
---
diff --git a/cogl/cogl/cogl-context-private.h b/cogl/cogl/cogl-context-private.h
index 4151f3bf7f..a2ed950d0c 100644
--- a/cogl/cogl/cogl-context-private.h
+++ b/cogl/cogl/cogl-context-private.h
@@ -310,18 +310,4 @@ void
_cogl_context_set_current_modelview_entry (CoglContext *context,
CoglMatrixEntry *entry);
-/*
- * _cogl_context_get_gl_extensions:
- * @context: A CoglContext
- *
- * Return value: a NULL-terminated array of strings representing the
- * supported extensions by the current driver. This array is owned
- * by the caller and should be freed with g_strfreev().
- */
-char **
-_cogl_context_get_gl_extensions (CoglContext *context);
-
-const char *
-_cogl_context_get_gl_version (CoglContext *context);
-
#endif /* __COGL_CONTEXT_PRIVATE_H */
diff --git a/cogl/cogl/cogl-context.c b/cogl/cogl/cogl-context.c
index 1d84cf544f..908738f295 100644
--- a/cogl/cogl/cogl-context.c
+++ b/cogl/cogl/cogl-context.c
@@ -56,10 +56,6 @@
#define GL_POINT_SPRITE 0x8861
#endif
-#ifndef GL_NUM_EXTENSIONS
-#define GL_NUM_EXTENSIONS 0x821D
-#endif
-
/* This is a relatively new extension */
#ifndef GL_PURGED_CONTEXT_RESET_NV
#define GL_PURGED_CONTEXT_RESET_NV 0x92BB
@@ -469,94 +465,6 @@ _cogl_context_set_current_modelview_entry (CoglContext *context,
context->current_modelview_entry = entry;
}
-char **
-_cogl_context_get_gl_extensions (CoglContext *context)
-{
- const char *env_disabled_extensions;
- char **ret;
-
- /* In GL 3, querying GL_EXTENSIONS is deprecated so we have to build
- * the array using glGetStringi instead */
-#ifdef HAVE_COGL_GL
- if (context->driver == COGL_DRIVER_GL3)
- {
- int num_extensions, i;
-
- context->glGetIntegerv (GL_NUM_EXTENSIONS, &num_extensions);
-
- ret = g_malloc (sizeof (char *) * (num_extensions + 1));
-
- for (i = 0; i < num_extensions; i++)
- {
- const char *ext =
- (const char *) context->glGetStringi (GL_EXTENSIONS, i);
- ret[i] = g_strdup (ext);
- }
-
- ret[num_extensions] = NULL;
- }
- else
-#endif
- {
- const char *all_extensions =
- (const char *) context->glGetString (GL_EXTENSIONS);
-
- ret = g_strsplit (all_extensions, " ", 0 /* max tokens */);
- }
-
- if ((env_disabled_extensions = g_getenv ("COGL_DISABLE_GL_EXTENSIONS")))
- {
- char **split_env_disabled_extensions;
- char **src, **dst;
-
- if (env_disabled_extensions)
- split_env_disabled_extensions =
- g_strsplit (env_disabled_extensions,
- ",",
- 0 /* no max tokens */);
- else
- split_env_disabled_extensions = NULL;
-
- for (dst = ret, src = ret;
- *src;
- src++)
- {
- char **d;
-
- if (split_env_disabled_extensions)
- for (d = split_env_disabled_extensions; *d; d++)
- if (!strcmp (*src, *d))
- goto disabled;
-
- *(dst++) = *src;
- continue;
-
- disabled:
- g_free (*src);
- continue;
- }
-
- *dst = NULL;
-
- if (split_env_disabled_extensions)
- g_strfreev (split_env_disabled_extensions);
- }
-
- return ret;
-}
-
-const char *
-_cogl_context_get_gl_version (CoglContext *context)
-{
- const char *version_override;
-
- if ((version_override = g_getenv ("COGL_OVERRIDE_GL_VERSION")))
- return version_override;
- else
- return (const char *) context->glGetString (GL_VERSION);
-
-}
-
int64_t
cogl_get_clock_time (CoglContext *context)
{
diff --git a/cogl/cogl/driver/gl/cogl-util-gl-private.h b/cogl/cogl/driver/gl/cogl-util-gl-private.h
index c434ebde01..369baab874 100644
--- a/cogl/cogl/driver/gl/cogl-util-gl-private.h
+++ b/cogl/cogl/driver/gl/cogl-util-gl-private.h
@@ -94,6 +94,20 @@ _cogl_gl_util_catch_out_of_memory (CoglContext *ctx, GError **error);
gboolean
_cogl_driver_gl_is_hardware_accelerated (CoglContext *context);
+/*
+ * _cogl_context_get_gl_extensions:
+ * @context: A CoglContext
+ *
+ * Return value: a NULL-terminated array of strings representing the
+ * supported extensions by the current driver. This array is owned
+ * by the caller and should be freed with g_strfreev().
+ */
+char **
+_cogl_context_get_gl_extensions (CoglContext *context);
+
+const char *
+_cogl_context_get_gl_version (CoglContext *context);
+
/* Parses a GL version number stored in a string. @version_string must
* point to the beginning of the version number (ie, it can't point to
* the "OpenGL ES" part on GLES). The version number can be followed
diff --git a/cogl/cogl/driver/gl/cogl-util-gl.c b/cogl/cogl/driver/gl/cogl-util-gl.c
index d21ee01248..52ad54076f 100644
--- a/cogl/cogl/driver/gl/cogl-util-gl.c
+++ b/cogl/cogl/driver/gl/cogl-util-gl.c
@@ -147,6 +147,94 @@ _cogl_gl_util_catch_out_of_memory (CoglContext *ctx, GError **error)
return FALSE;
}
+char **
+_cogl_context_get_gl_extensions (CoglContext *context)
+{
+ const char *env_disabled_extensions;
+ char **ret;
+
+ /* In GL 3, querying GL_EXTENSIONS is deprecated so we have to build
+ * the array using glGetStringi instead */
+#ifdef HAVE_COGL_GL
+ if (context->driver == COGL_DRIVER_GL3)
+ {
+ int num_extensions, i;
+
+ context->glGetIntegerv (GL_NUM_EXTENSIONS, &num_extensions);
+
+ ret = g_malloc (sizeof (char *) * (num_extensions + 1));
+
+ for (i = 0; i < num_extensions; i++)
+ {
+ const char *ext =
+ (const char *) context->glGetStringi (GL_EXTENSIONS, i);
+ ret[i] = g_strdup (ext);
+ }
+
+ ret[num_extensions] = NULL;
+ }
+ else
+#endif
+ {
+ const char *all_extensions =
+ (const char *) context->glGetString (GL_EXTENSIONS);
+
+ ret = g_strsplit (all_extensions, " ", 0 /* max tokens */);
+ }
+
+ if ((env_disabled_extensions = g_getenv ("COGL_DISABLE_GL_EXTENSIONS")))
+ {
+ char **split_env_disabled_extensions;
+ char **src, **dst;
+
+ if (env_disabled_extensions)
+ split_env_disabled_extensions =
+ g_strsplit (env_disabled_extensions,
+ ",",
+ 0 /* no max tokens */);
+ else
+ split_env_disabled_extensions = NULL;
+
+ for (dst = ret, src = ret;
+ *src;
+ src++)
+ {
+ char **d;
+
+ if (split_env_disabled_extensions)
+ for (d = split_env_disabled_extensions; *d; d++)
+ if (!strcmp (*src, *d))
+ goto disabled;
+
+ *(dst++) = *src;
+ continue;
+
+ disabled:
+ g_free (*src);
+ continue;
+ }
+
+ *dst = NULL;
+
+ if (split_env_disabled_extensions)
+ g_strfreev (split_env_disabled_extensions);
+ }
+
+ return ret;
+}
+
+const char *
+_cogl_context_get_gl_version (CoglContext *context)
+{
+ const char *version_override;
+
+ if ((version_override = g_getenv ("COGL_OVERRIDE_GL_VERSION")))
+ return version_override;
+ else
+ return (const char *) context->glGetString (GL_VERSION);
+
+}
+
gboolean
_cogl_gl_util_parse_gl_version (const char *version_string,
int *major_out,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]