Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update webrender #26823

Merged
merged 4 commits into from Jun 9, 2020
Merged
Changes from 1 commit
Commits
File filter...
Filter file types
Jump to…
Jump to file
Failed to load files.

Always

Just for now

Prev

script: Don't panic when IPC WebRender APIs fail during shutdown.

  • Loading branch information
jdm committed Jun 9, 2020
commit 125bfceafd4dac829604b7a3e9f50694df00a41d
@@ -213,7 +213,10 @@ impl VideoFrameRenderer for MediaFrameRenderer {
Some((ref mut image_key, ref mut width, ref mut height)) => {
self.old_frame = Some(*image_key);

let new_image_key = self.api.generate_image_key();
let new_image_key = match self.api.generate_image_key() {
Ok(key) => key,
Err(()) => return,
};

/* update current_frame */
*image_key = new_image_key;
@@ -243,7 +246,10 @@ impl VideoFrameRenderer for MediaFrameRenderer {
updates.push(ImageUpdate::AddImage(new_image_key, descriptor, image_data));
},
None => {
let image_key = self.api.generate_image_key();
let image_key = match self.api.generate_image_key() {
Ok(key) => key,
Err(()) => return,
};
self.current_frame = Some((image_key, frame.get_width(), frame.get_height()));

let image_data = if frame.is_gl_texture() && self.player_id.is_some() {
@@ -1195,12 +1195,12 @@ impl WebrenderIpcSender {
}

/// Create a new image key. Blocks until the key is available.
pub fn generate_image_key(&self) -> ImageKey {
pub fn generate_image_key(&self) -> Result<ImageKey, ()> {
let (sender, receiver) = ipc::channel().unwrap();
self.0
.send(WebrenderMsg::GenerateImageKey(sender))
.expect("error sending image key generation");
receiver.recv().expect("error receiving image key result")
.map_err(|_| ())?;
receiver.recv().map_err(|_| ())
}

/// Perform a resource update operation.
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.