- for(uint32_t i = 0; i < char_count; ++i)
- {
- int x = (i % 16) * char_width;
- int y = (i / 16) * char_height;
-
- int left = x;
- while (left < x + char_width &&
- vline_empty(surface, left, y, y + char_height, 0))
- left += 1;
-
- int right = x + char_width - 1;
- while (right > left &&
- vline_empty(surface, right, y, y + char_height, 0))
- right -= 1;
-
- if (left <= right)
- glyphs.push_back(Rect(left, y,
- right+1, y + char_height));
- else // glyph is completly transparent
- glyphs.push_back(Rect(x, y,
- x + char_width, y + char_height));