summaryrefslogtreecommitdiff
path: root/source/slang-wasm/slang-wasm-bindings.cpp
diff options
context:
space:
mode:
authorSai Praveen Bangaru <31557731+saipraveenb25@users.noreply.github.com>2024-11-08 13:03:42 -0500
committerGitHub <noreply@github.com>2024-11-08 13:03:42 -0500
commitf66b046e2767cd7a38acec8c0f988e5937f062e7 (patch)
tree178b745cea2479675a368cb67526833aad554630 /source/slang-wasm/slang-wasm-bindings.cpp
parent0f46ce82998b2b1cb68f04bef3a097ea850ad453 (diff)
[WGSL] [WASM] Add reflection endpoints + Fix bit manipulation operations (#5499)
* Add key reflection endpoints for WASM * Fix WGSL output around bit-manipulation operators * format code * Fix pointer ownership * fix formatting --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com> Co-authored-by: Yong He <yonghe@outlook.com>
Diffstat (limited to 'source/slang-wasm/slang-wasm-bindings.cpp')
-rw-r--r--source/slang-wasm/slang-wasm-bindings.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/source/slang-wasm/slang-wasm-bindings.cpp b/source/slang-wasm/slang-wasm-bindings.cpp
index 326ef9ff2..e980cd608 100644
--- a/source/slang-wasm/slang-wasm-bindings.cpp
+++ b/source/slang-wasm/slang-wasm-bindings.cpp
@@ -43,11 +43,44 @@ EMSCRIPTEN_BINDINGS(slang)
.function("getEntryPointCodeBlob", &slang::wgsl::ComponentType::getEntryPointCodeBlob)
.function("getTargetCodeBlob", &slang::wgsl::ComponentType::getTargetCodeBlob)
.function("getTargetCode", &slang::wgsl::ComponentType::getTargetCode)
+ .function("getLayout", &slang::wgsl::ComponentType::getLayout, allow_raw_pointers())
.function(
"loadStrings",
&slang::wgsl::ComponentType::loadStrings,
return_value_policy::take_ownership());
+ class_<slang::wgsl::TypeLayoutReflection>("TypeLayoutReflection")
+ .function(
+ "getDescriptorSetDescriptorRangeType",
+ &slang::wgsl::TypeLayoutReflection::getDescriptorSetDescriptorRangeType);
+
+ class_<slang::wgsl::VariableLayoutReflection>("VariableLayoutReflection")
+ .function("getName", &slang::wgsl::VariableLayoutReflection::getName)
+ .function(
+ "getTypeLayout",
+ &slang::wgsl::VariableLayoutReflection::getTypeLayout,
+ allow_raw_pointers())
+ .function("getBindingIndex", &slang::wgsl::VariableLayoutReflection::getBindingIndex);
+
+ class_<slang::wgsl::ProgramLayout>("ProgramLayout")
+ .function("getParameterCount", &slang::wgsl::ProgramLayout::getParameterCount)
+ .function(
+ "getParameterByIndex",
+ &slang::wgsl::ProgramLayout::getParameterByIndex,
+ allow_raw_pointers())
+ .function(
+ "getGlobalParamsTypeLayout",
+ &slang::wgsl::ProgramLayout::getGlobalParamsTypeLayout,
+ allow_raw_pointers());
+
+ enum_<slang::BindingType>("BindingType")
+ .value("Unknown", slang::BindingType::Unknown)
+ .value("Texture", slang::BindingType::Texture)
+ .value("ConstantBuffer", slang::BindingType::ConstantBuffer)
+ .value("MutableRawBuffer", slang::BindingType::MutableRawBuffer)
+ .value("MutableTypedBuffer", slang::BindingType::MutableTypedBuffer)
+ .value("MutableTexture", slang::BindingType::MutableTexture);
+
class_<slang::wgsl::Module, base<slang::wgsl::ComponentType>>("Module")
.function(
"findEntryPointByName",