aboutsummaryrefslogtreecommitdiff
path: root/src/window_texture.h
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2024-01-11 20:18:34 +0100
committerdec05eba <dec05eba@protonmail.com>2024-01-11 20:18:34 +0100
commit2b9389ae016c8048a16ba033f27ca5c256985e4d (patch)
tree56665698e299fe9a5754be2607719369059e5c53 /src/window_texture.h
parentf3d89d03acaad7ebd750d9a39e4ca8c589de4782 (diff)
Display windows with minimal delay, locked to 60 fps
Diffstat (limited to 'src/window_texture.h')
-rw-r--r--src/window_texture.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/window_texture.h b/src/window_texture.h
new file mode 100644
index 0000000..39826bc
--- /dev/null
+++ b/src/window_texture.h
@@ -0,0 +1,32 @@
+#ifndef NGXC_WINDOW_TEXTURE_H
+#define NGXC_WINDOW_TEXTURE_H
+
+#define GLX_GLXEXT_PROTOTYPES
+#include <GL/glx.h>
+#include <GL/glxext.h>
+#include <X11/Xlib.h>
+
+typedef struct {
+ Display *display;
+ Window window;
+ Pixmap pixmap;
+ GLXPixmap glx_pixmap;
+ GLuint texture_id;
+ int redirected;
+ int width;
+ int height;
+} WindowTexture;
+
+/* Returns 0 on success */
+int window_texture_init(WindowTexture *window_texture, Display *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);
+
+#endif /* NGXC_WINDOW_TEXTURE_H */