Home » U++ Library support » RichText,QTF,RTF... » Font alignment issues
Re: Font alignment issues [message #22631 is a reply to message #22624] |
Sun, 02 August 2009 09:01   |
 |
mirek
Messages: 14261 Registered: November 2005
|
Ultimate Member |
|
|
Possible way to check the theory (removes "paint text with single call to X11" optimization):
void Draw::DrawText(int x, int y, int angle, const wchar *text, Font font,
Color ink, int n, const int *dx)
{
if(IsNull(ink)) return;
if(n < 0)
n = wstrlen(text);
Std(font);
double sina;
double cosa;
int d = 0;
if(angle)
Draw::SinCos(angle, sina, cosa);
for(int i = 0; i < n; i++) {
wchar chr = text[i];
GlyphInfo gi = GetGlyphInfo(font, chr);
if(gi.IsNormal())
DrawTextOp(int(x + cosa * d), int(y - sina * d), angle, &chr, font, ink, 1, NULL);
else
if(gi.IsReplaced()) {
Font fnt = font;
fnt.Face(gi.lspc);
fnt.Height(gi.rspc);
if(angle)
DrawTextOp(int(x + cosa * d), int(y - sina * (font.GetAscent() - fnt.GetAscent() + d)),
angle, &chr, fnt, ink, 1, NULL);
else
DrawTextOp(x + d, y + font.GetAscent() - fnt.GetAscent(), 0, &chr, fnt, ink, 1, NULL);
GlyphMetrics(gi, font, chr);
}
else
if(gi.IsComposed()) {
ComposedGlyph cg;
Compose(font, chr, cg);
if(angle) {
DrawTextOp(int(x + cosa * d), int(y - sina * d), angle, &cg.basic_char, font, ink, 1, NULL);
DrawTextOp(int(x + cosa * (d + cg.mark_pos.x)), int(y - sina * (cg.mark_pos.y + d)), angle, &cg.mark_char, cg.mark_font, ink, 1, NULL);
}
else {
DrawTextOp(x + d, y, 0, &cg.basic_char, font, ink, 1, NULL);
DrawTextOp(x + cg.mark_pos.x + d, y + cg.mark_pos.y, 0, &cg.mark_char, cg.mark_font, ink, 1, NULL);
}
GlyphMetrics(gi, font, chr);
}
d += dx ? *dx++ : gi.width;
}
}
Please check and report results.
|
|
|
 |
|
Font alignment issues
|
 |
|
Re: Font alignment issues
By: mirek on Sun, 26 July 2009 05:04
|
 |
|
Re: Font alignment issues
|
 |
|
Re: Font alignment issues
By: mirek on Mon, 27 July 2009 17:01
|
 |
|
Re: Font alignment issues
|
 |
|
Re: Font alignment issues
By: mirek on Tue, 28 July 2009 02:38
|
 |
|
Re: Font alignment issues
|
 |
|
Re: Font alignment issues
By: mirek on Fri, 31 July 2009 20:03
|
 |
|
Re: Font alignment issues
By: mirek on Sat, 01 August 2009 10:15
|
 |
|
Re: Font alignment issues
By: mirek on Sat, 01 August 2009 10:17
|
 |
|
Re: Font alignment issues
By: chickenk on Sat, 01 August 2009 11:27
|
 |
|
Re: Font alignment issues
By: mirek on Sat, 01 August 2009 12:56
|
 |
|
Re: Font alignment issues
By: mirek on Sun, 02 August 2009 09:01
|
 |
|
Re: Font alignment issues
By: chickenk on Sun, 02 August 2009 10:04
|
 |
|
Re: Font alignment issues
By: chickenk on Mon, 03 August 2009 10:34
|
 |
|
Re: Font alignment issues
By: mirek on Mon, 03 August 2009 10:46
|
 |
|
Re: Font alignment issues
By: chickenk on Mon, 03 August 2009 12:17
|
 |
|
Re: Font alignment issues
By: mirek on Mon, 03 August 2009 12:29
|
 |
|
Re: Font alignment issues
By: chickenk on Mon, 03 August 2009 12:42
|
 |
|
Re: Font alignment issues
By: mirek on Mon, 03 August 2009 13:36
|
 |
|
Re: Font alignment issues
By: mirek on Mon, 03 August 2009 13:46
|
 |
|
Re: Font alignment issues
By: chickenk on Mon, 03 August 2009 13:56
|
 |
|
Re: Font alignment issues
By: mirek on Mon, 03 August 2009 14:17
|
 |
|
Re: Font alignment issues
By: chickenk on Mon, 03 August 2009 14:39
|
 |
|
Re: Font alignment issues
By: mirek on Mon, 03 August 2009 14:47
|
 |
|
Re: Font alignment issues
By: mirek on Mon, 03 August 2009 15:17
|
 |
|
Re: Font alignment issues
By: chickenk on Mon, 03 August 2009 16:31
|
 |
|
Re: Font alignment issues
By: mirek on Mon, 03 August 2009 17:13
|
 |
|
Re: Font alignment issues
By: chickenk on Mon, 03 August 2009 17:22
|
 |
|
Re: Font alignment issues
By: mirek on Mon, 03 August 2009 17:28
|
 |
|
Re: Font alignment issues
|
 |
|
Re: Font alignment issues
By: mirek on Tue, 04 August 2009 17:55
|
 |
|
Re: Font alignment issues
By: mirek on Sat, 08 August 2009 19:46
|
 |
|
Re: Font alignment issues
By: mirek on Sun, 09 August 2009 00:12
|
 |
|
Re: Font alignment issues
By: chickenk on Mon, 10 August 2009 09:17
|
 |
|
Re: Font alignment issues
By: mirek on Mon, 10 August 2009 16:44
|
 |
|
Re: Font alignment issues
By: masu on Tue, 11 August 2009 10:38
|
 |
|
Re: Font alignment issues
By: mirek on Tue, 11 August 2009 13:29
|
Goto Forum:
Current Time: Tue Jun 10 03:10:41 CEST 2025
Total time taken to generate the page: 0.04096 seconds
|