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,26 +670,46 @@ CreateWindow(PlatformWindow* window, string name, u32 width, u32 height, XVisual
if(visual_info) 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; 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) if(window.window == None)
{ {
@ -697,11 +717,6 @@ CreateWindow(PlatformWindow* window, string name, u32 width, u32 height, XVisual
return false; return false;
} }
if(visual_info)
{
XFree(visual_info);
}
i64 event_mask = KeyPressMask | i64 event_mask = KeyPressMask |
KeyReleaseMask | KeyReleaseMask |
ExposureMask | ExposureMask |