From 13f16e29f92111a2151997e113fc5fac7c9b2aba Mon Sep 17 00:00:00 2001 From: Bixilon Date: Tue, 30 May 2023 16:22:17 +0200 Subject: [PATCH] occlusion culling: improve memory efficiency --- .../data/world/container/block/SectionOcclusion.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/data/world/container/block/SectionOcclusion.kt b/src/main/java/de/bixilon/minosoft/data/world/container/block/SectionOcclusion.kt index e3175cafa..5d48e243f 100644 --- a/src/main/java/de/bixilon/minosoft/data/world/container/block/SectionOcclusion.kt +++ b/src/main/java/de/bixilon/minosoft/data/world/container/block/SectionOcclusion.kt @@ -99,7 +99,7 @@ class SectionOcclusion( } val nRegion = regions[indexPrefix].toInt() if (nRegion > 0) { - sideRegions[nDirection.ordinal] += nRegion + sideRegions[nDirection.ordinal].add(nRegion) // primitive } val pDirection = when (axis) { @@ -114,7 +114,7 @@ class SectionOcclusion( } val pRegion = regions[index2].toInt() if (pRegion > 0) { - sideRegions[pDirection.ordinal] += pRegion + sideRegions[pDirection.ordinal].add(pRegion) // primitive } } } @@ -148,8 +148,10 @@ class SectionOcclusion( val first = if (preferIn) inSides else outSides val second = if (preferIn) outSides else inSides - for (region in first.intIterator()) { - if (region in second) { + val iterator = first.intIterator() + while (iterator.hasNext()) { + val region = iterator.nextInt() + if (second.contains(region)) { return false } }