[HTML5] Fix broken layout on load in HiDPI screens

This was caused by the devicePixelRatio being applied twice, once by the
HTML code, once by the OS code.
More specifically, OS.get_window_size() would return the canvas element
size, while OS.set_window_size() would set the element size to the
specified value times the devicePixelRatio.
Calling OS.set_window_size(OS.get_window_size()) would reapply the
devicePixelRatio every time.
This commit changes the behaviour so that OS.set_window_size() do not
apply the devicePixelRatio to the canvas element size, by it divides the
CSS size instead.
This commit is contained in:
Fabio Alessandrelli 2020-11-30 10:54:51 +01:00
parent 8d93c723f1
commit 0f40391924

View file

@ -174,8 +174,8 @@ void OS_JavaScript::set_window_size(const Size2 p_size) {
window_maximized = false; window_maximized = false;
} }
double scale = godot_js_display_pixel_ratio_get(); double scale = godot_js_display_pixel_ratio_get();
emscripten_set_canvas_element_size(canvas_id, p_size.x * scale, p_size.y * scale); emscripten_set_canvas_element_size(canvas_id, p_size.x, p_size.y);
emscripten_set_element_css_size(canvas_id, p_size.x, p_size.y); emscripten_set_element_css_size(canvas_id, p_size.x / scale, p_size.y / scale);
} }
} }