mirror of
https://github.com/servo/servo.git
synced 2025-08-04 21:20:23 +01:00
Separate the contents of ReRenderMsg into its own type
Make a ReRenderRequest type to represent the contents of a ReRenderMsg. Currently, ReRenderMsg just takes a single one, but it in the future it will take multiple requests.
This commit is contained in:
parent
adfd6492ad
commit
5611e34379
2 changed files with 17 additions and 8 deletions
|
@ -12,7 +12,7 @@ use geom::point::TypedPoint2D;
|
||||||
use geom::rect::Rect;
|
use geom::rect::Rect;
|
||||||
use geom::size::{Size2D, TypedSize2D};
|
use geom::size::{Size2D, TypedSize2D};
|
||||||
use gfx::render_task;
|
use gfx::render_task;
|
||||||
use gfx::render_task::{ReRenderMsg, RenderChan, UnusedBufferMsg};
|
use gfx::render_task::{ReRenderMsg, ReRenderRequest, RenderChan, UnusedBufferMsg};
|
||||||
use layers::layers::{Layer, Flip, LayerBuffer, LayerBufferSet, NoFlip, TextureLayer};
|
use layers::layers::{Layer, Flip, LayerBuffer, LayerBufferSet, NoFlip, TextureLayer};
|
||||||
use layers::quadtree::Tile;
|
use layers::quadtree::Tile;
|
||||||
use layers::platform::surface::{NativeCompositingGraphicsContext, NativeSurfaceMethods};
|
use layers::platform::surface::{NativeCompositingGraphicsContext, NativeSurfaceMethods};
|
||||||
|
@ -139,10 +139,12 @@ impl CompositorData {
|
||||||
//
|
//
|
||||||
// FIXME(#2003, pcwalton): We may want to batch these up in the case in which
|
// FIXME(#2003, pcwalton): We may want to batch these up in the case in which
|
||||||
// one page has multiple layers, to avoid the user seeing inconsistent states.
|
// one page has multiple layers, to avoid the user seeing inconsistent states.
|
||||||
let msg = ReRenderMsg(request,
|
let msg = ReRenderMsg(ReRenderRequest {
|
||||||
scale,
|
buffer_requests: request,
|
||||||
layer.extra_data.borrow().id,
|
scale: scale,
|
||||||
layer.extra_data.borrow().epoch);
|
layer_id: layer.extra_data.borrow().id,
|
||||||
|
epoch: layer.extra_data.borrow().epoch,
|
||||||
|
});
|
||||||
requests.push((layer.extra_data.borrow().pipeline.render_chan.clone(), msg));
|
requests.push((layer.extra_data.borrow().pipeline.render_chan.clone(), msg));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,9 +50,16 @@ pub struct RenderLayer {
|
||||||
pub scroll_policy: ScrollPolicy,
|
pub scroll_policy: ScrollPolicy,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub struct ReRenderRequest {
|
||||||
|
pub buffer_requests: Vec<BufferRequest>,
|
||||||
|
pub scale: f32,
|
||||||
|
pub layer_id: LayerId,
|
||||||
|
pub epoch: Epoch,
|
||||||
|
}
|
||||||
|
|
||||||
pub enum Msg {
|
pub enum Msg {
|
||||||
RenderMsg(SmallVec1<RenderLayer>),
|
RenderMsg(SmallVec1<RenderLayer>),
|
||||||
ReRenderMsg(Vec<BufferRequest>, f32, LayerId, Epoch),
|
ReRenderMsg(ReRenderRequest),
|
||||||
UnusedBufferMsg(Vec<Box<LayerBuffer>>),
|
UnusedBufferMsg(Vec<Box<LayerBuffer>>),
|
||||||
PaintPermissionGranted,
|
PaintPermissionGranted,
|
||||||
PaintPermissionRevoked,
|
PaintPermissionRevoked,
|
||||||
|
@ -230,9 +237,9 @@ impl<C:RenderListener + Send> RenderTask<C> {
|
||||||
self.epoch,
|
self.epoch,
|
||||||
self.render_layers.as_slice());
|
self.render_layers.as_slice());
|
||||||
}
|
}
|
||||||
ReRenderMsg(tiles, scale, layer_id, epoch) => {
|
ReRenderMsg(ReRenderRequest { buffer_requests, scale, layer_id, epoch }) => {
|
||||||
if self.epoch == epoch {
|
if self.epoch == epoch {
|
||||||
self.render(tiles, scale, layer_id);
|
self.render(buffer_requests, scale, layer_id);
|
||||||
} else {
|
} else {
|
||||||
debug!("renderer epoch mismatch: {:?} != {:?}", self.epoch, epoch);
|
debug!("renderer epoch mismatch: {:?} != {:?}", self.epoch, epoch);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue