diff options
Diffstat (limited to 'source/slang/slang.cpp')
| -rw-r--r-- | source/slang/slang.cpp | 27 |
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` |
