armory/Sources/armory/data/Config.hx

53 lines
1.6 KiB
Haxe
Raw Permalink Normal View History

2018-02-25 19:01:22 +01:00
package armory.data;
class Config {
2019-12-19 23:54:08 +01:00
public static var raw: TConfig = null;
2019-03-06 21:54:05 +01:00
public static var configLoaded = false;
2018-02-25 19:01:22 +01:00
2019-12-19 23:54:08 +01:00
public static function load(done: Void->Void) {
2019-03-06 21:54:05 +01:00
try {
2019-12-19 23:54:08 +01:00
iron.data.Data.getBlob("config.arm", function(blob: kha.Blob) {
2019-03-06 21:54:05 +01:00
configLoaded = true;
raw = haxe.Json.parse(blob.toString());
done();
});
}
2019-12-19 23:54:08 +01:00
catch (e: Dynamic) { done(); }
2018-02-25 19:01:22 +01:00
}
public static function save() {
2019-12-19 23:54:08 +01:00
var path = iron.data.Data.dataPath + "config.arm";
2018-02-27 20:27:27 +01:00
var bytes = haxe.io.Bytes.ofString(haxe.Json.stringify(raw));
2018-02-25 19:01:22 +01:00
#if kha_krom
2018-08-29 23:01:23 +02:00
Krom.fileSaveBytes(path, bytes.getData());
2018-02-25 19:01:22 +01:00
#elseif kha_kore
2018-08-29 23:01:23 +02:00
sys.io.File.saveBytes(path, bytes);
2018-02-25 19:01:22 +01:00
#end
}
2018-08-29 23:01:23 +02:00
// public static function reset() {}
2018-02-25 19:01:22 +01:00
}
typedef TConfig = {
2019-12-19 23:54:08 +01:00
@:optional var debug_console: Null<Bool>;
@:optional var window_mode: Null<Int>; // window, fullscreen
@:optional var window_w: Null<Int>;
@:optional var window_h: Null<Int>;
@:optional var window_resizable: Null<Bool>;
@:optional var window_maximizable: Null<Bool>;
@:optional var window_minimizable: Null<Bool>;
@:optional var window_vsync: Null<Bool>;
@:optional var window_msaa: Null<Int>;
@:optional var window_scale: Null<Float>;
@:optional var rp_supersample: Null<Float>;
@:optional var rp_shadowmap_cube: Null<Int>; // size
@:optional var rp_shadowmap_cascade: Null<Int>; // size for single cascade
@:optional var rp_ssgi: Null<Bool>;
@:optional var rp_ssr: Null<Bool>;
@:optional var rp_bloom: Null<Bool>;
@:optional var rp_motionblur: Null<Bool>;
@:optional var rp_gi: Null<Bool>; // voxelao
@:optional var rp_dynres: Null<Bool>; // dynamic resolution scaling
2018-02-25 19:01:22 +01:00
}