diff options
author | Josh Matthews <josh@joshmatthews.net> | 2020-04-28 10:43:01 -0400 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2020-05-11 17:41:56 -0400 |
commit | eb2f7f7f0acd7c71a370fa2122b1af4e0142a658 (patch) | |
tree | c83f8e441b41148ace075dde2edaf0211c848ab4 /components/script/dom/htmlmediaelement.rs | |
parent | 884225003358b3a4cdacc802e4b429e44f28d16f (diff) | |
download | servo-eb2f7f7f0acd7c71a370fa2122b1af4e0142a658.tar.gz servo-eb2f7f7f0acd7c71a370fa2122b1af4e0142a658.zip |
Convert all uses of UpdateResources api to use webrender transactions.
Diffstat (limited to 'components/script/dom/htmlmediaelement.rs')
-rw-r--r-- | components/script/dom/htmlmediaelement.rs | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs index a1a1d3204fb..0bcf2f45d0f 100644 --- a/components/script/dom/htmlmediaelement.rs +++ b/components/script/dom/htmlmediaelement.rs @@ -81,7 +81,7 @@ use net_traits::request::{Destination, Referrer}; use net_traits::{CoreResourceMsg, FetchChannels, FetchMetadata, FetchResponseListener, Metadata}; use net_traits::{NetworkError, ResourceFetchTiming, ResourceTimingType}; use script_layout_interface::HTMLMediaData; -use script_traits::WebrenderIpcSender; +use script_traits::{ImageUpdate, WebrenderIpcSender}; use servo_config::pref; use servo_media::player::audio::AudioRenderer; use servo_media::player::video::{VideoFrame, VideoFrameRenderer}; @@ -95,9 +95,9 @@ use std::mem; use std::rc::Rc; use std::sync::{Arc, Mutex}; use time::{self, Duration, Timespec}; +use webrender_api::ImageKey; use webrender_api::{ExternalImageData, ExternalImageId, ExternalImageType, TextureTarget}; use webrender_api::{ImageData, ImageDescriptor, ImageDescriptorFlags, ImageFormat}; -use webrender_api::{ImageKey, Transaction}; #[derive(PartialEq)] enum FrameStatus { @@ -177,10 +177,10 @@ impl MediaFrameRenderer { impl VideoFrameRenderer for MediaFrameRenderer { fn render(&mut self, frame: VideoFrame) { - let mut txn = Transaction::new(); + let mut updates = vec![]; if let Some(old_image_key) = mem::replace(&mut self.very_old_frame, self.old_frame.take()) { - txn.delete_image(old_image_key); + updates.push(ImageUpdate::DeleteImage(old_image_key)); } let descriptor = ImageDescriptor::new( @@ -195,12 +195,11 @@ impl VideoFrameRenderer for MediaFrameRenderer { if *width == frame.get_width() && *height == frame.get_height() => { if !frame.is_gl_texture() { - txn.update_image( + updates.push(ImageUpdate::UpdateImage( *image_key, descriptor, ImageData::Raw(frame.get_data()), - &webrender_api::DirtyRect::All, - ); + )); } self.current_frame_holder @@ -208,7 +207,7 @@ impl VideoFrameRenderer for MediaFrameRenderer { .set(frame); if let Some(old_image_key) = self.old_frame.take() { - txn.delete_image(old_image_key); + updates.push(ImageUpdate::DeleteImage(old_image_key)); } } Some((ref mut image_key, ref mut width, ref mut height)) => { @@ -241,7 +240,7 @@ impl VideoFrameRenderer for MediaFrameRenderer { .get_or_insert_with(|| FrameHolder::new(frame.clone())) .set(frame); - txn.add_image(new_image_key, descriptor, image_data, None); + updates.push(ImageUpdate::AddImage(new_image_key, descriptor, image_data)); }, None => { let image_key = self.api.generate_image_key(); @@ -265,10 +264,10 @@ impl VideoFrameRenderer for MediaFrameRenderer { self.current_frame_holder = Some(FrameHolder::new(frame)); - txn.add_image(image_key, descriptor, image_data, None); + updates.push(ImageUpdate::AddImage(image_key, descriptor, image_data)); }, } - self.api.update_resources(txn.resource_updates); + self.api.update_images(updates); } } |