public static void drawString(UIFont font, String s, int x, int y, Color color) { if (s == null || s.length() <= 0) return; glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, font.getFontTexture().id); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glColor4f(color.r, color.g, color.b, color.a); glBegin(GL_QUADS); { for (char c : s.toCharArray()) { if (c == '\n') y += font.getHeight(); float width = font.charWidth(c); float height = font.getHeight(); float u = 1f / font.getFontImageWidth() * font.getCharX(c); float v = 1f / font.getFontImageHeight() * font.getCharY(c); float u2 = u + 1f / font.getFontImageWidth() * width; float v2 = v + 1f / font.getFontImageHeight() * height; glTexCoord2f(u, v); glVertex2f(x, y); glTexCoord2f(u2, v); glVertex2f(x + width, y); glTexCoord2f(u2, v2); glVertex2f(x + width, y + height); glTexCoord2f(u, v2); glVertex2f(x, y + height); x += width; } } glEnd(); glColor4f(1, 1, 1, 1); glDisable(GL_BLEND); glDisable(GL_TEXTURE_2D); }
public static void drawString(String s, int x, int y, Color color) { drawString(UIFont.getDefault(), s, x, y, color); }