Ejemplo n.º 1
0
 public override void Load(IResourceCache cache, ResourcePath path)
 {
     using (var stream = cache.ContentFileRead(path))
         using (var reader = new StreamReader(stream, Encoding.UTF8))
         {
             var code = reader.ReadToEnd();
             GodotShader = new Godot.Shader
             {
                 Code = code,
             };
         }
 }
Ejemplo n.º 2
0
        public override void Load(IResourceCache cache, ResourcePath path)
        {
            using (var stream = cache.ContentFileRead(path))
                using (var reader = new StreamReader(stream, Encoding.UTF8))
                {
                    var code = reader.ReadToEnd();
                    GodotShader = new Godot.Shader
                    {
                        Code = code,
                    };
                }

            var properties = Godot.VisualServer.ShaderGetParamList(GodotShader.GetRid());

            foreach (var dict in properties.Cast <IDictionary <object, object> >())
            {
                Parameters.Add((string)dict["name"], DetectParamType(dict));
            }
        }
        public override void Load(IResourceCache cache, ResourcePath path)
        {
            using (var stream = cache.ContentFileRead(path))
                using (var reader = new StreamReader(stream, Encoding.UTF8))
                {
                    ParsedShader = ShaderParser.Parse(reader);
                }

            switch (GameController.Mode)
            {
            case GameController.DisplayMode.Headless:
                return;

            case GameController.DisplayMode.Godot:
                GodotShader = new Godot.Shader
                {
                    Code = _getGodotCode(),
                };
                break;

            case GameController.DisplayMode.Clyde:
                ClydeHandle = IoCManager.Resolve <IClyde>().LoadShader(ParsedShader);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            if (GameController.OnGodot)
            {
                GodotShader = new Godot.Shader
                {
                    Code = _getGodotCode(),
                };
            }
            else
            {
                var clyde = IoCManager.Resolve <IClyde>();
                // TODO: vertex shaders.
                ClydeHandle = clyde.LoadShader(ParsedShader, path.ToString());
            }
        }