andros
4c35e112a4
Add native Wayland support to the OpenGL backend via PGTK
...
Third platform binding, alongside NS/Metal (macOS) and X11/GL: PGTK
frames reuse gfxterm.c (drawing policy) and glterm.c (EGL/GLES driver)
with new window plumbing only. Works both under native Wayland and
under X11 via GDK.
- configure: --with-gpu now also accepts --with-pgtk builds; detects
wayland-egl (HAVE_WAYLAND_EGL).
- EGL surface glue for three cases: X11 (Xlib window), PGTK/X11 (GDK
XID via dlsym, no gdkx.h), PGTK/Wayland (wl_egl_window on a desync
wl_subsurface anchored at the edit area, so GDK's own commits and the
GTK menu bar never conflict with GPU frames).
- Wayland present timing by wl_surface.frame callback; HiDPI scale fed
from the GDK scale factor; double surfaceless fallback when the
native EGL display has no usable configs.
- Toolkit scroll bars: native windows on X11 sessions (the server
clips presents under them); on Wayland an alpha-bearing EGL config
plus transparent holes punched at the bar rects let GTK's scroll
bars show through the subsurface.
- Glyph atlas rasterized with FreeType flags derived from the cairo
scaled font options, matching GTK's slight hinting on PGTK while
keeping X11 output unchanged.
- gpu-transition-active-p on both backends (GL and Metal): reports a
running buffer-switch cross-fade without advancing it.
- pgtk-win.el: auto-enable the backend on startup, honoring
EMACS_GPU_DISABLE, like x-win.el and ns-win.el.
Verified with the emacs-gpu-qa layer-1 suite: 16/16 PASS on PGTK+X11
(Xvfb), 16/16 PASS on native Wayland (sway headless), 16/16 PASS
unchanged on plain X11, plus an 18/18 functional smoke on Wayland
(transitions, cursor effects, pump, GStreamer video, captures). All
under llvmpipe in containers: not yet validated on real Wayland
hardware. macOS (Metal) remains the primary, fully supported
platform.
2026-07-24 18:39:41 +02:00
..
2026-05-17 10:57:53 +03:00
2026-06-27 12:48:00 +03:00
2026-02-13 23:48:32 -05:00
2026-07-13 15:13:51 +03:00
2026-03-04 14:43:05 +00:00
2026-06-01 23:09:55 -07:00
2026-03-10 10:48:22 -04:00
2026-06-04 14:20:06 -04:00
2026-01-03 13:22:01 +02:00
2026-06-05 12:44:25 -04:00
2026-04-23 11:31:10 +03:00
2026-04-23 11:31:10 +03:00
2026-06-06 11:40:53 +03:00
2026-04-10 11:04:29 -07:00
2026-07-20 18:38:01 +03:00
2026-04-27 21:35:44 +02:00
2026-05-09 12:50:23 +02:00
2026-07-05 10:00:22 -04:00
2026-05-31 12:29:50 +03:00
2026-07-21 14:21:53 +03:00
2026-07-24 18:39:41 +02:00
2026-07-18 15:58:51 +02:00
2026-07-19 09:33:26 +03:00
2026-03-16 18:23:37 +01:00
2026-07-22 21:53:52 +01:00
2026-01-01 12:54:34 +00:00
2026-02-05 10:56:51 +02:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-02-22 17:02:34 +01:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-03-26 15:05:22 +01:00
2026-05-20 10:10:30 +02:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-02-12 19:15:39 +01:00
2026-04-08 14:56:02 +00:00
2026-07-03 10:42:22 +01:00
2026-03-10 10:48:22 -04:00
2026-01-01 12:54:34 +00:00
2026-01-13 20:49:03 +02:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-06-16 09:57:48 -04:00
2026-05-02 21:46:31 +02:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-05-07 17:38:20 +01:00
2026-01-01 12:54:34 +00:00
2026-06-22 18:57:52 +03:00
2026-01-01 12:54:34 +00:00
2026-02-21 09:35:30 +00:00
2026-03-22 10:58:40 -04:00
2026-01-01 12:54:34 +00:00
2026-03-17 12:40:22 -04:00
2026-01-01 12:54:34 +00:00
2026-03-26 15:19:56 +01:00
2026-01-01 12:54:34 +00:00
2026-06-21 20:19:19 +02:00
2026-06-21 20:19:19 +02:00
2026-06-21 20:19:19 +02:00
2026-01-01 12:54:34 +00:00
2026-05-23 14:12:19 +03:00
2026-03-26 15:19:56 +01:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-02-07 11:33:14 +01:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-03-10 10:48:21 -04:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-17 15:32:15 +02:00
2026-02-22 18:48:57 -05:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-06-25 11:26:27 +03:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-04-01 16:48:09 +02:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-03-10 10:48:22 -04:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-05-01 11:23:09 +02:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-05-05 11:21:57 +03:00
2026-04-08 15:19:06 -04:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-04-27 21:38:00 +02:00
2026-04-29 22:45:51 -07:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-04-27 21:11:52 +02:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-06-18 16:41:23 +02:00
2026-03-26 15:19:56 +01:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-07-24 11:38:00 +02:00
2026-01-01 12:54:34 +00:00
2026-06-10 10:32:40 +01:00
2026-01-01 12:54:34 +00:00
2026-02-03 05:14:59 +02:00
2026-06-15 10:41:00 +02:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-05-14 17:11:43 +02:00
2026-01-01 12:54:34 +00:00
2026-01-14 16:52:09 -05:00
2026-03-19 17:46:57 +02:00
2026-04-29 10:12:41 +01:00
2026-01-01 12:54:34 +00:00
2026-01-15 11:12:12 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-24 19:37:30 +01:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-17 15:32:15 +02:00
2026-04-25 09:56:25 -04:00
2026-01-01 12:54:34 +00:00
2026-05-22 14:46:13 +03:00
2026-01-01 12:54:34 +00:00
2026-03-10 10:48:22 -04:00
2026-01-01 12:54:34 +00:00
2026-03-10 10:48:21 -04:00
2026-02-14 18:56:44 +01:00
2026-06-23 13:22:34 +01:00
2026-03-07 10:55:23 +02:00
2026-03-27 08:54:14 -04:00
2026-07-23 12:27:40 +01:00
2026-02-20 23:37:48 -05:00
2026-03-13 15:35:05 +01:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-03-10 10:48:21 -04:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-18 14:36:51 +02:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-03-26 15:19:56 +01:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-07-10 18:56:39 +03:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-07-18 11:49:47 +03:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-07-24 11:37:59 +02:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-04-04 13:44:08 +01:00
2026-06-05 12:43:43 -04:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-31 11:01:02 +02:00
2026-03-10 10:48:22 -04:00
2026-04-03 15:44:38 +03:00
2026-04-25 09:01:48 +03:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-03-08 14:55:23 +00:00
2026-01-01 12:54:34 +00:00
2026-04-26 12:18:44 -04:00
2026-01-01 12:54:34 +00:00
2026-01-04 18:56:19 -05:00
2026-05-27 18:37:04 +03:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-06-05 10:17:27 +01:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-03-10 10:48:22 -04:00
2026-01-12 09:59:40 +00:00
2026-01-01 12:54:34 +00:00
2026-01-17 15:32:15 +02:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-05-05 19:45:28 +03:00
2026-05-02 12:35:48 +03:00
2026-01-01 12:54:34 +00:00
2026-01-07 10:08:45 +01:00
2026-05-29 10:57:39 +01:00
2026-07-13 15:34:11 +03:00
2026-02-26 11:07:57 +02:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-02-22 16:38:38 -08:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-06-29 20:40:52 +02:00
2026-01-01 12:54:34 +00:00
2026-06-25 09:11:18 +03:00
2026-01-01 12:54:34 +00:00
2026-02-22 10:35:23 +01:00
2026-06-23 10:16:00 +01:00
2026-01-01 12:54:34 +00:00
2026-04-21 19:30:03 +03:00
2026-04-14 20:14:15 +03:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-03-10 10:48:22 -04:00
2026-01-01 12:54:34 +00:00
2026-05-09 15:33:21 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-04-07 09:28:32 -07:00
2026-01-31 12:12:21 +02:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-03-26 11:20:53 +02:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-05-07 17:35:17 +02:00
2026-01-01 12:54:34 +00:00
2026-05-23 22:10:34 -07:00
2026-07-05 23:52:37 -07:00
2026-06-05 10:17:27 +01:00
2026-02-16 10:47:29 +01:00
2026-03-10 10:48:21 -04:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-05-30 13:17:00 +03:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-03-23 21:11:38 +00:00
2026-01-01 12:54:34 +00:00
2026-05-28 12:29:54 +01:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-07-15 09:35:33 +02:00
2026-07-07 18:47:44 +02:00
2026-06-20 11:25:04 +03:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-01-01 12:54:34 +00:00
2026-03-26 15:19:56 +01:00
2026-06-27 14:02:51 +03:00
2026-01-17 15:32:15 +02:00