package net.itstjf.accountmanager.util;
import static org.lwjgl.opengl.GL11.*;
public class GLGui {
public static void drawBorderedRect(float x, float y, float x1, float y1, int insideC, int borderC) {
enableGL2D();
x *= 2;
x1 *= 2;
y *= 2;
y1 *= 2;
glScalef(0.5F, 0.5F, 0.5F);
drawVLine(x, y, y1, borderC);
drawVLine(x + x1 - 1, y, y1, borderC);
drawHLine(x, y, x1, borderC);
drawHLine(x, y + y1 - 1, x1, borderC);
drawRect(x + 1, y + 1, x1 - 1.5F, y1 - 2F, insideC);
glScalef(2.0F, 2.0F, 2.0F);
disableGL2D();
}
public static void drawHLine(float x, float y, float width, int color) {
drawRect(x, y, width, 1, color);
}
public static void drawVLine(float x, float y, float height, int color) {
drawRect(x, y, 1, height, color);
}
public static void drawLine(float x, float y, float x1, float y1) {
glBegin(GL_LINES);
glVertex2f(x, y);
glVertex2f(x1, y1);
glEnd();
}
public static void drawRect(float x, float y, float width, float height, int color) {
enableGL2D();
glColor(color);
drawRect(x, y, width, height);
disableGL2D();
}
public static void glColor(int hex) {
float alpha = (hex >> 24 & 255) / 255.0F;
float red = (hex >> 16 & 255) / 255.0F;
float green = (hex >> 8 & 255) / 255.0F;
float blue = (hex & 255) / 255.0F;
glColor4f(red, green, blue, alpha);
}
public static void drawRect(float x, float y, float width, float height) {
glBegin(GL_QUADS);
glVertex2f(x, y + height);
glVertex2f(x + width, y + height);
glVertex2f(x + width, y);
glVertex2f(x, y);
glEnd();
}
public static void enableGL2D() {
glDisable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glDisable(GL_TEXTURE_2D);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glDepthMask(true);
glEnable(GL_LINE_SMOOTH);
glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
glHint(GL_POLYGON_SMOOTH_HINT, GL_NICEST);
}
public static void disableGL2D() {
glEnable(GL_TEXTURE_2D);
glDisable(GL_BLEND);
glEnable(GL_DEPTH_TEST);
glDisable(GL_LINE_SMOOTH);
glHint(GL_LINE_SMOOTH_HINT, GL_DONT_CARE);
glHint(GL_POLYGON_SMOOTH_HINT, GL_DONT_CARE);
}
}