Config
This commit is contained in:
+3
-3
@@ -68,9 +68,9 @@ class App {
|
||||
uimodal = new Zui({ font: f, scaleFactor: armory.data.Config.raw.window_scale });
|
||||
|
||||
iron.App.notifyOnInit(function() {
|
||||
// #if arm_debug
|
||||
// iron.Scene.active.sceneParent.getTrait(armory.trait.internal.DebugConsole).visible = false;
|
||||
// #end
|
||||
#if arm_debug
|
||||
iron.Scene.active.sceneParent.getTrait(armory.trait.internal.DebugConsole).visible = false;
|
||||
#end
|
||||
iron.App.notifyOnUpdate(update);
|
||||
iron.Scene.active.root.addTrait(new UITrait());
|
||||
iron.Scene.active.root.addTrait(new UINodes());
|
||||
|
||||
+95
-95
@@ -954,6 +954,8 @@ class UINodes extends iron.Trait {
|
||||
}
|
||||
|
||||
public function parseMeshPreviewMaterial() {
|
||||
if (!getMOut()) return;
|
||||
|
||||
#if arm_editor
|
||||
var m = UITrait.inst.htab.position == 0 ? UITrait.inst.selectedMaterial2.data : UITrait.inst.materials[0].data;
|
||||
#else
|
||||
@@ -1003,6 +1005,7 @@ class UINodes extends iron.Trait {
|
||||
|
||||
public var materialParsed = false;
|
||||
public function parsePaintMaterial() {
|
||||
if (!getMOut()) return;
|
||||
|
||||
#if arm_editor
|
||||
if (UITrait.inst.htab.position == 0) {
|
||||
@@ -1013,112 +1016,109 @@ class UINodes extends iron.Trait {
|
||||
|
||||
UITrait.inst.dirty = 2;
|
||||
|
||||
if (getMOut()) {
|
||||
#if arm_editor
|
||||
var m = UITrait.inst.materials[0].data;
|
||||
sc = null;
|
||||
_materialcontext = null;
|
||||
#else
|
||||
iron.data.Data.getMaterial("Scene", "Material", function(m:iron.data.MaterialData) {
|
||||
#end
|
||||
|
||||
var mat:TMaterial = {
|
||||
name: "Material",
|
||||
canvas: canvas
|
||||
};
|
||||
var _sd = new ShaderData(mat);
|
||||
|
||||
#if arm_editor
|
||||
var m = UITrait.inst.materials[0].data;
|
||||
sc = null;
|
||||
_materialcontext = null;
|
||||
#else
|
||||
iron.data.Data.getMaterial("Scene", "Material", function(m:iron.data.MaterialData) {
|
||||
#end
|
||||
|
||||
var mat:TMaterial = {
|
||||
name: "Material",
|
||||
canvas: canvas
|
||||
};
|
||||
var _sd = new ShaderData(mat);
|
||||
|
||||
if (sc == null) {
|
||||
for (c in m.shader.contexts) {
|
||||
if (c.raw.name == "paint") {
|
||||
sc = c;
|
||||
break;
|
||||
}
|
||||
if (sc == null) {
|
||||
for (c in m.shader.contexts) {
|
||||
if (c.raw.name == "paint") {
|
||||
sc = c;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (_materialcontext == null) {
|
||||
for (c in m.contexts) {
|
||||
if (c.raw.name == "paint") {
|
||||
_materialcontext = c;
|
||||
_matcon = c.raw;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (_materialcontext == null) {
|
||||
for (c in m.contexts) {
|
||||
if (c.raw.name == "paint") {
|
||||
_materialcontext = c;
|
||||
_matcon = c.raw;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (sc != null) {
|
||||
m.shader.raw.contexts.remove(sc.raw);
|
||||
m.shader.contexts.remove(sc);
|
||||
if (sc != null) {
|
||||
m.shader.raw.contexts.remove(sc.raw);
|
||||
m.shader.contexts.remove(sc);
|
||||
}
|
||||
if (_materialcontext != null) {
|
||||
m.raw.contexts.remove(_matcon);
|
||||
m.contexts.remove(_materialcontext);
|
||||
}
|
||||
|
||||
_matcon = {
|
||||
name: "paint",
|
||||
bind_textures: []
|
||||
}
|
||||
|
||||
var con = make_paint(_sd, _matcon);
|
||||
var cdata = con.data;
|
||||
|
||||
// if (sc == null) {
|
||||
// from_source is synchronous..
|
||||
sc = new iron.data.ShaderData.ShaderContext(cdata, function(sc:iron.data.ShaderData.ShaderContext){});
|
||||
m.shader.raw.contexts.push(sc.raw);
|
||||
m.shader.contexts.push(sc);
|
||||
m.raw.contexts.push(_matcon);
|
||||
|
||||
new MaterialContext(_matcon, function(self:MaterialContext) {
|
||||
_materialcontext = self;
|
||||
m.contexts.push(self);
|
||||
});
|
||||
|
||||
|
||||
|
||||
var dcon = make_depth(_sd, _matcon);
|
||||
var dcdata = dcon.data;
|
||||
// from_source is synchronous..
|
||||
var dsc = new iron.data.ShaderData.ShaderContext(dcdata, function(sc:iron.data.ShaderData.ShaderContext){});
|
||||
m.shader.contexts.push(dsc);
|
||||
var dmatcon:TMaterialContext = {
|
||||
name: "depth"
|
||||
}
|
||||
if (_materialcontext != null) {
|
||||
m.raw.contexts.remove(_matcon);
|
||||
m.contexts.remove(_materialcontext);
|
||||
}
|
||||
|
||||
_matcon = {
|
||||
name: "paint",
|
||||
bind_textures: []
|
||||
}
|
||||
|
||||
var con = make_paint(_sd, _matcon);
|
||||
var cdata = con.data;
|
||||
|
||||
// if (sc == null) {
|
||||
// from_source is synchronous..
|
||||
sc = new iron.data.ShaderData.ShaderContext(cdata, function(sc:iron.data.ShaderData.ShaderContext){});
|
||||
m.shader.raw.contexts.push(sc.raw);
|
||||
m.shader.contexts.push(sc);
|
||||
m.raw.contexts.push(_matcon);
|
||||
|
||||
new MaterialContext(_matcon, function(self:MaterialContext) {
|
||||
_materialcontext = self;
|
||||
m.contexts.push(self);
|
||||
});
|
||||
m.raw.contexts.push(dmatcon);
|
||||
new MaterialContext(dmatcon, function(self:MaterialContext) {
|
||||
m.contexts.push(self);
|
||||
});
|
||||
|
||||
|
||||
|
||||
var dcon = make_depth(_sd, _matcon);
|
||||
var dcdata = dcon.data;
|
||||
// from_source is synchronous..
|
||||
var dsc = new iron.data.ShaderData.ShaderContext(dcdata, function(sc:iron.data.ShaderData.ShaderContext){});
|
||||
m.shader.contexts.push(dsc);
|
||||
var dmatcon:TMaterialContext = {
|
||||
name: "depth"
|
||||
}
|
||||
m.raw.contexts.push(dmatcon);
|
||||
new MaterialContext(dmatcon, function(self:MaterialContext) {
|
||||
m.contexts.push(self);
|
||||
});
|
||||
|
||||
|
||||
|
||||
var smcon = make_depth(_sd, _matcon, true);
|
||||
var smcdata = smcon.data;
|
||||
// from_source is synchronous..
|
||||
var smsc = new iron.data.ShaderData.ShaderContext(smcdata, function(sc:iron.data.ShaderData.ShaderContext){});
|
||||
for (c in m.shader.contexts) if (c.raw.name == 'shadowmap') { m.shader.contexts.remove(c); break; }
|
||||
m.shader.contexts.push(smsc);
|
||||
// var smmatcon:TMaterialContext = {
|
||||
// name: "shadowmap"
|
||||
// }
|
||||
// m.raw.contexts.push(smmatcon);
|
||||
// for (c in m.contexts) if (c.raw.name == 'shadowmap') { m.contexts.remove(c); break; }
|
||||
// new MaterialContext(smmatcon, function(self:MaterialContext) {
|
||||
// m.contexts.push(self);
|
||||
// });
|
||||
|
||||
materialParsed = true;
|
||||
var smcon = make_depth(_sd, _matcon, true);
|
||||
var smcdata = smcon.data;
|
||||
// from_source is synchronous..
|
||||
var smsc = new iron.data.ShaderData.ShaderContext(smcdata, function(sc:iron.data.ShaderData.ShaderContext){});
|
||||
for (c in m.shader.contexts) if (c.raw.name == 'shadowmap') { m.shader.contexts.remove(c); break; }
|
||||
m.shader.contexts.push(smsc);
|
||||
// var smmatcon:TMaterialContext = {
|
||||
// name: "shadowmap"
|
||||
// }
|
||||
// else {
|
||||
// sc.raw.vertex_shader = cdata.vertex_shader;
|
||||
// sc.raw.fragment_shader = cdata.fragment_shader;
|
||||
// sc.compile();
|
||||
// }
|
||||
#if (!arm_editor)
|
||||
});
|
||||
#end
|
||||
}
|
||||
// m.raw.contexts.push(smmatcon);
|
||||
// for (c in m.contexts) if (c.raw.name == 'shadowmap') { m.contexts.remove(c); break; }
|
||||
// new MaterialContext(smmatcon, function(self:MaterialContext) {
|
||||
// m.contexts.push(self);
|
||||
// });
|
||||
|
||||
materialParsed = true;
|
||||
// }
|
||||
// else {
|
||||
// sc.raw.vertex_shader = cdata.vertex_shader;
|
||||
// sc.raw.fragment_shader = cdata.fragment_shader;
|
||||
// sc.compile();
|
||||
// }
|
||||
#if (!arm_editor)
|
||||
});
|
||||
#end
|
||||
}
|
||||
|
||||
public function acceptDrag(assetIndex:Int) {
|
||||
|
||||
+39
-24
@@ -388,9 +388,6 @@ class UITrait extends iron.Trait {
|
||||
|
||||
inst = this;
|
||||
|
||||
haxeTrace = haxe.Log.trace;
|
||||
haxe.Log.trace = consoleTrace;
|
||||
|
||||
windowW = Std.int(defaultWindowW * armory.data.Config.raw.window_scale);
|
||||
|
||||
iron.object.Uniforms.externalFloatLinks = [linkFloat];
|
||||
@@ -462,13 +459,6 @@ class UITrait extends iron.Trait {
|
||||
loadBundled(['cursor.png', 'mat_slot.jpg', 'brush_draw.png', 'brush_erase.png', 'brush_fill.png', 'brush_bake.png', 'brush_colorid.png', 'env_thumb.jpg'], done);
|
||||
}
|
||||
|
||||
var haxeTrace:Dynamic->haxe.PosInfos->Void;
|
||||
var lastTrace = '';
|
||||
function consoleTrace(v:Dynamic, ?inf:haxe.PosInfos) {
|
||||
lastTrace = Std.string(v);
|
||||
haxeTrace(v, inf);
|
||||
}
|
||||
|
||||
function showMessage(s:String) {
|
||||
messageTimer = 3.0;
|
||||
message = s;
|
||||
@@ -2040,23 +2030,38 @@ class UITrait extends iron.Trait {
|
||||
worldColor = Ext.colorWheel(ui, hwheel);
|
||||
}
|
||||
undoEnabled = ui.check(Id.handle({selected: true}), "Undo");
|
||||
armory.data.Config.raw.window_vsync = ui.check(Id.handle({selected: armory.data.Config.raw.window_vsync}), "VSync");
|
||||
|
||||
#if arm_debug
|
||||
iron.Scene.active.sceneParent.getTrait(armory.trait.internal.DebugConsole).visible = ui.check(Id.handle({selected: false}), "Debug Console");
|
||||
#end
|
||||
|
||||
var hssgi = Id.handle({selected: armory.data.Config.raw.rp_ssgi});
|
||||
var hssr = Id.handle({selected: armory.data.Config.raw.rp_ssr});
|
||||
var hbloom = Id.handle({selected: armory.data.Config.raw.rp_bloom});
|
||||
var hshadowmap = Id.handle({position: getShadowQuality(armory.data.Config.raw.rp_shadowmap)});
|
||||
if (ui.panel(Id.handle({selected: false}), "Viewport")) {
|
||||
armory.data.Config.raw.window_vsync = ui.check(Id.handle({selected: armory.data.Config.raw.window_vsync}), "VSync");
|
||||
ui.check(hssgi, "SSAO");
|
||||
ui.check(hssr, "SSR");
|
||||
ui.check(hbloom, "Bloom");
|
||||
ui.combo(hshadowmap, ["High", "Medium", "Low"], "Shadows", true);
|
||||
}
|
||||
|
||||
if (ui.button("Save")) {
|
||||
#if kha_krom
|
||||
Krom.fileSaveBytes("data/config.arm", haxe.io.Bytes.ofString(haxe.Json.stringify(armory.data.Config.raw)).getData());
|
||||
#end
|
||||
armory.data.Config.raw.rp_ssgi = hssgi.selected;
|
||||
armory.data.Config.raw.rp_ssr = hssr.selected;
|
||||
armory.data.Config.raw.rp_bloom = hbloom.selected;
|
||||
armory.data.Config.raw.rp_shadowmap = getShadowMapSize(hshadowmap.position);
|
||||
armory.data.Config.save();
|
||||
armory.renderpath.RenderPathCreator.applyConfig();
|
||||
}
|
||||
|
||||
if (ui.panel(Id.handle({selected: false}), "About")) {
|
||||
ui.text("v0.5");
|
||||
ui.text(Macro.buildSha());
|
||||
ui.text(Macro.buildDate());
|
||||
// ui.text(Macro.buildSha());
|
||||
// ui.text(Macro.buildDate());
|
||||
ui.text("armorpaint.org");
|
||||
}
|
||||
|
||||
if (ui.panel(Id.handle({selected: true}), "Console")) {
|
||||
ui.text(lastTrace);
|
||||
}
|
||||
}
|
||||
}
|
||||
ui.end();
|
||||
@@ -2071,6 +2076,15 @@ class UITrait extends iron.Trait {
|
||||
}
|
||||
}
|
||||
|
||||
inline function getShadowQuality(i:Int):Int {
|
||||
// 0 - High, 1 - Medium, 2 - Low
|
||||
return i == 4096 ? 0 : i == 2048 ? 1 : 2;
|
||||
}
|
||||
|
||||
inline function getShadowMapSize(i:Int):Int {
|
||||
return i == 0 ? 4096 : i == 1 ? 2048 : 1024;
|
||||
}
|
||||
|
||||
public function getImage(asset:TAsset):kha.Image {
|
||||
return Canvas.assetMap.get(asset.id);
|
||||
}
|
||||
@@ -2216,7 +2230,7 @@ class UITrait extends iron.Trait {
|
||||
|
||||
typedef TAPConfig = {
|
||||
@:optional var debug_console:Null<Bool>;
|
||||
@:optional var window_mode:Null<Int>; // window, borderless, fullscreen
|
||||
@: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>;
|
||||
@@ -2225,12 +2239,13 @@ typedef TAPConfig = {
|
||||
@: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:Null<Int>;
|
||||
@:optional var rp_voxelgi:Null<Int>; // off, ao, ao_revox, gi, gi_revox
|
||||
// @:optional var rp_supersample:Null<Float>;
|
||||
@:optional var rp_shadowmap:Null<Int>; // size
|
||||
@: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>;
|
||||
// Ext
|
||||
@:optional var plugins:Array<String>;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user