private bool[,] RenderAsBools() { var result = new bool[MaxWidth, Height]; int xloc = this.Offset + this.LeftMargin; foreach (var c in this.Message.ToCharArray()) { this.RenderChar(c, xloc, ref result); xloc = xloc + LedFont.CharWidth(c) + 1; } return(result); }
private void RenderChar(char c, int offset, ref bool[,] buffer) { var charWidth = LedFont.CharWidth(c); var blankOffset = LedFont.LeftBlankColumns(c); for (var x = 0; x < charWidth; x++) { var xi = x + offset; if (xi < this.LeftMargin || xi >= this.Width + this.LeftMargin) { continue; } var xchar = x + blankOffset; for (var y = 0; y < Height; y++) { var bit = LedFont.IsSet(c, xchar, y); buffer[xi, y] = bit; } } }