Skip to content

Commit 4551c83

Browse files
m
1 parent 9f014d4 commit 4551c83

File tree

3 files changed

+27
-9
lines changed

3 files changed

+27
-9
lines changed

src/Main.hx

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -200,9 +200,7 @@ class Main extends Application
200200

201201
SaveData.init();
202202
Tools.getIconGridMap('assets/images/ui');
203-
#if windows
204-
Sys.println('Windows: Audio latency set to ' + Mixer.latency());
205-
#end
203+
//Sys.println('Windows: Audio latency set to ' + Mixer.latency());
206204

207205
window.frameRate = SaveData.state.graphics.frameRate;
208206

@@ -325,9 +323,9 @@ class Main extends Application
325323
#end
326324
override function update(deltaTime:Int) {
327325
#if hxcpp
328-
var timestamp:Float = untyped __global__.__time_stamp();
326+
/*var timestamp:Float = untyped __global__.__time_stamp();
329327
Sys.println('New frame rate ${1 / (timestamp - newTimestamp)}fps');
330-
newTimestamp = timestamp;
328+
newTimestamp = timestamp;*/
331329
#end
332330

333331
Tools.profileFrame();
@@ -382,6 +380,7 @@ class Main extends Application
382380
#if FV_LIME_FORK
383381
var renderFrameRate = Application.current.window.renderFrameRate;
384382
if (renderFrameRate == 0) renderFrameRate = Application.current.window.renderFrameRate = context.window.displayMode.refreshRate;
383+
//Sys.println('Monitor refresh rate right now is $renderFrameRate');
385384
#else
386385
var renderFrameRate = Application.current.window.frameRate;
387386
#end

src/data/SaveData.hx

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,13 +81,14 @@ class SaveData {
8181
window.onClose.add(save);
8282

8383
if (!FileSystem.exists('save.dat')) {
84-
var window = lime.app.Application.current.window;
8584
save();
8685
}
8786

8887
open();
8988

90-
if (state.graphics.frameRate == 0) state.graphics.frameRate = window.displayMode.refreshRate * 4;
89+
if (state.graphics.frameRate == 0) {
90+
state.graphics.frameRate = window.displayMode.refreshRate * 4;
91+
}
9192
}
9293

9394
static function open() {
@@ -174,7 +175,25 @@ class SaveData_Preferences {
174175
@:structInit
175176
@:publicFields
176177
class SaveData_Graphics {
177-
var frameRate:Int;
178+
var frameRate(default, set):Float;
179+
inline function set_frameRate(value:Float) {
180+
var window = lime.app.Application.current.window;
181+
var newValue:Float = value;
182+
var rateAlignment:Float = Math.ffloor(newValue / window.displayMode.refreshRate);
183+
184+
if (newValue == 0 ||
185+
newValue < window.displayMode.refreshRate // too slow!
186+
) {
187+
newValue = window.displayMode.refreshRate * 4;
188+
} else if (
189+
newValue / window.displayMode.refreshRate != rateAlignment // Doesn't align properly with new frameRate)
190+
|| rateAlignment < 2
191+
) {
192+
newValue = window.displayMode.refreshRate * Math.max(rateAlignment, 2);
193+
}
194+
195+
return frameRate = newValue;
196+
}
178197
var antialiasing:Bool;
179198
var customTitleBarColor:Int;
180199
var customWindowOutlineColor:Int;

src/music/Mixer.hx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ class Mixer {
104104
#if FV_LIME_FORK
105105
var frameTimeDiff:Float = (1000 / window.frameRate) / (1000 / window.renderFrameRate);
106106
#else
107-
var refreshRate = window.displayMode.refreshRate;
107+
var refreshRate = window.displayMode.refreshRate; // integer version if you're on vanilla lime
108108
var frameTimeDiff:Float = (1000 / window.frameRate) / (1000 / refreshRate);
109109
#end
110110
var smallest:Float = 5;

0 commit comments

Comments
 (0)