From a90c850735664e2928e4cc961442a126c6859b97 Mon Sep 17 00:00:00 2001 From: Tim Foley Date: Tue, 26 Jan 2021 13:32:03 -0800 Subject: Integrate reflection more deeply into gfx layer (#1677) --- source/slang/slang-api.cpp | 8 ++++++++ source/slang/slang-compiler.h | 1 + source/slang/slang.cpp | 7 +++++++ 3 files changed, 16 insertions(+) (limited to 'source') diff --git a/source/slang/slang-api.cpp b/source/slang/slang-api.cpp index 4595bac51..56dc44c04 100644 --- a/source/slang/slang-api.cpp +++ b/source/slang/slang-api.cpp @@ -620,6 +620,14 @@ SLANG_API SlangResult spCompileRequest_getProgram( return request->getProgram(outProgram); } +SLANG_API SlangResult spCompileRequest_getProgramWithEntryPoints( + slang::ICompileRequest* request, + slang::IComponentType** outProgram) +{ + SLANG_ASSERT(request); + return request->getProgramWithEntryPoints(outProgram); +} + SLANG_API SlangResult spCompileRequest_getModule( slang::ICompileRequest* request, SlangInt translationUnitIndex, diff --git a/source/slang/slang-compiler.h b/source/slang/slang-compiler.h index 62def6f0f..ac2d72862 100755 --- a/source/slang/slang-compiler.h +++ b/source/slang/slang-compiler.h @@ -1920,6 +1920,7 @@ namespace Slang virtual SLANG_NO_THROW SlangReflection* SLANG_MCALL getReflection() SLANG_OVERRIDE; virtual SLANG_NO_THROW void SLANG_MCALL setCommandLineCompilerMode() SLANG_OVERRIDE; virtual SLANG_NO_THROW SlangResult SLANG_MCALL addTargetCapability(SlangInt targetIndex, SlangCapabilityID capability) SLANG_OVERRIDE; + virtual SLANG_NO_THROW SlangResult SLANG_MCALL getProgramWithEntryPoints(slang::IComponentType** outProgram) SLANG_OVERRIDE; EndToEndCompileRequest( diff --git a/source/slang/slang.cpp b/source/slang/slang.cpp index c82d5cf65..b711a5327 100644 --- a/source/slang/slang.cpp +++ b/source/slang/slang.cpp @@ -4324,6 +4324,13 @@ SlangResult EndToEndCompileRequest::getProgram(slang::IComponentType** outProgra return SLANG_OK; } +SlangResult EndToEndCompileRequest::getProgramWithEntryPoints(slang::IComponentType** outProgram) +{ + auto program = getSpecializedGlobalAndEntryPointsComponentType(); + *outProgram = Slang::ComPtr(program).detach(); + return SLANG_OK; +} + SlangResult EndToEndCompileRequest::getModule(SlangInt translationUnitIndex, slang::IModule** outModule) { auto module = getFrontEndReq()->getTranslationUnit(translationUnitIndex)->getModule(); -- cgit v1.2.3