<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>