mirror of
https://github.com/servo/servo.git
synced 2025-08-06 22:15:33 +01:00
Rename ReRenderMsg to RenderMsg
ReRenderMsg is also used for rendering the first time, so the name is confusing.
This commit is contained in:
parent
d5cb0b2cc1
commit
7a4b33258a
5 changed files with 41 additions and 41 deletions
|
@ -6,7 +6,7 @@ use compositor_data::{CompositorData, DoesntWantScrollEvents, WantsScrollEvents}
|
||||||
use compositor_task::{Msg, CompositorTask, Exit, ChangeReadyState, SetIds, LayerProperties};
|
use compositor_task::{Msg, CompositorTask, Exit, ChangeReadyState, SetIds, LayerProperties};
|
||||||
use compositor_task::{GetGraphicsMetadata, CreateOrUpdateRootLayer, CreateOrUpdateDescendantLayer};
|
use compositor_task::{GetGraphicsMetadata, CreateOrUpdateRootLayer, CreateOrUpdateDescendantLayer};
|
||||||
use compositor_task::{SetLayerClipRect, Paint, ScrollFragmentPoint, LoadComplete};
|
use compositor_task::{SetLayerClipRect, Paint, ScrollFragmentPoint, LoadComplete};
|
||||||
use compositor_task::{ShutdownComplete, ChangeRenderState, ReRenderMsgDiscarded};
|
use compositor_task::{ShutdownComplete, ChangeRenderState, RenderMsgDiscarded};
|
||||||
use constellation::SendableFrameTree;
|
use constellation::SendableFrameTree;
|
||||||
use events;
|
use events;
|
||||||
use pipeline::CompositionPipeline;
|
use pipeline::CompositionPipeline;
|
||||||
|
@ -26,7 +26,7 @@ use geom::point::{Point2D, TypedPoint2D};
|
||||||
use geom::rect::Rect;
|
use geom::rect::Rect;
|
||||||
use geom::size::TypedSize2D;
|
use geom::size::TypedSize2D;
|
||||||
use geom::scale_factor::ScaleFactor;
|
use geom::scale_factor::ScaleFactor;
|
||||||
use gfx::render_task::{RenderChan, ReRenderMsg, ReRenderRequest, UnusedBufferMsg};
|
use gfx::render_task::{RenderChan, RenderMsg, RenderRequest, UnusedBufferMsg};
|
||||||
use layers::layers::{BufferRequest, Layer, LayerBufferSet};
|
use layers::layers::{BufferRequest, Layer, LayerBufferSet};
|
||||||
use layers::rendergl;
|
use layers::rendergl;
|
||||||
use layers::rendergl::RenderContext;
|
use layers::rendergl::RenderContext;
|
||||||
|
@ -90,8 +90,8 @@ pub struct IOCompositor {
|
||||||
/// Tracks whether we need to re-composite a page.
|
/// Tracks whether we need to re-composite a page.
|
||||||
recomposite: bool,
|
recomposite: bool,
|
||||||
|
|
||||||
/// Tracks outstanding ReRenderMsg's sent to the render tasks.
|
/// Tracks outstanding render_msg's sent to the render tasks.
|
||||||
outstanding_rerendermsgs: uint,
|
outstanding_render_msgs: uint,
|
||||||
|
|
||||||
/// Tracks whether the zoom action has happend recently.
|
/// Tracks whether the zoom action has happend recently.
|
||||||
zoom_action: bool,
|
zoom_action: bool,
|
||||||
|
@ -170,7 +170,7 @@ impl IOCompositor {
|
||||||
time_profiler_chan: time_profiler_chan,
|
time_profiler_chan: time_profiler_chan,
|
||||||
memory_profiler_chan: memory_profiler_chan,
|
memory_profiler_chan: memory_profiler_chan,
|
||||||
fragment_point: None,
|
fragment_point: None,
|
||||||
outstanding_rerendermsgs: 0,
|
outstanding_render_msgs: 0,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -282,8 +282,8 @@ impl IOCompositor {
|
||||||
self.change_render_state(render_state);
|
self.change_render_state(render_state);
|
||||||
}
|
}
|
||||||
|
|
||||||
(Ok(ReRenderMsgDiscarded), NotShuttingDown) => {
|
(Ok(RenderMsgDiscarded), NotShuttingDown) => {
|
||||||
self.remove_outstanding_rerendermsg();
|
self.remove_outstanding_render_msg();
|
||||||
}
|
}
|
||||||
|
|
||||||
(Ok(SetIds(frame_tree, response_chan, new_constellation_chan)), _) => {
|
(Ok(SetIds(frame_tree, response_chan, new_constellation_chan)), _) => {
|
||||||
|
@ -312,7 +312,7 @@ impl IOCompositor {
|
||||||
for (layer_id, new_layer_buffer_set) in replies.move_iter() {
|
for (layer_id, new_layer_buffer_set) in replies.move_iter() {
|
||||||
self.paint(pipeline_id, layer_id, new_layer_buffer_set, epoch);
|
self.paint(pipeline_id, layer_id, new_layer_buffer_set, epoch);
|
||||||
}
|
}
|
||||||
self.remove_outstanding_rerendermsg();
|
self.remove_outstanding_render_msg();
|
||||||
}
|
}
|
||||||
|
|
||||||
(Ok(ScrollFragmentPoint(pipeline_id, layer_id, point)), NotShuttingDown) => {
|
(Ok(ScrollFragmentPoint(pipeline_id, layer_id, point)), NotShuttingDown) => {
|
||||||
|
@ -338,30 +338,30 @@ impl IOCompositor {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn has_rerendermsg_tracking(&self) -> bool {
|
fn has_render_msg_tracking(&self) -> bool {
|
||||||
// only track ReRenderMsg's if the compositor outputs to a file.
|
// only track RenderMsg's if the compositor outputs to a file.
|
||||||
self.opts.output_file.is_some()
|
self.opts.output_file.is_some()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn has_outstanding_rerendermsgs(&self) -> bool {
|
fn has_outstanding_render_msgs(&self) -> bool {
|
||||||
self.has_rerendermsg_tracking() && self.outstanding_rerendermsgs > 0
|
self.has_render_msg_tracking() && self.outstanding_render_msgs > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
fn add_outstanding_rerendermsg(&mut self, count: uint) {
|
fn add_outstanding_render_msg(&mut self, count: uint) {
|
||||||
// return early if not tracking ReRenderMsg's
|
// return early if not tracking render_msg's
|
||||||
if !self.has_rerendermsg_tracking() {
|
if !self.has_render_msg_tracking() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
debug!("add_outstanding_rerendermsg {}", self.outstanding_rerendermsgs);
|
debug!("add_outstanding_render_msg {}", self.outstanding_render_msgs);
|
||||||
self.outstanding_rerendermsgs += count;
|
self.outstanding_render_msgs += count;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn remove_outstanding_rerendermsg(&mut self) {
|
fn remove_outstanding_render_msg(&mut self) {
|
||||||
if !self.has_rerendermsg_tracking() {
|
if !self.has_render_msg_tracking() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if self.outstanding_rerendermsgs > 0 {
|
if self.outstanding_render_msgs > 0 {
|
||||||
self.outstanding_rerendermsgs -= 1;
|
self.outstanding_render_msgs -= 1;
|
||||||
} else {
|
} else {
|
||||||
debug!("too many rerender msgs completed");
|
debug!("too many rerender msgs completed");
|
||||||
}
|
}
|
||||||
|
@ -806,10 +806,10 @@ impl IOCompositor {
|
||||||
requests: Vec<(Rc<Layer<CompositorData>>,
|
requests: Vec<(Rc<Layer<CompositorData>>,
|
||||||
Vec<BufferRequest>)>) ->
|
Vec<BufferRequest>)>) ->
|
||||||
HashMap<PipelineId, (RenderChan,
|
HashMap<PipelineId, (RenderChan,
|
||||||
Vec<ReRenderRequest>)> {
|
Vec<RenderRequest>)> {
|
||||||
let scale = self.device_pixels_per_page_px();
|
let scale = self.device_pixels_per_page_px();
|
||||||
let mut results:
|
let mut results:
|
||||||
HashMap<PipelineId, (RenderChan, Vec<ReRenderRequest>)> = HashMap::new();
|
HashMap<PipelineId, (RenderChan, Vec<RenderRequest>)> = HashMap::new();
|
||||||
|
|
||||||
for (layer, mut layer_requests) in requests.move_iter() {
|
for (layer, mut layer_requests) in requests.move_iter() {
|
||||||
let pipeline_id = layer.extra_data.borrow().pipeline.id;
|
let pipeline_id = layer.extra_data.borrow().pipeline.id;
|
||||||
|
@ -823,7 +823,7 @@ impl IOCompositor {
|
||||||
request.page_rect = request.page_rect / scale.get();
|
request.page_rect = request.page_rect / scale.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
vec.push(ReRenderRequest {
|
vec.push(RenderRequest {
|
||||||
buffer_requests: layer_requests,
|
buffer_requests: layer_requests,
|
||||||
scale: scale.get(),
|
scale: scale.get(),
|
||||||
layer_id: layer.extra_data.borrow().id,
|
layer_id: layer.extra_data.borrow().id,
|
||||||
|
@ -867,13 +867,13 @@ impl IOCompositor {
|
||||||
let pipeline_requests =
|
let pipeline_requests =
|
||||||
self.convert_buffer_requests_to_pipeline_requests_map(layers_and_requests);
|
self.convert_buffer_requests_to_pipeline_requests_map(layers_and_requests);
|
||||||
|
|
||||||
let mut num_rerendermsgs_sent = 0;
|
let mut num_render_msgs_sent = 0;
|
||||||
for (_pipeline_id, (chan, requests)) in pipeline_requests.move_iter() {
|
for (_pipeline_id, (chan, requests)) in pipeline_requests.move_iter() {
|
||||||
num_rerendermsgs_sent += 1;
|
num_render_msgs_sent += 1;
|
||||||
let _ = chan.send_opt(ReRenderMsg(requests));
|
let _ = chan.send_opt(RenderMsg(requests));
|
||||||
}
|
}
|
||||||
|
|
||||||
self.add_outstanding_rerendermsg(num_rerendermsgs_sent);
|
self.add_outstanding_render_msg(num_render_msgs_sent);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn composite(&mut self) {
|
fn composite(&mut self) {
|
||||||
|
@ -897,7 +897,7 @@ impl IOCompositor {
|
||||||
// Render to PNG. We must read from the back buffer (ie, before
|
// Render to PNG. We must read from the back buffer (ie, before
|
||||||
// self.window.present()) as OpenGL ES 2 does not have glReadBuffer().
|
// self.window.present()) as OpenGL ES 2 does not have glReadBuffer().
|
||||||
if self.load_complete && self.ready_state == FinishedLoading
|
if self.load_complete && self.ready_state == FinishedLoading
|
||||||
&& self.opts.output_file.is_some() && !self.has_outstanding_rerendermsgs() {
|
&& self.opts.output_file.is_some() && !self.has_outstanding_render_msgs() {
|
||||||
let (width, height) = (self.window_size.width.get(), self.window_size.height.get());
|
let (width, height) = (self.window_size.width.get(), self.window_size.height.get());
|
||||||
let path = from_str::<Path>(self.opts.output_file.get_ref().as_slice()).unwrap();
|
let path = from_str::<Path>(self.opts.output_file.get_ref().as_slice()).unwrap();
|
||||||
let mut pixels = gl2::read_pixels(0, 0,
|
let mut pixels = gl2::read_pixels(0, 0,
|
||||||
|
|
|
@ -122,8 +122,8 @@ impl RenderListener for CompositorChan {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn rerendermsg_discarded(&self) {
|
fn render_msg_discarded(&self) {
|
||||||
self.chan.send(ReRenderMsgDiscarded);
|
self.chan.send(RenderMsgDiscarded);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn set_layer_clip_rect(&self,
|
fn set_layer_clip_rect(&self,
|
||||||
|
@ -188,8 +188,8 @@ pub enum Msg {
|
||||||
ChangeReadyState(ReadyState),
|
ChangeReadyState(ReadyState),
|
||||||
/// Alerts the compositor to the current status of rendering.
|
/// Alerts the compositor to the current status of rendering.
|
||||||
ChangeRenderState(RenderState),
|
ChangeRenderState(RenderState),
|
||||||
/// Alerts the compositor that the ReRenderMsg has been discarded.
|
/// Alerts the compositor that the RenderMsg has been discarded.
|
||||||
ReRenderMsgDiscarded,
|
RenderMsgDiscarded,
|
||||||
/// Sets the channel to the current layout and render tasks, along with their id
|
/// Sets the channel to the current layout and render tasks, along with their id
|
||||||
SetIds(SendableFrameTree, Sender<()>, ConstellationChan),
|
SetIds(SendableFrameTree, Sender<()>, ConstellationChan),
|
||||||
/// The load of a page for a given URL has completed.
|
/// The load of a page for a given URL has completed.
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
use compositor_task::{Msg, Exit, ChangeReadyState, SetIds};
|
use compositor_task::{Msg, Exit, ChangeReadyState, SetIds};
|
||||||
use compositor_task::{GetGraphicsMetadata, CreateOrUpdateRootLayer, CreateOrUpdateDescendantLayer};
|
use compositor_task::{GetGraphicsMetadata, CreateOrUpdateRootLayer, CreateOrUpdateDescendantLayer};
|
||||||
use compositor_task::{SetLayerClipRect, Paint, ScrollFragmentPoint, LoadComplete};
|
use compositor_task::{SetLayerClipRect, Paint, ScrollFragmentPoint, LoadComplete};
|
||||||
use compositor_task::{ShutdownComplete, ChangeRenderState, ReRenderMsgDiscarded};
|
use compositor_task::{ShutdownComplete, ChangeRenderState, RenderMsgDiscarded};
|
||||||
|
|
||||||
use geom::scale_factor::ScaleFactor;
|
use geom::scale_factor::ScaleFactor;
|
||||||
use geom::size::TypedSize2D;
|
use geom::size::TypedSize2D;
|
||||||
|
@ -92,7 +92,7 @@ impl NullCompositor {
|
||||||
CreateOrUpdateDescendantLayer(..) |
|
CreateOrUpdateDescendantLayer(..) |
|
||||||
SetLayerClipRect(..) | Paint(..) |
|
SetLayerClipRect(..) | Paint(..) |
|
||||||
ChangeReadyState(..) | ChangeRenderState(..) | ScrollFragmentPoint(..) |
|
ChangeReadyState(..) | ChangeRenderState(..) | ScrollFragmentPoint(..) |
|
||||||
LoadComplete(..) | ReRenderMsgDiscarded(..) => ()
|
LoadComplete(..) | RenderMsgDiscarded(..) => ()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,7 +50,7 @@ pub struct RenderLayer {
|
||||||
pub scroll_policy: ScrollPolicy,
|
pub scroll_policy: ScrollPolicy,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct ReRenderRequest {
|
pub struct RenderRequest {
|
||||||
pub buffer_requests: Vec<BufferRequest>,
|
pub buffer_requests: Vec<BufferRequest>,
|
||||||
pub scale: f32,
|
pub scale: f32,
|
||||||
pub layer_id: LayerId,
|
pub layer_id: LayerId,
|
||||||
|
@ -59,7 +59,7 @@ pub struct ReRenderRequest {
|
||||||
|
|
||||||
pub enum Msg {
|
pub enum Msg {
|
||||||
RenderInitMsg(SmallVec1<RenderLayer>),
|
RenderInitMsg(SmallVec1<RenderLayer>),
|
||||||
ReRenderMsg(Vec<ReRenderRequest>),
|
RenderMsg(Vec<RenderRequest>),
|
||||||
UnusedBufferMsg(Vec<Box<LayerBuffer>>),
|
UnusedBufferMsg(Vec<Box<LayerBuffer>>),
|
||||||
PaintPermissionGranted,
|
PaintPermissionGranted,
|
||||||
PaintPermissionRevoked,
|
PaintPermissionRevoked,
|
||||||
|
@ -237,19 +237,19 @@ impl<C:RenderListener + Send> RenderTask<C> {
|
||||||
self.epoch,
|
self.epoch,
|
||||||
self.render_layers.as_slice());
|
self.render_layers.as_slice());
|
||||||
}
|
}
|
||||||
ReRenderMsg(requests) => {
|
RenderMsg(requests) => {
|
||||||
if !self.paint_permission {
|
if !self.paint_permission {
|
||||||
debug!("render_task: render ready msg");
|
debug!("render_task: render ready msg");
|
||||||
let ConstellationChan(ref mut c) = self.constellation_chan;
|
let ConstellationChan(ref mut c) = self.constellation_chan;
|
||||||
c.send(RendererReadyMsg(self.id));
|
c.send(RendererReadyMsg(self.id));
|
||||||
self.compositor.rerendermsg_discarded();
|
self.compositor.render_msg_discarded();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.compositor.set_render_state(RenderingRenderState);
|
self.compositor.set_render_state(RenderingRenderState);
|
||||||
|
|
||||||
let mut replies = Vec::new();
|
let mut replies = Vec::new();
|
||||||
for ReRenderRequest { buffer_requests, scale, layer_id, epoch }
|
for RenderRequest { buffer_requests, scale, layer_id, epoch }
|
||||||
in requests.move_iter() {
|
in requests.move_iter() {
|
||||||
if self.epoch == epoch {
|
if self.epoch == epoch {
|
||||||
self.render(&mut replies, buffer_requests, scale, layer_id);
|
self.render(&mut replies, buffer_requests, scale, layer_id);
|
||||||
|
|
|
@ -105,7 +105,7 @@ pub trait RenderListener {
|
||||||
epoch: Epoch,
|
epoch: Epoch,
|
||||||
replies: Vec<(LayerId, Box<LayerBufferSet>)>);
|
replies: Vec<(LayerId, Box<LayerBufferSet>)>);
|
||||||
|
|
||||||
fn rerendermsg_discarded(&self);
|
fn render_msg_discarded(&self);
|
||||||
fn set_render_state(&self, render_state: RenderState);
|
fn set_render_state(&self, render_state: RenderState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue