ChunkRenderInfo -> chunkupdate.py

This commit is contained in:
David Vierra 2015-04-12 15:50:57 -10:00
parent 9bf9a9c4e3
commit 4e6e074360
3 changed files with 44 additions and 41 deletions

View File

@ -3,48 +3,13 @@
""" """
from __future__ import absolute_import, division, print_function from __future__ import absolute_import, division, print_function
import logging import logging
from mcedit2.rendering import scenegraph, rendergraph, layers
from mcedit2.rendering import scenegraph, rendergraph
from mcedit2.rendering.scenegraph import NamedChildrenNode from mcedit2.rendering.scenegraph import NamedChildrenNode
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
class ChunkRenderInfo(object):
maxlod = 2
minlod = 0
def __init__(self, worldScene, chunkPosition):
"""
:param worldScene:
:type worldScene: mcedit2.rendering.worldscene.WorldScene
:param chunkPosition:
:type chunkPosition: (int, int)
:return:
:rtype:
"""
super(ChunkRenderInfo, self).__init__()
self.worldScene = worldScene
self.detailLevel = worldScene.minlod
self.invalidLayers = set(layers.Layer.AllLayers)
self.renderedLayers = set()
self.chunkPosition = chunkPosition
self.bufferSize = 0
self.vertexNodes = []
cx, cz = chunkPosition
self.translateOffset = (cx << 4, 0, cz << 4)
def getChunkVertexNodes(self):
return iter(self.vertexNodes)
@property
def visibleLayers(self):
return self.worldScene.visibleLayers #xxxx
@property
def layersToRender(self):
return len(self.invalidLayers) + len(self.visibleLayers - self.renderedLayers)
class ChunkNode(scenegraph.Node): class ChunkNode(scenegraph.Node):
RenderNodeClass = rendergraph.TranslateRenderNode RenderNodeClass = rendergraph.TranslateRenderNode

View File

@ -22,11 +22,49 @@ from mceditlib.selection import BoundingBox, SectionBox
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
class ChunkRenderInfo(object):
maxlod = 2
minlod = 0
def __init__(self, worldScene, chunkPosition):
"""
:param worldScene:
:type worldScene: mcedit2.rendering.worldscene.WorldScene
:param chunkPosition:
:type chunkPosition: (int, int)
:return:
:rtype:
"""
super(ChunkRenderInfo, self).__init__()
self.worldScene = worldScene
self.detailLevel = worldScene.minlod
self.invalidLayers = set(layers.Layer.AllLayers)
self.renderedLayers = set()
self.chunkPosition = chunkPosition
self.bufferSize = 0
self.vertexNodes = []
cx, cz = chunkPosition
self.translateOffset = (cx << 4, 0, cz << 4)
def getChunkVertexNodes(self):
return iter(self.vertexNodes)
@property
def visibleLayers(self):
return self.worldScene.visibleLayers #xxxx
@property
def layersToRender(self):
return len(self.invalidLayers) + len(self.visibleLayers - self.renderedLayers)
class ChunkUpdate(object): class ChunkUpdate(object):
def __init__(self, updateTask, chunkInfo, chunk): def __init__(self, updateTask, chunkInfo, chunk):
""" """
:type updateTask: mcedit2.rendering.worldscene.SceneUpdateTask :type updateTask: mcedit2.rendering.worldscene.SceneUpdateTask
:type chunkInfo: mcedit2.rendering.chunknode.ChunkRenderInfo :type chunkInfo: mcedit2.rendering.chunkupdate.ChunkRenderInfo
:type chunk: AnvilChunk :type chunk: AnvilChunk
:rtype: ChunkUpdate :rtype: ChunkUpdate
""" """
@ -401,4 +439,3 @@ class SectionUpdate(object):
modelMesh.createVertexArrays() modelMesh.createVertexArrays()
self.blockMeshes.append(modelMesh) self.blockMeshes.append(modelMesh)
yield yield

View File

@ -11,7 +11,8 @@ import itertools
from mcedit2.rendering.layers import Layer from mcedit2.rendering.layers import Layer
from mcedit2.rendering import chunkupdate, scenegraph from mcedit2.rendering import chunkupdate, scenegraph
from mcedit2.rendering import renderstates from mcedit2.rendering import renderstates
from mcedit2.rendering.chunknode import ChunkNode, ChunkRenderInfo, ChunkGroupNode from mcedit2.rendering.chunknode import ChunkNode, ChunkGroupNode
from mcedit2.rendering.chunkupdate import ChunkRenderInfo
from mcedit2.rendering.depths import DepthOffset from mcedit2.rendering.depths import DepthOffset
from mcedit2.rendering.geometrycache import GeometryCache from mcedit2.rendering.geometrycache import GeometryCache