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/gpucompilationmessage.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/gpucompilationmessage.rs')
-rw-r--r-- | components/script/dom/gpucompilationmessage.rs | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/components/script/dom/gpucompilationmessage.rs b/components/script/dom/gpucompilationmessage.rs new file mode 100644 index 00000000000..83912e43ee1 --- /dev/null +++ b/components/script/dom/gpucompilationmessage.rs @@ -0,0 +1,98 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * 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/. */ + +#![allow(dead_code)] // this file is stub as wgpu does not provide info + +use crate::dom::bindings::reflector::Reflector; +use crate::test::DOMString; +use dom_struct::dom_struct; + +use super::bindings::codegen::Bindings::GPUCompilationMessageBinding::{ + GPUCompilationMessageMethods, GPUCompilationMessageType, +}; +use super::bindings::root::DomRoot; +use super::types::GlobalScope; +use crate::dom::bindings::reflector::reflect_dom_object; + +#[dom_struct] +pub struct GPUCompilationMessage { + reflector_: Reflector, + // #[ignore_malloc_size_of = "defined in wgpu-types"] + message: DOMString, + mtype: GPUCompilationMessageType, + line_num: u64, + line_pos: u64, + offset: u64, + length: u64, +} + +impl GPUCompilationMessage { + fn new_inherited( + message: DOMString, + mtype: GPUCompilationMessageType, + line_num: u64, + line_pos: u64, + offset: u64, + length: u64, + ) -> Self { + Self { + reflector_: Reflector::new(), + message, + mtype, + line_num, + line_pos, + offset, + length, + } + } + + pub fn new( + global: &GlobalScope, + message: DOMString, + mtype: GPUCompilationMessageType, + line_num: u64, + line_pos: u64, + offset: u64, + length: u64, + ) -> DomRoot<Self> { + reflect_dom_object( + Box::new(Self::new_inherited( + message, mtype, line_num, line_pos, offset, length, + )), + global, + ) + } +} + +impl GPUCompilationMessageMethods for GPUCompilationMessage { + /// https://gpuweb.github.io/gpuweb/#dom-gpucompilationmessage-message + fn Message(&self) -> DOMString { + self.message.to_owned() + } + + /// https://gpuweb.github.io/gpuweb/#dom-gpucompilationmessage-type + fn Type(&self) -> GPUCompilationMessageType { + self.mtype + } + + /// https://gpuweb.github.io/gpuweb/#dom-gpucompilationmessage-linenum + fn LineNum(&self) -> u64 { + self.line_num + } + + /// https://gpuweb.github.io/gpuweb/#dom-gpucompilationmessage-linepos + fn LinePos(&self) -> u64 { + self.line_pos + } + + /// https://gpuweb.github.io/gpuweb/#dom-gpucompilationmessage-offset + fn Offset(&self) -> u64 { + self.offset + } + + /// https://gpuweb.github.io/gpuweb/#dom-gpucompilationmessage-length + fn Length(&self) -> u64 { + self.length + } +} |