diff options
author | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-06-15 03:06:29 +0200 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-07-23 03:51:38 +0200 |
commit | 74f683787eeba7b6e8f5868134f445240733f8fd (patch) | |
tree | 880306114a423a5854172bc9e4b66e20be1932e6 /src/video_core/renderer_opengl/gl_shader_context.h | |
parent | glsl: Add Shader_GLSL logging (diff) | |
download | yuzu-74f683787eeba7b6e8f5868134f445240733f8fd.tar yuzu-74f683787eeba7b6e8f5868134f445240733f8fd.tar.gz yuzu-74f683787eeba7b6e8f5868134f445240733f8fd.tar.bz2 yuzu-74f683787eeba7b6e8f5868134f445240733f8fd.tar.lz yuzu-74f683787eeba7b6e8f5868134f445240733f8fd.tar.xz yuzu-74f683787eeba7b6e8f5868134f445240733f8fd.tar.zst yuzu-74f683787eeba7b6e8f5868134f445240733f8fd.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/renderer_opengl/gl_shader_context.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_context.h b/src/video_core/renderer_opengl/gl_shader_context.h new file mode 100644 index 000000000..6ff34e5d6 --- /dev/null +++ b/src/video_core/renderer_opengl/gl_shader_context.h @@ -0,0 +1,33 @@ +// Copyright 2021 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include "core/frontend/emu_window.h" +#include "shader_recompiler/frontend/ir/basic_block.h" +#include "shader_recompiler/frontend/maxwell/control_flow.h" + +namespace OpenGL::ShaderContext { +struct ShaderPools { + void ReleaseContents() { + flow_block.ReleaseContents(); + block.ReleaseContents(); + inst.ReleaseContents(); + } + + Shader::ObjectPool<Shader::IR::Inst> inst; + Shader::ObjectPool<Shader::IR::Block> block; + Shader::ObjectPool<Shader::Maxwell::Flow::Block> flow_block; +}; + +struct Context { + explicit Context(Core::Frontend::EmuWindow& emu_window) + : gl_context{emu_window.CreateSharedContext()}, scoped{*gl_context} {} + + std::unique_ptr<Core::Frontend::GraphicsContext> gl_context; + Core::Frontend::GraphicsContext::Scoped scoped; + ShaderPools pools; +}; + +} // namespace OpenGL::ShaderContext |