Example #1
0
        public void RuntimeEffectChildrenWorksCorrectly()
        {
            using var blueShirt     = SKImage.FromEncodedData(Path.Combine(PathToImages, "blue-shirt.jpg"));
            using var textureShader = blueShirt.ToShader();

            var src = @"
uniform shader color_map;
uniform shader normal_map;
half4 main() { return half4(0); }";

            using var effect = SKRuntimeEffect.Create(src, out _);
            var children = new SKRuntimeEffectChildren(effect);

            children.Add("color_map", textureShader);
            Assert.Equal(new SKShader[] { textureShader, null }, children.ToArray());

            children.Add("normal_map", textureShader);
            Assert.Equal(new SKShader[] { textureShader, textureShader }, children.ToArray());

            children.Add("color_map", null);
            Assert.Equal(new SKShader[] { null, textureShader }, children.ToArray());

            children.Reset();
            Assert.Equal(new SKShader[] { null, null }, children.ToArray());
        }