aboutsummaryrefslogtreecommitdiff
path: root/window_texture.h
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2023-07-29 05:52:52 +0200
committerdec05eba <dec05eba@protonmail.com>2023-07-29 05:52:52 +0200
commita3cc09dc7c551214211c0f184e4207f595788e76 (patch)
tree2e20f57f35425d8ed30ae8655d1b81e29b8f803a /window_texture.h
Initial commit, should work
Diffstat (limited to 'window_texture.h')
-rw-r--r--window_texture.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/window_texture.h b/window_texture.h
new file mode 100644
index 0000000..7d3f899
--- /dev/null
+++ b/window_texture.h
@@ -0,0 +1,39 @@
+#ifndef WINDOW_TEXTURE_H
+#define WINDOW_TEXTURE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define EGL_EGLEXT_PROTOTYPES
+#include <GL/gl.h>
+#include <EGL/egl.h>
+#include <EGL/eglext.h>
+#include <X11/Xlib.h>
+
+typedef struct {
+ Display *display;
+ EGLDisplay egl_display;
+ Window window;
+ Pixmap pixmap;
+ GLuint texture_id;
+ int redirected;
+} WindowTexture;
+
+/* Returns 0 on success */
+int window_texture_init(WindowTexture *window_texture, Display *display, EGLDisplay egl_display, Window window);
+void window_texture_deinit(WindowTexture *self);
+
+/*
+ This should ONLY be called when the target window is resized.
+ Returns 0 on success.
+*/
+int window_texture_on_resize(WindowTexture *self);
+
+GLuint window_texture_get_opengl_texture_id(WindowTexture *self);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* WINDOW_TEXTURE_H */