From 6e67ce307ebc911c54dd355dfff90dbdd71d6608 Mon Sep 17 00:00:00 2001 From: James Seibel Date: Sat, 15 Apr 2023 16:33:16 -0500 Subject: [PATCH] separate LodRenderSection load/enable methods --- .../lod/core/render/LodRenderSection.java | 39 ++++++++----------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/core/src/main/java/com/seibel/lod/core/render/LodRenderSection.java b/core/src/main/java/com/seibel/lod/core/render/LodRenderSection.java index 1ee22b003..09d97c526 100644 --- a/core/src/main/java/com/seibel/lod/core/render/LodRenderSection.java +++ b/core/src/main/java/com/seibel/lod/core/render/LodRenderSection.java @@ -35,25 +35,33 @@ public class LodRenderSection // rendering // //===========// - public void loadRenderSourceAndEnableRendering(ILodRenderSourceProvider renderDataProvider) + public void loadRenderSource(ILodRenderSourceProvider renderDataProvider) { - if (this.isRenderEnabled) - { - return; - } - this.renderSourceProvider = renderDataProvider; if (this.renderSourceProvider == null) { return; } - if (this.renderSource == null) + if (this.renderSource == null && this.loadFuture == null) { this.loadFuture = this.renderSourceProvider.read(this.pos); + this.loadFuture.whenComplete((renderSource, ex) -> + { + this.renderSource = renderSource; + this.loadFuture = null; + }); } - this.isRenderEnabled = true; } + public void enableRendering(IDhClientLevel level) + { + this.isRenderEnabled = true; + + if (this.renderSource != null) + { + this.renderSource.enableRender(level); + } + } public void disableAndDisposeRendering() @@ -105,21 +113,6 @@ public class LodRenderSection // update methods // //================// - public void tick(IDhClientLevel level) - { - // get the renderSource if it has finished loading - if (this.loadFuture != null && this.loadFuture.isDone()) - { - this.renderSource = this.loadFuture.join(); - this.loadFuture = null; - - if (this.isRenderEnabled) - { - this.renderSource.enableRender(level); - } - } - } - public void disposeRenderData() { if (this.renderSource != null)