private void AppendSubstring(RenderedString rs,
                                     string @string,
                                     Font initialFont,
                                     ColourRect initialColours)
        {
            var rstc = new RenderedStringTextComponent(@string, initialFont);

            if (initialColours != null)
            {
                rstc.SetColours(initialColours);
            }

            rs.AppendComponent(rstc);
        }
示例#2
0
        public void CreateRenderGeometryAndAddToItemView(ItemView view, RenderedString renderedString, Rectf drawRect, Font font, Rectf?itemClipper, bool isSelected)
        {
            if (view.GetSelectionBrushImage() != null && isSelected)
            {
                var renderSettings   = new ImageRenderSettings(drawRect, itemClipper, true, view.GetSelectionColourRect());
                var brushGeomBuffers = view.GetSelectionBrushImage().CreateRenderGeometry(renderSettings);
                view.AppendGeometryBuffers(brushGeomBuffers);
            }

            var drawPos = drawRect.Position;

            for (var i = 0; i < renderedString.GetLineCount(); ++i)
            {
                drawPos.Y += CoordConverter.AlignToPixels((font.GetLineSpacing() - font.GetFontHeight()) * 0.5f);

                var stringGeomBuffers = renderedString.CreateRenderGeometry(view, i, drawPos, null, itemClipper, 0.0f);
                view.AppendGeometryBuffers(stringGeomBuffers);
                drawPos.Y += renderedString.GetPixelSize(view, i).Height;
            }
        }
        public RenderedString Parse(string inputString, Font initialFont, ColourRect initialColours)
        {
            var rs = new RenderedString();

            int epos, spos = 0;

            while ((epos = inputString.IndexOf('\n', spos)) != -1)
            {
                AppendSubstring(rs, inputString.CEGuiSubstring(spos, epos - spos),
                                initialFont, initialColours);
                rs.AppendLineBreak();

                // set new start position (skipping the previous \n we found)
                spos = epos + 1;
            }

            if (spos < inputString.Length)
            {
                AppendSubstring(rs, inputString.Substring(spos),
                                initialFont, initialColours);
            }

            return(rs);
        }