コード例 #1
0
        /// <summary>
        ///     Creates a new instance of this shader.
        /// </summary>
        public Shader Instance()
        {
            Godot.Material mat;

            switch (Kind)
            {
            case ShaderKind.Source:
                mat = new Godot.ShaderMaterial
                {
                    Shader = Source.GodotShader
                };
                break;

            case ShaderKind.Canvas:
                mat = new Godot.CanvasItemMaterial
                {
                    LightMode = LightMode,
                    BlendMode = BlendMode,
                };
                break;

            default:
                throw new InvalidOperationException();
            }

            return(new Shader(mat));
        }
コード例 #2
0
        public override void Initialize()
        {
            base.Initialize();
            IoCManager.InjectDependencies(this);
            DrawingNode = new Godot.Node2D()
            {
                Name = "EffectSystem",
            };
            sceneTree.WorldRoot.AddChild(DrawingNode);

            UnshadedMaterial = new Godot.CanvasItemMaterial()
            {
                LightMode = Godot.CanvasItemMaterial.LightModeEnum.Unshaded
            };

            ShadedMaterial = new Godot.CanvasItemMaterial();

            ShadedCanvasItem = VS.CanvasItemCreate();
            VS.CanvasItemSetParent(ShadedCanvasItem, DrawingNode.GetCanvasItem());
            VS.CanvasItemSetMaterial(ShadedCanvasItem, ShadedMaterial.GetRid());

            UnshadedCanvasItem = VS.CanvasItemCreate();
            VS.CanvasItemSetParent(UnshadedCanvasItem, DrawingNode.GetCanvasItem());
            VS.CanvasItemSetMaterial(UnshadedCanvasItem, UnshadedMaterial.GetRid());
        }
コード例 #3
0
        /// <summary>
        ///     Creates a new instance of this shader.
        /// </summary>
        public Shader Instance()
        {
            Godot.Material mat;

            switch (Kind)
            {
            case ShaderKind.Source:
                var shaderMat = new Godot.ShaderMaterial
                {
                    Shader = Source.GodotShader
                };
                mat = shaderMat;
                if (ShaderParams != null)
                {
                    foreach (var pair in ShaderParams)
                    {
                        shaderMat.SetShaderParam(pair.Key, pair.Value);
                    }
                }
                break;

            case ShaderKind.Canvas:
                mat = new Godot.CanvasItemMaterial
                {
                    LightMode = LightMode,
                    BlendMode = BlendMode,
                };
                break;

            default:
                throw new InvalidOperationException();
            }

            return(new Shader(mat));
        }