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
import logging
from mcedit2.rendering import scenegraph, rendergraph, layers
from mcedit2.rendering import scenegraph, rendergraph
from mcedit2.rendering.scenegraph import NamedChildrenNode
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):
RenderNodeClass = rendergraph.TranslateRenderNode

View File

@ -22,11 +22,49 @@ from mceditlib.selection import BoundingBox, SectionBox
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):
def __init__(self, updateTask, chunkInfo, chunk):
"""
:type updateTask: mcedit2.rendering.worldscene.SceneUpdateTask
:type chunkInfo: mcedit2.rendering.chunknode.ChunkRenderInfo
:type chunkInfo: mcedit2.rendering.chunkupdate.ChunkRenderInfo
:type chunk: AnvilChunk
:rtype: ChunkUpdate
"""
@ -401,4 +439,3 @@ class SectionUpdate(object):
modelMesh.createVertexArrays()
self.blockMeshes.append(modelMesh)
yield

View File

@ -11,7 +11,8 @@ import itertools
from mcedit2.rendering.layers import Layer
from mcedit2.rendering import chunkupdate, scenegraph
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.geometrycache import GeometryCache