[gtk/wip.win32.fixes: 10/23] glcontext: Add internal get_clipped_version function




commit b1f0683ccecc4adfb6ed823195d82b51df532897
Author: Pablo Correa Gómez <ablocorrea hotmail com>
Date:   Mon May 30 20:14:53 2022 +0200

    glcontext: Add internal get_clipped_version function
    
    It is useful for backends to get user set preferences while
    ensuring the correctness of the result, which will be always
    greater or equal than the minimum version provided

 gdk/gdkglcontext.c        | 18 ++++++++++++++++++
 gdk/gdkglcontextprivate.h |  5 +++++
 2 files changed, 23 insertions(+)
---
diff --git a/gdk/gdkglcontext.c b/gdk/gdkglcontext.c
index 5dbc8df165..92b08ceafc 100644
--- a/gdk/gdkglcontext.c
+++ b/gdk/gdkglcontext.c
@@ -1108,6 +1108,24 @@ gdk_gl_context_get_required_version (GdkGLContext *context,
   else
     min = default_minor;
 
+void
+gdk_gl_context_get_clipped_version (GdkGLContext *context,
+                                    int           min_major,
+                                    int           min_minor,
+                                    int          *major,
+                                    int          *minor)
+{
+  GdkGLContextPrivate *priv = gdk_gl_context_get_instance_private (context);
+  int maj = min_major, min = min_minor;
+
+  g_return_if_fail (GDK_IS_GL_CONTEXT (context));
+
+  if (priv->major > maj || (priv->major == maj && priv->minor > min))
+    {
+      maj = priv->major;
+      min = priv->minor;
+    }
+
   if (major != NULL)
     *major = maj;
   if (minor != NULL)
diff --git a/gdk/gdkglcontextprivate.h b/gdk/gdkglcontextprivate.h
index cd58c30b4e..0bd9cbad57 100644
--- a/gdk/gdkglcontextprivate.h
+++ b/gdk/gdkglcontextprivate.h
@@ -117,6 +117,11 @@ gboolean                gdk_gl_context_check_version            (GdkGLContext
                                                                  int              required_gl_minor,
                                                                  int              required_gles_major,
                                                                  int              required_gles_minor);
+void                    gdk_gl_context_get_clipped_version      (GdkGLContext    *context,
+                                                                 int              min_major,
+                                                                 int              min_minor,
+                                                                 int             *major,
+                                                                 int             *minor);
 
 gboolean                gdk_gl_context_has_unpack_subimage      (GdkGLContext    *context);
 void                    gdk_gl_context_push_debug_group         (GdkGLContext    *context,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]