diff options
Diffstat (limited to 'source/slang/slang-emit.cpp')
| -rw-r--r-- | source/slang/slang-emit.cpp | 12 |
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; } |
