diff --git a/leenkx/Sources/iron/App.hx b/leenkx/Sources/iron/App.hx index 1141187..3d6bd78 100644 --- a/leenkx/Sources/iron/App.hx +++ b/leenkx/Sources/iron/App.hx @@ -54,6 +54,22 @@ class App { if (Scene.active == null || !Scene.active.ready) return; iron.system.Time.update(); + + if (lastw == -1) { + lastw = App.w(); + lasth = App.h(); + } + if (lastw != App.w() || lasth != App.h()) { + if (onResize != null) onResize(); + else { + if (Scene.active != null && Scene.active.camera != null) { + Scene.active.camera.buildProjection(); + } + } + } + lastw = App.w(); + lasth = App.h(); + if (pauseUpdates) return; #if lnx_debug @@ -98,22 +114,6 @@ class App { for (cb in endFrameCallbacks) cb(); updateTime = kha.Scheduler.realTime() - startTime; #end - - // Rebuild projection on window resize - if (lastw == -1) { - lastw = App.w(); - lasth = App.h(); - } - if (lastw != App.w() || lasth != App.h()) { - if (onResize != null) onResize(); - else { - if (Scene.active != null && Scene.active.camera != null) { - Scene.active.camera.buildProjection(); - } - } - } - lastw = App.w(); - lasth = App.h(); } static function render(frames: Array) { diff --git a/leenkx/Sources/iron/Scene.hx b/leenkx/Sources/iron/Scene.hx index 67e9cb9..c0f1869 100644 --- a/leenkx/Sources/iron/Scene.hx +++ b/leenkx/Sources/iron/Scene.hx @@ -887,7 +887,7 @@ class Scene { var ptype: String = t.props[i * 3 + 1]; var pval: Dynamic = t.props[i * 3 + 2]; - if (StringTools.endsWith(ptype, "Object") && pval != "") { + if (StringTools.endsWith(ptype, "Object") && pval != "" && pval != null) { Reflect.setProperty(traitInst, pname, Scene.active.getChild(pval)); } else if (ptype == "TSceneFormat" && pval != "") { Data.getSceneRaw(pval, function (r: TSceneFormat) { diff --git a/leenkx/Sources/leenkx/logicnode/DrawStringNode.hx b/leenkx/Sources/leenkx/logicnode/DrawStringNode.hx index 8b00ad8..157b0ea 100644 --- a/leenkx/Sources/leenkx/logicnode/DrawStringNode.hx +++ b/leenkx/Sources/leenkx/logicnode/DrawStringNode.hx @@ -62,7 +62,7 @@ class DrawStringNode extends LogicNode { override function get(from: Int): Dynamic { - return from == 1 ? RenderToTexture.g.font.height(RenderToTexture.g.fontSize) : RenderToTexture.g.font.width(RenderToTexture.g.fontSize, string); - + return from == 1 ? RenderToTexture.g.font.width(RenderToTexture.g.fontSize, string) : RenderToTexture.g.font.height(RenderToTexture.g.fontSize); + } } diff --git a/leenkx/Sources/leenkx/trait/internal/DebugConsole.hx b/leenkx/Sources/leenkx/trait/internal/DebugConsole.hx index cb66d1d..1ab63ca 100644 --- a/leenkx/Sources/leenkx/trait/internal/DebugConsole.hx +++ b/leenkx/Sources/leenkx/trait/internal/DebugConsole.hx @@ -281,7 +281,7 @@ class DebugConsole extends Trait { function drawObjectNameInList(object: iron.object.Object, selected: Bool) { var _y = ui._y; - if (object.parent.name == 'Root') + if (object.parent.name == 'Root' && object.raw == null) ui.text(object.uid+'_'+object.name+' ('+iron.Scene.active.raw.world_ref+')'); else ui.text(object.uid+'_'+object.name); diff --git a/leenkx/blender/lnx/logicnode/camera/LN_set_camera_start_end.py b/leenkx/blender/lnx/logicnode/camera/LN_set_camera_start_end.py index d41541f..1685716 100644 --- a/leenkx/blender/lnx/logicnode/camera/LN_set_camera_start_end.py +++ b/leenkx/blender/lnx/logicnode/camera/LN_set_camera_start_end.py @@ -10,7 +10,7 @@ class SetCameraStartEndNode(LnxLogicTreeNode): def remove_extra_inputs(self, context): while len(self.inputs) > 2: - self.inputs.remove(self.inputs[-1]) + self.inputs.remove(self.inputs[-1]) if self.property0 == 'Start': self.add_input('LnxFloatSocket', 'Start') if self.property0 == 'End': diff --git a/leenkx/blender/lnx/logicnode/draw/LN_draw_Text_Area_string.py b/leenkx/blender/lnx/logicnode/draw/LN_draw_Text_Area_string.py index faf767f..d79afa2 100644 --- a/leenkx/blender/lnx/logicnode/draw/LN_draw_Text_Area_string.py +++ b/leenkx/blender/lnx/logicnode/draw/LN_draw_Text_Area_string.py @@ -71,7 +71,7 @@ class DrawTextAreaStringNode(LnxLogicTreeNode): layout.prop(self, 'property2') def get_replacement_node(self, node_tree: bpy.types.NodeTree): - if self.lnx_version not in (0, 2): + if self.lnx_version not in (0, 1, 2): raise LookupError() return NodeReplacement.Identity(self) \ No newline at end of file diff --git a/leenkx/blender/lnx/logicnode/draw/LN_draw_string.py b/leenkx/blender/lnx/logicnode/draw/LN_draw_string.py index 5317335..2873760 100644 --- a/leenkx/blender/lnx/logicnode/draw/LN_draw_string.py +++ b/leenkx/blender/lnx/logicnode/draw/LN_draw_string.py @@ -17,15 +17,15 @@ class DrawStringNode(LnxLogicTreeNode): at the anchor point. @output Out: Activated after the string has been drawn. - @output Height: String Height. @output Width: String Width. + @output Height: String Height. @see [`kha.graphics2.Graphics.drawString()`](http://kha.tech/api/kha/graphics2/Graphics.html#drawString). """ bl_idname = 'LNDrawStringNode' bl_label = 'Draw String' lnx_section = 'draw' - lnx_version = 2 + lnx_version = 3 def lnx_init(self, context): self.add_input('LnxNodeSocketAction', 'Draw') @@ -38,11 +38,11 @@ class DrawStringNode(LnxLogicTreeNode): self.add_input('LnxFloatSocket', 'Angle') self.add_output('LnxNodeSocketAction', 'Out') - self.add_output('LnxFloatSocket', 'Height') self.add_output('LnxFloatSocket', 'Width') + self.add_output('LnxFloatSocket', 'Height') def get_replacement_node(self, node_tree: bpy.types.NodeTree): - if self.lnx_version not in (0, 1): + if self.lnx_version not in (0, 1, 2): raise LookupError() return NodeReplacement.Identity(self)