From de6876bf2fc7cdb2a854e83069478184194da545 Mon Sep 17 00:00:00 2001 From: austin Date: Sun, 25 May 2025 17:08:20 -0400 Subject: [PATCH] client leverages block chunk short pool --- docs/src/progress/renderertodo.md | 1 + .../java/electrosphere/client/block/ClientBlockManager.java | 5 +++-- .../client/terrain/manager/ClientTerrainManager.java | 5 +++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/docs/src/progress/renderertodo.md b/docs/src/progress/renderertodo.md index eb931848..8f13ef2a 100644 --- a/docs/src/progress/renderertodo.md +++ b/docs/src/progress/renderertodo.md @@ -1991,6 +1991,7 @@ Performance improvements - Model anim calculations no longer allocate new matrix4d's - Undo most object pooling - ServerBlockChunkDiskMap uses short pool + - Client leverages block chunk short pool Increase human move speed LOD components re-attach physics VectorPool->JomlPool diff --git a/src/main/java/electrosphere/client/block/ClientBlockManager.java b/src/main/java/electrosphere/client/block/ClientBlockManager.java index ce6c7358..0f7a19fd 100644 --- a/src/main/java/electrosphere/client/block/ClientBlockManager.java +++ b/src/main/java/electrosphere/client/block/ClientBlockManager.java @@ -17,6 +17,7 @@ import electrosphere.client.terrain.cells.DrawCell; import electrosphere.engine.Globals; import electrosphere.entity.Entity; import electrosphere.logger.LoggerInterface; +import electrosphere.mem.BlockChunkPool; import electrosphere.net.parser.net.message.TerrainMessage; import electrosphere.renderer.meshgen.BlockMeshgen.BlockMeshData; import electrosphere.server.physics.terrain.manager.ServerTerrainChunk; @@ -114,8 +115,8 @@ public class ClientBlockManager { //read main data if(data.getHomogenousValue() == BlockChunkData.NOT_HOMOGENOUS){ - short[] type = new short[BlockChunkData.TOTAL_DATA_WIDTH]; - short[] metadata = new short[BlockChunkData.TOTAL_DATA_WIDTH]; + short[] type = BlockChunkPool.getShort(); + short[] metadata = BlockChunkPool.getShort(); ByteBuffer buffer = ByteBuffer.wrap(message.getchunkData()); ShortBuffer shortBuffer = buffer.asShortBuffer(); diff --git a/src/main/java/electrosphere/client/terrain/manager/ClientTerrainManager.java b/src/main/java/electrosphere/client/terrain/manager/ClientTerrainManager.java index 46727e08..2e433c45 100644 --- a/src/main/java/electrosphere/client/terrain/manager/ClientTerrainManager.java +++ b/src/main/java/electrosphere/client/terrain/manager/ClientTerrainManager.java @@ -26,6 +26,7 @@ import electrosphere.engine.Globals; import electrosphere.entity.ClientEntityUtils; import electrosphere.entity.Entity; import electrosphere.logger.LoggerInterface; +import electrosphere.mem.BlockChunkPool; import electrosphere.net.parser.net.message.TerrainMessage; import electrosphere.renderer.meshgen.TransvoxelModelGeneration; import electrosphere.renderer.model.Model; @@ -204,8 +205,8 @@ public class ClientTerrainManager { //read main data if(data.getHomogenousValue() == BlockChunkData.NOT_HOMOGENOUS){ - short[] type = new short[BlockChunkData.TOTAL_DATA_WIDTH]; - short[] metadata = new short[BlockChunkData.TOTAL_DATA_WIDTH]; + short[] type = BlockChunkPool.getShort(); + short[] metadata = BlockChunkPool.getShort(); ByteBuffer buffer = ByteBuffer.wrap(message.getchunkData()); ShortBuffer shortBuffer = buffer.asShortBuffer();