aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/makamys/neodymium
diff options
context:
space:
mode:
authormakamys <makamys@outlook.com>2022-06-23 13:18:07 +0200
committermakamys <makamys@outlook.com>2022-06-23 13:18:07 +0200
commit7528004ec23e424d89ad20596a3705462d208e38 (patch)
tree330670bf484ce445e7d595767c71254afc14ea90 /src/main/java/makamys/neodymium
parentcc72faceab58271a2419458133191af4b028e2f0 (diff)
downloadNeodymium-7528004ec23e424d89ad20596a3705462d208e38.tar.gz
Neodymium-7528004ec23e424d89ad20596a3705462d208e38.tar.bz2
Neodymium-7528004ec23e424d89ad20596a3705462d208e38.zip
Add debug key shortcut to dump texture atlas
Diffstat (limited to 'src/main/java/makamys/neodymium')
-rw-r--r--src/main/java/makamys/neodymium/renderer/NeoRenderer.java3
-rw-r--r--src/main/java/makamys/neodymium/util/Util.java21
2 files changed, 24 insertions, 0 deletions
diff --git a/src/main/java/makamys/neodymium/renderer/NeoRenderer.java b/src/main/java/makamys/neodymium/renderer/NeoRenderer.java
index f2591cb..5018e6b 100644
--- a/src/main/java/makamys/neodymium/renderer/NeoRenderer.java
+++ b/src/main/java/makamys/neodymium/renderer/NeoRenderer.java
@@ -313,6 +313,9 @@ public class NeoRenderer {
//chunk.chunkMeshes[7].quadCount = 256;
//setMeshVisible(chunk.chunkMeshes[7], true, true);
}
+ if(Keyboard.isKeyDown(Keyboard.KEY_P) && !wasDown[Keyboard.KEY_P]) {
+ Util.dumpTexture();
+ }
}
for(int i = 0; i < 256; i++) {
wasDown[i] = Keyboard.isKeyDown(i);
diff --git a/src/main/java/makamys/neodymium/util/Util.java b/src/main/java/makamys/neodymium/util/Util.java
index d39ccc7..89ab1ea 100644
--- a/src/main/java/makamys/neodymium/util/Util.java
+++ b/src/main/java/makamys/neodymium/util/Util.java
@@ -11,6 +11,10 @@ import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
+import org.apache.commons.io.FileUtils;
+import org.lwjgl.BufferUtils;
+import org.lwjgl.opengl.GL11;
+
import net.minecraft.launchwrapper.Launch;
public class Util {
@@ -85,4 +89,21 @@ public class Util {
Math.pow(y1 - y2, 2) +
Math.pow(z1 - z2, 2);
}
+
+ public static void dumpTexture() {
+ int width = GL11.glGetTexLevelParameteri(GL11.GL_TEXTURE_2D, 0, GL11.GL_TEXTURE_WIDTH);
+ int height = GL11.glGetTexLevelParameteri(GL11.GL_TEXTURE_2D, 0, GL11.GL_TEXTURE_HEIGHT);
+
+ System.out.println("Dumped " + width + "x" + height + " texture.");
+
+ ByteBuffer buf = BufferUtils.createByteBuffer(4 * width * height);
+ GL11.glGetTexImage(GL11.GL_TEXTURE_2D, 0, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, buf);
+ try {
+ // to convert to png:
+ // magick -size 512x256 -depth 8 out.rgba out.png
+ FileUtils.writeByteArrayToFile(new File("out.rgba"), Util.byteBufferToArray(buf));
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
}