diff options
author | Mukilan Thiyagarajan <mukilan@igalia.com> | 2024-05-20 16:05:18 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-20 10:35:18 +0000 |
commit | 2af6fe0b30a275e5fd8a43eca4126d82639fbaa9 (patch) | |
tree | 2687a12c392b30cba7cdcd849133d0d382b79cbe /components/canvas | |
parent | c2076580f352f3c61f90969e03d78ada609935eb (diff) | |
download | servo-2af6fe0b30a275e5fd8a43eca4126d82639fbaa9.tar.gz servo-2af6fe0b30a275e5fd8a43eca4126d82639fbaa9.zip |
compositor: Move WebRender-ish messages and types to `webrender_traits` (#32315)
* Move WebRender related types to `webrender_traits`
This refactor moves several WebRender related types
from `compositing_traits`, `script_traits` and `net_traits`
crates to the `webrender_traits` crate.
This change also moves the `Image` type and associated
function out of `net_traits` and into the `pixels` crate.
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* Move `script_traits::WebrenderIpcSender` to `webrender_traits::WebRenderScriptApi`
---------
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Diffstat (limited to 'components/canvas')
-rw-r--r-- | components/canvas/canvas_data.rs | 13 | ||||
-rw-r--r-- | components/canvas/canvas_paint_thread.rs | 9 |
2 files changed, 9 insertions, 13 deletions
diff --git a/components/canvas/canvas_data.rs b/components/canvas/canvas_data.rs index 0175242521e..5396eaddea6 100644 --- a/components/canvas/canvas_data.rs +++ b/components/canvas/canvas_data.rs @@ -26,8 +26,9 @@ use style::values::computed::font; use style_traits::values::ToCss; use webrender_api::units::{DeviceIntSize, RectExt as RectExt_}; use webrender_api::{ImageData, ImageDescriptor, ImageDescriptorFlags, ImageFormat, ImageKey}; +use webrender_traits::ImageUpdate; -use crate::canvas_paint_thread::{AntialiasMode, ImageUpdate, WebrenderApi}; +use crate::canvas_paint_thread::{AntialiasMode, WebrenderApi}; use crate::raqote_backend::Repetition; /// The canvas data stores a state machine for the current status of @@ -1082,13 +1083,13 @@ impl<'a> CanvasData<'a> { match self.image_key { Some(image_key) => { debug!("Updating image {:?}.", image_key); - updates.push(ImageUpdate::Update(image_key, descriptor, data)); + updates.push(ImageUpdate::UpdateImage(image_key, descriptor, data)); }, None => { let Some(key) = self.webrender_api.generate_key() else { return; }; - updates.push(ImageUpdate::Add(key, descriptor, data)); + updates.push(ImageUpdate::AddImage(key, descriptor, data)); self.image_key = Some(key); debug!("New image {:?}.", self.image_key); }, @@ -1097,7 +1098,7 @@ impl<'a> CanvasData<'a> { if let Some(image_key) = mem::replace(&mut self.very_old_image_key, self.old_image_key.take()) { - updates.push(ImageUpdate::Delete(image_key)); + updates.push(ImageUpdate::DeleteImage(image_key)); } self.webrender_api.update_images(updates); @@ -1215,10 +1216,10 @@ impl<'a> Drop for CanvasData<'a> { fn drop(&mut self) { let mut updates = vec![]; if let Some(image_key) = self.old_image_key.take() { - updates.push(ImageUpdate::Delete(image_key)); + updates.push(ImageUpdate::DeleteImage(image_key)); } if let Some(image_key) = self.very_old_image_key.take() { - updates.push(ImageUpdate::Delete(image_key)); + updates.push(ImageUpdate::DeleteImage(image_key)); } self.webrender_api.update_images(updates); diff --git a/components/canvas/canvas_paint_thread.rs b/components/canvas/canvas_paint_thread.rs index 2176ad8d636..63f881ddacf 100644 --- a/components/canvas/canvas_paint_thread.rs +++ b/components/canvas/canvas_paint_thread.rs @@ -16,7 +16,8 @@ use gfx::font_context::FontContext; use ipc_channel::ipc::{self, IpcSender}; use ipc_channel::router::ROUTER; use log::warn; -use webrender_api::{ImageData, ImageDescriptor, ImageKey}; +use webrender_api::ImageKey; +use webrender_traits::ImageUpdate; use crate::canvas_data::*; @@ -25,12 +26,6 @@ pub enum AntialiasMode { None, } -pub enum ImageUpdate { - Add(ImageKey, ImageDescriptor, ImageData), - Update(ImageKey, ImageDescriptor, ImageData), - Delete(ImageKey), -} - pub trait WebrenderApi { /// Attempt to generate an [`ImageKey`], returning `None` in case of failure. fn generate_key(&self) -> Option<ImageKey>; |