mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Fix crash if display resolution is not set (#7950)
On my wayland / gnome3 setup DisplayHeightMM() returns 0. This resulted in a misleading startup error suggesting to fix my font paths.
This commit is contained in:
parent
f0dca284b3
commit
b02effdab9
2 changed files with 14 additions and 12 deletions
|
@ -624,20 +624,17 @@ static float calcDisplayDensity()
|
|||
|
||||
if (x11display != NULL) {
|
||||
/* try x direct */
|
||||
float dpi_height = floor(
|
||||
DisplayHeight(x11display, 0) /
|
||||
(DisplayHeightMM(x11display, 0) *
|
||||
0.039370) +
|
||||
0.5);
|
||||
float dpi_width = floor(
|
||||
DisplayWidth(x11display, 0) /
|
||||
(DisplayWidthMM(x11display, 0) *
|
||||
0.039370) +
|
||||
0.5);
|
||||
|
||||
int dh = DisplayHeight(x11display, 0);
|
||||
int dw = DisplayWidth(x11display, 0);
|
||||
int dh_mm = DisplayHeightMM(x11display, 0);
|
||||
int dw_mm = DisplayWidthMM(x11display, 0);
|
||||
XCloseDisplay(x11display);
|
||||
|
||||
return std::max(dpi_height, dpi_width) / 96.0;
|
||||
if (dh_mm != 0 && dw_mm != 0) {
|
||||
float dpi_height = floor(dh / (dh_mm * 0.039370) + 0.5);
|
||||
float dpi_width = floor(dw / (dw_mm * 0.039370) + 0.5);
|
||||
return std::max(dpi_height, dpi_width) / 96.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue