GL11.glEnable(GL11.GL_DEPTH_TEST);
RenderHelper.disableStandardItemLighting();
}
public void render(GenericLabel label) {
FontRenderer font = SpoutClient.getHandle().fontRenderer;
String lines[] = label.getLines();
double swidth = label.getTextWidth();
double sheight = label.getTextHeight();
GL11.glPushMatrix();
double top = label.getScreenY();
WidgetAnchor align = label.getAlign();
if (align == WidgetAnchor.CENTER_LEFT || align == WidgetAnchor.CENTER_CENTER || align == WidgetAnchor.CENTER_RIGHT) {
top -= (int) (label.isAuto() ? label.getActualHeight() : label.getHeight()) / 2;
} else if (align == WidgetAnchor.BOTTOM_LEFT || align == WidgetAnchor.BOTTOM_CENTER || align == WidgetAnchor.BOTTOM_RIGHT) {
top -= (int) (label.isAuto() ? label.getActualHeight() : label.getHeight());
}
double aleft = label.getScreenX();
if (align == WidgetAnchor.TOP_CENTER || align == WidgetAnchor.CENTER_CENTER || align == WidgetAnchor.BOTTOM_CENTER) {
aleft -= (int) (label.isAuto() ? label.getActualWidth() : label.getWidth()) / 2;
} else if (align == WidgetAnchor.TOP_RIGHT || align == WidgetAnchor.CENTER_RIGHT || align == WidgetAnchor.BOTTOM_RIGHT) {
aleft -= (int) (label.isAuto() ? label.getActualWidth() : label.getWidth());
}
GL11.glTranslatef((float) Math.floor(aleft), (float) Math.floor(top), 0);
if (!label.isAuto()) {
GL11.glScalef((float) (label.getWidth() / swidth), (float) (label.getHeight() / sheight), 1);
} else if (label.getAnchor() == WidgetAnchor.SCALE) {
GL11.glScalef((float) (label.getScreen().getWidth() / 427f), (float) (label.getScreen().getHeight() / 240f), 1);
}
for (int i = 0; i < lines.length; i++) {
double left = 0;
if (align == WidgetAnchor.TOP_CENTER || align == WidgetAnchor.CENTER_CENTER || align == WidgetAnchor.BOTTOM_CENTER) {
left = (swidth / 2) - (font.getStringWidth(lines[i]) / 2);
} else if (align == WidgetAnchor.TOP_RIGHT || align == WidgetAnchor.CENTER_RIGHT || align == WidgetAnchor.BOTTOM_RIGHT) {
left = swidth - font.getStringWidth(lines[i]);
}
float scale = label.getScale();
float reset = 1 / scale;
GL11.glScalef(scale, scale, scale);
if (label.hasShadow()) {
font.drawStringWithShadow(lines[i], (int) left, i * 10, label.getTextColor().toInt());
} else {
font.drawString(lines[i], (int) left, i * 10, label.getTextColor().toInt());
}
GL11.glScalef(reset, reset, reset);
}
GL11.glPopMatrix();
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);