b
This commit is contained in:
@@ -36,12 +36,6 @@ public class RenderDistanceTracker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setCenterAndProcess(double x, double z) {
|
public void setCenterAndProcess(double x, double z) {
|
||||||
//Do some very cheeky stuff for MiB
|
|
||||||
if (false) {
|
|
||||||
int sector = (((int)Math.floor(x)>>4)+512)>>10;
|
|
||||||
x -= sector<<14;//10+4
|
|
||||||
}
|
|
||||||
|
|
||||||
double dx = this.posX-x;
|
double dx = this.posX-x;
|
||||||
double dz = this.posZ-z;
|
double dz = this.posZ-z;
|
||||||
if (CHECK_DISTANCE_BLOCKS*CHECK_DISTANCE_BLOCKS<dx*dx+dz*dz) {
|
if (CHECK_DISTANCE_BLOCKS*CHECK_DISTANCE_BLOCKS<dx*dx+dz*dz) {
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ public class SharedIndexBuffer {
|
|||||||
public static final int CUBE_INDEX_OFFSET = (1<<16)*6*2;
|
public static final int CUBE_INDEX_OFFSET = (1<<16)*6*2;
|
||||||
public static final SharedIndexBuffer INSTANCE = new SharedIndexBuffer();
|
public static final SharedIndexBuffer INSTANCE = new SharedIndexBuffer();
|
||||||
public static final SharedIndexBuffer INSTANCE_BYTE = new SharedIndexBuffer(true);
|
public static final SharedIndexBuffer INSTANCE_BYTE = new SharedIndexBuffer(true);
|
||||||
|
public static final SharedIndexBuffer INSTANCE_BB_BYTE = new SharedIndexBuffer(true, true);
|
||||||
|
|
||||||
private final GlBuffer indexBuffer;
|
private final GlBuffer indexBuffer;
|
||||||
|
|
||||||
@@ -40,6 +41,15 @@ public class SharedIndexBuffer {
|
|||||||
cubeBuff.free();
|
cubeBuff.free();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private SharedIndexBuffer(boolean type2, boolean type3) {
|
||||||
|
this.indexBuffer = new GlBuffer(6*2*3*(256/8));
|
||||||
|
var cubeBuff = generateByteCubesIndexBuffer(256/8);
|
||||||
|
|
||||||
|
cubeBuff.cpyTo(UploadStream.INSTANCE.upload(this.indexBuffer, 0, this.indexBuffer.size()));
|
||||||
|
UploadStream.INSTANCE.commit();
|
||||||
|
cubeBuff.free();
|
||||||
|
}
|
||||||
|
|
||||||
private static MemoryBuffer generateCubeIndexBuffer() {
|
private static MemoryBuffer generateCubeIndexBuffer() {
|
||||||
var buffer = new MemoryBuffer(6*2*3);
|
var buffer = new MemoryBuffer(6*2*3);
|
||||||
long ptr = buffer.address;
|
long ptr = buffer.address;
|
||||||
@@ -96,6 +106,66 @@ public class SharedIndexBuffer {
|
|||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static MemoryBuffer generateByteCubesIndexBuffer(int cnt) {
|
||||||
|
var buffer = new MemoryBuffer((long) cnt *6*2*3);
|
||||||
|
long ptr = buffer.address;
|
||||||
|
MemoryUtil.memSet(ptr, 0, buffer.size);
|
||||||
|
|
||||||
|
for (int i = 0; i < cnt; i++) {
|
||||||
|
int j = i*8;
|
||||||
|
|
||||||
|
//Bottom face
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (0+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (1+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (2+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (3+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (2+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (1+j));
|
||||||
|
|
||||||
|
//top face
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (6+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (5+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (4+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (5+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (6+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (7+j));
|
||||||
|
|
||||||
|
//north face
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (0+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (4+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (1+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (5+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (1+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (4+j));
|
||||||
|
|
||||||
|
//south face
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (3+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (6+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (2+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (6+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (3+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (7+j));
|
||||||
|
|
||||||
|
//west face
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (2+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (4+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (0+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (4+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (2+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (6+j));
|
||||||
|
|
||||||
|
//east face
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (1+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (5+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (3+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (7+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (3+j));
|
||||||
|
MemoryUtil.memPutByte(ptr++, (byte) (5+j));
|
||||||
|
}
|
||||||
|
|
||||||
|
return buffer;
|
||||||
|
}
|
||||||
|
|
||||||
public static MemoryBuffer generateQuadIndicesByte(int quadCount) {
|
public static MemoryBuffer generateQuadIndicesByte(int quadCount) {
|
||||||
if ((quadCount*4) >= 1<<8) {
|
if ((quadCount*4) >= 1<<8) {
|
||||||
throw new IllegalArgumentException("Quad count to large");
|
throw new IllegalArgumentException("Quad count to large");
|
||||||
|
|||||||
Reference in New Issue
Block a user