From eaff1030de07f3739794207403ea833ee91c0034 Mon Sep 17 00:00:00 2001
From: ameerj <52414509+ameerj@users.noreply.github.com>
Date: Wed, 19 May 2021 21:58:32 -0400
Subject: glsl: Initial backend

---
 .../backend/glsl/emit_context.cpp                  | 30 ++++++++++++++++++++++
 1 file changed, 30 insertions(+)
 create mode 100644 src/shader_recompiler/backend/glsl/emit_context.cpp

(limited to 'src/shader_recompiler/backend/glsl/emit_context.cpp')

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 0000000000..e2a9885f0d
--- /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
-- 
cgit v1.2.3-70-g09d2