зеркало из https://github.com/mozilla/gecko-dev.git
Backed out changeset 869fbaef1042 (bug 1524117) for wrench bustages on canvas.yaml. CLOSED TREE
This commit is contained in:
Родитель
f9b03cbc21
Коммит
5555771b75
|
@ -1314,8 +1314,7 @@ impl<'a> DisplayListFlattener<'a> {
|
||||||
// (b) It's useful for the initial version of picture caching in gecko, by enabling
|
// (b) It's useful for the initial version of picture caching in gecko, by enabling
|
||||||
// is to just look for interesting scroll roots on the root stacking context,
|
// is to just look for interesting scroll roots on the root stacking context,
|
||||||
// without having to consider cuts at stacking context boundaries.
|
// without having to consider cuts at stacking context boundaries.
|
||||||
let parent_is_empty = match self.sc_stack.last_mut() {
|
if let Some(parent_sc) = self.sc_stack.last_mut() {
|
||||||
Some(parent_sc) => {
|
|
||||||
if stacking_context.is_redundant(
|
if stacking_context.is_redundant(
|
||||||
parent_sc,
|
parent_sc,
|
||||||
self.clip_scroll_tree,
|
self.clip_scroll_tree,
|
||||||
|
@ -1330,10 +1329,7 @@ impl<'a> DisplayListFlattener<'a> {
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
parent_sc.primitives.is_empty()
|
}
|
||||||
},
|
|
||||||
None => true,
|
|
||||||
};
|
|
||||||
|
|
||||||
if stacking_context.create_tile_cache {
|
if stacking_context.create_tile_cache {
|
||||||
self.setup_picture_caching(
|
self.setup_picture_caching(
|
||||||
|
@ -1510,19 +1506,8 @@ impl<'a> DisplayListFlattener<'a> {
|
||||||
self.prim_store.optimize_picture_if_possible(current_pic_index);
|
self.prim_store.optimize_picture_if_possible(current_pic_index);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Same for mix-blend-mode, except we can skip if this primitive is the first in the parent
|
// Same for mix-blend-mode.
|
||||||
// stacking context.
|
if let Some(mix_blend_mode) = stacking_context.composite_ops.mix_blend_mode {
|
||||||
// From https://drafts.fxtf.org/compositing-1/#generalformula, the formula for blending is:
|
|
||||||
// Cs = (1 - ab) x Cs + ab x Blend(Cb, Cs)
|
|
||||||
// where
|
|
||||||
// Cs = Source color
|
|
||||||
// ab = Backdrop alpha
|
|
||||||
// Cb = Backdrop color
|
|
||||||
//
|
|
||||||
// If we're the first primitive within a stacking context, then we can guarantee that the
|
|
||||||
// backdrop alpha will be 0, and then the blend equation collapses to just
|
|
||||||
// Cs = Cs, and the blend mode isn't taken into account at all.
|
|
||||||
if let (Some(mix_blend_mode), false) = (stacking_context.composite_ops.mix_blend_mode, parent_is_empty) {
|
|
||||||
let composite_mode = Some(PictureCompositeMode::MixBlend(mix_blend_mode));
|
let composite_mode = Some(PictureCompositeMode::MixBlend(mix_blend_mode));
|
||||||
|
|
||||||
let blend_pic_index = PictureIndex(self.prim_store.pictures
|
let blend_pic_index = PictureIndex(self.prim_store.pictures
|
||||||
|
@ -1566,7 +1551,6 @@ impl<'a> DisplayListFlattener<'a> {
|
||||||
|
|
||||||
let has_mix_blend_on_secondary_framebuffer =
|
let has_mix_blend_on_secondary_framebuffer =
|
||||||
stacking_context.composite_ops.mix_blend_mode.is_some() &&
|
stacking_context.composite_ops.mix_blend_mode.is_some() &&
|
||||||
!parent_is_empty &&
|
|
||||||
self.sc_stack.len() > 2;
|
self.sc_stack.len() > 2;
|
||||||
|
|
||||||
// The primitive instance for the remainder of flat children of this SC
|
// The primitive instance for the remainder of flat children of this SC
|
||||||
|
@ -2652,15 +2636,7 @@ impl FlattenedStackingContext {
|
||||||
}
|
}
|
||||||
|
|
||||||
// If there are filters / mix-blend-mode
|
// If there are filters / mix-blend-mode
|
||||||
if !self.composite_ops.filters.is_empty() {
|
if !self.composite_ops.is_empty() {
|
||||||
return false;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// We can skip mix-blend modes if they are the first primitive in a stacking context,
|
|
||||||
// see pop_stacking_context for a full explanation.
|
|
||||||
if !self.composite_ops.mix_blend_mode.is_none() &&
|
|
||||||
!parent.primitives.is_empty() {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
---
|
|
||||||
root:
|
|
||||||
items:
|
|
||||||
- type: rect
|
|
||||||
bounds: [0, 0, 100, 100]
|
|
||||||
color: [0, 255, 0]
|
|
||||||
- type: stacking-context
|
|
||||||
bounds: [0, 0, 100, 100]
|
|
||||||
mix-blend-mode: multiply
|
|
||||||
items:
|
|
||||||
- type: stacking-context
|
|
||||||
bounds: [0, 0, 100, 100]
|
|
||||||
mix-blend-mode: multiply
|
|
||||||
items:
|
|
||||||
- type: rect
|
|
||||||
bounds: [0, 0, 100, 100]
|
|
||||||
color: [255, 128, 0]
|
|
|
@ -1,6 +1,5 @@
|
||||||
== multiply.yaml multiply-ref.yaml
|
== multiply.yaml multiply-ref.yaml
|
||||||
== multiply-2.yaml multiply-2-ref.yaml
|
== multiply-2.yaml multiply-2-ref.yaml
|
||||||
== color_targets(2) alpha_targets(0) multiply-3.yaml multiply-2-ref.yaml
|
|
||||||
== difference.yaml difference-ref.yaml
|
== difference.yaml difference-ref.yaml
|
||||||
fuzzy(1,10000) == difference-transparent.yaml difference-transparent-ref.yaml
|
fuzzy(1,10000) == difference-transparent.yaml difference-transparent-ref.yaml
|
||||||
== darken.yaml darken-ref.yaml
|
== darken.yaml darken-ref.yaml
|
||||||
|
|
|
@ -6,12 +6,12 @@ fuzzy-if(webrender,1-3,1313-7888) == blend-gradient-background-color.html blend-
|
||||||
|
|
||||||
fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),0-1,0-10000) fuzzy-if(skiaContent,0-1,0-30000) == background-blending-alpha.html background-blending-alpha-ref.html
|
fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),0-1,0-10000) fuzzy-if(skiaContent,0-1,0-30000) == background-blending-alpha.html background-blending-alpha-ref.html
|
||||||
fuzzy-if(webrender,1-3,1313-7888) == background-blending-gradient-color.html background-blending-gradient-color-ref.html
|
fuzzy-if(webrender,1-3,1313-7888) == background-blending-gradient-color.html background-blending-gradient-color-ref.html
|
||||||
fuzzy-if(azureSkiaGL,0-3,0-7597) fuzzy-if(cocoaWidget,0-3,0-7597) fuzzy-if(d2d,0-1,0-3800) fuzzy-if(d3d11,0-1,0-4200) fuzzy-if(skiaContent,0-2,0-9450) fuzzy-if(webrender,1-5,3938-23925) == background-blending-gradient-gradient.html background-blending-gradient-gradient-ref.html
|
fuzzy-if(azureSkiaGL,0-3,0-7597) fuzzy-if(cocoaWidget,0-3,0-7597) fuzzy-if(d2d,0-1,0-3800) fuzzy-if(d3d11,0-1,0-4200) fuzzy-if(skiaContent,0-2,0-9450) fuzzy-if(webrender,1-5,3938-23663) == background-blending-gradient-gradient.html background-blending-gradient-gradient-ref.html
|
||||||
fuzzy-if(azureSkiaGL,0-2,0-7174) fuzzy-if(webrender,1-3,1288-7888) == background-blending-gradient-image.html background-blending-gradient-color-ref.html
|
fuzzy-if(azureSkiaGL,0-2,0-7174) fuzzy-if(webrender,1-1,1288-7887) == background-blending-gradient-image.html background-blending-gradient-color-ref.html
|
||||||
fuzzy-if(azureSkia||d2d||gtkWidget,0-1,0-10000) == background-blending-image-color-jpg.html background-blending-image-color-ref.html
|
fuzzy-if(azureSkia||d2d||gtkWidget,0-1,0-10000) == background-blending-image-color-jpg.html background-blending-image-color-ref.html
|
||||||
== background-blending-image-color-png.html background-blending-image-color-ref.html
|
== background-blending-image-color-png.html background-blending-image-color-ref.html
|
||||||
== background-blending-image-color-svg.html background-blending-image-color-ref.html
|
== background-blending-image-color-svg.html background-blending-image-color-ref.html
|
||||||
fuzzy-if(azureSkiaGL,0-2,0-7174) fuzzy-if(webrender,1-3,1288-7888) == background-blending-image-gradient.html background-blending-gradient-color-ref.html
|
fuzzy-if(azureSkiaGL,0-2,0-7174) fuzzy-if(webrender,1-3,1313-7888) == background-blending-image-gradient.html background-blending-gradient-color-ref.html
|
||||||
== background-blending-image-image.html background-blending-image-color-ref.html
|
== background-blending-image-image.html background-blending-image-color-ref.html
|
||||||
== background-blending-isolation.html background-blending-isolation-ref.html
|
== background-blending-isolation.html background-blending-isolation-ref.html
|
||||||
== background-blending-list-repeat.html background-blending-list-repeat-ref.html
|
== background-blending-list-repeat.html background-blending-list-repeat-ref.html
|
||||||
|
@ -87,7 +87,7 @@ fuzzy(0-1,0-6800) == clipped-opacity-containing-unclipped-mixblendmode.html clip
|
||||||
== background-blending-background-attachement-fixed.html background-blending-background-attachement-fixed-ref.html
|
== background-blending-background-attachement-fixed.html background-blending-background-attachement-fixed-ref.html
|
||||||
== background-blending-background-attachement-fixed-scroll.html background-blending-background-attachement-fixed-scroll-ref.html
|
== background-blending-background-attachement-fixed-scroll.html background-blending-background-attachement-fixed-scroll-ref.html
|
||||||
|
|
||||||
fuzzy-if(webrender,0-1,0-49719) == background-blend-mode-body-image.html background-blend-mode-body-image-ref.html
|
fuzzy-if(webrender,0-1,0-49710) == background-blend-mode-body-image.html background-blend-mode-body-image-ref.html
|
||||||
fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),0-1,0-16408) fuzzy-if(Android,0-4,0-768) fuzzy-if(gtkWidget,0-1,0-132) fuzzy-if(skiaContent,0-1,0-800) fuzzy-if(d2d,0-1,0-33208) fuzzy-if(webrender,0-1,0-78472) == background-blend-mode-body-transparent-image.html background-blend-mode-body-transparent-image-ref.html
|
fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),0-1,0-16408) fuzzy-if(Android,0-4,0-768) fuzzy-if(gtkWidget,0-1,0-132) fuzzy-if(skiaContent,0-1,0-800) fuzzy-if(d2d,0-1,0-33208) fuzzy-if(webrender,0-1,0-78472) == background-blend-mode-body-transparent-image.html background-blend-mode-body-transparent-image-ref.html
|
||||||
|
|
||||||
== background-blending-moz-element.html background-blending-moz-element-ref.html
|
== background-blending-moz-element.html background-blending-moz-element-ref.html
|
||||||
|
|
Загрузка…
Ссылка в новой задаче