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, }; } }
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()); } }