diff options
author | Samson <16504129+sagudev@users.noreply.github.com> | 2023-08-21 01:16:46 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-20 23:16:46 +0000 |
commit | 71e0372ac18709da66e581cf4a777a7cc5d4cb92 (patch) | |
tree | 44907b543dcc822fe20025b2ac417da6e2b7c908 /components/script/dom/gpushadermodule.rs | |
parent | fed3491f23f8b7f3064ce297776deda76e485289 (diff) | |
download | servo-71e0372ac18709da66e581cf4a777a7cc5d4cb92.tar.gz servo-71e0372ac18709da66e581cf4a777a7cc5d4cb92.zip |
Upgrade whole webgpu stack (#29795)
* Allow noidl files in script/dom/webidls
* Upgrade wgpu to 0.16 and refresh whole webgpu implementation
* Update WebGPU test expectations
* misc
* MutNullableDom -> DomRefCell<Option<Dom for GPUTexture
* Direct use of GPUTextureDescriptor
* Remove config from GPUCanvasContext
* misc
* finally blue color
* gpubuffer "handle" error
* GPU object have non-null label
* gpu limits and info
* use buffer_size
* fix warnings
* Cleanup
* device destroy
* fallback adapter
* mach update-webgpu write webgpu commit hash in file
* Mising deps in CI for webgpu tests
* Updated expectations
* Fixups
* early reject
* DomRefCell<Option<Dom -> MutNullableDom for GPUTexture
Diffstat (limited to 'components/script/dom/gpushadermodule.rs')
-rw-r--r-- | components/script/dom/gpushadermodule.rs | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/components/script/dom/gpushadermodule.rs b/components/script/dom/gpushadermodule.rs index 5eff0c9cbb3..05621688d16 100644 --- a/components/script/dom/gpushadermodule.rs +++ b/components/script/dom/gpushadermodule.rs @@ -2,6 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +use std::rc::Rc; + use crate::dom::bindings::cell::DomRefCell; use crate::dom::bindings::codegen::Bindings::GPUShaderModuleBinding::GPUShaderModuleMethods; use crate::dom::bindings::reflector::{reflect_dom_object, Reflector}; @@ -11,16 +13,19 @@ use crate::dom::globalscope::GlobalScope; use dom_struct::dom_struct; use webgpu::WebGPUShaderModule; +use super::bindings::error::Fallible; +use super::promise::Promise; + #[dom_struct] pub struct GPUShaderModule { reflector_: Reflector, - label: DomRefCell<Option<USVString>>, + label: DomRefCell<USVString>, #[no_trace] shader_module: WebGPUShaderModule, } impl GPUShaderModule { - fn new_inherited(shader_module: WebGPUShaderModule, label: Option<USVString>) -> Self { + fn new_inherited(shader_module: WebGPUShaderModule, label: USVString) -> Self { Self { reflector_: Reflector::new(), label: DomRefCell::new(label), @@ -31,7 +36,7 @@ impl GPUShaderModule { pub fn new( global: &GlobalScope, shader_module: WebGPUShaderModule, - label: Option<USVString>, + label: USVString, ) -> DomRoot<Self> { reflect_dom_object( Box::new(GPUShaderModule::new_inherited(shader_module, label)), @@ -48,12 +53,17 @@ impl GPUShaderModule { impl GPUShaderModuleMethods for GPUShaderModule { /// https://gpuweb.github.io/gpuweb/#dom-gpuobjectbase-label - fn GetLabel(&self) -> Option<USVString> { + fn Label(&self) -> USVString { self.label.borrow().clone() } /// https://gpuweb.github.io/gpuweb/#dom-gpuobjectbase-label - fn SetLabel(&self, value: Option<USVString>) { + fn SetLabel(&self, value: USVString) { *self.label.borrow_mut() = value; } + + /// https://gpuweb.github.io/gpuweb/#dom-gpushadermodule-getcompilationinfo + fn CompilationInfo(&self) -> Fallible<Rc<Promise>> { + todo!() + } } |