aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.OpenGL/Shader.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2020-11-08 08:10:00 -0300
committerGitHub <noreply@github.com>2020-11-08 12:10:00 +0100
commit8d168574eb04ae1e7026ac2b058e3b184f068fae (patch)
tree6e0f79447276619af980055419874f5e99595b58 /Ryujinx.Graphics.OpenGL/Shader.cs
parent5561a3b95e9c980e3354366570e7896a213b95ae (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.cs31
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);
}