refactoring

This commit is contained in:
James Seibel
2023-02-16 09:23:20 -06:00
parent 49b345776f
commit bd9bfd7d0f
3 changed files with 18 additions and 19 deletions
@@ -222,21 +222,21 @@ public class ColumnRenderBuffer extends AbstractRenderBuffer
return getCurrentJobsCount() > MAX_CONCURRENT_CALL;
}
public static CompletableFuture<ColumnRenderBuffer> build(IDhClientLevel clientLevel, Reference<ColumnRenderBuffer> usedBufferSlot, ColumnRenderSource data, ColumnRenderSource[] adjData)
public static CompletableFuture<ColumnRenderBuffer> build(IDhClientLevel clientLevel, Reference<ColumnRenderBuffer> 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;
@@ -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<DhSectionPos, RenderMetaDataFile> 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<IRenderSource> 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)))
@@ -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);
}