diff --git a/core/src/main/java/com/seibel/lod/core/datatype/column/render/ColumnRenderBuffer.java b/core/src/main/java/com/seibel/lod/core/datatype/column/render/ColumnRenderBuffer.java index 25cb7e339..c938fedaf 100644 --- a/core/src/main/java/com/seibel/lod/core/datatype/column/render/ColumnRenderBuffer.java +++ b/core/src/main/java/com/seibel/lod/core/datatype/column/render/ColumnRenderBuffer.java @@ -222,21 +222,21 @@ public class ColumnRenderBuffer extends AbstractRenderBuffer return getCurrentJobsCount() > MAX_CONCURRENT_CALL; } - public static CompletableFuture build(IDhClientLevel clientLevel, Reference usedBufferSlot, ColumnRenderSource data, ColumnRenderSource[] adjData) + public static CompletableFuture build(IDhClientLevel clientLevel, Reference usedBufferSlot, ColumnRenderSource renderSource, ColumnRenderSource[] adjData) { if (isBusy()) { return null; } - //LOGGER.info("RenderRegion startBuild @ {}", data.sectionPos); + //LOGGER.info("RenderRegion startBuild @ {}", renderSource.sectionPos); return CompletableFuture.supplyAsync(() -> { try { boolean enableTransparency = Config.Client.Graphics.Quality.transparency.get().tranparencyEnabled; - EVENT_LOGGER.trace("RenderRegion start QuadBuild @ {}", data.sectionPos); + EVENT_LOGGER.trace("RenderRegion start QuadBuild @ {}", renderSource.sectionPos); boolean enableSkyLightCulling = Config.Client.Graphics.AdvancedGraphics.enableCaveCulling.get(); int skyLightCullingBelow = Config.Client.Graphics.AdvancedGraphics.caveCullingHeight.get(); @@ -246,8 +246,8 @@ public class ColumnRenderBuffer extends AbstractRenderBuffer LodQuadBuilder builder = new LodQuadBuilder(enableSkyLightCulling, (short) (skyLightCullingBelow - clientLevel.getMinY()), enableTransparency); - makeLodRenderData(builder, data, adjData); - EVENT_LOGGER.trace("RenderRegion end QuadBuild @ {}", data.sectionPos); + makeLodRenderData(builder, renderSource, adjData); + EVENT_LOGGER.trace("RenderRegion end QuadBuild @ {}", renderSource.sectionPos); return builder; } catch (UncheckedInterruptedException e) @@ -265,7 +265,7 @@ public class ColumnRenderBuffer extends AbstractRenderBuffer { try { - EVENT_LOGGER.trace("RenderRegion start Upload @ {}", data.sectionPos); + EVENT_LOGGER.trace("RenderRegion start Upload @ {}", renderSource.sectionPos); GLProxy glProxy = GLProxy.getInstance(); EGpuUploadMethod method = GLProxy.getInstance().getGpuUploadMethod(); EGLProxyContext oldContext = glProxy.getGlContext(); @@ -274,12 +274,12 @@ public class ColumnRenderBuffer extends AbstractRenderBuffer if (buffer == null) buffer = new ColumnRenderBuffer( - new DhBlockPos(data.sectionPos.getCorner().getCornerBlockPos(), clientLevel.getMinY()) + new DhBlockPos(renderSource.sectionPos.getCorner().getCornerBlockPos(), clientLevel.getMinY()) ); try { buffer.uploadBuffer(quadBuilder, method); - EVENT_LOGGER.trace("RenderRegion end Upload @ {}", data.sectionPos); + EVENT_LOGGER.trace("RenderRegion end Upload @ {}", renderSource.sectionPos); return buffer; } catch (Exception e) @@ -302,7 +302,7 @@ public class ColumnRenderBuffer extends AbstractRenderBuffer throw e3; } }, BUFFER_UPLOADER).handle((v, e) -> { - //LOGGER.info("RenderRegion endBuild @ {}", data.sectionPos); + //LOGGER.info("RenderRegion endBuild @ {}", renderSource.sectionPos); if (e != null) { ColumnRenderBuffer buffer; diff --git a/core/src/main/java/com/seibel/lod/core/file/renderfile/RenderFileHandler.java b/core/src/main/java/com/seibel/lod/core/file/renderfile/RenderFileHandler.java index 45dc43bc5..1e2b37305 100644 --- a/core/src/main/java/com/seibel/lod/core/file/renderfile/RenderFileHandler.java +++ b/core/src/main/java/com/seibel/lod/core/file/renderfile/RenderFileHandler.java @@ -29,7 +29,7 @@ import java.util.concurrent.ExecutorService; public class RenderFileHandler implements ILodRenderSourceProvider { private static final Logger LOGGER = DhLoggerBuilder.getLogger(); - + private final ExecutorService renderCacheThread = LodUtil.makeSingleThreadPool("RenderCacheThread"); private final ConcurrentHashMap filesBySectionPos = new ConcurrentHashMap<>(); @@ -152,6 +152,12 @@ public class RenderFileHandler implements ILodRenderSourceProvider } } + + + //===============// + // file handling // + //===============// + /** This call is concurrent. I.e. it supports multiple threads calling this method at the same time. */ @Override public CompletableFuture read(DhSectionPos pos) @@ -194,16 +200,9 @@ public class RenderFileHandler implements ILodRenderSourceProvider @Override public void write(DhSectionPos sectionPos, ChunkSizedData chunkData) { - // can be used for debugging - if (chunkData.getBBoxLodPos().convertToDetailLevel((byte)6).equals(new DhLodPos((byte)6, 10, -11))) - { - int doNothing = 0; - } - this.writeRecursively(sectionPos,chunkData); - this.fullDataSourceProvider.write(sectionPos, chunkData); + this.fullDataSourceProvider.write(sectionPos, chunkData); // TODO why is there fullData handling in the render file handler? } - private void writeRecursively(DhSectionPos sectPos, ChunkSizedData chunkData) { if (!sectPos.getSectionBBoxPos().overlaps(new DhLodPos((byte) (4 + chunkData.dataDetail), chunkData.x, chunkData.z))) diff --git a/core/src/main/java/com/seibel/lod/core/file/renderfile/RenderMetaDataFile.java b/core/src/main/java/com/seibel/lod/core/file/renderfile/RenderMetaDataFile.java index c2454afb3..7c68eccdb 100644 --- a/core/src/main/java/com/seibel/lod/core/file/renderfile/RenderMetaDataFile.java +++ b/core/src/main/java/com/seibel/lod/core/file/renderfile/RenderMetaDataFile.java @@ -201,7 +201,7 @@ public class RenderMetaDataFile extends AbstractMetaDataFile data = this.fileHandler.onLoadingRenderFile(this); if (data == null) { - try (FileInputStream fio = getDataContent()) + try (FileInputStream fio = this.getDataContent()) { data = this.loader.loadRenderSource(this, fio, level); }