fix(linux): fix issues with rendering and touchscreens when displays are scaled (#4607)
This commit is contained in:
@@ -1993,6 +1993,18 @@ namespace video {
|
||||
|
||||
auto scalar = std::fminf(wt / wd, ht / hd);
|
||||
|
||||
// we initialize scalar_tpcoords and logical dimensions to default values in case they are not set (non-KMS)
|
||||
float scalar_tpcoords = 1.0f;
|
||||
int display_env_logical_width = 0;
|
||||
int display_env_logical_height = 0;
|
||||
if (display->logical_width && display->logical_height && display->env_logical_width && display->env_logical_height) {
|
||||
float lwd = display->logical_width;
|
||||
float lhd = display->logical_height;
|
||||
scalar_tpcoords = std::fminf(wd / lwd, hd / lhd);
|
||||
display_env_logical_width = display->env_logical_width;
|
||||
display_env_logical_height = display->env_logical_height;
|
||||
}
|
||||
|
||||
auto w2 = scalar * wd;
|
||||
auto h2 = scalar * hd;
|
||||
|
||||
@@ -2011,6 +2023,9 @@ namespace video {
|
||||
offsetX,
|
||||
offsetY,
|
||||
1.0f / scalar,
|
||||
scalar_tpcoords,
|
||||
display_env_logical_width,
|
||||
display_env_logical_height
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user