From 6fcadc361c48a8935fbe1c975c0b39de13601674 Mon Sep 17 00:00:00 2001
From: Jacki <jacki@thejackimonster.de>
Date: Mon, 16 Sep 2024 20:46:51 +0200
Subject: [PATCH] Use macros in slang compiler

Signed-off-by: Jacki <jacki@thejackimonster.de>
---
 .../src/vkcv/shader/SlangCompiler.cpp             | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/modules/shader_compiler/src/vkcv/shader/SlangCompiler.cpp b/modules/shader_compiler/src/vkcv/shader/SlangCompiler.cpp
index a54d17bd..4879ede9 100644
--- a/modules/shader_compiler/src/vkcv/shader/SlangCompiler.cpp
+++ b/modules/shader_compiler/src/vkcv/shader/SlangCompiler.cpp
@@ -107,6 +107,21 @@ namespace vkcv::shader {
 		sessionDesc.searchPaths = &searchPath;
 		sessionDesc.searchPathCount = 1;
 
+		std::vector<slang::PreprocessorMacroDesc> macros;
+		macros.reserve(m_defines.size());
+
+		for (const auto& define : m_defines) {
+			const slang::PreprocessorMacroDesc macro = {
+				define.first.c_str(),
+				define.second.c_str()
+			};
+
+			macros.push_back(macro);
+		}
+
+		sessionDesc.preprocessorMacros = macros.data();
+		sessionDesc.preprocessorMacroCount = macros.size();
+
 		Slang::ComPtr<slang::ISession> session;
 		if (SLANG_FAILED(s_GlobalSession->createSession(sessionDesc, session.writeRef()))) {
 			vkcv_log(LogLevel::ERROR, "Compiler session could not be created");
-- 
GitLab