diff --git a/Cargo.lock b/Cargo.lock index c702bd07cd0..22670c118f5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2725,8 +2725,8 @@ dependencies = [ "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "servo-media 0.1.0 (git+https://github.com/servo/media)", "servo_config 0.0.1", - "webrender 0.60.0 (git+https://github.com/servo/webrender)", - "webrender_api 0.60.0 (git+https://github.com/servo/webrender)", + "webrender 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)", + "webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)", "webrender_traits 0.0.1", ] @@ -5407,8 +5407,8 @@ name = "webrender_traits" version = "0.0.1" dependencies = [ "euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender 0.60.0 (git+https://github.com/servo/webrender)", - "webrender_api 0.60.0 (git+https://github.com/servo/webrender)", + "webrender 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)", + "webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)", ] [[package]] diff --git a/components/constellation/constellation.rs b/components/constellation/constellation.rs index 1d6bef75b4e..77fd77ab307 100644 --- a/components/constellation/constellation.rs +++ b/components/constellation/constellation.rs @@ -464,7 +464,7 @@ pub struct InitialConstellationState { /// The XR device registry pub webxr_registry: webxr_api::Registry, - + pub glplayer_threads: Option, /// Application window's GL Context for Media player diff --git a/components/constellation/pipeline.rs b/components/constellation/pipeline.rs index 07df7a4b2c9..f3acb29ad14 100644 --- a/components/constellation/pipeline.rs +++ b/components/constellation/pipeline.rs @@ -192,7 +192,7 @@ pub struct InitialPipelineState { /// The XR device registry pub webxr_registry: webxr_api::Registry, - + /// Application window's GL Context for Media player pub player_context: WindowGLContext, } diff --git a/components/media/lib.rs b/components/media/lib.rs index fa07399af86..7c339693da2 100644 --- a/components/media/lib.rs +++ b/components/media/lib.rs @@ -2,8 +2,6 @@ * 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/. */ -#![crate_name = "media"] -#![crate_type = "rlib"] #![deny(unsafe_code)] #[macro_use] diff --git a/components/webrender_traits/lib.rs b/components/webrender_traits/lib.rs index 1382c2ec66f..40d9f0956c3 100644 --- a/components/webrender_traits/lib.rs +++ b/components/webrender_traits/lib.rs @@ -2,8 +2,6 @@ * 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/. */ -#![crate_name = "webrender_traits"] -#![crate_type = "rlib"] #![deny(unsafe_code)] use euclid::Size2D; @@ -110,56 +108,42 @@ impl webrender::ExternalImageHandler for WebrenderExternalImageHandlers { _channel_index: u8, _rendering: webrender_api::ImageRendering, ) -> webrender::ExternalImage { - if let Some(handler_type) = self.external_images.lock().unwrap().get(&key) { - let (texture_id, uv) = match handler_type { - WebrenderImageHandlerType::WebGL => { - let (texture_id, size) = self.webgl_handler.as_mut().unwrap().lock(key.0); - ( - texture_id, - webrender_api::TexelRect::new( - 0.0, - size.height as f32, - size.width as f32, - 0.0, - ), - ) - }, - WebrenderImageHandlerType::Media => { - let (texture_id, size) = self.media_handler.as_mut().unwrap().lock(key.0); - ( - texture_id, - webrender_api::TexelRect::new( - 0.0, - 0.0, - size.width as f32, - size.height as f32, - ), - ) - }, - }; - webrender::ExternalImage { - uv, - source: webrender::ExternalImageSource::NativeTexture(texture_id), - } - } else { - unreachable!() + let external_images = self.external_images.lock().unwrap(); + let handler_type = external_images + .get(&key) + .expect("Tried to get unknown external image"); + let (texture_id, uv) = match handler_type { + WebrenderImageHandlerType::WebGL => { + let (texture_id, size) = self.webgl_handler.as_mut().unwrap().lock(key.0); + ( + texture_id, + webrender_api::TexelRect::new(0.0, size.height as f32, size.width as f32, 0.0), + ) + }, + WebrenderImageHandlerType::Media => { + let (texture_id, size) = self.media_handler.as_mut().unwrap().lock(key.0); + ( + texture_id, + webrender_api::TexelRect::new(0.0, 0.0, size.width as f32, size.height as f32), + ) + }, + }; + webrender::ExternalImage { + uv, + source: webrender::ExternalImageSource::NativeTexture(texture_id), } } /// Unlock the external image. The WR should not read the image /// content after this call. fn unlock(&mut self, key: webrender_api::ExternalImageId, _channel_index: u8) { - if let Some(handler_type) = self.external_images.lock().unwrap().get(&key) { - match handler_type { - WebrenderImageHandlerType::WebGL => { - self.webgl_handler.as_mut().unwrap().unlock(key.0) - }, - WebrenderImageHandlerType::Media => { - self.media_handler.as_mut().unwrap().unlock(key.0) - }, - }; - } else { - unreachable!(); - } + let external_images = self.external_images.lock().unwrap(); + let handler_type = external_images + .get(&key) + .expect("Tried to get unknown external image"); + match handler_type { + WebrenderImageHandlerType::WebGL => self.webgl_handler.as_mut().unwrap().unlock(key.0), + WebrenderImageHandlerType::Media => self.media_handler.as_mut().unwrap().unlock(key.0), + }; } }