Java tutorial
/* * The MIT License (MIT) * * Copyright (c) 2014 Zoe Lee (Kihira) * * See LICENSE for full License * * Some code provided by iChun under LGPLv3 */ package kihira.foxlib.client; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.ScaledResolution; import org.lwjgl.opengl.GL11; public class RenderHelper { public static void startGlScissor(int x, int y, int width, int height) { Minecraft mc = Minecraft.getMinecraft(); ScaledResolution reso = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); double scaleW = (double) mc.displayWidth / reso.getScaledWidth_double(); double scaleH = (double) mc.displayHeight / reso.getScaledHeight_double(); GL11.glEnable(GL11.GL_SCISSOR_TEST); GL11.glScissor((int) Math.floor((double) x * scaleW), (int) Math.floor((double) mc.displayHeight - ((double) (y + height) * scaleH)), (int) Math.floor((double) (x + width) * scaleW) - (int) Math.floor((double) x * scaleW), (int) Math.floor((double) mc.displayHeight - ((double) y * scaleH)) - (int) Math.floor((double) mc.displayHeight - ((double) (y + height) * scaleH))); //starts from lower left corner (minecraft starts from upper left) } public static void endGlScissor() { GL11.glDisable(GL11.GL_SCISSOR_TEST); } }