mirror of
https://github.com/RandomityGuy/MBHaxe.git
synced 2025-12-24 17:02:50 +00:00
fix the mac ui scaling?
This commit is contained in:
parent
8f48a7b46c
commit
486de36db0
25 changed files with 56 additions and 42 deletions
|
|
@ -38,6 +38,8 @@ class Main extends hxd.App {
|
|||
override function init() {
|
||||
super.init();
|
||||
|
||||
hxd.Timer.smoothFactor = 0;
|
||||
|
||||
s3d.renderer = new Renderer();
|
||||
#if debug
|
||||
s3d.checkPasses = false;
|
||||
|
|
|
|||
|
|
@ -75,6 +75,10 @@ class Renderer extends h3d.scene.Renderer {
|
|||
#if js
|
||||
pixelRatio = js.Browser.window.devicePixelRatio / Math.min(Settings.optionsSettings.maxPixelRatio, js.Browser.window.devicePixelRatio);
|
||||
#end
|
||||
#if hl
|
||||
pixelRatio = hxd.Window.getInstance()
|
||||
.windowToPixelRatio / Math.min(Settings.optionsSettings.maxPixelRatio, hxd.Window.getInstance().windowToPixelRatio);
|
||||
#end
|
||||
}
|
||||
|
||||
override function getPassByName(name:String):h3d.pass.Base {
|
||||
|
|
|
|||
|
|
@ -207,7 +207,7 @@ class Settings {
|
|||
|
||||
#if hl
|
||||
#if MACOS_BUNDLE
|
||||
public static var settingsDir = Path.join([Sys.getEnv("HOME"), "Library", "Application Support", "MBHaxe-MBP"]);
|
||||
public static var settingsDir = Path.join([Sys.getEnv("HOME"), "Library", "Application Support", "MBHaxe-MBU"]);
|
||||
#else
|
||||
public static var settingsDir = ".";
|
||||
#end
|
||||
|
|
@ -448,6 +448,7 @@ class Settings {
|
|||
#end
|
||||
#if js
|
||||
Window.getInstance().propagateKeyEvents = true;
|
||||
uiScale = 2;
|
||||
#end
|
||||
|
||||
// @:privateAccess Window.getInstance().window.center();
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ class AboutMenuOptionsGui extends GuiImage {
|
|||
this.position = new Vector();
|
||||
this.extent = new Vector(640, 480);
|
||||
|
||||
var scene2d = MarbleGame.canvas.scene2d;
|
||||
var scene2d = hxd.Window.getInstance();
|
||||
|
||||
var offsetX = (scene2d.width - 1280) / 2;
|
||||
var offsetY = (scene2d.height - 720) / 2;
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ class AchievementsGui extends GuiImage {
|
|||
this.position = new Vector();
|
||||
this.extent = new Vector(640, 480);
|
||||
|
||||
var scene2d = MarbleGame.canvas.scene2d;
|
||||
var scene2d = hxd.Window.getInstance();
|
||||
|
||||
var offsetX = (scene2d.width - 1280) / 2;
|
||||
var offsetY = (scene2d.height - 720) / 2;
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ class Canvas extends GuiControl {
|
|||
Window.getInstance().addResizeEvent(() -> {
|
||||
var wnd = Window.getInstance();
|
||||
onResize(wnd.width, wnd.height);
|
||||
Console.log('Window resized to ${wnd.width} x ${wnd.height}, scene ${scene2d.width} x ${scene2d.height}');
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ class DifficultySelectGui extends GuiImage {
|
|||
this.position = new Vector();
|
||||
this.extent = new Vector(640, 480);
|
||||
|
||||
var scene2d = MarbleGame.canvas.scene2d;
|
||||
var scene2d = hxd.Window.getInstance();
|
||||
|
||||
var offsetX = (scene2d.width - 1280) / 2;
|
||||
var offsetY = (scene2d.height - 720) / 2;
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ class EndGameGui extends GuiImage {
|
|||
return [normal, hover, pressed];
|
||||
}
|
||||
|
||||
var scene2d = MarbleGame.canvas.scene2d;
|
||||
var scene2d = hxd.Window.getInstance();
|
||||
|
||||
var offsetX = (scene2d.width - 1280) / 2;
|
||||
var offsetY = (scene2d.height - 720) / 2;
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ class ExitGameDlg extends GuiImage {
|
|||
return [normal, hover, pressed];
|
||||
}
|
||||
|
||||
var scene2d = MarbleGame.canvas.scene2d;
|
||||
var scene2d = hxd.Window.getInstance();
|
||||
|
||||
var offsetX = (scene2d.width - 1280) / 2;
|
||||
var offsetY = (scene2d.height - 720) / 2;
|
||||
|
|
|
|||
|
|
@ -148,7 +148,7 @@ class GuiConsoleScrollCtrl extends GuiControl {
|
|||
public override function render(scene2d:Scene, ?parent:h2d.Flow) {
|
||||
this.dirty = true;
|
||||
|
||||
this.scrollTrack.position = new Vector(extent.x - 18 * Settings.uiScale, 0);
|
||||
this.scrollTrack.position = new Vector(extent.x - 18, 0);
|
||||
this.scrollTrack.extent = new Vector(18, this.extent.y);
|
||||
|
||||
scrollUpButton.position = new Vector(this.extent.x - 18, 0);
|
||||
|
|
|
|||
|
|
@ -73,8 +73,8 @@ class GuiXboxListButton extends GuiControl {
|
|||
|
||||
public override function update(dt:Float, mouseState:MouseState) {
|
||||
var renderRect = getHitTestRect();
|
||||
renderRect.position = renderRect.position.add(new Vector(24, 20)); // Offset
|
||||
renderRect.extent.set(439, 53);
|
||||
renderRect.position = renderRect.position.add(new Vector(24 * Settings.uiScale, 20 * Settings.uiScale)); // Offset
|
||||
renderRect.extent.set(439 * Settings.uiScale, 53 * Settings.uiScale);
|
||||
if (renderRect.inRect(mouseState.position) && !disabled) {
|
||||
if (buttonSounds && Key.isPressed(Key.MOUSE_LEFT)) {
|
||||
AudioManager.playSound(ResourceLoader.getResource("data/sound/buttonpress.wav", ResourceLoader.getAudio, this.soundResources));
|
||||
|
|
@ -132,8 +132,8 @@ class GuiXboxListButton extends GuiControl {
|
|||
|
||||
public override function onMouseRelease(mouseState:MouseState) {
|
||||
var renderRect = getHitTestRect();
|
||||
renderRect.position = renderRect.position.add(new Vector(24, 20)); // Offset
|
||||
renderRect.extent.set(439, 53);
|
||||
renderRect.position = renderRect.position.add(new Vector(24 * Settings.uiScale, 20 * Settings.uiScale)); // Offset
|
||||
renderRect.extent.set(439 * Settings.uiScale, 53 * Settings.uiScale);
|
||||
if (!renderRect.inRect(mouseState.position))
|
||||
return;
|
||||
|
||||
|
|
@ -145,8 +145,8 @@ class GuiXboxListButton extends GuiControl {
|
|||
|
||||
public override function onMouseEnter(mouseState:MouseState) {
|
||||
var renderRect = getHitTestRect();
|
||||
renderRect.position = renderRect.position.add(new Vector(24, 20)); // Offset
|
||||
renderRect.extent.set(439, 53);
|
||||
renderRect.position = renderRect.position.add(new Vector(24 * Settings.uiScale, 20 * Settings.uiScale)); // Offset
|
||||
renderRect.extent.set(439 * Settings.uiScale, 53 * Settings.uiScale);
|
||||
if (!renderRect.inRect(mouseState.position))
|
||||
return;
|
||||
|
||||
|
|
|
|||
|
|
@ -118,8 +118,8 @@ class GuiXboxOptionsList extends GuiControl {
|
|||
optionText.text.textColor = 0x101010;
|
||||
} else {
|
||||
var htr = this.getHitTestRect();
|
||||
htr.position = htr.position.add(new Vector(24, 20));
|
||||
htr.extent.set(776, 53);
|
||||
htr.position = htr.position.add(new Vector(24 * Settings.uiScale, 20 * Settings.uiScale));
|
||||
htr.extent.set(776 * Settings.uiScale, 53 * Settings.uiScale);
|
||||
|
||||
if (_prevMousePos == null || !_prevMousePos.equals(mouseState.position)) {
|
||||
if (htr.inRect(mouseState.position) && !selected) {
|
||||
|
|
@ -148,11 +148,11 @@ class GuiXboxOptionsList extends GuiControl {
|
|||
}
|
||||
}
|
||||
var leftBtnRect = leftButton.getHitTestRect();
|
||||
leftBtnRect.position = leftBtnRect.position.add(new Vector(15, 21));
|
||||
leftBtnRect.extent.set(83, 53);
|
||||
leftBtnRect.position = leftBtnRect.position.add(new Vector(15 * Settings.uiScale, 21 * Settings.uiScale));
|
||||
leftBtnRect.extent.set(83 * Settings.uiScale, 53 * Settings.uiScale);
|
||||
var rightBtnRect = rightButton.getHitTestRect();
|
||||
rightBtnRect.position = rightBtnRect.position.add(new Vector(15, 21));
|
||||
rightBtnRect.extent.set(83, 53);
|
||||
rightBtnRect.position = rightBtnRect.position.add(new Vector(15 * Settings.uiScale, 21 * Settings.uiScale));
|
||||
rightBtnRect.extent.set(83 * Settings.uiScale, 53 * Settings.uiScale);
|
||||
if (leftBtnRect.inRect(mouseState.position) || rightBtnRect.inRect(mouseState.position)) {
|
||||
if (Key.isPressed(Key.MOUSE_LEFT)) {
|
||||
AudioManager.playSound(ResourceLoader.getResource("data/sound/buttonpress.wav", ResourceLoader.getAudio, this.soundResources));
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ class HelpCreditsGui extends GuiImage {
|
|||
this.position = new Vector();
|
||||
this.extent = new Vector(640, 480);
|
||||
|
||||
var scene2d = MarbleGame.canvas.scene2d;
|
||||
var scene2d = hxd.Window.getInstance();
|
||||
|
||||
var offsetX = (scene2d.width - 1280) / 2;
|
||||
var offsetY = (scene2d.height - 720) / 2;
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ class InputOptionsGui extends GuiImage {
|
|||
this.position = new Vector();
|
||||
this.extent = new Vector(640, 480);
|
||||
|
||||
var scene2d = MarbleGame.canvas.scene2d;
|
||||
var scene2d = hxd.Window.getInstance();
|
||||
|
||||
var offsetX = (scene2d.width - 1280) / 2;
|
||||
var offsetY = (scene2d.height - 720) / 2;
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ class KeyBindingsGui extends GuiImage {
|
|||
}
|
||||
}
|
||||
|
||||
var scene2d = MarbleGame.canvas.scene2d;
|
||||
var scene2d = hxd.Window.getInstance();
|
||||
|
||||
var offsetX = (scene2d.width - 1280) / 2;
|
||||
var offsetY = (scene2d.height - 720) / 2;
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ class LevelSelectGui extends GuiImage {
|
|||
this.vertSizing = Height;
|
||||
this.position = new Vector();
|
||||
this.extent = new Vector(640, 480);
|
||||
var scene2d = MarbleGame.canvas.scene2d;
|
||||
var scene2d = hxd.Window.getInstance();
|
||||
|
||||
var offsetX = (scene2d.width - 1280) / 2;
|
||||
var offsetY = (scene2d.height - 720) / 2;
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ class MainMenuGui extends GuiImage {
|
|||
this.position = new Vector();
|
||||
this.extent = new Vector(640, 480);
|
||||
|
||||
var scene2d = MarbleGame.canvas.scene2d;
|
||||
var scene2d = hxd.Window.getInstance();
|
||||
|
||||
var offsetX = (scene2d.width - 1280) / 2;
|
||||
var offsetY = (scene2d.height - 720) / 2;
|
||||
|
|
|
|||
|
|
@ -245,7 +245,7 @@ class MarblePickerGui extends GuiImage {
|
|||
this.position = new Vector();
|
||||
this.extent = new Vector(640, 480);
|
||||
|
||||
var scene2d = MarbleGame.canvas.scene2d;
|
||||
var scene2d = hxd.Window.getInstance();
|
||||
|
||||
var offsetX = (scene2d.width - 1280) / 2;
|
||||
var offsetY = (scene2d.height - 720) / 2;
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ class MiscOptionsGui extends GuiImage {
|
|||
this.position = new Vector();
|
||||
this.extent = new Vector(640, 480);
|
||||
|
||||
var scene2d = MarbleGame.canvas.scene2d;
|
||||
var scene2d = hxd.Window.getInstance();
|
||||
|
||||
var offsetX = (scene2d.width - 1280) / 2;
|
||||
var offsetY = (scene2d.height - 720) / 2;
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ class OptionsListGui extends GuiImage {
|
|||
this.position = new Vector();
|
||||
this.extent = new Vector(640, 480);
|
||||
|
||||
var scene2d = MarbleGame.canvas.scene2d;
|
||||
var scene2d = hxd.Window.getInstance();
|
||||
|
||||
var offsetX = (scene2d.width - 1280) / 2;
|
||||
var offsetY = (scene2d.height - 720) / 2;
|
||||
|
|
|
|||
|
|
@ -111,14 +111,16 @@ class PlayGui {
|
|||
playGuiCtrlOuter.horizSizing = Width;
|
||||
playGuiCtrlOuter.vertSizing = Height;
|
||||
|
||||
var safeVerMargin = 1 + (scene2d.height * 0.15) / 2;
|
||||
var safeHorMargin = 1 + (scene2d.width * 0.15) / 2;
|
||||
var wnd = hxd.Window.getInstance();
|
||||
|
||||
var safeVerMargin = 1 + (wnd.height * 0.15) / 2;
|
||||
var safeHorMargin = 1 + (wnd.width * 0.15) / 2;
|
||||
|
||||
playGuiCtrl = new GuiControl();
|
||||
playGuiCtrl.position = new Vector(safeHorMargin, safeVerMargin);
|
||||
|
||||
var subX = 640 - (scene2d.width - safeHorMargin * 2) * 640 / scene2d.width;
|
||||
var subY = 480 - (scene2d.height - safeVerMargin * 2) * 480 / scene2d.height;
|
||||
var subX = 640 - (wnd.width - safeHorMargin * 2) * 640 / wnd.width;
|
||||
var subY = 480 - (wnd.height - safeVerMargin * 2) * 480 / wnd.height;
|
||||
|
||||
playGuiCtrl.extent = new Vector(640 - subX, 480 - subY);
|
||||
playGuiCtrl.horizSizing = Width;
|
||||
|
|
@ -144,8 +146,8 @@ class PlayGui {
|
|||
if (game == 'ultra')
|
||||
initBlastBar();
|
||||
initTexts();
|
||||
if (Settings.optionsSettings.frameRateVis)
|
||||
initFPSMeter();
|
||||
// if (Settings.optionsSettings.frameRateVis)
|
||||
// initFPSMeter();
|
||||
|
||||
if (Util.isTouchDevice()) {
|
||||
MarbleGame.instance.touchInput.showControls(this.playGuiCtrlOuter, game == 'ultra');
|
||||
|
|
@ -154,12 +156,12 @@ class PlayGui {
|
|||
playGuiCtrlOuter.render(scene2d);
|
||||
|
||||
resizeEv = () -> {
|
||||
var safeVerMargin = 1 + (scene2d.height * 0.15) / 2;
|
||||
var safeHorMargin = 1 + (scene2d.width * 0.15) / 2;
|
||||
var safeVerMargin = 1 + (wnd.height * 0.15) / 2;
|
||||
var safeHorMargin = 1 + (wnd.width * 0.15) / 2;
|
||||
playGuiCtrl.position = new Vector(safeHorMargin, safeVerMargin);
|
||||
|
||||
var subX = 640 - (scene2d.width - safeHorMargin * 2) * 640 / scene2d.width;
|
||||
var subY = 480 - (scene2d.height - safeVerMargin * 2) * 480 / scene2d.height;
|
||||
var subX = 640 - (wnd.width - safeHorMargin * 2) * 640 / wnd.width;
|
||||
var subY = 480 - (wnd.height - safeVerMargin * 2) * 480 / wnd.height;
|
||||
|
||||
playGuiCtrl.extent = new Vector(640 - subX, 480 - subY);
|
||||
resizeControls();
|
||||
|
|
@ -179,6 +181,7 @@ class PlayGui {
|
|||
}
|
||||
|
||||
public function initTimer() {
|
||||
var scene2d = hxd.Window.getInstance();
|
||||
var safeVerMargin = 1 + (scene2d.height * 0.15) / 2;
|
||||
|
||||
var timerCtrl = new GuiImage(ResourceLoader.getResource('data/ui/game/timebackdrop0.png', ResourceLoader.getImage, this.imageResources).toTile());
|
||||
|
|
@ -284,6 +287,7 @@ class PlayGui {
|
|||
}
|
||||
|
||||
public function initGemCounter() {
|
||||
var scene2d = hxd.Window.getInstance();
|
||||
var safeVerMargin = 1 + (scene2d.height * 0.15) / 2;
|
||||
|
||||
var gemBox = new GuiControl();
|
||||
|
|
@ -370,6 +374,7 @@ class PlayGui {
|
|||
}
|
||||
|
||||
function initPowerupBox() {
|
||||
var scene2d = hxd.Window.getInstance();
|
||||
var safeVerMargin = 1 + (scene2d.height * 0.15) / 2;
|
||||
|
||||
var powerupImgs = [
|
||||
|
|
@ -521,6 +526,7 @@ class PlayGui {
|
|||
}
|
||||
|
||||
function initBlastBar() {
|
||||
var scene2d = hxd.Window.getInstance();
|
||||
var safeVerMargin = 1 + (scene2d.height * 0.15) / 2;
|
||||
|
||||
blastBar = new GuiControl();
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ class ReplayCenterGui extends GuiImage {
|
|||
this.position = new Vector();
|
||||
this.extent = new Vector(640, 480);
|
||||
|
||||
var scene2d = MarbleGame.canvas.scene2d;
|
||||
var scene2d = hxd.Window.getInstance();
|
||||
|
||||
var offsetX = (scene2d.width - 1280) / 2;
|
||||
var offsetY = (scene2d.height - 720) / 2;
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ class TouchCtrlsEditGui extends GuiImage {
|
|||
this.position = new Vector();
|
||||
this.extent = new Vector(640, 480);
|
||||
|
||||
var scene2d = MarbleGame.canvas.scene2d;
|
||||
var scene2d = hxd.Window.getInstance();
|
||||
|
||||
var offsetX = (scene2d.width - 1280) / 2;
|
||||
var offsetY = (scene2d.height - 720) / 2;
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ class VersionGui extends GuiImage {
|
|||
this.position = new Vector();
|
||||
this.extent = new Vector(640, 480);
|
||||
|
||||
var scene2d = MarbleGame.canvas.scene2d;
|
||||
var scene2d = hxd.Window.getInstance();
|
||||
|
||||
var offsetX = (scene2d.width - 1280) / 2;
|
||||
var offsetY = (scene2d.height - 720) / 2;
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ class VideoOptionsGui extends GuiImage {
|
|||
this.position = new Vector();
|
||||
this.extent = new Vector(640, 480);
|
||||
|
||||
var scene2d = MarbleGame.canvas.scene2d;
|
||||
var scene2d = hxd.Window.getInstance();
|
||||
|
||||
var offsetX = (scene2d.width - 1280) / 2;
|
||||
var offsetY = (scene2d.height - 720) / 2;
|
||||
|
|
@ -132,7 +132,7 @@ class VideoOptionsGui extends GuiImage {
|
|||
}, 0.35);
|
||||
rfOpt.setCurrentOption(Settings.optionsSettings.reflectionDetail);
|
||||
|
||||
#if js
|
||||
#if (js || MACOS_BUNDLE)
|
||||
var pxOpt = optionCollection.addOption(1, "Pixel Ratio", ["Max 0.5", "Max 1", "Max 1.5", "Max 2", "Max Infinity"], (idx) -> {
|
||||
if (idx == 0)
|
||||
Settings.optionsSettings.maxPixelRatio = 0.5;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue