refactoring
This commit is contained in:
+9
-9
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user