create_ponder_wonder

Exports Create ponders to disk.
git clone git://git.oshgnacknak.de/create_ponder_wonder.git
Log | Files | Refs | README

RenderUtils.java (1903B)


      1 package de.oshgnacknak.create_ponder_wonder;
      2 
      3 import com.mojang.blaze3d.matrix.MatrixStack;
      4 import com.mojang.blaze3d.systems.RenderSystem;
      5 import net.minecraft.client.Minecraft;
      6 import net.minecraft.client.renderer.FogRenderer;
      7 import net.minecraft.client.renderer.texture.NativeImage;
      8 import net.minecraft.client.shader.Framebuffer;
      9 import net.minecraft.util.ScreenShotHelper;
     10 import org.lwjgl.opengl.GL11;
     11 
     12 import java.util.function.Consumer;
     13 
     14 public class RenderUtils {
     15 
     16     public static final double SCALE = 5;
     17     public static final int WIDTH = 1920;
     18     public static final int HEIGHT = 1080;
     19     public static final double Z_DISTANCE = 1400;
     20 
     21     private RenderUtils() {}
     22 
     23     public static NativeImage render(Consumer<MatrixStack> renderFunc) {
     24         Framebuffer fb = new Framebuffer(WIDTH, HEIGHT, true, Minecraft.IS_RUNNING_ON_MAC);
     25 
     26         RenderSystem.pushMatrix();
     27         RenderSystem.enableBlend();
     28         RenderSystem.clear(16640, Minecraft.IS_RUNNING_ON_MAC);
     29         fb.bindFramebuffer(true);
     30         FogRenderer.setFogBlack();
     31 
     32         RenderSystem.enableTexture();
     33         RenderSystem.enableCull();
     34 
     35         RenderSystem.viewport(0, 0, WIDTH, HEIGHT);
     36 
     37         RenderSystem.matrixMode(GL11.GL_PROJECTION);
     38         RenderSystem.loadIdentity();
     39         RenderSystem.ortho(
     40             0.0d,
     41             WIDTH,
     42             HEIGHT,
     43             0.0d, 0,
     44             3000.0d);
     45         RenderSystem.matrixMode(GL11.GL_MODELVIEW);
     46         RenderSystem.loadIdentity();
     47 
     48         MatrixStack matrixStack = new MatrixStack();
     49         matrixStack.translate(0, 0, -Z_DISTANCE);
     50         net.minecraft.client.renderer.RenderHelper.enableGuiDepthLighting();
     51 
     52         RenderSystem.defaultAlphaFunc();
     53 
     54         renderFunc.accept(matrixStack);
     55 
     56         RenderSystem.disableBlend();
     57         RenderSystem.popMatrix();
     58 
     59         return ScreenShotHelper.createScreenshot(WIDTH, HEIGHT, fb);
     60     }
     61 
     62 }