attempt proper gui scaling shit for mobile

This commit is contained in:
RandomityGuy 2022-08-02 00:29:36 +05:30
parent 78f127bd14
commit d6c599acbd
3 changed files with 9 additions and 5 deletions

View file

@ -29,7 +29,7 @@ class Main extends hxd.App {
hl.UI.closeConsole(); hl.UI.closeConsole();
#end #end
#if js #if js
var zoomRatio = js.Browser.window.devicePixelRatio; var zoomRatio = js.Browser.window.innerHeight * js.Browser.window.devicePixelRatio / 768; // js.Browser.window.devicePixelRatio;
s2d.scaleMode = Zoom(zoomRatio); s2d.scaleMode = Zoom(zoomRatio);
#end #end
ResourceLoader.init(s2d, () -> { ResourceLoader.init(s2d, () -> {

View file

@ -88,6 +88,8 @@ class Settings {
public static var uiScale = 1.0; public static var uiScale = 1.0;
public static var zoomRatio = 1.0;
public static function applySettings() { public static function applySettings() {
Window.getInstance().resize(optionsSettings.screenWidth, optionsSettings.screenHeight); Window.getInstance().resize(optionsSettings.screenWidth, optionsSettings.screenHeight);
Window.getInstance().displayMode = optionsSettings.isFullScreen ? FullscreenResize : Windowed; Window.getInstance().displayMode = optionsSettings.isFullScreen ? FullscreenResize : Windowed;
@ -203,15 +205,17 @@ class Settings {
var wnd = Window.getInstance(); var wnd = Window.getInstance();
var zoomRatio = 1.0; var zoomRatio = 1.0;
#if js #if js
zoomRatio = js.Browser.window.devicePixelRatio; zoomRatio = js.Browser.window.innerHeight * js.Browser.window.devicePixelRatio / 600; // 768 / js.Browser.window.innerHeight; // js.Browser.window.innerHeight * js.Browser.window.devicePixelRatio / 768;
trace("zoomRatio: " + zoomRatio);
Settings.zoomRatio = zoomRatio;
#end #end
#if hl #if hl
Settings.optionsSettings.screenWidth = cast wnd.width / zoomRatio; Settings.optionsSettings.screenWidth = cast wnd.width / zoomRatio;
Settings.optionsSettings.screenHeight = cast wnd.height / zoomRatio; Settings.optionsSettings.screenHeight = cast wnd.height / zoomRatio;
#end #end
#if js #if js
Settings.optionsSettings.screenWidth = cast js.Browser.window.innerWidth; Settings.optionsSettings.screenWidth = cast js.Browser.window.innerWidth * js.Browser.window.devicePixelRatio; // 1024; // cast(js.Browser.window.innerWidth / js.Browser.window.innerHeight) * 768; // cast js.Browser.window.innerWidth * js.Browser.window.devicePixelRatio * 0.5;
Settings.optionsSettings.screenHeight = cast js.Browser.window.innerHeight; Settings.optionsSettings.screenHeight = cast js.Browser.window.innerHeight * js.Browser.window.devicePixelRatio; // 768; // cast js.Browser.window.innerHeight * js.Browser.window.devicePixelRatio * 0.5;
#end #end
MarbleGame.canvas.scene2d.scaleMode = Zoom(zoomRatio); MarbleGame.canvas.scene2d.scaleMode = Zoom(zoomRatio);

View file

@ -121,7 +121,7 @@ class GuiControl {
var scaleFactor = 1.0; var scaleFactor = 1.0;
#if js #if js
scaleFactor = 1 / js.Browser.window.devicePixelRatio; scaleFactor = 1 / Settings.zoomRatio; // 768 / js.Browser.window.innerHeight * js.Browser.window.devicePixelRatio; // 0.5; // 768 / js.Browser.window.innerHeight; // js.Browser.window.innerHeight * js.Browser.window.devicePixelRatio / 768;
#end #end
if (this.horizSizing == HorizSizing.Width) { if (this.horizSizing == HorizSizing.Width) {