Skip to content

Instantly share code, notes, and snippets.

@kg
Created September 14, 2017 01:01
Show Gist options
  • Save kg/df5bea77d02f5904d6495ba7c0bf5e1d to your computer and use it in GitHub Desktop.
Save kg/df5bea77d02f5904d6495ba7c0bf5e1d to your computer and use it in GitHub Desktop.
private void GenerateLayout () {
if (Fragments.Count == 0) {
Layout = null;
return;
}
var rng = new MersenneTwister(RNGSeed);
var sle = new StringLayoutEngine {
characterWrap = true,
wordWrap = true,
scale = 1f,
lineBreakAtX = Bounds.Size.X - WrapMarginPx,
xOffsetOfWrappedLine = IndentPx,
color = Color.White
};
sle.Initialize();
Delays.Clear();
// HACK
long timeBase = 0;
foreach (var fragment in Fragments) {
fragment.FirstOffset = sle.drawCallsWritten;
sle.color = fragment.Color;
sle.AppendText(fragment.Font, fragment.Text);
fragment.LastOffset = sle.drawCallsWritten;
GenerateDelayRecords(fragment, rng, ref timeBase);
}
Layout = sle.Finish();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment