summaryrefslogtreecommitdiffstats
path: root/source/slang/slang.cpp
diff options
context:
space:
mode:
authorKai-Hwa Yao <kyao@nvidia.com>2017-07-10 13:50:16 -0700
committerKai-Hwa Yao <kyao@nvidia.com>2017-07-10 17:49:35 -0700
commit7c0ebeee95cb72f086a261ed6c55f33571bb62db (patch)
tree037b716c36ced7fea574c231405c05bf2d58e6a0 /source/slang/slang.cpp
parent4bb88c4a45707fb88150aa7952b4c9b9f55b1749 (diff)
Refactored compile output to work with raw data instead of Strings
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`