浏览代码

Add more fixes

Garrett Johnson 5 年之前
父节点
当前提交
177e52b78b
共有 2 个文件被更改,包括 26 次插入1 次删除
  1. 1 0
      example/data/tileset-no-midtile-content.json
  2. 25 1
      src/base/traverseFunctions.js

文件差异内容过多而无法显示
+ 1 - 0
example/data/tileset-no-midtile-content.json


+ 25 - 1
src/base/traverseFunctions.js

@@ -52,6 +52,30 @@ function recursivelyMarkUsed( tile, frameCount, lruCache ) {
 
 }
 
+function recursivelyLoadTiles( tile, depthFromRenderedParent, renderer ) {
+
+	if ( tile.__contentEmpty ) {
+
+		const children = tile.children;
+		for ( let i = 0, l = children.length; i < l; i ++ ) {
+
+			// don't increment depth to rendered parent here because we should treat
+			// the next layer of rendered children as just a single depth away for the
+			// sake of sorting.
+			const child = children[ i ];
+			child.__depthFromRenderedParent = depthFromRenderedParent;
+			recursivelyLoadTiles( children[ i ], depthFromRenderedParent, renderer );
+
+		}
+
+	} else {
+
+		renderer.requestTileContents( tile );
+
+	}
+
+}
+
 // Helper function for recursively traversing a tileset. If `beforeCb` returns `true` then the
 // traversal will end early.
 export function traverseSet( tile, beforeCb = null, afterCb = null, parent = null, depth = 0 ) {
@@ -306,7 +330,7 @@ export function skipTraversal( tile, renderer ) {
 				if ( isUsedThisFrame( c, frameCount ) && ! lruCache.isFull() ) {
 
 					c.__depthFromRenderedParent = tile.__depthFromRenderedParent + 1;
-					renderer.requestTileContents( c );
+					recursivelyLoadTiles( c, c.__depthFromRenderedParent, renderer );
 
 				}