xxx destroy this commit, adds logging to rendernode
This commit is contained in:
parent
333e0e6b3b
commit
fd795bf79c
@ -80,9 +80,11 @@ class RenderNode(object):
|
|||||||
return self.displayList.getList()
|
return self.displayList.getList()
|
||||||
|
|
||||||
def callList(self):
|
def callList(self):
|
||||||
|
rendernode_log("callList", self)
|
||||||
self.displayList.call()
|
self.displayList.call()
|
||||||
|
|
||||||
def compile(self):
|
def compile(self):
|
||||||
|
rendernode_log("compile", self)
|
||||||
if self.childNeedsRecompile:
|
if self.childNeedsRecompile:
|
||||||
for node in self.children:
|
for node in self.children:
|
||||||
if node.sceneNode.visible:
|
if node.sceneNode.visible:
|
||||||
@ -92,6 +94,7 @@ class RenderNode(object):
|
|||||||
self.displayList.compile(self.draw)
|
self.displayList.compile(self.draw)
|
||||||
|
|
||||||
def draw(self):
|
def draw(self):
|
||||||
|
rendernode_log("draw", self)
|
||||||
self.drawSelf()
|
self.drawSelf()
|
||||||
self.drawChildren()
|
self.drawChildren()
|
||||||
|
|
||||||
@ -165,6 +168,26 @@ def createRenderNode(sceneNode):
|
|||||||
updateRenderNode(renderNode)
|
updateRenderNode(renderNode)
|
||||||
return 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):
|
def updateRenderNode(renderNode):
|
||||||
"""
|
"""
|
||||||
@ -182,20 +205,25 @@ def updateRenderNode(renderNode):
|
|||||||
:type renderNode: mcedit2.rendering.rendernode.RenderNode
|
:type renderNode: mcedit2.rendering.rendernode.RenderNode
|
||||||
"""
|
"""
|
||||||
sceneNode = renderNode.sceneNode
|
sceneNode = renderNode.sceneNode
|
||||||
|
rendernode_log("updateRenderNode", sceneNode)
|
||||||
|
|
||||||
if sceneNode.dirty:
|
if sceneNode.dirty:
|
||||||
|
rendernode_log("dirty", sceneNode)
|
||||||
renderNode.invalidate()
|
renderNode.invalidate()
|
||||||
sceneNode.dirty = False
|
sceneNode.dirty = False
|
||||||
|
|
||||||
if sceneNode.childrenChanged:
|
if sceneNode.childrenChanged:
|
||||||
|
rendernode_log("childrenChanged", sceneNode)
|
||||||
updateChildren(renderNode)
|
updateChildren(renderNode)
|
||||||
sceneNode.childrenChanged = False
|
sceneNode.childrenChanged = False
|
||||||
|
|
||||||
if sceneNode.descendentNeedsUpdate:
|
if sceneNode.descendentNeedsUpdate:
|
||||||
|
rendernode_log("descendentNeedsUpdate", sceneNode)
|
||||||
for renderChild in renderNode.children:
|
for renderChild in renderNode.children:
|
||||||
updateRenderNode(renderChild)
|
updateRenderNode(renderChild)
|
||||||
sceneNode.descendentNeedsUpdate = False
|
sceneNode.descendentNeedsUpdate = False
|
||||||
|
|
||||||
|
|
||||||
def updateChildren(renderNode):
|
def updateChildren(renderNode):
|
||||||
"""
|
"""
|
||||||
Compare the children of this renderNode to the children of its sceneNode. Create
|
Compare the children of this renderNode to the children of its sceneNode. Create
|
||||||
@ -208,10 +236,12 @@ def updateChildren(renderNode):
|
|||||||
"""
|
"""
|
||||||
sceneNode = renderNode.sceneNode
|
sceneNode = renderNode.sceneNode
|
||||||
orphans = []
|
orphans = []
|
||||||
|
rendernode_log("childrenChanged", sceneNode)
|
||||||
|
|
||||||
# Find renderNode children whose sceneNode is no longer this node's sceneNode
|
# Find renderNode children whose sceneNode is no longer this node's sceneNode
|
||||||
for renderChild in renderNode.children:
|
for renderChild in renderNode.children:
|
||||||
if not renderChild.sceneNode.hasParent(sceneNode):
|
if not renderChild.sceneNode.hasParent(sceneNode):
|
||||||
|
rendernode_log("orphaned", renderChild)
|
||||||
orphans.append(renderChild)
|
orphans.append(renderChild)
|
||||||
|
|
||||||
for node in orphans:
|
for node in orphans:
|
||||||
@ -222,9 +252,10 @@ def updateChildren(renderNode):
|
|||||||
for index, sceneChild in enumerate(sceneNode.children):
|
for index, sceneChild in enumerate(sceneNode.children):
|
||||||
renderChild = renderNode.childrenBySceneNode.get(sceneChild)
|
renderChild = renderNode.childrenBySceneNode.get(sceneChild)
|
||||||
if renderChild is None:
|
if renderChild is None:
|
||||||
renderNode.insertNode(index, createRenderNode(sceneChild))
|
renderChild = createRenderNode(sceneChild)
|
||||||
|
renderNode.insertNode(index, renderChild)
|
||||||
sceneChild.dirty = False
|
sceneChild.dirty = False
|
||||||
|
rendernode_log("new child", renderChild)
|
||||||
|
|
||||||
|
|
||||||
def renderScene(renderNode):
|
def renderScene(renderNode):
|
||||||
@ -235,3 +266,10 @@ def renderScene(renderNode):
|
|||||||
with profiler.context("renderNode.callList"):
|
with profiler.context("renderNode.callList"):
|
||||||
renderNode.callList()
|
renderNode.callList()
|
||||||
|
|
||||||
|
global rendernode_file, logUpdateRenderNode
|
||||||
|
logUpdateRenderNode = False
|
||||||
|
if rendernode_file:
|
||||||
|
rendernode_file.close()
|
||||||
|
rendernode_file = None
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user