summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler/backend/glsl/emit_context.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/shader_recompiler/backend/glsl/emit_context.cpp')
-rw-r--r--src/shader_recompiler/backend/glsl/emit_context.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/shader_recompiler/backend/glsl/emit_context.cpp b/src/shader_recompiler/backend/glsl/emit_context.cpp
new file mode 100644
index 000000000..e2a9885f0
--- /dev/null
+++ b/src/shader_recompiler/backend/glsl/emit_context.cpp
@@ -0,0 +1,30 @@
+// Copyright 2021 yuzu Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include "shader_recompiler/backend/bindings.h"
+#include "shader_recompiler/backend/glsl/emit_context.h"
+#include "shader_recompiler/frontend/ir/program.h"
+
+namespace Shader::Backend::GLSL {
+
+EmitContext::EmitContext(IR::Program& program, [[maybe_unused]] Bindings& bindings,
+ const Profile& profile_)
+ : info{program.info}, profile{profile_} {
+ std::string header = "#version 450 core\n";
+ header += "layout(local_size_x=1, local_size_y=1, local_size_z=1) in;";
+ code += header;
+ DefineConstantBuffers();
+ code += "void main(){";
+}
+
+void EmitContext::DefineConstantBuffers() {
+ if (info.constant_buffer_descriptors.empty()) {
+ return;
+ }
+ for (const auto& desc : info.constant_buffer_descriptors) {
+ Add("uniform uint c{}[{}];", desc.index, desc.count);
+ }
+}
+
+} // namespace Shader::Backend::GLSL