diff options
| author | kaizhangNV <149626564+kaizhangNV@users.noreply.github.com> | 2024-10-17 17:26:51 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-17 15:26:51 -0700 |
| commit | 11e1ecafa09396a3559fe245d729b40ce4f25d52 (patch) | |
| tree | d55928a4897033705401ea0fdb4e034d61b80cbb /source/slang-wasm/slang-wasm.cpp | |
| parent | fa3287fb6ec38127bad8fe948fbc190e7a3d54b2 (diff) | |
Add 'findAndCheckEntryPoint' to wasm binding (#5337)
Diffstat (limited to 'source/slang-wasm/slang-wasm.cpp')
| -rw-r--r-- | source/slang-wasm/slang-wasm.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/source/slang-wasm/slang-wasm.cpp b/source/slang-wasm/slang-wasm.cpp index ee64f0e9b..a679a5f3d 100644 --- a/source/slang-wasm/slang-wasm.cpp +++ b/source/slang-wasm/slang-wasm.cpp @@ -103,6 +103,31 @@ EntryPoint* Module::findEntryPointByName(const std::string& name) return new EntryPoint(entryPoint); } + +EntryPoint* Module::findAndCheckEntryPoint(const std::string& name, int stage) +{ + Slang::ComPtr<IEntryPoint> entryPoint; + { + Slang::ComPtr<slang::IBlob> diagnosticsBlob; + SlangResult result = moduleInterface()->findAndCheckEntryPoint( + name.c_str(), (SlangStage)stage, entryPoint.writeRef(), diagnosticsBlob.writeRef()); + if (!SLANG_SUCCEEDED(result)) + { + g_error.type = std::string("USER"); + g_error.result = result; + + if (diagnosticsBlob->getBufferSize()) + { + char* diagnostics = (char*)diagnosticsBlob->getBufferPointer(); + g_error.message = std::string(diagnostics); + } + return nullptr; + } + } + + return new EntryPoint(entryPoint); +} + ComponentType* Session::createCompositeComponentType( const std::vector<ComponentType*>& components) { |
