package com.someluigi.slperiph.ccportable.gfx; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.renderer.Tessellator; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; public class OverlayRenderer { protected static FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; public static void renderOverlay(int x, int y, String info) { GL11.glDisable(GL12.GL_RESCALE_NORMAL); GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_DEPTH_TEST); int wide = fontRenderer.getStringWidth(info); int tall = 8; int xPos = x +12; int yPos = y -12; int color = -267386864; drawGradientRect(xPos - 3, yPos - 4, xPos + wide + 3, yPos - 3, color, color); drawGradientRect(xPos - 3, yPos + tall + 3, xPos + wide + 3, yPos + tall + 4, color, color); drawGradientRect(xPos - 3, yPos - 3, xPos + wide + 3, yPos + tall + 3, color, color); drawGradientRect(xPos - 4, yPos - 3, xPos - 3, yPos + tall + 3, color, color); drawGradientRect(xPos + wide + 3, yPos - 3, xPos + wide + 4, yPos + tall + 3, color, color); int var11 = 1347420415; int var12 = (var11 & 16711422) >> 1 | var11 & -16777216; drawGradientRect(xPos - 3, yPos - 3 + 1, xPos - 3 + 1, yPos + tall + 3 - 1, var11, var12); drawGradientRect(xPos + wide + 2, yPos - 3 + 1, xPos + wide + 3, yPos + tall + 3 - 1, var11, var12); drawGradientRect(xPos - 3, yPos - 3, xPos + wide + 3, yPos - 3 + 1, var11, var11); drawGradientRect(xPos - 3, yPos + tall + 2, xPos + wide + 3, yPos + tall + 3, var12, var12); fontRenderer.drawStringWithShadow(info, xPos, yPos, -1); } public static void renderInfoBox( int x, int y, int w, int h ){ GL11.glDisable(GL12.GL_RESCALE_NORMAL); GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_DEPTH_TEST); int color = -267386864; drawGradientRect(x - 3, y - 4, x + w + 3, y - 3, color, color); drawGradientRect(x - 3, y + h + 3, x + w + 3, y + h + 4, color, color); drawGradientRect(x - 3, y - 3, x + w + 3, y + h + 3, color, color); drawGradientRect(x - 4, y - 3, x - 3, y + h + 3, color, color); drawGradientRect(x + w + 3, y - 3, x + w + 4, y + h + 3, color, color); int var11 = 1347420415; int var12 = (var11 & 16711422) >> 1 | var11 & -16777216; drawGradientRect(x - 3, y - 3 + 1, x - 3 + 1, y + h + 3 - 1, var11, var12); drawGradientRect(x + w + 2, y - 3 + 1, x + w + 3, y + h + 3 - 1, var11, var12); drawGradientRect(x - 3, y - 3, x + w + 3, y - 3 + 1, var11, var11); drawGradientRect(x - 3, y + h + 2, x + w + 3, y + h + 3, var12, var12); } protected static void drawGradientRect(int sX, int sY, int eX, int eY, int start, int end) { GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glDisable(GL11.GL_ALPHA_TEST); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glShadeModel(GL11.GL_SMOOTH); Tessellator buff = Tessellator.instance; buff.startDrawingQuads(); bindColor(start); buff.addVertex( eX, sY, 0 ); buff.addVertex( sX, sY, 0 ); bindColor(end); buff.addVertex( sX, eY, 0 ); buff.addVertex( eX, eY, 0 ); buff.draw(); GL11.glShadeModel(GL11.GL_FLAT); GL11.glDisable(GL11.GL_BLEND); GL11.glEnable(GL11.GL_ALPHA_TEST); GL11.glEnable(GL11.GL_TEXTURE_2D); } protected static void bindColor( int color ){ Tessellator.instance.setColorRGBA( color >> 16 & 255, color >> 8 & 255, color & 255, color >> 24 & 255 ); } }