aboutsummaryrefslogtreecommitdiff
path: root/demos/xcb/start
diff options
context:
space:
mode:
Diffstat (limited to 'demos/xcb/start')
-rw-r--r--demos/xcb/start/CMakeLists.txt2
-rw-r--r--demos/xcb/start/main.cpp23
2 files changed, 25 insertions, 0 deletions
diff --git a/demos/xcb/start/CMakeLists.txt b/demos/xcb/start/CMakeLists.txt
new file mode 100644
index 00000000..25e37be9
--- /dev/null
+++ b/demos/xcb/start/CMakeLists.txt
@@ -0,0 +1,2 @@
+add_executable(demo-xcb-start main.cpp)
+target_link_libraries(demo-xcb-start PUBLIC demo-xcb-base)
diff --git a/demos/xcb/start/main.cpp b/demos/xcb/start/main.cpp
new file mode 100644
index 00000000..c4e3761e
--- /dev/null
+++ b/demos/xcb/start/main.cpp
@@ -0,0 +1,23 @@
+#include <unistd.h>
+#include <xcb/xcb.h>
+
+int main() {
+ int screen_num;
+ xcb_connection_t* connection = xcb_connect(NULL, &screen_num);
+ const xcb_setup_t* setup = xcb_get_setup(connection);
+ xcb_screen_iterator_t iter = xcb_setup_roots_iterator(setup);
+ xcb_screen_t* screen = iter.data;
+
+ xcb_window_t window = xcb_generate_id(connection);
+ xcb_create_window(connection, XCB_COPY_FROM_PARENT, window, screen->root, 0,
+ 0, 150, 150, 10, XCB_WINDOW_CLASS_INPUT_OUTPUT,
+ screen->root_visual, 0, NULL);
+ xcb_map_window(connection, window);
+ xcb_flush(connection);
+
+ pause();
+
+ xcb_disconnect(connection);
+
+ return 0;
+}