[gtk/wip/on-the-fence-about-damage: 2/5] wip! gdkdisplay-x11: Add support for the damage extension
- From: Ray Strode <halfline src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/on-the-fence-about-damage: 2/5] wip! gdkdisplay-x11: Add support for the damage extension
- Date: Fri, 29 May 2020 13:27:44 +0000 (UTC)
commit 93f1e72b9470beab37d7fcc4efba70e32f98dd96
Author: Ray Strode <rstrode redhat com>
Date: Wed May 27 14:53:10 2020 -0400
wip! gdkdisplay-x11: Add support for the damage extension
The GL code needs to watch for its own damage to know when
it's okay to proceed to after-paint.
config.h.meson | 3 +++
gdk/x11/gdkdisplay-x11.c | 8 ++++++++
gdk/x11/gdkdisplay-x11.h | 4 ++++
gdk/x11/meson.build | 1 +
meson.build | 5 +++++
5 files changed, 21 insertions(+)
---
diff --git a/config.h.meson b/config.h.meson
index 06705aefc7..2a5bc1be8a 100644
--- a/config.h.meson
+++ b/config.h.meson
@@ -146,6 +146,9 @@
/* Have the Xcursor library */
#mesondefine HAVE_XCURSOR
+/* Have the XDAMAGE X extension */
+#mesondefine HAVE_XDAMAGE
+
/* Have the XFIXES X extension */
#mesondefine HAVE_XFIXES
diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c
index f172f94553..86d0360820 100644
--- a/gdk/x11/gdkdisplay-x11.c
+++ b/gdk/x11/gdkdisplay-x11.c
@@ -1603,6 +1603,14 @@ gdk_x11_display_open (const gchar *display_name)
}
#endif
+ display_x11->have_damage = FALSE;
+#ifdef HAVE_XDAMAGE
+ if (XDamageQueryExtension (display_x11->xdisplay,
+ &display_x11->damage_event_base,
+ &display_x11->damage_error_base))
+ display_x11->have_damage = TRUE;
+#endif
+
display->clipboard = gdk_x11_clipboard_new (display, "CLIPBOARD");
display->primary_clipboard = gdk_x11_clipboard_new (display, "PRIMARY");
diff --git a/gdk/x11/gdkdisplay-x11.h b/gdk/x11/gdkdisplay-x11.h
index 272646b65f..3e4fb24d63 100644
--- a/gdk/x11/gdkdisplay-x11.h
+++ b/gdk/x11/gdkdisplay-x11.h
@@ -149,6 +149,10 @@ struct _GdkX11Display
guint has_glx_multisample : 1;
guint has_glx_visual_rating : 1;
guint has_glx_create_es2_context : 1;
+
+ gint damage_event_base;
+ gint damage_error_base;
+ guint have_damage;
};
struct _GdkX11DisplayClass
diff --git a/gdk/x11/meson.build b/gdk/x11/meson.build
index c3f2c54b73..f846450c3b 100644
--- a/gdk/x11/meson.build
+++ b/gdk/x11/meson.build
@@ -65,6 +65,7 @@ gdk_x11_deps = [
xext_dep,
x11_dep,
xcursor_dep,
+ xdamage_dep,
xfixes_dep,
xcomposite_dep,
xrandr_dep,
diff --git a/meson.build b/meson.build
index 146c54b23d..ff72ffa034 100644
--- a/meson.build
+++ b/meson.build
@@ -507,6 +507,7 @@ if x11_enabled
xi_dep = dependency('xi')
xext_dep = dependency('xext')
xcursor_dep = dependency('xcursor', required: false)
+ xdamage_dep = dependency('xdamage', required: false)
xfixes_dep = dependency('xfixes', required: false)
xcomposite_dep = dependency('xcomposite', required: false)
fontconfig_dep = dependency('fontconfig')
@@ -519,6 +520,9 @@ if x11_enabled
if xcursor_dep.found()
x11_pkgs += ['xcursor']
endif
+ if xdamage_dep.found()
+ x11_pkgs += ['xdamage']
+ endif
if xfixes_dep.found()
x11_pkgs += ['xfixes']
endif
@@ -529,6 +533,7 @@ if x11_enabled
atk_pkgs += ['atk-bridge-2.0']
cdata.set('HAVE_XCURSOR', xcursor_dep.found())
+ cdata.set('HAVE_XDAMAGE', xdamage_dep.found())
cdata.set('HAVE_XCOMPOSITE', xcomposite_dep.found())
cdata.set('HAVE_XFIXES', xfixes_dep.found())
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]