<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/db196800549db11d557f6aa20d1aa94ef95459f7">https://github.com/macports/macports-ports/commit/db196800549db11d557f6aa20d1aa94ef95459f7</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new db196800549 gtk3-devel: add patch to improve Quartz drawing performance
</span>db196800549 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit db196800549db11d557f6aa20d1aa94ef95459f7
</span>Author: Andrew Udvare <audvare@gmail.com>
AuthorDate: Fri Nov 19 14:34:31 2021 -0500

<span style='display:block; white-space:pre;color:#404040;'>    gtk3-devel: add patch to improve Quartz drawing performance
</span>---
 gnome/gtk3-devel/Portfile                          |  4 +-
 .../files/patch-gdkwindow-quartz-performance.diff  | 90 ++++++++++++++++++++++
 2 files changed, 93 insertions(+), 1 deletion(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/gnome/gtk3-devel/Portfile b/gnome/gtk3-devel/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index cc76a8cc741..c75059959f3 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/gnome/gtk3-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gnome/gtk3-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11,7 +11,7 @@ name                gtk3-devel
</span> conflicts           gtk3
 set my_name         gtk3
 version             3.24.30
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            1
</span> epoch               0
 
 set proj_name       gtk+
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -252,6 +252,8 @@ variant quartz conflicts x11 {
</span>     require_active_variants path:lib/pkgconfig/cairo.pc:cairo quartz
     require_active_variants path:lib/pkgconfig/pango.pc:pango quartz
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append       patch-gdkwindow-quartz-performance.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     configure.args-append   --enable-quartz-backend
 }
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/gnome/gtk3-devel/files/patch-gdkwindow-quartz-performance.diff b/gnome/gtk3-devel/files/patch-gdkwindow-quartz-performance.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..b048c87933c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gnome/gtk3-devel/files/patch-gdkwindow-quartz-performance.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,90 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 243672d3e226af8f901353004cb8d063c8c3f21a Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: John Ralls <jralls@ceridwen.us>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 17 Oct 2021 14:53:11 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Use cairo_image_surfaces for most drawing.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Paint to the window's CGContextRef surface only in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+gdk_window_end_paint_internal.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3714
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gdk/quartz/gdkwindow-quartz.c | 20 ++++++++++++++++----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gdk/quartz/gdkwindow-quartz.h |  2 ++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 18 insertions(+), 4 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/gdk/quartz/gdkwindow-quartz.c b/gdk/quartz/gdkwindow-quartz.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a5c5c31945..a1ab1e2f6d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gdk/quartz/gdkwindow-quartz.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gdk/quartz/gdkwindow-quartz.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -296,11 +296,12 @@ gdk_quartz_create_cairo_surface (GdkWindowImplQuartz *impl,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            int                  width,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            int                  height)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  CGContextRef cg_context;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  CGContextRef cg_context = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   GdkQuartzCairoSurfaceData *surface_data;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cairo_surface_t *surface;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  cg_context = gdk_quartz_window_get_context (impl, TRUE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (impl->use_cg_context)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    cg_context = gdk_quartz_window_get_context (impl, TRUE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   surface_data = g_new (GdkQuartzCairoSurfaceData, 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   surface_data->window_impl = impl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -310,7 +311,7 @@ gdk_quartz_create_cairo_surface (GdkWindowImplQuartz *impl,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     surface = cairo_quartz_surface_create_for_cg_context (cg_context,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                                           width, height);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    surface = cairo_quartz_surface_create(CAIRO_FORMAT_ARGB32, width, height);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cairo_surface_set_user_data (surface, &gdk_quartz_cairo_key,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                surface_data,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -348,12 +349,22 @@ static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gdk_window_impl_quartz_init (GdkWindowImplQuartz *impl)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   impl->type_hint = GDK_WINDOW_TYPE_HINT_NORMAL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  impl->use_cg_context = FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static gboolean
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gdk_window_impl_quartz_begin_paint (GdkWindow *window)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GdkWindowImplQuartz *impl = GDK_WINDOW_IMPL_QUARTZ (window->impl);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  impl->use_cg_context = FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return TRUE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gdk_window_impl_quartz_end_paint (GdkWindow *window)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GdkWindowImplQuartz *impl = GDK_WINDOW_IMPL_QUARTZ (window->impl);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  impl->use_cg_context = TRUE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3084,6 +3095,7 @@ gdk_window_impl_quartz_class_init (GdkWindowImplQuartzClass *klass)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   impl_class->get_shape = gdk_quartz_window_get_shape;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   impl_class->get_input_shape = gdk_quartz_window_get_input_shape;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   impl_class->begin_paint = gdk_window_impl_quartz_begin_paint;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  impl_class->end_paint = gdk_window_impl_quartz_end_paint;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   impl_class->get_scale_factor = gdk_quartz_window_get_scale_factor;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   impl_class->focus = gdk_quartz_window_focus;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/gdk/quartz/gdkwindow-quartz.h b/gdk/quartz/gdkwindow-quartz.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1175f072e4..c085d5cc59 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gdk/quartz/gdkwindow-quartz.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gdk/quartz/gdkwindow-quartz.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -64,6 +64,8 @@ struct _GdkWindowImplQuartz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   gint shadow_top;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   gint shadow_max;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  gboolean use_cg_context;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct _GdkWindowImplQuartzClass
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+GitLab
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>

</pre>