Fix console
This commit is contained in:
parent
257608499b
commit
707daf8da3
|
@ -53,11 +53,6 @@
|
|||
"link": "_screenSizeInv",
|
||||
"ifdef": ["_CFXAA", "_CDOF"]
|
||||
},
|
||||
{
|
||||
"name": "texStep",
|
||||
"link": "_screenSizeInv",
|
||||
"ifdef": ["_CFXAA"]
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
|
|
|
@ -20,7 +20,7 @@ class FirstPersonController extends CameraController {
|
|||
public function new() {
|
||||
super();
|
||||
|
||||
Scene.active.notifyOnInit(init);
|
||||
armory.Scene.active.notifyOnInit(init);
|
||||
}
|
||||
|
||||
function init() {
|
||||
|
|
|
@ -6,86 +6,8 @@ import kha.Scheduler;
|
|||
import iron.data.RenderPath;
|
||||
import iron.object.CameraObject;
|
||||
import iron.object.MeshObject;
|
||||
import armui.Armui;
|
||||
#end
|
||||
|
||||
#if arm_profile
|
||||
@:keep
|
||||
class ProfilePanel extends Panel {
|
||||
|
||||
var console:Console;
|
||||
|
||||
public function new(console:Console) {
|
||||
super();
|
||||
this.console = console;
|
||||
label = "Profile (ms)";
|
||||
}
|
||||
|
||||
public override function draw(layout:Layout) {
|
||||
var avg = Math.round(console.frameTimeAvg * 10000) / 10;
|
||||
var avgMin = Math.round(console.frameTimeAvgMin * 10000) / 10;
|
||||
var avgMax = Math.round(console.frameTimeAvgMax * 10000) / 10;
|
||||
layout.label('frame: $avg ($avgMin/$avgMax)');
|
||||
var gpuTime = console.frameTimeAvg - console.renderTimeAvg - console.updateTimeAvg;
|
||||
if (gpuTime < console.renderTimeAvg) gpuTime = console.renderTimeAvg;
|
||||
layout.label("gpu: " + Math.round(gpuTime * 10000) / 10);
|
||||
layout.label("render: " + Math.round(console.renderTimeAvg * 10000) / 10);
|
||||
layout.label("update: " + Math.round(console.updateTimeAvg * 10000) / 10);
|
||||
layout.label(" phys: " + Math.round(console.physTimeAvg * 10000) / 10);
|
||||
layout.label(" anim: 0.0");
|
||||
}
|
||||
}
|
||||
|
||||
@:keep
|
||||
class PathPanel extends Panel {
|
||||
|
||||
var console:Console;
|
||||
|
||||
public function new(console:Console) {
|
||||
super();
|
||||
this.console = console;
|
||||
closed = true;
|
||||
label = "Render Path";
|
||||
}
|
||||
|
||||
public override function draw(layout:Layout) {
|
||||
var path = console.path;
|
||||
layout.label("draw calls: " + RenderPath.drawCalls);
|
||||
layout.label("render targets: " + path.data.pathdata.raw.render_targets.length);
|
||||
|
||||
for (i in 0...path.passNames.length) {
|
||||
path.passEnabled[i] = layout._bool(path.passNames[i], path.passEnabled[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@:keep
|
||||
class OutlinerPanel extends Panel {
|
||||
|
||||
var console:Console;
|
||||
|
||||
public function new(console:Console) {
|
||||
super();
|
||||
this.console = console;
|
||||
closed = true;
|
||||
label = "Outliner";
|
||||
}
|
||||
|
||||
public override function draw(layout:Layout) {
|
||||
for (o in iron.Scene.active.meshes) {
|
||||
o.visible = layout._bool(o.name, o.visible);
|
||||
}
|
||||
for (o in iron.Scene.active.lamps) {
|
||||
o.visible = layout._bool(o.name, o.visible);
|
||||
}
|
||||
for (o in iron.Scene.active.cameras) {
|
||||
o.visible = layout._bool(o.name, o.visible);
|
||||
}
|
||||
for (o in iron.Scene.active.speakers) {
|
||||
o.visible = layout._bool(o.name, o.visible);
|
||||
}
|
||||
}
|
||||
}
|
||||
import zui.Zui;
|
||||
import zui.Id;
|
||||
#end
|
||||
|
||||
@:keep
|
||||
|
@ -95,36 +17,29 @@ class Console extends Trait {
|
|||
public function new() { super(); }
|
||||
#else
|
||||
|
||||
var ui:Armui;
|
||||
var area:Area;
|
||||
|
||||
public var path:RenderPath;
|
||||
var ui:Zui;
|
||||
var path:RenderPath;
|
||||
|
||||
var lastTime = 0.0;
|
||||
var frameTime = 0.0;
|
||||
var totalTime = 0.0;
|
||||
var frames = 0;
|
||||
|
||||
public var frameTimeAvg = 0.0;
|
||||
public var frameTimeAvgMin = 0.0;
|
||||
public var frameTimeAvgMax = 0.0;
|
||||
public var renderTime = 0.0;
|
||||
public var renderTimeAvg = 0.0;
|
||||
public var updateTime = 0.0;
|
||||
public var updateTimeAvg = 0.0;
|
||||
public var physTime = 0.0;
|
||||
public var physTimeAvg = 0.0;
|
||||
var frameTimeAvg = 0.0;
|
||||
var frameTimeAvgMin = 0.0;
|
||||
var frameTimeAvgMax = 0.0;
|
||||
var renderTime = 0.0;
|
||||
var renderTimeAvg = 0.0;
|
||||
var updateTime = 0.0;
|
||||
var updateTimeAvg = 0.0;
|
||||
var physTime = 0.0;
|
||||
var physTimeAvg = 0.0;
|
||||
|
||||
public function new() {
|
||||
super();
|
||||
|
||||
iron.data.Data.getFont('dejavu.ttf', function(font:kha.Font) {
|
||||
ui = new Armui(font);
|
||||
area = ui.addArea(0, 0, 160, iron.App.h());
|
||||
area.addPanel(new ProfilePanel(this));
|
||||
area.addPanel(new PathPanel(this));
|
||||
area.addPanel(new OutlinerPanel(this));
|
||||
|
||||
iron.data.Data.getFont('droid_sans.ttf', function(font:kha.Font) {
|
||||
ui = new Zui({font: font});
|
||||
notifyOnInit(init);
|
||||
notifyOnRender2D(render2D);
|
||||
notifyOnUpdate(update);
|
||||
|
@ -136,14 +51,60 @@ class Console extends Trait {
|
|||
}
|
||||
|
||||
function render2D(g:kha.graphics2.Graphics) {
|
||||
ui.draw(g);
|
||||
g.end();
|
||||
ui.begin(g);
|
||||
if (ui.window(Id.handle(), 0, 0, 250, iron.App.h(), true)) {
|
||||
if (ui.panel(Id.handle({selected: true}), "Profile (ms)")) {
|
||||
var avg = Math.round(frameTimeAvg * 10000) / 10;
|
||||
var avgMin = Math.round(frameTimeAvgMin * 10000) / 10;
|
||||
var avgMax = Math.round(frameTimeAvgMax * 10000) / 10;
|
||||
ui.text('frame: $avg ($avgMin/$avgMax)');
|
||||
var gpuTime = frameTimeAvg - renderTimeAvg - updateTimeAvg;
|
||||
if (gpuTime < renderTimeAvg) gpuTime = renderTimeAvg;
|
||||
ui.text("gpu: " + Math.round(gpuTime * 10000) / 10);
|
||||
ui.text("render: " + Math.round(renderTimeAvg * 10000) / 10);
|
||||
ui.text("update: " + Math.round(updateTimeAvg * 10000) / 10);
|
||||
ui.indent();
|
||||
ui.text("phys: " + Math.round(physTimeAvg * 10000) / 10);
|
||||
ui.text("anim: 0.0");
|
||||
ui.unindent();
|
||||
}
|
||||
ui.separator();
|
||||
|
||||
if (ui.panel(Id.handle(), "Render Path")) {
|
||||
ui.text("draw calls: " + RenderPath.drawCalls);
|
||||
ui.text("render targets: " + path.data.pathdata.raw.render_targets.length);
|
||||
var hcheck = Id.handle();
|
||||
for (i in 0...path.passNames.length) {
|
||||
path.passEnabled[i] = ui.check(hcheck.nest(i, {selected: path.passEnabled[i]}), path.passNames[i]);
|
||||
}
|
||||
}
|
||||
ui.separator();
|
||||
|
||||
if (ui.panel(Id.handle(), "Inspector")) {
|
||||
function drawList(h:Handle, objs:Array<iron.object.Object>) {
|
||||
for (i in 0...objs.length) {
|
||||
var o = objs[i];
|
||||
var text = o.name + " (" + Std.int(o.transform.absx() * 100) / 100 + ", " + Std.int(o.transform.absy() * 100) / 100 + ", " + Std.int(o.transform.absz() * 100) / 100 + ")";
|
||||
if (Std.is(o, MeshObject)) text += " - " + Std.int(cast(o, MeshObject).screenSize * 100) / 100;
|
||||
o.visible = ui.check(h.nest(i, {selected: o.visible}), text);
|
||||
}
|
||||
}
|
||||
drawList(Id.handle(), cast iron.Scene.active.meshes);
|
||||
drawList(Id.handle(), cast iron.Scene.active.lamps);
|
||||
drawList(Id.handle(), cast iron.Scene.active.cameras);
|
||||
drawList(Id.handle(), cast iron.Scene.active.speakers);
|
||||
}
|
||||
}
|
||||
ui.end();
|
||||
|
||||
g.begin(false);
|
||||
|
||||
#if arm_profile
|
||||
totalTime += frameTime;
|
||||
renderTime += iron.App.renderTime;
|
||||
frames++;
|
||||
if (totalTime > 1.0) {
|
||||
area.tagRedraw();
|
||||
var t = totalTime / frames;
|
||||
// Second frame
|
||||
if (frameTimeAvg > 0) {
|
||||
|
|
|
@ -121,8 +121,8 @@ def init_properties():
|
|||
items = [('Disabled', 'Disabled', 'Disabled'),
|
||||
('Recast', 'Recast', 'Recast')],
|
||||
name = "Navigation", default='Recast')
|
||||
bpy.types.World.arm_ui = BoolProperty(name="UI Library", description="Include UI library", default=False)
|
||||
bpy.types.World.arm_engine_on = bpy.props.BoolProperty(name="Armory On", description="Armory engine enabled", default=True)
|
||||
bpy.types.World.arm_ui = BoolProperty(name="ArmUI", description="Include ArmUI library", default=False)
|
||||
bpy.types.World.arm_khafile = StringProperty(name = "Khafile", description="Source appended to khafile.js")
|
||||
bpy.types.World.arm_command_line = StringProperty(name = "Command Line", description="Commands appended to khamake")
|
||||
bpy.types.World.arm_minimize = BoolProperty(name="Minimize Data", description="Export scene data in binary", default=True, update=assets.invalidate_compiled_data)
|
||||
|
|
|
@ -429,7 +429,9 @@ class ArmoryProjectPanel(bpy.types.Panel):
|
|||
layout.prop(wrd, 'arm_project_package')
|
||||
layout.prop_search(wrd, 'arm_khafile', bpy.data, 'texts', 'Khafile')
|
||||
layout.prop_search(wrd, 'arm_command_line', bpy.data, 'texts', 'Command Line')
|
||||
layout.operator("arm.kode_studio")
|
||||
row = layout.row(align=True)
|
||||
row.operator("arm.kode_studio")
|
||||
row.operator("arm.open_project_folder")
|
||||
row = layout.row(align=True)
|
||||
row.alignment = 'EXPAND'
|
||||
row.operator("arm.build_project")
|
||||
|
@ -581,9 +583,9 @@ class ArmoryPatchButton(bpy.types.Operator):
|
|||
assets.invalidate_enabled = True
|
||||
return{'FINISHED'}
|
||||
|
||||
class ArmoryFolderButton(bpy.types.Operator):
|
||||
class ArmoryOpenProjectFolderButton(bpy.types.Operator):
|
||||
'''Open project folder'''
|
||||
bl_idname = 'arm.folder'
|
||||
bl_idname = 'arm.open_project_folder'
|
||||
bl_label = 'Project Folder'
|
||||
|
||||
def execute(self, context):
|
||||
|
|
|
@ -74,8 +74,8 @@ project.addSources('Sources');
|
|||
f.write("project.addDefine('arm_profile');\n")
|
||||
|
||||
if wrd.arm_play_console or wrd.arm_ui:
|
||||
f.write(add_armory_library(sdk_path, 'lib/armui'))
|
||||
p = sdk_path + '/lib/armui/Assets/dejavu.ttf'
|
||||
f.write(add_armory_library(sdk_path, 'lib/zui'))
|
||||
p = sdk_path + '/armory/Assets/droid_sans.ttf'
|
||||
f.write('project.addAssets("' + p.replace('\\', '/') + '");\n')
|
||||
|
||||
# if wrd.arm_ui:
|
||||
|
@ -310,8 +310,8 @@ const vec3 compoFogColor = vec3(""" + str(round(wrd.generate_fog_color[0] * 100)
|
|||
f.write(
|
||||
"""const float compoDOFDistance = """ + str(round(bpy.data.cameras[0].dof_distance * 100) / 100) + """;
|
||||
const float compoDOFFstop = """ + str(round(bpy.data.cameras[0].gpu_dof.fstop * 100) / 100) + """;
|
||||
const float compoDOFLength = """ + str(round(bpy.data.cameras[0].lens * 100) / 100) + """;
|
||||
""")
|
||||
const float compoDOFLength = 160.0;
|
||||
""") # str(round(bpy.data.cameras[0].lens * 100) / 100)
|
||||
|
||||
if bpy.data.cameras[0].rp_voxelgi:
|
||||
f.write(
|
||||
|
|
Loading…
Reference in a new issue