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::size::{Size2D, TypedSize2D};
|
||||
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::quadtree::Tile;
|
||||
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
|
||||
// one page has multiple layers, to avoid the user seeing inconsistent states.
|
||||
let msg = ReRenderMsg(request,
|
||||
scale,
|
||||
layer.extra_data.borrow().id,
|
||||
layer.extra_data.borrow().epoch);
|
||||
let msg = ReRenderMsg(ReRenderRequest {
|
||||
buffer_requests: request,
|
||||
scale: scale,
|
||||
layer_id: layer.extra_data.borrow().id,
|
||||
epoch: layer.extra_data.borrow().epoch,
|
||||
});
|
||||
requests.push((layer.extra_data.borrow().pipeline.render_chan.clone(), msg));
|
||||
}
|
||||
|
||||
|
|
|
@ -50,9 +50,16 @@ pub struct RenderLayer {
|
|||
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 {
|
||||
RenderMsg(SmallVec1<RenderLayer>),
|
||||
ReRenderMsg(Vec<BufferRequest>, f32, LayerId, Epoch),
|
||||
ReRenderMsg(ReRenderRequest),
|
||||
UnusedBufferMsg(Vec<Box<LayerBuffer>>),
|
||||
PaintPermissionGranted,
|
||||
PaintPermissionRevoked,
|
||||
|
@ -230,9 +237,9 @@ impl<C:RenderListener + Send> RenderTask<C> {
|
|||
self.epoch,
|
||||
self.render_layers.as_slice());
|
||||
}
|
||||
ReRenderMsg(tiles, scale, layer_id, epoch) => {
|
||||
ReRenderMsg(ReRenderRequest { buffer_requests, scale, layer_id, epoch }) => {
|
||||
if self.epoch == epoch {
|
||||
self.render(tiles, scale, layer_id);
|
||||
self.render(buffer_requests, scale, layer_id);
|
||||
} else {
|
||||
debug!("renderer epoch mismatch: {:?} != {:?}", self.epoch, epoch);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue