fzhangtj 6 年前
当前提交
aacfce87
共有 2 个文件被更改,包括 10 次插入11 次删除
  1. 4
      Runtime/ui/painting/txt/mesh_generator.cs
  2. 17
      Runtime/ui/txt/paragraph.cs

4
Runtime/ui/painting/txt/mesh_generator.cs


var fontInfo = FontManager.instance.getOrCreate(style.fontFamily);
var key = new MeshKey(textBlob.instanceId, scale);
/*_meshes.TryGetValue(key, out var meshInfo);
_meshes.TryGetValue(key, out var meshInfo);
}*/
}
var font = fontInfo.font;
var length = textBlob.textSize;

17
Runtime/ui/txt/paragraph.cs


this.fxHeight = fxHeight;
}
public static FontMetrics fromFont(Font font, int fontSize, double? height) {
var ascent = -font.ascent * (height ?? 1.0) * fontSize / font.fontSize;
var descent = (font.lineHeight - font.ascent) * (height ?? 1.0) * fontSize / font.fontSize;
public static FontMetrics fromFont(Font font, int fontSize) {
var ascent = -font.ascent * fontSize / font.fontSize;
var descent = (font.lineHeight - font.ascent) * fontSize / font.fontSize;
double? fxHeight = null;
font.RequestCharactersInTexture("x", fontSize);
CharacterInfo charInfo;

}
var font = FontManager.instance.getOrCreate(run.style.fontFamily).font;
var metrics = FontMetrics.fromFont(font, run.style.UnityFontSize, run.style.height);
var metrics = FontMetrics.fromFont(font, run.style.UnityFontSize);
paintRecords.Add(new PaintRecord(run.style, new Offset(runXOffset, 0),
builder.make(), metrics, lineNumber, layout.getAdvance()
));

double maxLineSpacing = 0;
double maxDescent = 0;
var updateLineMetrics = new Action<FontMetrics, TextStyle>((FontMetrics metrics, TextStyle style) => {
double lineSpacing = (lineNumber == 0)
? -metrics.ascent * style.height

if (paintRecords.Count == 0) {
var defaultStyle = this._paragraphStyle.getTextStyle();
var defaultFont = FontManager.instance.getOrCreate(defaultStyle.fontFamily).font;
var metrics = FontMetrics.fromFont(defaultFont, defaultStyle.UnityFontSize, defaultStyle.height);
var metrics = FontMetrics.fromFont(defaultFont, defaultStyle.UnityFontSize);
updateLineMetrics(metrics, defaultStyle);
}

continue;
}
var baseLine = this._lineBaseLines[run.lineNumber];
double top = baseLine + run.fontMetrics.ascent;
double bottom = baseLine + run.fontMetrics.descent;
double top = (run.lineNumber == 0) ? 0 : this._lineHeights[run.lineNumber - 1];
double bottom = this._lineHeights[run.lineNumber];
double left, right;
if (run.codeUnits.start >= start && run.codeUnits.end <= end) {
left = run.xPos.start;

正在加载...
取消
保存