summaryrefslogtreecommitdiffstats
path: root/source/core
diff options
context:
space:
mode:
Diffstat (limited to 'source/core')
-rw-r--r--source/core/slang-downstream-compiler.cpp13
-rw-r--r--source/core/slang-downstream-compiler.h3
2 files changed, 16 insertions, 0 deletions
diff --git a/source/core/slang-downstream-compiler.cpp b/source/core/slang-downstream-compiler.cpp
index 2e78ea22b..2f0cff1a9 100644
--- a/source/core/slang-downstream-compiler.cpp
+++ b/source/core/slang-downstream-compiler.cpp
@@ -182,6 +182,19 @@ void DownstreamCompiler::Desc::appendAsText(StringBuilder& out) const
return UnownedStringSlice::fromLiteral("unknown");
}
+/* static */SlangCompileTarget DownstreamCompiler::getCompileTarget(SlangSourceLanguage sourceLanguage)
+{
+ switch (sourceLanguage)
+ {
+ case SLANG_SOURCE_LANGUAGE_HLSL: return SLANG_HLSL;
+ case SLANG_SOURCE_LANGUAGE_GLSL: return SLANG_GLSL;
+ case SLANG_SOURCE_LANGUAGE_C: return SLANG_C_SOURCE;
+ case SLANG_SOURCE_LANGUAGE_CPP: return SLANG_CPP_SOURCE;
+ case SLANG_SOURCE_LANGUAGE_CUDA: return SLANG_CUDA_SOURCE;
+ default: return SLANG_TARGET_UNKNOWN;
+ }
+}
+
/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! DownstreamDiagnostics !!!!!!!!!!!!!!!!!!!!!!*/
Index DownstreamDiagnostics::getCountByType(Diagnostic::Type type) const
diff --git a/source/core/slang-downstream-compiler.h b/source/core/slang-downstream-compiler.h
index 57fb88a3c..a4238ce38 100644
--- a/source/core/slang-downstream-compiler.h
+++ b/source/core/slang-downstream-compiler.h
@@ -296,6 +296,9 @@ public:
/// Get the compilers name
static UnownedStringSlice getPassThroughName(SlangPassThrough passThru);
+ /// Given a source language return as the equivalent compile target
+ static SlangCompileTarget getCompileTarget(SlangSourceLanguage sourceLanguage);
+
protected:
static Infos s_infos;