зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1500101 - Update webrender to commit 347e66c2aa117724ac6b0f391b346f9c6898ad11 (WR PR 3259). r=kats
Differential Revision: https://phabricator.services.mozilla.com/D10682 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
8de57eee20
Коммит
366e98d80b
|
@ -424,7 +424,6 @@ impl AlphaBatchContainer {
|
|||
struct SegmentInstanceData {
|
||||
textures: BatchTextures,
|
||||
user_data: i32,
|
||||
is_opaque_override: Option<bool>,
|
||||
}
|
||||
|
||||
/// Encapsulates the logic of building batches for items that are blended.
|
||||
|
@ -1342,16 +1341,8 @@ impl AlphaBatchBuilder {
|
|||
BrushSegmentTaskId::Empty => return,
|
||||
};
|
||||
|
||||
// If the segment instance data specifies opacity for that
|
||||
// segment, use it. Otherwise, assume opacity for the segment
|
||||
// from the overall primitive opacity.
|
||||
let is_segment_opaque = match segment_data.is_opaque_override {
|
||||
Some(is_opaque) => is_opaque,
|
||||
None => prim_instance.opacity.is_opaque,
|
||||
};
|
||||
|
||||
let is_inner = segment.edge_flags.is_empty();
|
||||
let needs_blending = !is_segment_opaque ||
|
||||
let needs_blending = !prim_instance.opacity.is_opaque ||
|
||||
segment.clip_task_id.needs_blending() ||
|
||||
(!is_inner && transform_kind == TransformedRectKind::Complex);
|
||||
|
||||
|
@ -1597,7 +1588,6 @@ impl BrushBatchParameters {
|
|||
SegmentInstanceData {
|
||||
textures,
|
||||
user_data: segment_user_data,
|
||||
is_opaque_override: None,
|
||||
}
|
||||
),
|
||||
}
|
||||
|
@ -1695,7 +1685,6 @@ impl BrushPrimitive {
|
|||
SegmentInstanceData {
|
||||
textures: BatchTextures::color(cache_item.texture_id),
|
||||
user_data: cache_item.uv_rect_handle.as_int(gpu_cache),
|
||||
is_opaque_override: Some(segment.is_opaque),
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
|
@ -192,7 +192,6 @@ impl<'a> DisplayListFlattener<'a> {
|
|||
|
||||
pub trait BorderSideHelpers {
|
||||
fn border_color(&self, is_inner_border: bool) -> ColorF;
|
||||
fn is_opaque(&self) -> bool;
|
||||
}
|
||||
|
||||
impl BorderSideHelpers for BorderSide {
|
||||
|
@ -221,11 +220,6 @@ impl BorderSideHelpers for BorderSide {
|
|||
let black = if lighter { 0.7 } else { 0.3 };
|
||||
ColorF::new(black, black, black, self.color.a)
|
||||
}
|
||||
|
||||
/// Returns true if all pixels in this border style are opaque.
|
||||
fn is_opaque(&self) -> bool {
|
||||
self.color.a >= 1.0 && self.style.is_opaque()
|
||||
}
|
||||
}
|
||||
|
||||
/// The kind of border corner clip.
|
||||
|
@ -962,12 +956,6 @@ fn add_corner_segment(
|
|||
return;
|
||||
}
|
||||
|
||||
let is_opaque =
|
||||
side0.is_opaque() &&
|
||||
side1.is_opaque() &&
|
||||
radius.width <= 0.0 &&
|
||||
radius.height <= 0.0;
|
||||
|
||||
brush_segments.push(
|
||||
BrushSegment::new(
|
||||
image_rect,
|
||||
|
@ -981,7 +969,6 @@ fn add_corner_segment(
|
|||
border_segments.push(BorderSegmentInfo {
|
||||
handle: None,
|
||||
local_task_size: image_rect.size,
|
||||
is_opaque,
|
||||
cache_key: RenderTaskCacheKey {
|
||||
size: DeviceIntSize::zero(),
|
||||
kind: RenderTaskCacheKeyKind::BorderCorner(
|
||||
|
@ -1035,8 +1022,6 @@ fn add_edge_segment(
|
|||
return;
|
||||
}
|
||||
|
||||
let is_opaque = side.is_opaque();
|
||||
|
||||
brush_segments.push(
|
||||
BrushSegment::new(
|
||||
image_rect,
|
||||
|
@ -1050,7 +1035,6 @@ fn add_edge_segment(
|
|||
border_segments.push(BorderSegmentInfo {
|
||||
handle: None,
|
||||
local_task_size: size,
|
||||
is_opaque,
|
||||
cache_key: RenderTaskCacheKey {
|
||||
size: DeviceIntSize::zero(),
|
||||
kind: RenderTaskCacheKeyKind::BorderEdge(
|
||||
|
|
|
@ -547,7 +547,6 @@ pub struct BorderSegmentInfo {
|
|||
pub handle: Option<RenderTaskCacheEntryHandle>,
|
||||
pub local_task_size: LayoutSize,
|
||||
pub cache_key: RenderTaskCacheKey,
|
||||
pub is_opaque: bool,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
|
@ -3171,7 +3170,7 @@ impl PrimitiveInstance {
|
|||
frame_state.gpu_cache,
|
||||
frame_state.render_tasks,
|
||||
None,
|
||||
segment.is_opaque,
|
||||
false, // TODO(gw): We don't calculate opacity for borders yet!
|
||||
|render_tasks| {
|
||||
let task = RenderTask::new_border_segment(
|
||||
segment.cache_key.size,
|
||||
|
|
|
@ -435,29 +435,6 @@ impl BorderStyle {
|
|||
pub fn is_hidden(&self) -> bool {
|
||||
*self == BorderStyle::Hidden || *self == BorderStyle::None
|
||||
}
|
||||
|
||||
/// Returns true if the border style itself is opaque. Other
|
||||
/// factors (such as color, or border radii) may mean that
|
||||
/// the border segment isn't opaque regardless of this.
|
||||
pub fn is_opaque(&self) -> bool {
|
||||
match *self {
|
||||
BorderStyle::None |
|
||||
BorderStyle::Double |
|
||||
BorderStyle::Dotted |
|
||||
BorderStyle::Dashed |
|
||||
BorderStyle::Hidden => {
|
||||
false
|
||||
}
|
||||
|
||||
BorderStyle::Solid |
|
||||
BorderStyle::Groove |
|
||||
BorderStyle::Ridge |
|
||||
BorderStyle::Inset |
|
||||
BorderStyle::Outset => {
|
||||
true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[repr(u32)]
|
||||
|
|
|
@ -1 +1 @@
|
|||
340c25fa718146a5c278d59ccc5194a23dfd7996
|
||||
347e66c2aa117724ac6b0f391b346f9c6898ad11
|
||||
|
|
Загрузка…
Ссылка в новой задаче