- if(*it == '\n')
- {
- p.x = pos.x;
- p.y += char_height + 2;
- }
- else if(*it == ' ')
- {
- p.x += glyphs[0x20].advance;
- }
- else
- {
- Glyph glyph;
- if( glyphs.at(*it).surface_idx != -1 )
- glyph = glyphs[*it];
- else
- glyph = glyphs[0x20];
-
- DrawingRequest request;
-
- request.pos = p + glyph.offset;
- request.drawing_effect = drawing_effect;
- request.color = color;
- request.alpha = alpha;
-
- SurfacePartRequest surfacepartrequest;
- surfacepartrequest.size = glyph.rect.p2 - glyph.rect.p1;
- surfacepartrequest.source = glyph.rect.p1;
- surfacepartrequest.surface = notshadow ? &(glyph_surfaces[glyph.surface_idx]) : &(shadow_surfaces[glyph.surface_idx]);
-
- request.request_data = &surfacepartrequest;
- renderer->draw_surface_part(request);
-
- p.x += glyph.advance;
- }