From: Pablo Correa Gómez Date: Mon, 30 May 2022 18:14:53 +0000 (+0200) Subject: glcontext: Add internal get_clipped_version function X-Git-Tag: archive/raspbian/4.8.3+ds-2+rpi1~3^2~20^2~4^2~145^2~6 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=8d175801d73612b1ca49e9fd47c3c0fed17c7552;p=gtk4.git 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 --- diff --git a/gdk/gdkglcontext.c b/gdk/gdkglcontext.c index 8f9fe25396..484dee3200 100644 --- a/gdk/gdkglcontext.c +++ b/gdk/gdkglcontext.c @@ -1113,6 +1113,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 0a3739f090..b97d07f34f 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,