From 4236ea42a15aaebeb6d1a872f78fafb2b1804c5a Mon Sep 17 00:00:00 2001 From: Mitja Felicijan Date: Tue, 18 Mar 2025 04:10:10 +0100 Subject: Added X11 basic window in D language --- d-x11/main.d | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 d-x11/main.d (limited to 'd-x11/main.d') diff --git a/d-x11/main.d b/d-x11/main.d new file mode 100644 index 0000000..5f21f25 --- /dev/null +++ b/d-x11/main.d @@ -0,0 +1,40 @@ +import core.sys.posix.unistd; +import core.stdc.stdlib; + +extern(C) { + struct Display; + struct Screen; + alias Window = ulong; + + Display* XOpenDisplay(const char*); + Window XDefaultRootWindow(Display*); + Window XCreateSimpleWindow(Display*, Window, int, int, uint, uint, uint, ulong, ulong); + int XMapWindow(Display*, Window); + int XFlush(Display*); + int XCloseDisplay(Display*); +} + +void main() { + Display* mainDisplay = XOpenDisplay(null); + if (mainDisplay is null) { + exit(1); + } + + Window rootWindow = XDefaultRootWindow(mainDisplay); + + Window mainWindow = XCreateSimpleWindow( + mainDisplay, rootWindow, + 0, 0, // x, y position + 800, 600, // width, height + 0, // border width + 0, // border color (ignored) + 0xFF0000 // background color (red) + ); + + XMapWindow(mainDisplay, mainWindow); + XFlush(mainDisplay); + + while(true) { + sleep(1); + } +} -- cgit v1.2.3