diff options
Diffstat (limited to 'gfx/wr/webrender/src/prim_store/mod.rs')
-rw-r--r-- | gfx/wr/webrender/src/prim_store/mod.rs | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/gfx/wr/webrender/src/prim_store/mod.rs b/gfx/wr/webrender/src/prim_store/mod.rs index cc09eab6b1..902ecff43a 100644 --- a/gfx/wr/webrender/src/prim_store/mod.rs +++ b/gfx/wr/webrender/src/prim_store/mod.rs @@ -1029,11 +1029,13 @@ pub enum PrimitiveInstanceKind { /// Handle to the common interned data for this primitive. data_handle: RadialGradientDataHandle, visible_tiles_range: GradientTileRange, + cached: bool, }, ConicGradient { /// Handle to the common interned data for this primitive. data_handle: ConicGradientDataHandle, visible_tiles_range: GradientTileRange, + cached: bool, }, /// Clear out a rect, used for special effects. Clear { @@ -1214,8 +1216,9 @@ pub struct PrimitiveScratchBuffer { /// Set of sub-graphs that are required, determined during visibility pass pub required_sub_graphs: FastHashSet<PictureIndex>, - /// Temporary buffer for building segments in to during prepare pass - pub quad_segments: Vec<QuadSegment>, + /// Temporary buffers for building segments in to during prepare pass + pub quad_direct_segments: Vec<QuadSegment>, + pub quad_indirect_segments: Vec<QuadSegment>, } impl Default for PrimitiveScratchBuffer { @@ -1230,7 +1233,8 @@ impl Default for PrimitiveScratchBuffer { debug_items: Vec::new(), messages: Vec::new(), required_sub_graphs: FastHashSet::default(), - quad_segments: Vec::new(), + quad_direct_segments: Vec::new(), + quad_indirect_segments: Vec::new(), } } } @@ -1244,7 +1248,8 @@ impl PrimitiveScratchBuffer { self.segment_instances.recycle(recycler); self.gradient_tiles.recycle(recycler); recycler.recycle_vec(&mut self.debug_items); - recycler.recycle_vec(&mut self.quad_segments); + recycler.recycle_vec(&mut self.quad_direct_segments); + recycler.recycle_vec(&mut self.quad_indirect_segments); } pub fn begin_frame(&mut self) { @@ -1253,7 +1258,8 @@ impl PrimitiveScratchBuffer { // location. self.clip_mask_instances.clear(); self.clip_mask_instances.push(ClipMaskKind::None); - self.quad_segments.clear(); + self.quad_direct_segments.clear(); + self.quad_indirect_segments.clear(); self.border_cache_handles.clear(); |