summaryrefslogtreecommitdiffstats
path: root/source/slang-wasm/slang-wasm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang-wasm/slang-wasm.cpp')
-rw-r--r--source/slang-wasm/slang-wasm.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/source/slang-wasm/slang-wasm.cpp b/source/slang-wasm/slang-wasm.cpp
index bdc2e5e6e..c6c008483 100644
--- a/source/slang-wasm/slang-wasm.cpp
+++ b/source/slang-wasm/slang-wasm.cpp
@@ -415,6 +415,19 @@ unsigned int ProgramLayout::getParameterCount()
return interface()->getParameterCount();
}
+emscripten::val ProgramLayout::toJsonObject()
+{
+ Slang::ComPtr<ISlangBlob> blob;
+ if (SLANG_FAILED(interface()->toJson(blob.writeRef())))
+ return {};
+ auto jsonString = std::string(
+ (char*)blob->getBufferPointer(),
+ (char*)blob->getBufferPointer() + blob->getBufferSize());
+ emscripten::val parsedObject =
+ emscripten::val::global("JSON").call<emscripten::val>("parse", jsonString);
+ return parsedObject;
+}
+
VariableLayoutReflection* ProgramLayout::getParameterByIndex(unsigned int index)
{
return (slang::wgsl::VariableLayoutReflection*)(interface()->getParameterByIndex(index));