/** * 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); }