+ fontgroup_t*fontgroup=0;
+ DICT_ITERATE_DATA(i->matrices, transformedfont_t*, fd) {
+ NEW(fontgroup_t,fg);
+ fg->fonts = fd;
+ fontgroup_add_to_bitmap(fg, fd);
+ fg->next = fontgroup;
+ fontgroup = fg;
+ }
+
+ if(i->config_recombine) {
+ fontgroup = fontgroup_combine(fontgroup);
+ }
+ i->groups = fontgroup;
+
+ fontgroup_t*fg;
+ for(fg = fontgroup;fg;fg = fg->next) {
+ transformedfont_t*fd = fg->fonts;
+ while(fd) {
+ gfxfont_t*font = fd->font = rfx_calloc(sizeof(gfxfont_t));
+ char id[80];
+ static int fontcount=0;
+ sprintf(id, "font%d", fontcount++);
+ font->id = strdup(id);
+ int t;
+ int count=0;
+ for(t=0;t<fd->orig->num_glyphs;t++) {
+ if(fd->used[t])
+ count++;
+ }
+ font->num_glyphs = count;
+ font->glyphs = rfx_calloc(sizeof(gfxglyph_t)*font->num_glyphs);
+ count = 0;
+ for(t=0;t<fd->orig->num_glyphs;t++) {
+ if(fd->used[t]) {
+ font->glyphs[count] = fd->orig->glyphs[t];
+ glyph_transform(&font->glyphs[count], &fd->matrix);
+ fd->used[t] = count + 1;
+ count++;
+ }
+ }