aboutsummaryrefslogtreecommitdiffstats
path: root/components/compositing/compositor_thread.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/compositing/compositor_thread.rs')
-rw-r--r--components/compositing/compositor_thread.rs29
1 files changed, 26 insertions, 3 deletions
diff --git a/components/compositing/compositor_thread.rs b/components/compositing/compositor_thread.rs
index cbd715af0dd..01fb92a544e 100644
--- a/components/compositing/compositor_thread.rs
+++ b/components/compositing/compositor_thread.rs
@@ -6,6 +6,7 @@
use crate::compositor::CompositingReason;
use crate::{ConstellationMsg, SendableFrameTree};
+use canvas::canvas_paint_thread::ImageUpdate;
use crossbeam_channel::{Receiver, Sender};
use embedder_traits::EventLoopWaker;
use euclid::Rect;
@@ -18,8 +19,6 @@ use profile_traits::time;
use script_traits::{AnimationState, EventResult, MouseButton, MouseEventType};
use std::fmt::{Debug, Error, Formatter};
use std::rc::Rc;
-use std::sync::atomic::AtomicBool;
-use std::sync::Arc;
use style_traits::viewport::ViewportConstraints;
use style_traits::CSSPixel;
use webrender_api;
@@ -122,6 +121,30 @@ pub enum Msg {
GetScreenSize(IpcSender<DeviceIntSize>),
/// Get screen available size.
GetScreenAvailSize(IpcSender<DeviceIntSize>),
+
+ /// Webrender operations requested from non-compositor threads.
+ Webrender(WebrenderMsg),
+}
+
+pub enum WebrenderFontMsg {
+ AddFontInstance(
+ webrender_api::FontKey,
+ app_units::Au,
+ Sender<webrender_api::FontInstanceKey>,
+ ),
+ AddFont(gfx_traits::FontData, Sender<webrender_api::FontKey>),
+}
+
+pub enum WebrenderCanvasMsg {
+ GenerateKey(Sender<webrender_api::ImageKey>),
+ UpdateImages(Vec<ImageUpdate>),
+}
+
+pub enum WebrenderMsg {
+ Layout(script_traits::WebrenderMsg),
+ Net(net_traits::WebrenderImageMsg),
+ Font(WebrenderFontMsg),
+ Canvas(WebrenderCanvasMsg),
}
impl Debug for Msg {
@@ -148,6 +171,7 @@ impl Debug for Msg {
Msg::GetClientWindow(..) => write!(f, "GetClientWindow"),
Msg::GetScreenSize(..) => write!(f, "GetScreenSize"),
Msg::GetScreenAvailSize(..) => write!(f, "GetScreenAvailSize"),
+ Msg::Webrender(..) => write!(f, "Webrender"),
}
}
}
@@ -171,5 +195,4 @@ pub struct InitialCompositorState {
pub webrender_surfman: WebrenderSurfman,
pub webrender_gl: Rc<dyn gleam::gl::Gl>,
pub webxr_main_thread: webxr::MainThreadRegistry,
- pub pending_wr_frame: Arc<AtomicBool>,
}