/// <summary> /// Clones the graphic options and applies changes required to force clearing. /// </summary> /// <param name="options">The options to clone</param> /// <returns>A clone of option with ColorBlendingMode, AlphaCompositionMode, and BlendPercentage set</returns> internal static GraphicsOptions CloneForClearOperation(this GraphicsOptions options) { options = options.DeepClone(); options.ColorBlendingMode = PixelFormats.PixelColorBlendingMode.Normal; options.AlphaCompositionMode = PixelFormats.PixelAlphaCompositionMode.Src; options.BlendPercentage = 1; return(options); }
public void CloneIsDeep() { var expected = new GraphicsOptions(); GraphicsOptions actual = expected.DeepClone(); actual.AlphaCompositionMode = PixelAlphaCompositionMode.DestAtop; actual.Antialias = false; actual.AntialiasSubpixelDepth = 23; actual.BlendPercentage = .25F; actual.ColorBlendingMode = PixelColorBlendingMode.HardLight; Assert.NotEqual(expected, actual, graphicsOptionsComparer); }
public void NonDefaultClone() { var expected = new GraphicsOptions { AlphaCompositionMode = PixelAlphaCompositionMode.DestAtop, Antialias = false, AntialiasSubpixelDepth = 23, BlendPercentage = .25F, ColorBlendingMode = PixelColorBlendingMode.HardLight, }; GraphicsOptions actual = expected.DeepClone(); Assert.Equal(expected, actual, graphicsOptionsComparer); }