Ejemplo n.º 1
0
 public void Parse()
 {
     Assert.Equal(BlendMode.Darken, BlendModeHelper.Parse("DARKEN"));
     Assert.Equal(BlendMode.Multiply, BlendModeHelper.Parse("MULTIPLY"));
     Assert.Equal(BlendMode.Lighten, BlendModeHelper.Parse("LIGHTEN"));
     Assert.Equal(BlendMode.Screen, BlendModeHelper.Parse("SCREEN"));
     Assert.Equal(BlendMode.Difference, BlendModeHelper.Parse("DIFFERENCE"));
     Assert.Equal(BlendMode.Exclusion, BlendModeHelper.Parse("EXCLUSION"));
     Assert.Equal(BlendMode.Hue, BlendModeHelper.Parse("HUE"));
     Assert.Equal(BlendMode.Color, BlendModeHelper.Parse("COLOR"));
 }
Ejemplo n.º 2
0
        public static DrawCommand Parse(ReadOnlySpan <char> text)
        {
            if (text.StartsWith("draw(".AsSpan()))
            {
                text = text.Slice(5, text.Length - 6);
            }

            var parser = new DrawArgumentReader(text);

            Alignment align     = default;
            BlendMode blendMode = BlendMode.Normal;
            Unit?     x         = null;
            Unit?     y         = null;
            string    fill      = null;
            string    stroke    = null;

            var objects = new List <Shape>();

            while (parser.TryRead(out var arg))
            {
                // circle
                //

                if (arg.Name == null)
                {
                    objects.Add(Shape.Parse(arg.Value.ToString()));
                }
                else
                {
                    string value = arg.Value.ToString();

                    switch (arg.Name)
                    {
                    case "align": align = AlignmentHelper.Parse(value); break;

                    case "blendMode": blendMode = BlendModeHelper.Parse(value); break;

                    case "x": x = Unit.Parse(value); break;

                    case "y": y = Unit.Parse(value); break;

                    case "fill": fill = value; break;

                    case "stroke": stroke = value; break;
                    }
                }
            }

            return(new DrawCommand(align, x, y, blendMode, fill, stroke, objects.ToArray()));
        }
Ejemplo n.º 3
0
 public void CanParseAllCssBlendModes()
 {
     Assert.Equal(BlendMode.Normal, BlendModeHelper.Parse("normal"));
     Assert.Equal(BlendMode.Multiply, BlendModeHelper.Parse("multiply"));
     Assert.Equal(BlendMode.Screen, BlendModeHelper.Parse("screen"));
     Assert.Equal(BlendMode.Overlay, BlendModeHelper.Parse("overlay"));
     Assert.Equal(BlendMode.Darken, BlendModeHelper.Parse("darken"));
     Assert.Equal(BlendMode.Lighten, BlendModeHelper.Parse("lighten"));
     Assert.Equal(BlendMode.ColorDodge, BlendModeHelper.Parse("color-dodge"));
     Assert.Equal(BlendMode.ColorBurn, BlendModeHelper.Parse("color-burn"));
     Assert.Equal(BlendMode.HardLight, BlendModeHelper.Parse("hard-light"));
     Assert.Equal(BlendMode.SoftLight, BlendModeHelper.Parse("soft-light"));
     Assert.Equal(BlendMode.Difference, BlendModeHelper.Parse("difference"));
     Assert.Equal(BlendMode.Exclusion, BlendModeHelper.Parse("exclusion"));
     Assert.Equal(BlendMode.Hue, BlendModeHelper.Parse("hue"));
     Assert.Equal(BlendMode.Saturation, BlendModeHelper.Parse("saturation"));
     Assert.Equal(BlendMode.Color, BlendModeHelper.Parse("color"));
     Assert.Equal(BlendMode.Luminosity, BlendModeHelper.Parse("luminosity"));
 }