glyphs[c] = g;
}
if (!g.isLoaded) {
+ //Log.debug(Font.class, "rasterizeGlyphs encountered unrasterized glyph " + g.c + " of font " + this);
+ //System.out.println("rasterizeGlyphs encountered unrasterized glyph " + g.c + " of font " + this);
glyphsToBeRendered.prepend(g); // even if it's already in the queue, boost its priority
encounteredUnrenderedGlyph = true;
} else if (!encounteredUnrenderedGlyph) {
static final Scheduler.Task glyphRenderingTask = new Scheduler.Task() { public void perform() {
Glyph g = (Glyph)glyphsToBeRendered.remove(false);
if (g == null) { glyphRenderingTaskIsScheduled = false; return; }
+ Log.debug(Font.class, "glyphRenderingTask dequeued glyph " + g.c + " of font " + g.font);
if (g.isLoaded) { perform(); /* tailcall to the next glyph */ return; }
Log.debug(Glyph.class, "rendering glyph " + g.c);
try { freetype.renderGlyph(g); } catch (IOException e) { Log.info(Freetype.class, e); }