summaryrefslogtreecommitdiff
path: root/source/slang-wasm/slang-wasm.cpp
diff options
context:
space:
mode:
authorkaizhangNV <149626564+kaizhangNV@users.noreply.github.com>2024-10-17 17:26:51 -0500
committerGitHub <noreply@github.com>2024-10-17 15:26:51 -0700
commit11e1ecafa09396a3559fe245d729b40ce4f25d52 (patch)
treed55928a4897033705401ea0fdb4e034d61b80cbb /source/slang-wasm/slang-wasm.cpp
parentfa3287fb6ec38127bad8fe948fbc190e7a3d54b2 (diff)
Add 'findAndCheckEntryPoint' to wasm binding (#5337)
Diffstat (limited to 'source/slang-wasm/slang-wasm.cpp')
-rw-r--r--source/slang-wasm/slang-wasm.cpp25
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)
{