Bug 1510084 - Update webrender to commit 35027d93aded8c0a7887dadc8aef5e393171e802 (WR PR #3348). r=kats

https://github.com/servo/webrender/pull/3348

Differential Revision: https://phabricator.services.mozilla.com/D13028

--HG--
extra : moz-landing-system : lando
This commit is contained in:
WR Updater Bot 2018-11-27 02:53:43 +00:00
Родитель ef022fddde
Коммит 681c0f4ec1
2 изменённых файлов: 50 добавлений и 9 удалений

Просмотреть файл

@ -1 +1 @@
e2e52b1145ad959191c0612edd41b0b189cf6b59
35027d93aded8c0a7887dadc8aef5e393171e802

Просмотреть файл

@ -6,7 +6,7 @@ use api::{AlphaType, BorderRadius, BuiltDisplayList, ClipMode, ColorF, PictureRe
use api::{DeviceIntRect, DeviceIntSize, DevicePixelScale, ExtendMode, DeviceRect, LayoutSideOffsetsAu};
use api::{FilterOp, GlyphInstance, GradientStop, ImageKey, ImageRendering, ItemRange, TileOffset, RepeatMode};
use api::{RasterSpace, LayoutPoint, LayoutRect, LayoutSideOffsets, LayoutSize, LayoutToWorldTransform};
use api::{LayoutVector2D, PremultipliedColorF, PropertyBinding, Shadow, YuvColorSpace, YuvFormat, LayoutRectAu};
use api::{LayoutVector2D, PremultipliedColorF, PropertyBinding, Shadow, YuvColorSpace, YuvFormat};
use api::{DeviceIntSideOffsets, WorldPixel, BoxShadowClipMode, NormalBorder, WorldRect, LayoutToWorldScale};
use api::{PicturePixel, RasterPixel, ColorDepth, LineStyle, LineOrientation, LayoutSizeAu, AuHelpers, LayoutVector2DAu};
use app_units::Au;
@ -34,7 +34,7 @@ use renderer::{MAX_VERTEX_TEXTURE_WIDTH};
use resource_cache::{ImageProperties, ImageRequest, ResourceCache};
use scene::SceneProperties;
use segment::SegmentBuilder;
use std::{cmp, fmt, mem, ops, u32, usize};
use std::{cmp, fmt, hash, mem, ops, u32, usize};
#[cfg(debug_assertions)]
use std::sync::atomic::{AtomicUsize, Ordering};
use storage;
@ -389,13 +389,54 @@ pub enum PrimitiveKeyKind {
}
}
#[cfg_attr(feature = "capture", derive(Serialize))]
#[cfg_attr(feature = "replay", derive(Deserialize))]
#[derive(Debug, Clone, PartialEq)]
pub struct RectangleKey {
x: f32,
y: f32,
w: f32,
h: f32,
}
impl Eq for RectangleKey {}
impl hash::Hash for RectangleKey {
fn hash<H: hash::Hasher>(&self, state: &mut H) {
self.x.to_bits().hash(state);
self.y.to_bits().hash(state);
self.w.to_bits().hash(state);
self.h.to_bits().hash(state);
}
}
impl From<RectangleKey> for LayoutRect {
fn from(key: RectangleKey) -> LayoutRect {
LayoutRect {
origin: LayoutPoint::new(key.x, key.y),
size: LayoutSize::new(key.w, key.h),
}
}
}
impl From<LayoutRect> for RectangleKey {
fn from(rect: LayoutRect) -> RectangleKey {
RectangleKey {
x: rect.origin.x,
y: rect.origin.y,
w: rect.size.width,
h: rect.size.height,
}
}
}
#[cfg_attr(feature = "capture", derive(Serialize))]
#[cfg_attr(feature = "replay", derive(Deserialize))]
#[derive(Debug, Clone, Eq, PartialEq, Hash)]
pub struct PrimitiveKey {
pub is_backface_visible: bool,
pub prim_rect: LayoutRectAu,
pub clip_rect: LayoutRectAu,
pub prim_rect: RectangleKey,
pub clip_rect: RectangleKey,
pub kind: PrimitiveKeyKind,
}
@ -408,8 +449,8 @@ impl PrimitiveKey {
) -> Self {
PrimitiveKey {
is_backface_visible,
prim_rect: prim_rect.to_au(),
clip_rect: clip_rect.to_au(),
prim_rect: prim_rect.into(),
clip_rect: clip_rect.into(),
kind,
}
}
@ -616,8 +657,8 @@ pub struct PrimitiveTemplate {
impl From<PrimitiveKey> for PrimitiveTemplate {
fn from(item: PrimitiveKey) -> Self {
let prim_rect = LayoutRect::from_au(item.prim_rect);
let clip_rect = LayoutRect::from_au(item.clip_rect);
let prim_rect = item.prim_rect.into();
let clip_rect = item.clip_rect.into();
let kind = item.kind.into_template(&prim_rect);
PrimitiveTemplate {