summaryrefslogtreecommitdiff
path: root/EGL/x11/yagl_x11_drawable.h
diff options
context:
space:
mode:
Diffstat (limited to 'EGL/x11/yagl_x11_drawable.h')
-rw-r--r--EGL/x11/yagl_x11_drawable.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/EGL/x11/yagl_x11_drawable.h b/EGL/x11/yagl_x11_drawable.h
new file mode 100644
index 0000000..07862a8
--- /dev/null
+++ b/EGL/x11/yagl_x11_drawable.h
@@ -0,0 +1,47 @@
+#ifndef _YAGL_X11_DRAWABLE_H_
+#define _YAGL_X11_DRAWABLE_H_
+
+#include "yagl_export.h"
+#include "yagl_native_drawable.h"
+#include <X11/Xlib.h>
+#include <pthread.h>
+
+#define YAGL_X11_DRAWABLE(os_drawable) ((Drawable)(os_drawable))
+
+struct yagl_x11_drawable
+{
+ struct yagl_native_drawable base;
+
+ int own_drawable;
+
+ int is_pixmap;
+
+ pthread_mutex_t mtx;
+
+ /*
+ * Allocated on first request.
+ */
+ GC x_gc;
+
+ /*
+ * For pixmaps only, filled on first request.
+ * @{
+ */
+ int is_geom_acquired;
+ uint32_t width;
+ uint32_t height;
+ uint32_t depth;
+ /*
+ * @}
+ */
+};
+
+struct yagl_native_drawable
+ *yagl_x11_drawable_create(struct yagl_native_display *dpy,
+ yagl_os_drawable os_drawable,
+ int own_drawable,
+ int is_pixmap);
+
+GC yagl_x11_drawable_get_gc(struct yagl_x11_drawable *drawable);
+
+#endif