diff options
author | gdk <gab.dark.100@gmail.com> | 2019-10-13 03:02:07 -0300 |
---|---|---|
committer | Thog <thog@protonmail.com> | 2020-01-09 02:13:00 +0100 |
commit | 1876b346fea647e8284a66bb6d62c38801035cff (patch) | |
tree | 6eeff094298cda84d1613dc5ec0691e51d7b35f1 /Ryujinx.Graphics.OpenGL/Renderer.cs | |
parent | f617fb542a0e3d36012d77a4b5acbde7b08902f2 (diff) |
Initial work
Diffstat (limited to 'Ryujinx.Graphics.OpenGL/Renderer.cs')
-rw-r--r-- | Ryujinx.Graphics.OpenGL/Renderer.cs | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/Ryujinx.Graphics.OpenGL/Renderer.cs b/Ryujinx.Graphics.OpenGL/Renderer.cs new file mode 100644 index 00000000..56ba7624 --- /dev/null +++ b/Ryujinx.Graphics.OpenGL/Renderer.cs @@ -0,0 +1,84 @@ +using OpenTK.Graphics.OpenGL; +using Ryujinx.Graphics.GAL; +using Ryujinx.Graphics.GAL.Sampler; +using Ryujinx.Graphics.GAL.Texture; +using Ryujinx.Graphics.Shader; + +namespace Ryujinx.Graphics.OpenGL +{ + public class Renderer : IRenderer + { + public IComputePipeline ComputePipeline { get; } + public IGraphicsPipeline GraphicsPipeline { get; } + + private Counters _counters; + + private Window _window; + + public IWindow Window => _window; + + internal TextureCopy TextureCopy { get; } + + public Renderer() + { + ComputePipeline = new ComputePipeline(this); + GraphicsPipeline = new GraphicsPipeline(); + + _counters = new Counters(); + + _window = new Window(); + + TextureCopy = new TextureCopy(); + } + + public IShader CompileShader(ShaderProgram shader) + { + return new Shader(shader); + } + + public IBuffer CreateBuffer(int size) + { + return new Buffer(size); + } + + public IProgram CreateProgram(IShader[] shaders) + { + return new Program(shaders); + } + + public ISampler CreateSampler(SamplerCreateInfo info) + { + return new Sampler(info); + } + + public ITexture CreateTexture(TextureCreateInfo info) + { + return new TextureStorage(this, info).CreateDefaultView(); + } + + public void FlushPipelines() + { + GL.Finish(); + } + + public Capabilities GetCapabilities() + { + return new Capabilities(HwCapabilities.SupportsAstcCompression); + } + + public ulong GetCounter(CounterType type) + { + return _counters.GetCounter(type); + } + + public void InitializeCounters() + { + _counters.Initialize(); + } + + public void ResetCounter(CounterType type) + { + _counters.ResetCounter(type); + } + } +} |