/* 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/. */ use dom_struct::dom_struct; use euclid::Size2D; use webxr_api::Viewport; use crate::dom::bindings::codegen::Bindings::XRWebGLSubImageBinding::XRWebGLSubImage_Binding::XRWebGLSubImageMethods; use crate::dom::bindings::root::{Dom, DomRoot}; use crate::dom::webgltexture::WebGLTexture; use crate::dom::xrsubimage::XRSubImage; #[dom_struct] pub(crate) struct XRWebGLSubImage { xr_sub_image: XRSubImage, color_texture: Dom, depth_stencil_texture: Option>, image_index: Option, #[no_trace] size: Size2D, } impl XRWebGLSubImageMethods for XRWebGLSubImage { /// fn ColorTexture(&self) -> DomRoot { DomRoot::from_ref(&self.color_texture) } /// fn GetDepthStencilTexture(&self) -> Option> { self.depth_stencil_texture.as_deref().map(DomRoot::from_ref) } /// fn GetImageIndex(&self) -> Option { self.image_index } /// fn TextureWidth(&self) -> u32 { self.size.width } /// fn TextureHeight(&self) -> u32 { self.size.height } }