From 10b9571c0123da0c6c8f5288fb9b877819265820 Mon Sep 17 00:00:00 2001 From: Matthew Date: Sun, 30 Nov 2025 16:36:33 +1100 Subject: [PATCH] fix non opengl xlib init --- platform.d | 61 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 38 insertions(+), 23 deletions(-) diff --git a/platform.d b/platform.d index 44e9847..0126383 100644 --- a/platform.d +++ b/platform.d @@ -670,37 +670,52 @@ CreateWindow(PlatformWindow* window, string name, u32 width, u32 height, XVisual if(visual_info) { - attrs.colormap = XCreateColormap(window.display, window.root_window, visual_info.visual, AllocNone); + XSetWindowAttributes attrs = { + background_pixmap: None, + background_pixel: XBlackPixel(window.display, window.screen_id), + colormap: XCreateColormap(window.display, window.root_window, visual_info.visual, AllocNone), + }; + value_mask |= CWColormap; + auto copy = CopyFromParent; + + window.window = XCreateWindow( + window.display, + window.root_window, + 0, + 0, + width, + height, + 0, + (visual_info ? visual_info.depth : cast(i32)copy), + InputOutput, + (visual_info ? visual_info.visual : cast(Visual*)©), + value_mask, + &attrs + ); + + XFree(visual_info); + } + else + { + window.window = XCreateSimpleWindow( + window.display, + window.root_window, + 0, + 0, + width, + height, + 0, + XBlackPixel(window.display, window.screen_id), + XBlackPixel(window.display, window.screen_id) + ); } - - auto copy = CopyFromParent; - - window.window = XCreateWindow( - window.display, - window.root_window, - 0, - 0, - width, - height, - 0, - (visual_info ? visual_info.depth : cast(i32)copy), - InputOutput, - (visual_info ? visual_info.visual : cast(Visual*)©), - value_mask, - &attrs - ); if(window.window == None) { WINDOW_ERR_MSG = "Failed to create X11 window"; return false; } - - if(visual_info) - { - XFree(visual_info); - } i64 event_mask = KeyPressMask | KeyReleaseMask |