diff --git a/webrender/src/prim_store/backdrop.rs b/webrender/src/prim_store/backdrop.rs index 07fa3ee700..b3f13f2af6 100644 --- a/webrender/src/prim_store/backdrop.rs +++ b/webrender/src/prim_store/backdrop.rs @@ -9,7 +9,7 @@ use crate::intern::{Internable, InternDebug, Handle as InternHandle}; use crate::internal_types::LayoutPrimitiveInfo; use crate::prim_store::{ InternablePrimitive, PictureIndex, PrimitiveInstanceKind, PrimKey, PrimKeyCommonData, PrimTemplate, - PrimTemplateCommonData, PrimitiveStore, PrimitiveSceneData, RectangleKey, + PrimTemplateCommonData, PrimitiveStore, RectangleKey, }; #[cfg_attr(feature = "capture", derive(Serialize))] @@ -78,7 +78,7 @@ pub type BackdropDataHandle = InternHandle; impl Internable for Backdrop { type Key = BackdropKey; type StoreData = BackdropTemplate; - type InternData = PrimitiveSceneData; + type InternData = (); } impl InternablePrimitive for Backdrop { diff --git a/webrender/src/prim_store/borders.rs b/webrender/src/prim_store/borders.rs index d676dec6f2..6bb5ef19dd 100644 --- a/webrender/src/prim_store/borders.rs +++ b/webrender/src/prim_store/borders.rs @@ -14,7 +14,7 @@ use crate::internal_types::LayoutPrimitiveInfo; use crate::prim_store::{ BorderSegmentInfo, BrushSegment, NinePatchDescriptor, PrimKey, PrimKeyCommonData, PrimTemplate, PrimTemplateCommonData, - PrimitiveInstanceKind, PrimitiveOpacity, PrimitiveSceneData, + PrimitiveInstanceKind, PrimitiveOpacity, PrimitiveStore, InternablePrimitive, }; use crate::resource_cache::{ImageRequest, ResourceCache}; @@ -146,7 +146,7 @@ pub type NormalBorderDataHandle = intern::Handle; impl intern::Internable for NormalBorderPrim { type Key = NormalBorderKey; type StoreData = NormalBorderTemplate; - type InternData = PrimitiveSceneData; + type InternData = (); } impl InternablePrimitive for NormalBorderPrim { @@ -321,7 +321,7 @@ pub type ImageBorderDataHandle = intern::Handle; impl intern::Internable for ImageBorder { type Key = ImageBorderKey; type StoreData = ImageBorderTemplate; - type InternData = PrimitiveSceneData; + type InternData = (); } impl InternablePrimitive for ImageBorder { diff --git a/webrender/src/prim_store/gradient.rs b/webrender/src/prim_store/gradient.rs index 9e2c27be55..0d935a7e28 100644 --- a/webrender/src/prim_store/gradient.rs +++ b/webrender/src/prim_store/gradient.rs @@ -14,7 +14,7 @@ use crate::gpu_cache::{GpuCacheHandle, GpuDataRequest}; use crate::intern::{Internable, InternDebug, Handle as InternHandle}; use crate::internal_types::LayoutPrimitiveInfo; use crate::prim_store::{BrushSegment, CachedGradientSegment, GradientTileRange, VectorKey}; -use crate::prim_store::{PrimitiveInstanceKind, PrimitiveOpacity, PrimitiveSceneData}; +use crate::prim_store::{PrimitiveInstanceKind, PrimitiveOpacity}; use crate::prim_store::{PrimKeyCommonData, PrimTemplateCommonData, PrimitiveStore}; use crate::prim_store::{NinePatchDescriptor, PointKey, SizeKey, InternablePrimitive}; use std::{hash, ops::{Deref, DerefMut}}; @@ -282,7 +282,7 @@ pub struct LinearGradient { impl Internable for LinearGradient { type Key = LinearGradientKey; type StoreData = LinearGradientTemplate; - type InternData = PrimitiveSceneData; + type InternData = (); } impl InternablePrimitive for LinearGradient { @@ -512,7 +512,7 @@ pub struct RadialGradient { impl Internable for RadialGradient { type Key = RadialGradientKey; type StoreData = RadialGradientTemplate; - type InternData = PrimitiveSceneData; + type InternData = (); } impl InternablePrimitive for RadialGradient { @@ -732,7 +732,7 @@ pub struct ConicGradient { impl Internable for ConicGradient { type Key = ConicGradientKey; type StoreData = ConicGradientTemplate; - type InternData = PrimitiveSceneData; + type InternData = (); } impl InternablePrimitive for ConicGradient { diff --git a/webrender/src/prim_store/image.rs b/webrender/src/prim_store/image.rs index 2df32455ef..cf701207d1 100644 --- a/webrender/src/prim_store/image.rs +++ b/webrender/src/prim_store/image.rs @@ -15,7 +15,7 @@ use crate::intern::{Internable, InternDebug, Handle as InternHandle}; use crate::internal_types::{LayoutPrimitiveInfo}; use crate::prim_store::{ EdgeAaSegmentMask, OpacityBindingIndex, PrimitiveInstanceKind, - PrimitiveOpacity, PrimitiveSceneData, PrimKey, PrimKeyCommonData, + PrimitiveOpacity, PrimKey, PrimKeyCommonData, PrimTemplate, PrimTemplateCommonData, PrimitiveStore, SegmentInstanceIndex, SizeKey, InternablePrimitive, }; @@ -307,7 +307,7 @@ pub type ImageDataHandle = InternHandle; impl Internable for Image { type Key = ImageKey; type StoreData = ImageTemplate; - type InternData = PrimitiveSceneData; + type InternData = (); } impl InternablePrimitive for Image { @@ -489,7 +489,7 @@ pub type YuvImageDataHandle = InternHandle; impl Internable for YuvImage { type Key = YuvImageKey; type StoreData = YuvImageTemplate; - type InternData = PrimitiveSceneData; + type InternData = (); } impl InternablePrimitive for YuvImage { diff --git a/webrender/src/prim_store/line_dec.rs b/webrender/src/prim_store/line_dec.rs index 4102409aef..5166cb375e 100644 --- a/webrender/src/prim_store/line_dec.rs +++ b/webrender/src/prim_store/line_dec.rs @@ -14,7 +14,7 @@ use crate::intern; use crate::internal_types::LayoutPrimitiveInfo; use crate::prim_store::{ PrimKey, PrimKeyCommonData, PrimTemplate, PrimTemplateCommonData, - InternablePrimitive, PrimitiveSceneData, PrimitiveStore, + InternablePrimitive, PrimitiveStore, }; use crate::prim_store::PrimitiveInstanceKind; @@ -127,7 +127,7 @@ pub type LineDecorationDataHandle = intern::Handle; impl intern::Internable for LineDecoration { type Key = LineDecorationKey; type StoreData = LineDecorationTemplate; - type InternData = PrimitiveSceneData; + type InternData = (); } impl InternablePrimitive for LineDecoration { diff --git a/webrender/src/prim_store/mod.rs b/webrender/src/prim_store/mod.rs index 82d17aa441..12ff39c6b9 100644 --- a/webrender/src/prim_store/mod.rs +++ b/webrender/src/prim_store/mod.rs @@ -406,17 +406,6 @@ impl GpuCacheAddress { } } -/// The information about an interned primitive that -/// is stored and available in the scene builder -/// thread. -#[cfg_attr(feature = "capture", derive(Serialize))] -#[cfg_attr(feature = "replay", derive(Deserialize))] -#[derive(MallocSizeOf)] -pub struct PrimitiveSceneData { - pub prim_size: LayoutSize, - pub flags: PrimitiveFlags, -} - #[cfg_attr(feature = "capture", derive(Serialize))] #[cfg_attr(feature = "replay", derive(Deserialize))] #[derive(Copy, Debug, Clone, MallocSizeOf, PartialEq)] @@ -871,7 +860,7 @@ type PrimitiveDataHandle = intern::Handle; impl intern::Internable for PrimitiveKeyKind { type Key = PrimitiveKey; type StoreData = PrimitiveTemplate; - type InternData = PrimitiveSceneData; + type InternData = (); } impl InternablePrimitive for PrimitiveKeyKind { @@ -4467,7 +4456,7 @@ fn update_opacity_binding( /// Trait for primitives that are directly internable. /// see SceneBuilder::add_primitive

-pub trait InternablePrimitive: intern::Internable + Sized { +pub trait InternablePrimitive: intern::Internable + Sized { /// Build a new key from self with `info`. fn into_key( self, diff --git a/webrender/src/prim_store/picture.rs b/webrender/src/prim_store/picture.rs index 0d85187778..3ddf9c56aa 100644 --- a/webrender/src/prim_store/picture.rs +++ b/webrender/src/prim_store/picture.rs @@ -15,7 +15,7 @@ use crate::internal_types::{LayoutPrimitiveInfo, Filter}; use crate::picture::PictureCompositeMode; use crate::prim_store::{ PrimKey, PrimKeyCommonData, PrimTemplate, PrimTemplateCommonData, - PrimitiveInstanceKind, PrimitiveSceneData, PrimitiveStore, VectorKey, + PrimitiveInstanceKind, PrimitiveStore, VectorKey, InternablePrimitive, }; @@ -279,7 +279,7 @@ pub type PictureDataHandle = InternHandle; impl Internable for Picture { type Key = PictureKey; type StoreData = PictureTemplate; - type InternData = PrimitiveSceneData; + type InternData = (); } impl InternablePrimitive for Picture { diff --git a/webrender/src/prim_store/text_run.rs b/webrender/src/prim_store/text_run.rs index be0817291e..b4d08fee16 100644 --- a/webrender/src/prim_store/text_run.rs +++ b/webrender/src/prim_store/text_run.rs @@ -11,7 +11,7 @@ use crate::gpu_cache::GpuCache; use crate::intern; use crate::internal_types::LayoutPrimitiveInfo; use crate::picture::{SubpixelMode, SurfaceInfo}; -use crate::prim_store::{PrimitiveOpacity, PrimitiveSceneData, PrimitiveScratchBuffer}; +use crate::prim_store::{PrimitiveOpacity, PrimitiveScratchBuffer}; use crate::prim_store::{PrimitiveStore, PrimKeyCommonData, PrimTemplateCommonData}; use crate::render_task_graph::RenderTaskGraph; use crate::renderer::{MAX_VERTEX_TEXTURE_WIDTH}; @@ -151,7 +151,7 @@ pub struct TextRun { impl intern::Internable for TextRun { type Key = TextRunKey; type StoreData = TextRunTemplate; - type InternData = PrimitiveSceneData; + type InternData = (); } impl InternablePrimitive for TextRun { diff --git a/webrender/src/scene_building.rs b/webrender/src/scene_building.rs index 37c407a23d..a7c3faa41e 100644 --- a/webrender/src/scene_building.rs +++ b/webrender/src/scene_building.rs @@ -23,7 +23,7 @@ use crate::intern::Interner; use crate::internal_types::{FastHashMap, FastHashSet, LayoutPrimitiveInfo, Filter}; use crate::picture::{Picture3DContext, PictureCompositeMode, PicturePrimitive, PictureOptions}; use crate::picture::{BlitReason, OrderedPictureChild, PrimitiveList, TileCacheInstance, ClusterFlags}; -use crate::prim_store::{PrimitiveInstance, PrimitiveSceneData}; +use crate::prim_store::PrimitiveInstance; use crate::prim_store::{PrimitiveInstanceKind, NinePatchDescriptor, PrimitiveStore}; use crate::prim_store::{ScrollNodeAndClipChain, PictureIndex}; use crate::prim_store::{InternablePrimitive, SegmentInstanceIndex}; @@ -1589,12 +1589,7 @@ impl<'a> SceneBuilder<'a> { let current_offset = self.current_offset(spatial_node_index); let interner = self.interners.as_mut(); let prim_data_handle = interner - .intern(&prim_key, || { - PrimitiveSceneData { - prim_size: info.rect.size, - flags: info.flags, - } - }); + .intern(&prim_key, || ()); let instance_kind = P::make_instance_kind( prim_key, @@ -2603,13 +2598,7 @@ impl<'a> SceneBuilder<'a> { let shadow_prim_data_handle = self.interners .picture - .intern(&shadow_pic_key, || { - PrimitiveSceneData { - prim_size: LayoutSize::zero(), - flags: PrimitiveFlags::IS_BACKFACE_VISIBLE, - } - } - ); + .intern(&shadow_pic_key, || ()); let shadow_prim_instance = PrimitiveInstance::new( LayoutPoint::zero(), @@ -4004,13 +3993,7 @@ fn create_prim_instance( let data_handle = interners .picture - .intern(&pic_key, || { - PrimitiveSceneData { - prim_size: LayoutSize::zero(), - flags, - } - } - ); + .intern(&pic_key, || ()); PrimitiveInstance::new( LayoutPoint::zero(), @@ -4138,13 +4121,7 @@ fn create_tile_cache( let pic_data_handle = interners .picture - .intern(&pic_key, || { - PrimitiveSceneData { - prim_size: LayoutSize::zero(), - flags: PrimitiveFlags::IS_BACKFACE_VISIBLE, - } - } - ); + .intern(&pic_key, || ()); // Build a clip-chain for the tile cache, that contains any of the shared clips // we will apply when drawing the tiles. In all cases provided by Gecko, these