diff options
author | Keith Packard <keithp@keithp.com> | 2013-07-26 18:46:45 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2020-03-29 13:47:09 -0700 |
commit | 3f2af30bd94ea3012bc1d1bde82f7c9a1c4dea27 (patch) | |
tree | 7373ec89b489d2edfe0c8c1a329cac12c932ea1e /EyesP.h | |
parent | 46dac260d384e034aaabd576d9b818d39f4821c6 (diff) |
Add support for the 'Present' extension. [v3]
This makes updating the eyes nicely vblank synchronized.
v2:
Ensure extensions exist before calling query_version
These calls add calls to xcb_get_extension_data before calling
query_version calls, as those calls will mark the connection
with an error if made against an X server without the
extension present.
Suggested-by: Uli Schlachter <psychon@znc.in>
v3:
check the 'present' field in the return from
xcb_get_extension_data; the xcb_get_extension_data call will
always succeed (save for out of memory), the only way to tell
if the extension is supported in the target X server is to
test the 'present' field in the query extension reply value.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'EyesP.h')
-rw-r--r-- | EyesP.h | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -8,6 +8,13 @@ #include <X11/extensions/Xrender.h> #endif #include "transform.h" +#ifdef PRESENT +#include <X11/Xlib-xcb.h> +#include <xcb/xcb.h> +#include <xcb/present.h> +#include <xcb/xfixes.h> +#include <xcb/damage.h> +#endif #define SEG_BUFF_SIZE 128 @@ -31,9 +38,17 @@ typedef struct { Picture picture; Picture fill[PART_SHAPE]; #endif +#ifdef PRESENT + Pixmap back_buffer; + xcb_damage_damage_t back_damage; + xcb_xfixes_region_t back_region; + Boolean present; +#endif Boolean distance; } EyesPart; +#define xt_xcb(w) (XGetXCBConnection(XtDisplay(w))) + /* Full instance record declaration */ typedef struct _EyesRec { CorePart core; |