summaryrefslogtreecommitdiff
path: root/source/slang/slang-emit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-emit.cpp')
-rw-r--r--source/slang/slang-emit.cpp12
1 files changed, 5 insertions, 7 deletions
diff --git a/source/slang/slang-emit.cpp b/source/slang/slang-emit.cpp
index 16164b957..623b79a1f 100644
--- a/source/slang/slang-emit.cpp
+++ b/source/slang/slang-emit.cpp
@@ -721,9 +721,10 @@ SlangResult emitEntryPointsSourceFromIR(
const List<Int>& entryPointIndices,
CodeGenTarget target,
TargetRequest* targetRequest,
- SourceResult& outSource)
+ ExtensionTracker* extensionTracker,
+ String& outSource)
{
- outSource.reset();
+ outSource = String();
auto sink = compileRequest->getSink();
auto program = compileRequest->getProgram();
@@ -760,6 +761,7 @@ SlangResult emitEntryPointsSourceFromIR(
}
desc.targetCaps = targetRequest->getTargetCaps();
desc.sourceWriter = &sourceWriter;
+ desc.extensionTracker = extensionTracker;
// Define here, because must be in scope longer than the sourceEmitter, as sourceEmitter might reference
// items in the linkedIR module
@@ -866,8 +868,6 @@ SlangResult emitEntryPointsSourceFromIR(
sourceEmitter->emitPreprocessorDirectives();
sourceWriter.resumeLineDirective();
- RefObject* extensionTracker = sourceEmitter->getExtensionTracker();
-
if (auto glslExtensionTracker = as<GLSLExtensionTracker>(extensionTracker))
{
trackGLSLTargetCaps(glslExtensionTracker, targetRequest->getTargetCaps());
@@ -887,9 +887,7 @@ SlangResult emitEntryPointsSourceFromIR(
finalResultBuilder << code;
// Write out the result
- outSource.source = finalResultBuilder.ProduceString();
- outSource.extensionTracker = extensionTracker;
-
+ outSource = finalResultBuilder.ProduceString();
return SLANG_OK;
}