summaryrefslogtreecommitdiffstats
path: root/source/slang/slang.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang.cpp')
-rw-r--r--source/slang/slang.cpp27
1 files changed, 24 insertions, 3 deletions
diff --git a/source/slang/slang.cpp b/source/slang/slang.cpp
index af68060cd..7f30e91c2 100644
--- a/source/slang/slang.cpp
+++ b/source/slang/slang.cpp
@@ -862,7 +862,18 @@ SLANG_API char const* spGetTranslationUnitSource(
int translationUnitIndex)
{
auto req = REQ(request);
- return req->translationUnits[translationUnitIndex]->result.outputSource.Buffer();
+ return (char const*)req->translationUnits[translationUnitIndex]->result.outputSource.Buffer();
+}
+
+SLANG_API void const* spGetTranslationUnitCode(
+ SlangCompileRequest* request,
+ int translationUnitIndex,
+ size_t* outSize)
+{
+ auto req = REQ(request);
+ Slang::TranslationUnitResult& result = req->translationUnits[translationUnitIndex]->result;
+ *outSize = (size_t)result.outputSource.Count();
+ return result.outputSource.Buffer();
}
SLANG_API char const* spGetEntryPointSource(
@@ -870,10 +881,21 @@ SLANG_API char const* spGetEntryPointSource(
int entryPointIndex)
{
auto req = REQ(request);
- return req->entryPoints[entryPointIndex]->result.outputSource.Buffer();
+ return (char const*)req->entryPoints[entryPointIndex]->result.outputSource.Buffer();
}
+SLANG_API void const* spGetEntryPointCode(
+ SlangCompileRequest* request,
+ int entryPointIndex,
+ size_t* outSize)
+{
+ auto req = REQ(request);
+ Slang::EntryPointResult& result = req->entryPoints[entryPointIndex]->result;
+ *outSize = (size_t)result.outputSource.Count();
+ return result.outputSource.Buffer();
+}
+
// Reflection API
SLANG_API SlangReflection* spGetReflection(
@@ -885,5 +907,4 @@ SLANG_API SlangReflection* spGetReflection(
return (SlangReflection*) req->layout.Ptr();
}
-
// ... rest of reflection API implementation is in `Reflection.cpp`