From: Benjamin Otte Date: Tue, 25 Apr 2023 20:50:00 +0000 (+0200) Subject: mac: Properly set GLContext.is_legacy() X-Git-Tag: archive/raspbian/4.12.3+ds-1+rpi1~1^2^2^2~22^2~1^2~366^2~5 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=9f82d537b04d3b20084565cc132cc6360d32c5bf;p=gtk4.git mac: Properly set GLContext.is_legacy() --- diff --git a/gdk/macos/gdkmacosglcontext.c b/gdk/macos/gdkmacosglcontext.c index 9669a5fdf8..4c895761ba 100644 --- a/gdk/macos/gdkmacosglcontext.c +++ b/gdk/macos/gdkmacosglcontext.c @@ -324,6 +324,7 @@ gdk_macos_gl_context_release (GdkMacosGLContext *self) static CGLPixelFormatObj create_pixel_format (GdkGLVersion *version, + gboolean *out_legacy, GError **error) { CGLPixelFormatAttribute attrs[] = { @@ -338,6 +339,8 @@ create_pixel_format (GdkGLVersion *version, CGLPixelFormatObj format = NULL; GLint n_format = 1; + *out_legacy = FALSE; + if (gdk_gl_version_get_major (version) >= 4) { attrs[1] = (CGLPixelFormatAttribute)kCGLOGLPVersion_GL4_Core; @@ -356,6 +359,8 @@ create_pixel_format (GdkGLVersion *version, if (!CHECK (error, CGLChoosePixelFormat (attrs, &format, &n_format))) return NULL; + *out_legacy = TRUE; + return g_steal_pointer (&format); } @@ -376,6 +381,7 @@ gdk_macos_gl_context_real_realize (GdkGLContext *context, GLint renderer_id = 0; GLint swapRect[4]; GdkGLVersion min_version, version; + gboolean legacy; g_assert (GDK_IS_MACOS_GL_CONTEXT (self)); @@ -411,7 +417,7 @@ gdk_macos_gl_context_real_realize (GdkGLContext *context, "Creating CGLContextObj (version %d.%d)", gdk_gl_version_get_major (&min_version), gdk_gl_version_get_minor (&min_version)); - if (!(pixelFormat = create_pixel_format (&min_version, error))) + if (!(pixelFormat = create_pixel_format (&min_version, &legacy, error))) return 0; if (!CHECK (error, CGLCreateContext (pixelFormat, shared_gl_context, &cgl_context))) @@ -462,6 +468,7 @@ gdk_macos_gl_context_real_realize (GdkGLContext *context, get_renderer_name (renderer_id)); gdk_gl_context_set_version (context, &version); + gdk_gl_context_set_is_legacy (context, legacy); self->cgl_context = g_steal_pointer (&cgl_context);