001 package net.minecraft.client.gui; 002 003 import cpw.mods.fml.relauncher.Side; 004 import cpw.mods.fml.relauncher.SideOnly; 005 import net.minecraft.client.renderer.Tessellator; 006 import org.lwjgl.opengl.GL11; 007 008 @SideOnly(Side.CLIENT) 009 public class Gui 010 { 011 protected float zLevel = 0.0F; 012 013 protected void drawHorizontalLine(int par1, int par2, int par3, int par4) 014 { 015 if (par2 < par1) 016 { 017 int var5 = par1; 018 par1 = par2; 019 par2 = var5; 020 } 021 022 drawRect(par1, par3, par2 + 1, par3 + 1, par4); 023 } 024 025 protected void drawVerticalLine(int par1, int par2, int par3, int par4) 026 { 027 if (par3 < par2) 028 { 029 int var5 = par2; 030 par2 = par3; 031 par3 = var5; 032 } 033 034 drawRect(par1, par2 + 1, par1 + 1, par3, par4); 035 } 036 037 /** 038 * Draws a solid color rectangle with the specified coordinates and color. 039 */ 040 public static void drawRect(int par0, int par1, int par2, int par3, int par4) 041 { 042 int var5; 043 044 if (par0 < par2) 045 { 046 var5 = par0; 047 par0 = par2; 048 par2 = var5; 049 } 050 051 if (par1 < par3) 052 { 053 var5 = par1; 054 par1 = par3; 055 par3 = var5; 056 } 057 058 float var10 = (float)(par4 >> 24 & 255) / 255.0F; 059 float var6 = (float)(par4 >> 16 & 255) / 255.0F; 060 float var7 = (float)(par4 >> 8 & 255) / 255.0F; 061 float var8 = (float)(par4 & 255) / 255.0F; 062 Tessellator var9 = Tessellator.instance; 063 GL11.glEnable(GL11.GL_BLEND); 064 GL11.glDisable(GL11.GL_TEXTURE_2D); 065 GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); 066 GL11.glColor4f(var6, var7, var8, var10); 067 var9.startDrawingQuads(); 068 var9.addVertex((double)par0, (double)par3, 0.0D); 069 var9.addVertex((double)par2, (double)par3, 0.0D); 070 var9.addVertex((double)par2, (double)par1, 0.0D); 071 var9.addVertex((double)par0, (double)par1, 0.0D); 072 var9.draw(); 073 GL11.glEnable(GL11.GL_TEXTURE_2D); 074 GL11.glDisable(GL11.GL_BLEND); 075 } 076 077 /** 078 * Draws a rectangle with a vertical gradient between the specified colors. 079 */ 080 protected void drawGradientRect(int par1, int par2, int par3, int par4, int par5, int par6) 081 { 082 float var7 = (float)(par5 >> 24 & 255) / 255.0F; 083 float var8 = (float)(par5 >> 16 & 255) / 255.0F; 084 float var9 = (float)(par5 >> 8 & 255) / 255.0F; 085 float var10 = (float)(par5 & 255) / 255.0F; 086 float var11 = (float)(par6 >> 24 & 255) / 255.0F; 087 float var12 = (float)(par6 >> 16 & 255) / 255.0F; 088 float var13 = (float)(par6 >> 8 & 255) / 255.0F; 089 float var14 = (float)(par6 & 255) / 255.0F; 090 GL11.glDisable(GL11.GL_TEXTURE_2D); 091 GL11.glEnable(GL11.GL_BLEND); 092 GL11.glDisable(GL11.GL_ALPHA_TEST); 093 GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); 094 GL11.glShadeModel(GL11.GL_SMOOTH); 095 Tessellator var15 = Tessellator.instance; 096 var15.startDrawingQuads(); 097 var15.setColorRGBA_F(var8, var9, var10, var7); 098 var15.addVertex((double)par3, (double)par2, (double)this.zLevel); 099 var15.addVertex((double)par1, (double)par2, (double)this.zLevel); 100 var15.setColorRGBA_F(var12, var13, var14, var11); 101 var15.addVertex((double)par1, (double)par4, (double)this.zLevel); 102 var15.addVertex((double)par3, (double)par4, (double)this.zLevel); 103 var15.draw(); 104 GL11.glShadeModel(GL11.GL_FLAT); 105 GL11.glDisable(GL11.GL_BLEND); 106 GL11.glEnable(GL11.GL_ALPHA_TEST); 107 GL11.glEnable(GL11.GL_TEXTURE_2D); 108 } 109 110 /** 111 * Renders the specified text to the screen, center-aligned. 112 */ 113 public void drawCenteredString(FontRenderer par1FontRenderer, String par2Str, int par3, int par4, int par5) 114 { 115 par1FontRenderer.drawStringWithShadow(par2Str, par3 - par1FontRenderer.getStringWidth(par2Str) / 2, par4, par5); 116 } 117 118 /** 119 * Renders the specified text to the screen. 120 */ 121 public void drawString(FontRenderer par1FontRenderer, String par2Str, int par3, int par4, int par5) 122 { 123 par1FontRenderer.drawStringWithShadow(par2Str, par3, par4, par5); 124 } 125 126 /** 127 * Draws a textured rectangle at the stored z-value. Args: x, y, u, v, width, height 128 */ 129 public void drawTexturedModalRect(int par1, int par2, int par3, int par4, int par5, int par6) 130 { 131 float var7 = 0.00390625F; 132 float var8 = 0.00390625F; 133 Tessellator var9 = Tessellator.instance; 134 var9.startDrawingQuads(); 135 var9.addVertexWithUV((double)(par1 + 0), (double)(par2 + par6), (double)this.zLevel, (double)((float)(par3 + 0) * var7), (double)((float)(par4 + par6) * var8)); 136 var9.addVertexWithUV((double)(par1 + par5), (double)(par2 + par6), (double)this.zLevel, (double)((float)(par3 + par5) * var7), (double)((float)(par4 + par6) * var8)); 137 var9.addVertexWithUV((double)(par1 + par5), (double)(par2 + 0), (double)this.zLevel, (double)((float)(par3 + par5) * var7), (double)((float)(par4 + 0) * var8)); 138 var9.addVertexWithUV((double)(par1 + 0), (double)(par2 + 0), (double)this.zLevel, (double)((float)(par3 + 0) * var7), (double)((float)(par4 + 0) * var8)); 139 var9.draw(); 140 } 141 }