Skip to content
Snippets Groups Projects
Commit 0f1d3393 authored by sapier's avatar sapier
Browse files

Implement X11 dpi autodetection

parent efdb9da6
No related branches found
No related tags found
No related merge requests found
......@@ -224,7 +224,7 @@
#directional_colored_fog = true
# Delay showing tooltips, stated in milliseconds
#tooltip_show_delay = 400
# Adjust dpi configuration to your screen (Desktop only) e.g. for 4k screens
# Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k screens
#screen_dpi = 72
# Default timeout for cURL, stated in milliseconds.
# Only has an effect if compiled with cURL.
......
......@@ -570,17 +570,48 @@ void setXorgClassHint(const video::SExposedVideoData &video_data,
}
#ifndef SERVER
v2u32 getWindowSize() {
v2u32 getWindowSize()
{
return device->getVideoDriver()->getScreenSize();
}
#ifndef __ANDROID__
#ifdef XORG_USED
float getDisplayDensity()
{
const char* current_display = getenv("DISPLAY");
if (current_display != NULL) {
Display * x11display = XOpenDisplay(current_display);
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);
XCloseDisplay(x11display);
return (std::max(dpi_height,dpi_width) / 96.0);
}
}
float getDisplayDensity() {
/* return manually specified dpi */
return g_settings->getFloat("screen_dpi")/96.0;
}
v2u32 getDisplaySize() {
#else
float getDisplayDensity()
{
return g_settings->getFloat("screen_dpi")/96.0;
}
#endif
#ifndef __ANDROID__
v2u32 getDisplaySize()
{
IrrlichtDevice *nulldevice = createDevice(video::EDT_NULL);
core::dimension2d<u32> deskres = nulldevice->getVideoModeList()->getDesktopResolution();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment