From fd795bf79cfc0e068d0d7b8e58acc0f034150f69 Mon Sep 17 00:00:00 2001 From: David Vierra Date: Sun, 25 Oct 2015 16:39:24 -1000 Subject: [PATCH] xxx destroy this commit, adds logging to rendernode --- .../rendering/scenegraph/rendernode.py | 42 ++++++++++++++++++- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/src/mcedit2/rendering/scenegraph/rendernode.py b/src/mcedit2/rendering/scenegraph/rendernode.py index d3c5c7f..e9fe281 100644 --- a/src/mcedit2/rendering/scenegraph/rendernode.py +++ b/src/mcedit2/rendering/scenegraph/rendernode.py @@ -80,9 +80,11 @@ class RenderNode(object): return self.displayList.getList() def callList(self): + rendernode_log("callList", self) self.displayList.call() def compile(self): + rendernode_log("compile", self) if self.childNeedsRecompile: for node in self.children: if node.sceneNode.visible: @@ -92,6 +94,7 @@ class RenderNode(object): self.displayList.compile(self.draw) def draw(self): + rendernode_log("draw", self) self.drawSelf() self.drawChildren() @@ -165,6 +168,26 @@ def createRenderNode(sceneNode): updateRenderNode(renderNode) return renderNode +logUpdateRenderNode = False + +rendernode_file = None + +def rendernode_log(msg, node, *a): + if not logUpdateRenderNode: + return + + global rendernode_file + if rendernode_file is None: + rendernode_file = open("rendernode.log", "w") + + if len(a): + msg = msg % a + + msg = str(node) + ": " + msg + + rendernode_file.write(msg) + rendernode_file.write("\n") + def updateRenderNode(renderNode): """ @@ -182,20 +205,25 @@ def updateRenderNode(renderNode): :type renderNode: mcedit2.rendering.rendernode.RenderNode """ sceneNode = renderNode.sceneNode + rendernode_log("updateRenderNode", sceneNode) if sceneNode.dirty: + rendernode_log("dirty", sceneNode) renderNode.invalidate() sceneNode.dirty = False if sceneNode.childrenChanged: + rendernode_log("childrenChanged", sceneNode) updateChildren(renderNode) sceneNode.childrenChanged = False if sceneNode.descendentNeedsUpdate: + rendernode_log("descendentNeedsUpdate", sceneNode) for renderChild in renderNode.children: updateRenderNode(renderChild) sceneNode.descendentNeedsUpdate = False + def updateChildren(renderNode): """ Compare the children of this renderNode to the children of its sceneNode. Create @@ -208,10 +236,12 @@ def updateChildren(renderNode): """ sceneNode = renderNode.sceneNode orphans = [] + rendernode_log("childrenChanged", sceneNode) # Find renderNode children whose sceneNode is no longer this node's sceneNode for renderChild in renderNode.children: if not renderChild.sceneNode.hasParent(sceneNode): + rendernode_log("orphaned", renderChild) orphans.append(renderChild) for node in orphans: @@ -222,9 +252,10 @@ def updateChildren(renderNode): for index, sceneChild in enumerate(sceneNode.children): renderChild = renderNode.childrenBySceneNode.get(sceneChild) if renderChild is None: - renderNode.insertNode(index, createRenderNode(sceneChild)) + renderChild = createRenderNode(sceneChild) + renderNode.insertNode(index, renderChild) sceneChild.dirty = False - + rendernode_log("new child", renderChild) def renderScene(renderNode): @@ -235,3 +266,10 @@ def renderScene(renderNode): with profiler.context("renderNode.callList"): renderNode.callList() + global rendernode_file, logUpdateRenderNode + logUpdateRenderNode = False + if rendernode_file: + rendernode_file.close() + rendernode_file = None + +