fix non opengl xlib init

This commit is contained in:
Matthew 2025-11-30 16:36:33 +11:00
parent a221c1d5ce
commit 10b9571c01

View File

@ -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*)&copy),
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*)&copy),
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 |