Merge pull request #2351 from MoritzBrueckner/debug-console-trace
Debug console: make log output more readable
This commit is contained in:
commit
a2c33b2f6a
|
@ -25,6 +25,8 @@ class DebugConsole extends Trait {
|
||||||
#else
|
#else
|
||||||
|
|
||||||
public static var visible = true;
|
public static var visible = true;
|
||||||
|
public static var traceWithPosition = true;
|
||||||
|
|
||||||
static var ui: Zui;
|
static var ui: Zui;
|
||||||
var scaleFactor = 1.0;
|
var scaleFactor = 1.0;
|
||||||
|
|
||||||
|
@ -75,16 +77,18 @@ class DebugConsole extends Trait {
|
||||||
#end
|
#end
|
||||||
|
|
||||||
public function new(scaleFactor = 1.0, scaleDebugConsole = 1.0, positionDebugConsole = 2, visibleDebugConsole = 1,
|
public function new(scaleFactor = 1.0, scaleDebugConsole = 1.0, positionDebugConsole = 2, visibleDebugConsole = 1,
|
||||||
keyCodeVisible = kha.input.KeyCode.Tilde, keyCodeScaleIn = kha.input.KeyCode.OpenBracket, keyCodeScaleOut = kha.input.KeyCode.CloseBracket) {
|
traceWithPosition = 1, keyCodeVisible = kha.input.KeyCode.Tilde, keyCodeScaleIn = kha.input.KeyCode.OpenBracket,
|
||||||
|
keyCodeScaleOut = kha.input.KeyCode.CloseBracket) {
|
||||||
super();
|
super();
|
||||||
this.scaleFactor = scaleFactor;
|
this.scaleFactor = scaleFactor;
|
||||||
|
DebugConsole.traceWithPosition = traceWithPosition == 1;
|
||||||
|
|
||||||
iron.data.Data.getFont("font_default.ttf", function(font: kha.Font) {
|
iron.data.Data.getFont("font_default.ttf", function(font: kha.Font) {
|
||||||
ui = new Zui({scaleFactor: scaleFactor, font: font});
|
ui = new Zui({scaleFactor: scaleFactor, font: font});
|
||||||
// Set settings
|
// Set settings
|
||||||
setScale(scaleDebugConsole);
|
setScale(scaleDebugConsole);
|
||||||
setVisible(visibleDebugConsole == 1);
|
setVisible(visibleDebugConsole == 1);
|
||||||
switch(positionDebugConsole) {
|
switch (positionDebugConsole) {
|
||||||
case 0: setPosition(PositionStateEnum.LEFT);
|
case 0: setPosition(PositionStateEnum.LEFT);
|
||||||
case 1: setPosition(PositionStateEnum.CENTER);
|
case 1: setPosition(PositionStateEnum.CENTER);
|
||||||
case 2: setPosition(PositionStateEnum.RIGHT);
|
case 2: setPosition(PositionStateEnum.RIGHT);
|
||||||
|
@ -104,11 +108,11 @@ class DebugConsole extends Trait {
|
||||||
// DebugFloat
|
// DebugFloat
|
||||||
if (key == kha.input.KeyCode.OpenBracket) {
|
if (key == kha.input.KeyCode.OpenBracket) {
|
||||||
debugFloat -= 0.1;
|
debugFloat -= 0.1;
|
||||||
trace("debugFloat = "+ debugFloat);
|
trace("debugFloat = " + debugFloat);
|
||||||
}
|
}
|
||||||
else if (key == kha.input.KeyCode.CloseBracket){
|
else if (key == kha.input.KeyCode.CloseBracket){
|
||||||
debugFloat += 0.1;
|
debugFloat += 0.1;
|
||||||
trace("debugFloat = "+ debugFloat);
|
trace("debugFloat = " + debugFloat);
|
||||||
}
|
}
|
||||||
// Shortcut - Visible
|
// Shortcut - Visible
|
||||||
if (key == shortcut_visible) visible = !visible;
|
if (key == shortcut_visible) visible = !visible;
|
||||||
|
@ -170,7 +174,7 @@ class DebugConsole extends Trait {
|
||||||
static var haxeTrace: Dynamic->haxe.PosInfos->Void = null;
|
static var haxeTrace: Dynamic->haxe.PosInfos->Void = null;
|
||||||
static var lastTraces: Array<String> = [""];
|
static var lastTraces: Array<String> = [""];
|
||||||
static function consoleTrace(v: Dynamic, ?inf: haxe.PosInfos) {
|
static function consoleTrace(v: Dynamic, ?inf: haxe.PosInfos) {
|
||||||
lastTraces.unshift(haxe.Log.formatOutput(v,inf));
|
lastTraces.unshift(haxe.Log.formatOutput(v, traceWithPosition ? inf : null));
|
||||||
if (lastTraces.length > 10) lastTraces.pop();
|
if (lastTraces.length > 10) lastTraces.pop();
|
||||||
haxeTrace(v, inf);
|
haxeTrace(v, inf);
|
||||||
}
|
}
|
||||||
|
@ -186,10 +190,10 @@ class DebugConsole extends Trait {
|
||||||
var wh = iron.App.h();
|
var wh = iron.App.h();
|
||||||
// Check position
|
// Check position
|
||||||
switch (position_console) {
|
switch (position_console) {
|
||||||
case PositionStateEnum.LEFT: wx = 0;
|
case PositionStateEnum.LEFT: wx = 0;
|
||||||
case PositionStateEnum.CENTER: wx = Math.round(iron.App.w() / 2 - ww / 2);
|
case PositionStateEnum.CENTER: wx = Math.round(iron.App.w() / 2 - ww / 2);
|
||||||
case PositionStateEnum.RIGHT: wx = iron.App.w() - ww;
|
case PositionStateEnum.RIGHT: wx = iron.App.w() - ww;
|
||||||
}
|
}
|
||||||
|
|
||||||
// var bindG = ui.windowDirty(hwin, wx, wy, ww, wh) || hwin.redraws > 0;
|
// var bindG = ui.windowDirty(hwin, wx, wy, ww, wh) || hwin.redraws > 0;
|
||||||
var bindG = true;
|
var bindG = true;
|
||||||
|
@ -775,11 +779,23 @@ class DebugConsole extends Trait {
|
||||||
#end
|
#end
|
||||||
if (ui.panel(Id.handle({selected: true}), "Log")) {
|
if (ui.panel(Id.handle({selected: true}), "Log")) {
|
||||||
ui.indent();
|
ui.indent();
|
||||||
|
|
||||||
|
final h = Id.handle();
|
||||||
|
h.selected = DebugConsole.traceWithPosition;
|
||||||
|
DebugConsole.traceWithPosition = ui.check(h, "Print With Position");
|
||||||
|
if (ui.isHovered) ui.tooltip("Whether to prepend the position of print/trace statements to the printed text");
|
||||||
|
|
||||||
if (ui.button("Clear")) {
|
if (ui.button("Clear")) {
|
||||||
lastTraces[0] = "";
|
lastTraces[0] = "";
|
||||||
lastTraces.splice(1, lastTraces.length - 1);
|
lastTraces.splice(1, lastTraces.length - 1);
|
||||||
}
|
}
|
||||||
|
if (ui.isHovered) ui.tooltip("Clear the log output");
|
||||||
|
|
||||||
|
final eh = ui.t.ELEMENT_H;
|
||||||
|
ui.t.ELEMENT_H = ui.fontSize;
|
||||||
for (t in lastTraces) ui.text(t);
|
for (t in lastTraces) ui.text(t);
|
||||||
|
ui.t.ELEMENT_H = eh;
|
||||||
|
|
||||||
ui.unindent();
|
ui.unindent();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2679,13 +2679,16 @@ Make sure the mesh only has tris/quads.""")
|
||||||
out_trait = {
|
out_trait = {
|
||||||
'type': 'Script',
|
'type': 'Script',
|
||||||
'class_name': 'armory.trait.internal.DebugConsole',
|
'class_name': 'armory.trait.internal.DebugConsole',
|
||||||
'parameters': [str(arm.utils.get_ui_scale()),
|
'parameters': [
|
||||||
str(wrd.arm_debug_console_scale),
|
str(arm.utils.get_ui_scale()),
|
||||||
str(debug_console_pos_type),
|
str(wrd.arm_debug_console_scale),
|
||||||
str(int(wrd.arm_debug_console_visible)),
|
str(debug_console_pos_type),
|
||||||
str(int(arm.utils.get_debug_console_visible_sc())),
|
str(int(wrd.arm_debug_console_visible)),
|
||||||
str(int(arm.utils.get_debug_console_scale_in_sc())),
|
str(int(wrd.arm_debug_console_trace_pos)),
|
||||||
str(int(arm.utils.get_debug_console_scale_out_sc()))]
|
str(int(arm.utils.get_debug_console_visible_sc())),
|
||||||
|
str(int(arm.utils.get_debug_console_scale_in_sc())),
|
||||||
|
str(int(arm.utils.get_debug_console_scale_out_sc()))
|
||||||
|
]
|
||||||
}
|
}
|
||||||
self.output['traits'].append(out_trait)
|
self.output['traits'].append(out_trait)
|
||||||
|
|
||||||
|
|
|
@ -256,6 +256,7 @@ def init_properties():
|
||||||
name="Position", description="Position Debug Console", default='Right', update=assets.invalidate_shader_cache)
|
name="Position", description="Position Debug Console", default='Right', update=assets.invalidate_shader_cache)
|
||||||
bpy.types.World.arm_debug_console_scale = FloatProperty(name="Scale Console", description="Scale Debug Console", default=1.0, min=0.3, max=10.0, subtype='FACTOR', update=assets.invalidate_shader_cache)
|
bpy.types.World.arm_debug_console_scale = FloatProperty(name="Scale Console", description="Scale Debug Console", default=1.0, min=0.3, max=10.0, subtype='FACTOR', update=assets.invalidate_shader_cache)
|
||||||
bpy.types.World.arm_debug_console_visible = BoolProperty(name="Visible", description="Setting the console visibility at application start", default=True, update=assets.invalidate_shader_cache)
|
bpy.types.World.arm_debug_console_visible = BoolProperty(name="Visible", description="Setting the console visibility at application start", default=True, update=assets.invalidate_shader_cache)
|
||||||
|
bpy.types.World.arm_debug_console_trace_pos = BoolProperty(name="Print With Position", description="Whether to prepend the position of print/trace statements to the printed text", default=True)
|
||||||
bpy.types.World.arm_verbose_output = BoolProperty(name="Verbose Output", description="Print additional information to the console during compilation", default=False)
|
bpy.types.World.arm_verbose_output = BoolProperty(name="Verbose Output", description="Print additional information to the console during compilation", default=False)
|
||||||
bpy.types.World.arm_runtime = EnumProperty(
|
bpy.types.World.arm_runtime = EnumProperty(
|
||||||
items=[('Krom', 'Krom', 'Krom'),
|
items=[('Krom', 'Krom', 'Krom'),
|
||||||
|
|
|
@ -969,6 +969,7 @@ class ARM_PT_ProjectFlagsDebugConsolePanel(bpy.types.Panel):
|
||||||
col.prop(wrd, 'arm_debug_console_position')
|
col.prop(wrd, 'arm_debug_console_position')
|
||||||
col.prop(wrd, 'arm_debug_console_scale')
|
col.prop(wrd, 'arm_debug_console_scale')
|
||||||
col.prop(wrd, 'arm_debug_console_visible')
|
col.prop(wrd, 'arm_debug_console_visible')
|
||||||
|
col.prop(wrd, 'arm_debug_console_trace_pos')
|
||||||
|
|
||||||
class ARM_PT_ProjectWindowPanel(bpy.types.Panel):
|
class ARM_PT_ProjectWindowPanel(bpy.types.Panel):
|
||||||
bl_label = "Window"
|
bl_label = "Window"
|
||||||
|
|
Loading…
Reference in a new issue