mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Move DL items from gfx to layout
Implement corner clipping. Remove PixelFormat from WebrenderImageInfo. Use WebRender text shadow. Remove MallocSizeOf and Deserialize for DL items. Closes #19649, #19680, #19802
This commit is contained in:
parent
782d4d4af6
commit
c0be925bed
26 changed files with 417 additions and 287 deletions
|
@ -7,9 +7,9 @@
|
|||
// This might be achieved by sharing types between WR and Servo display lists, or
|
||||
// completely converting layout to directly generate WebRender display lists, for example.
|
||||
|
||||
use gfx::display_list::{BorderDetails, ClipScrollNode};
|
||||
use gfx::display_list::{ClipScrollNodeIndex, ClipScrollNodeType, DisplayItem};
|
||||
use gfx::display_list::{DisplayList, StackingContextType};
|
||||
use display_list::items::{BorderDetails, ClipScrollNode};
|
||||
use display_list::items::{ClipScrollNodeIndex, ClipScrollNodeType, DisplayItem};
|
||||
use display_list::items::{DisplayList, StackingContextType};
|
||||
use msg::constellation_msg::PipelineId;
|
||||
use webrender_api::{self, ClipAndScrollInfo, ClipId, DisplayListBuilder};
|
||||
|
||||
|
@ -111,17 +111,15 @@ impl WebRenderDisplayItemConverter for DisplayItem {
|
|||
);
|
||||
},
|
||||
DisplayItem::Image(ref item) => {
|
||||
if let Some(id) = item.webrender_image.key {
|
||||
if item.stretch_size.width > 0.0 && item.stretch_size.height > 0.0 {
|
||||
builder.push_image(
|
||||
&self.prim_info(),
|
||||
item.stretch_size,
|
||||
item.tile_spacing,
|
||||
item.image_rendering,
|
||||
webrender_api::AlphaType::PremultipliedAlpha,
|
||||
id,
|
||||
);
|
||||
}
|
||||
if item.stretch_size.width > 0.0 && item.stretch_size.height > 0.0 {
|
||||
builder.push_image(
|
||||
&self.prim_info(),
|
||||
item.stretch_size,
|
||||
item.tile_spacing,
|
||||
item.image_rendering,
|
||||
webrender_api::AlphaType::PremultipliedAlpha,
|
||||
item.id,
|
||||
);
|
||||
}
|
||||
},
|
||||
DisplayItem::Border(ref item) => {
|
||||
|
@ -204,14 +202,7 @@ impl WebRenderDisplayItemConverter for DisplayItem {
|
|||
);
|
||||
},
|
||||
DisplayItem::PushTextShadow(ref item) => {
|
||||
builder.push_shadow(
|
||||
&self.prim_info(),
|
||||
webrender_api::Shadow {
|
||||
blur_radius: item.blur_radius,
|
||||
offset: item.offset,
|
||||
color: item.color,
|
||||
},
|
||||
);
|
||||
builder.push_shadow(&self.prim_info(), item.shadow);
|
||||
},
|
||||
DisplayItem::PopAllTextShadows(_) => {
|
||||
builder.pop_all_shadows();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue