Fall back to cairo image backend and shm surface if we don't have cairo gl
diff --git a/clients/window.h b/clients/window.h
index 343d536..b5e3c37 100644
--- a/clients/window.h
+++ b/clients/window.h
@@ -138,6 +138,10 @@
 void
 window_move(struct window *window, int32_t x, int32_t y);
 
+void
+window_damage(struct window *window, int32_t x, int32_t y,
+	      int32_t width, int32_t height);
+
 cairo_surface_t *
 window_get_surface(struct window *window);
 
@@ -149,6 +153,14 @@
 void
 window_flush(struct window *window);
 
+enum window_buffer_type {
+	WINDOW_BUFFER_TYPE_DRM,
+	WINDOW_BUFFER_TYPE_SHM,
+};
+
+void
+window_set_buffer_type(struct window *window, enum window_buffer_type type);
+
 void
 window_set_fullscreen(struct window *window, int fullscreen);