public void Initialize() { actualPosition = position.GetValueOrDefault(Vector2.Zero); characterOffset = new Vector2(xOffsetOfFirstLine, 0); initialLineXOffset = characterOffset.X; bufferWritePosition = 0; wordStartWritePosition = -1; wordStartOffset = Vector2.Zero; rowIndex = colIndex = 0; wordWrapSuppressed = false; currentLineSpacing = null; maxLineSpacing = 0; alignToPixels = GlyphPixelAlignment.Default; IsInitialized = true; }
public static StringLayout LayoutString( this SpriteFont font, AbstractString text, ArraySegment <BitmapDrawCall>?buffer = null, Vector2?position = null, Color?color = null, float scale = 1, DrawCallSortKey sortKey = default(DrawCallSortKey), int characterSkipCount = 0, int?characterLimit = null, float xOffsetOfFirstLine = 0, float?lineBreakAtX = null, GlyphPixelAlignment alignToPixels = default(GlyphPixelAlignment), Dictionary <char, KerningAdjustment> kerningAdjustments = null, bool wordWrap = false, char wrapCharacter = '\0' ) { var state = new StringLayoutEngine { position = position, color = color, scale = scale, sortKey = sortKey, characterSkipCount = characterSkipCount, characterLimit = characterLimit, xOffsetOfFirstLine = xOffsetOfFirstLine, lineBreakAtX = lineBreakAtX, alignToPixels = alignToPixels, characterWrap = lineBreakAtX.HasValue, wordWrap = wordWrap, wrapCharacter = wrapCharacter, buffer = buffer.GetValueOrDefault(default(ArraySegment <BitmapDrawCall>)) }; var gs = new SpriteFontGlyphSource(font); state.Initialize(); using (state) { var segment = state.AppendText( gs, text, kerningAdjustments ); return(state.Finish()); } }