/**
   * creates a GLFont for given awt Font consists of characters in given alphabet
   *
   * @param typeFace the awt font
   * @param alphabet characters of our alphabet
   */
  public GLFont(Paint paint, String alphabet) {
    this.alphabet = eliminateDuplicates(alphabet);
    this.charWidths = new int[alphabet.length()];

    Bitmap.Config config = Bitmap.Config.ARGB_8888;

    paint = new Paint(paint);
    paint.setColor(Color.WHITE);

    FontMetricsInt fontMetrics = paint.getFontMetricsInt();

    this.fontHeight = fontMetrics.leading - fontMetrics.ascent + fontMetrics.descent;
    this.baseline = -fontMetrics.top;
    int height = fontMetrics.bottom - fontMetrics.top;

    for (int i = 0; i < alphabet.length(); i++) {
      String c = alphabet.substring(i, i + 1);
      int width = (int) paint.measureText(c);

      Bitmap charImage = Bitmap.createBitmap(width, height, config);
      Canvas canvas = new Canvas(charImage);

      canvas.drawText(c, 0, baseline, paint);

      pack.addImage(charImage);
    }
    pack.pack(TexturePack.ALPHA_USE);
  }