public override void Draw(String text, Int32 x, Int32 y) { // Render each character for (int i = 0; i < text.Length; i++) { CharacterRenderFunction renderer = renderers[(Byte)text[i]]; if (renderer != null) { renderer(x, y, charWidth, charHeight); } x += charWidth + charSpacing; } }
public static CharacterRenderFunction[] CreateFixedWidthSegmentRenderSet(float segmentWidth) { CharacterRenderFunction[] renderers = new CharacterRenderFunction[256]; renderers['A'] = new EightSegmentFixedWidthRenderer(EightSegment.A, segmentWidth).DrawChar; renderers['B'] = new EightSegmentFixedWidthRenderer(EightSegment.B, segmentWidth).DrawChar; renderers['C'] = new EightSegmentFixedWidthRenderer(EightSegment.C, segmentWidth).DrawChar; renderers['D'] = new EightSegmentFixedWidthRenderer(EightSegment.D, segmentWidth).DrawChar; renderers['E'] = new EightSegmentFixedWidthRenderer(EightSegment.E, segmentWidth).DrawChar; renderers['F'] = new EightSegmentFixedWidthRenderer(EightSegment.F, segmentWidth).DrawChar; renderers['G'] = new EightSegmentFixedWidthRenderer(EightSegment.G, segmentWidth).DrawChar; renderers['H'] = new EightSegmentFixedWidthRenderer(EightSegment.H, segmentWidth).DrawChar; renderers['I'] = new EightSegmentFixedWidthRenderer(EightSegment.I, segmentWidth).DrawChar; renderers['J'] = new EightSegmentFixedWidthRenderer(EightSegment.J, segmentWidth).DrawChar; renderers['K'] = new EightSegmentFixedWidthRenderer(EightSegment.K, segmentWidth).DrawChar; renderers['L'] = new EightSegmentFixedWidthRenderer(EightSegment.L, segmentWidth).DrawChar; renderers['N'] = new NRendererFixedSegmentWidth(segmentWidth).DrawChar; renderers['O'] = new EightSegmentFixedWidthRenderer(EightSegment.O, segmentWidth).DrawChar; renderers['P'] = new EightSegmentFixedWidthRenderer(EightSegment.P, segmentWidth).DrawChar; //... renderers['R'] = new RRendererFixedSegmentWidth(segmentWidth).DrawChar; renderers['S'] = new EightSegmentFixedWidthRenderer(EightSegment.S, segmentWidth).DrawChar; renderers['T'] = new EightSegmentFixedWidthRenderer(EightSegment.T, segmentWidth).DrawChar; renderers['U'] = new EightSegmentFixedWidthRenderer(EightSegment.U, segmentWidth).DrawChar; renderers['V'] = new VRendererFixedSegmentWidth(segmentWidth).DrawChar; renderers['Y'] = new YRendererFixedSegmentWidth(segmentWidth).DrawChar; // Set lower case to have same renderer has upper case for (char c = 'a'; c <= 'z'; c++) { renderers[c] = renderers[c + ('A' - 'a')]; } renderers['0'] = renderers['O']; renderers['1'] = new EightSegmentFixedWidthRenderer(EightSegment.One, segmentWidth).DrawChar; renderers['2'] = new EightSegmentFixedWidthRenderer(EightSegment.Two, segmentWidth).DrawChar; renderers['3'] = new EightSegmentFixedWidthRenderer(EightSegment.Three, segmentWidth).DrawChar; renderers['4'] = new EightSegmentFixedWidthRenderer(EightSegment.Four, segmentWidth).DrawChar; renderers['5'] = renderers['S']; renderers['6'] = new EightSegmentFixedWidthRenderer(EightSegment.Five, segmentWidth).DrawChar; renderers['7'] = new EightSegmentFixedWidthRenderer(EightSegment.Six, segmentWidth).DrawChar; renderers['8'] = renderers['B']; renderers['9'] = new EightSegmentFixedWidthRenderer(EightSegment.Seven, segmentWidth).DrawChar; renderers['.'] = new PeriodRendererFixedSegmentWidth(segmentWidth).DrawChar; return(renderers); }