diff options
author | makamys <makamys@outlook.com> | 2022-06-06 23:13:42 +0200 |
---|---|---|
committer | makamys <makamys@outlook.com> | 2022-06-07 01:24:22 +0200 |
commit | 9886fb39669fd7b4fe2a6f109897be2244813586 (patch) | |
tree | aafda6ebadba60f580c16f3bf982403e3623bf0a /src/main/java/makamys/lodmod/util/BufferWriter.java | |
parent | fd1ab256fc8a88affaacb71095e55318f0289036 (diff) | |
download | Neodymium-9886fb39669fd7b4fe2a6f109897be2244813586.tar.gz Neodymium-9886fb39669fd7b4fe2a6f109897be2244813586.tar.bz2 Neodymium-9886fb39669fd7b4fe2a6f109897be2244813586.zip |
Don't use MeshQuads when mesh optimization is disabled
Fixes some rendering issues (like cacti on chunk corners, and missing bottom
faces) and improves performance, when optimization is not enabled.
Diffstat (limited to 'src/main/java/makamys/lodmod/util/BufferWriter.java')
-rw-r--r-- | src/main/java/makamys/lodmod/util/BufferWriter.java | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/main/java/makamys/lodmod/util/BufferWriter.java b/src/main/java/makamys/lodmod/util/BufferWriter.java new file mode 100644 index 0000000..ae81be1 --- /dev/null +++ b/src/main/java/makamys/lodmod/util/BufferWriter.java @@ -0,0 +1,46 @@ +package makamys.lodmod.util; + +import java.nio.ByteBuffer; +import java.nio.FloatBuffer; +import java.nio.IntBuffer; +import java.nio.ShortBuffer; + +public class BufferWriter { + + private ByteBuffer buf; + + private FloatBuffer floatBuffer; + private ShortBuffer shortBuffer; + private IntBuffer intBuffer; + + public BufferWriter(ByteBuffer buf) { + this.buf = buf; + this.floatBuffer = buf.asFloatBuffer(); + this.shortBuffer = buf.asShortBuffer(); + this.intBuffer = buf.asIntBuffer(); + } + + private void incrementPosition(int add) { + buf.position(buf.position() + add); + floatBuffer.position(buf.position() / 4); + shortBuffer.position(buf.position() / 2); + intBuffer.position(buf.position() / 4); + } + + public void writeFloat(float x) { + try { + floatBuffer.put(x); + + incrementPosition(4); + } catch(Exception e){ + e.printStackTrace(); + } + } + + public void writeInt(int x) { + intBuffer.put(x); + + incrementPosition(4); + } + +}
\ No newline at end of file |