diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2020-11-08 08:10:00 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-08 12:10:00 +0100 |
| commit | 8d168574eb04ae1e7026ac2b058e3b184f068fae (patch) | |
| tree | 6e0f79447276619af980055419874f5e99595b58 /Ryujinx.Graphics.OpenGL/Shader.cs | |
| parent | 5561a3b95e9c980e3354366570e7896a213b95ae (diff) | |
Use explicit buffer and texture bindings on shaders (#1666)
* Use explicit buffer and texture bindings on shaders
* More XML docs and other nits
Diffstat (limited to 'Ryujinx.Graphics.OpenGL/Shader.cs')
| -rw-r--r-- | Ryujinx.Graphics.OpenGL/Shader.cs | 31 |
1 files changed, 11 insertions, 20 deletions
diff --git a/Ryujinx.Graphics.OpenGL/Shader.cs b/Ryujinx.Graphics.OpenGL/Shader.cs index f25845cf..1df07ee4 100644 --- a/Ryujinx.Graphics.OpenGL/Shader.cs +++ b/Ryujinx.Graphics.OpenGL/Shader.cs @@ -8,31 +8,22 @@ namespace Ryujinx.Graphics.OpenGL { public int Handle { get; private set; } - private ShaderProgram _program; - - public ShaderProgramInfo Info => _program.Info; - - public ShaderStage Stage => _program.Stage; - - public Shader(ShaderProgram program) + public Shader(ShaderStage stage, string code) { - _program = program; - - ShaderType type = ShaderType.VertexShader; - - switch (program.Stage) + ShaderType type = stage switch { - case ShaderStage.Compute: type = ShaderType.ComputeShader; break; - case ShaderStage.Vertex: type = ShaderType.VertexShader; break; - case ShaderStage.TessellationControl: type = ShaderType.TessControlShader; break; - case ShaderStage.TessellationEvaluation: type = ShaderType.TessEvaluationShader; break; - case ShaderStage.Geometry: type = ShaderType.GeometryShader; break; - case ShaderStage.Fragment: type = ShaderType.FragmentShader; break; - } + ShaderStage.Compute => ShaderType.ComputeShader, + ShaderStage.Vertex => ShaderType.VertexShader, + ShaderStage.TessellationControl => ShaderType.TessControlShader, + ShaderStage.TessellationEvaluation => ShaderType.TessEvaluationShader, + ShaderStage.Geometry => ShaderType.GeometryShader, + ShaderStage.Fragment => ShaderType.FragmentShader, + _ => ShaderType.VertexShader + }; Handle = GL.CreateShader(type); - GL.ShaderSource(Handle, program.Code); + GL.ShaderSource(Handle, code); GL.CompileShader(Handle); } |
