diff options
| author | Sai Praveen Bangaru <31557731+saipraveenb25@users.noreply.github.com> | 2024-11-08 13:03:42 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-08 13:03:42 -0500 |
| commit | f66b046e2767cd7a38acec8c0f988e5937f062e7 (patch) | |
| tree | 178b745cea2479675a368cb67526833aad554630 /source/slang-wasm/slang-wasm-bindings.cpp | |
| parent | 0f46ce82998b2b1cb68f04bef3a097ea850ad453 (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.cpp | 33 |
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", |
