зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1514742 - Update webrender to commit ac6114d8198f90c7a7be40b80c5bd6f302a1bf4a (WR PR #3397). r=kats
https://github.com/servo/webrender/pull/3397 Differential Revision: https://phabricator.services.mozilla.com/D14742 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
2f639828d9
Коммит
a527f95cbd
|
@ -1 +1 @@
|
|||
d7f4f4a39ecfe5b35362f0f3b4daecc4cc253c3f
|
||||
ac6114d8198f90c7a7be40b80c5bd6f302a1bf4a
|
||||
|
|
|
@ -898,6 +898,8 @@ impl ClipItemKey {
|
|||
}
|
||||
}
|
||||
|
||||
impl intern::InternDebug for ClipItemKey {}
|
||||
|
||||
#[derive(Debug)]
|
||||
#[cfg_attr(feature = "capture", derive(Serialize))]
|
||||
#[cfg_attr(feature = "replay", derive(Deserialize))]
|
||||
|
|
|
@ -19,7 +19,7 @@ use frame_builder::{ChasePrimitive, FrameBuilder, FrameBuilderConfig};
|
|||
use glyph_rasterizer::FontInstance;
|
||||
use hit_test::{HitTestingItem, HitTestingRun};
|
||||
use image::simplify_repeated_primitive;
|
||||
use intern::{Handle, Internable};
|
||||
use intern::{Handle, Internable, InternDebug};
|
||||
use internal_types::{FastHashMap, FastHashSet};
|
||||
use picture::{Picture3DContext, PictureCompositeMode, PicturePrimitive, PrimitiveList};
|
||||
use prim_store::{PrimitiveInstance, PrimitiveKeyKind};
|
||||
|
@ -1045,7 +1045,7 @@ impl<'a> DisplayListFlattener<'a> {
|
|||
) -> PrimitiveInstance
|
||||
where
|
||||
P: Internable<InternData=PrimitiveSceneData>,
|
||||
P::Source: AsInstanceKind<Handle<P::Marker>>,
|
||||
P::Source: AsInstanceKind<Handle<P::Marker>> + InternDebug,
|
||||
DocumentResources: InternerMut<P>,
|
||||
{
|
||||
let offset = info.rect.origin.to_vector();
|
||||
|
@ -1125,7 +1125,7 @@ impl<'a> DisplayListFlattener<'a> {
|
|||
)
|
||||
where
|
||||
P: Internable<InternData = PrimitiveSceneData> + IsVisible,
|
||||
P::Source: AsInstanceKind<Handle<P::Marker>>,
|
||||
P::Source: AsInstanceKind<Handle<P::Marker>> + InternDebug,
|
||||
DocumentResources: InternerMut<P>,
|
||||
{
|
||||
if prim.is_visible() {
|
||||
|
@ -1152,7 +1152,7 @@ impl<'a> DisplayListFlattener<'a> {
|
|||
)
|
||||
where
|
||||
P: Internable<InternData = PrimitiveSceneData> + IsVisible,
|
||||
P::Source: AsInstanceKind<Handle<P::Marker>>,
|
||||
P::Source: AsInstanceKind<Handle<P::Marker>> + InternDebug,
|
||||
DocumentResources: InternerMut<P>,
|
||||
ShadowItem: From<PendingPrimitive<P>>
|
||||
{
|
||||
|
@ -1182,7 +1182,7 @@ impl<'a> DisplayListFlattener<'a> {
|
|||
)
|
||||
where
|
||||
P: Internable<InternData = PrimitiveSceneData>,
|
||||
P::Source: AsInstanceKind<Handle<P::Marker>>,
|
||||
P::Source: AsInstanceKind<Handle<P::Marker>> + InternDebug,
|
||||
DocumentResources: InternerMut<P>,
|
||||
{
|
||||
let prim_instance = self.create_primitive(
|
||||
|
@ -1917,7 +1917,7 @@ impl<'a> DisplayListFlattener<'a> {
|
|||
)
|
||||
where
|
||||
P: Internable<InternData=PrimitiveSceneData> + CreateShadow,
|
||||
P::Source: AsInstanceKind<Handle<P::Marker>>,
|
||||
P::Source: AsInstanceKind<Handle<P::Marker>> + InternDebug,
|
||||
DocumentResources: InternerMut<P>,
|
||||
{
|
||||
// Offset the local rect and clip rect by the shadow offset.
|
||||
|
@ -1942,7 +1942,7 @@ impl<'a> DisplayListFlattener<'a> {
|
|||
fn add_shadow_prim_to_draw_list<P>(&mut self, pending_primitive: PendingPrimitive<P>)
|
||||
where
|
||||
P: Internable<InternData = PrimitiveSceneData> + IsVisible,
|
||||
P::Source: AsInstanceKind<Handle<P::Marker>>,
|
||||
P::Source: AsInstanceKind<Handle<P::Marker>> + InternDebug,
|
||||
DocumentResources: InternerMut<P>,
|
||||
{
|
||||
// For a normal primitive, if it has alpha > 0, then we add this
|
||||
|
|
|
@ -126,6 +126,10 @@ struct Item<T> {
|
|||
data: T,
|
||||
}
|
||||
|
||||
pub trait InternDebug {
|
||||
fn on_interned(&self, _uid: ItemUid) {}
|
||||
}
|
||||
|
||||
/// The data store lives in the frame builder thread. It
|
||||
/// contains a free-list of items for fast access.
|
||||
#[cfg_attr(feature = "capture", derive(Serialize))]
|
||||
|
@ -252,7 +256,7 @@ where
|
|||
|
||||
impl<S, D, M> Interner<S, D, M>
|
||||
where
|
||||
S: Eq + Hash + Clone + Debug,
|
||||
S: Eq + Hash + Clone + Debug + InternDebug,
|
||||
M: Copy + Debug
|
||||
{
|
||||
/// Intern a data structure, and return a handle to
|
||||
|
@ -309,6 +313,9 @@ where
|
|||
_marker: PhantomData,
|
||||
};
|
||||
|
||||
#[cfg(debug_assertions)]
|
||||
data.on_interned(handle.uid);
|
||||
|
||||
// Store this handle so the next time it is
|
||||
// interned, it gets re-used.
|
||||
self.map.insert(data.clone(), handle);
|
||||
|
|
|
@ -9,7 +9,7 @@ use api::{
|
|||
use display_list_flattener::{AsInstanceKind, IsVisible};
|
||||
use frame_builder::FrameBuildingState;
|
||||
use gpu_cache::{GpuCacheHandle, GpuDataRequest};
|
||||
use intern::{DataStore, Handle, Internable, Interner, UpdateList};
|
||||
use intern::{DataStore, Handle, Internable, InternDebug, Interner, UpdateList};
|
||||
use prim_store::{BrushSegment, GradientTileRange};
|
||||
use prim_store::{PrimitiveInstanceKind, PrimitiveOpacity, PrimitiveSceneData};
|
||||
use prim_store::{PrimKeyCommonData, PrimTemplateCommonData, PrimitiveStore};
|
||||
|
@ -76,6 +76,8 @@ impl LinearGradientKey {
|
|||
}
|
||||
}
|
||||
|
||||
impl InternDebug for LinearGradientKey {}
|
||||
|
||||
impl AsInstanceKind<LinearGradientDataHandle> for LinearGradientKey {
|
||||
/// Construct a primitive instance that matches the type
|
||||
/// of primitive key.
|
||||
|
@ -333,6 +335,8 @@ impl RadialGradientKey {
|
|||
}
|
||||
}
|
||||
|
||||
impl InternDebug for RadialGradientKey {}
|
||||
|
||||
impl AsInstanceKind<RadialGradientDataHandle> for RadialGradientKey {
|
||||
/// Construct a primitive instance that matches the type
|
||||
/// of primitive key.
|
||||
|
|
|
@ -645,6 +645,8 @@ impl PrimitiveKey {
|
|||
}
|
||||
}
|
||||
|
||||
impl intern::InternDebug for PrimitiveKey {}
|
||||
|
||||
impl AsInstanceKind<PrimitiveDataHandle> for PrimitiveKey {
|
||||
/// Construct a primitive instance that matches the type
|
||||
/// of primitive key.
|
||||
|
|
|
@ -52,6 +52,8 @@ impl TextRunKey {
|
|||
}
|
||||
}
|
||||
|
||||
impl intern::InternDebug for TextRunKey {}
|
||||
|
||||
impl AsInstanceKind<TextRunDataHandle> for TextRunKey {
|
||||
/// Construct a primitive instance that matches the type
|
||||
/// of primitive key.
|
||||
|
|
Загрузка…
Ссылка в новой задаче