Skip to main content

FrameBuilder

Struct FrameBuilder 

Source
pub struct FrameBuilder {
    prim_headers_prealloc: Preallocator,
    composite_state_prealloc: CompositeStatePreallocator,
    plane_splitters: Vec<BspSplitter<PlaneSplitAnchor>>,
}
Expand description

Produces the frames that are sent to the renderer.

Fields§

§prim_headers_prealloc: Preallocator§composite_state_prealloc: CompositeStatePreallocator§plane_splitters: Vec<BspSplitter<PlaneSplitAnchor>>

Implementations§

Source§

impl FrameBuilder

Source

pub fn new() -> Self

Source

fn build_layer_screen_rects_and_cull_layers( &mut self, scene: &mut BuiltScene, present: bool, global_screen_world_rect: WorldRect, resource_cache: &mut ResourceCache, rg_builder: &mut RenderTaskGraphBuilder, global_device_pixel_scale: DevicePixelScale, scene_properties: &SceneProperties, transform_palette: &mut TransformPalette, data_stores: &mut DataStores, scratch: &mut ScratchBuffer, debug_flags: DebugFlags, composite_state: &mut CompositeState, tile_caches: &mut FastHashMap<SliceId, Box<TileCacheInstance>>, spatial_tree: &SpatialTree, cmd_buffers: &mut CommandBufferList, frame_gpu_data: &mut GpuBufferBuilder, frame_memory: &FrameMemory, profile: &mut TransactionProfile, )

Compute the contribution (bounding rectangles, and resources) of layers and their primitives in screen space.

Source

pub fn build( &mut self, scene: &mut BuiltScene, present: bool, resource_cache: &mut ResourceCache, rg_builder: &mut RenderTaskGraphBuilder, stamp: FrameStamp, device_origin: DeviceIntPoint, scene_properties: &SceneProperties, data_stores: &mut DataStores, scratch: &mut ScratchBuffer, debug_flags: DebugFlags, tile_caches: &mut FastHashMap<SliceId, Box<TileCacheInstance>>, spatial_tree: &mut SpatialTree, dirty_rects_are_valid: bool, profile: &mut TransactionProfile, minimap_data: FastHashMap<ExternalScrollId, MinimapData>, chunk_pool: Arc<ChunkPool>, ) -> Frame

Source

fn render_minimap( &self, scratch: &mut PrimitiveScratchBuffer, spatial_tree: &SpatialTree, minimap_data_store: FastHashMap<ExternalScrollId, MinimapData>, )

Source

fn skip_occluded_pictures_with_clips( &self, tile_cache_pictures: &Vec<PictureIndex>, pictures: &mut [PictureInstance], tile_caches: &mut FastHashMap<SliceId, Box<TileCacheInstance>>, frame_context: &FrameBuildingContext<'_>, composite_state: &mut CompositeState, )

Skip pictures that are fully covered by another opaque picture with the same rounded rect clip.

Since the clip adds some transparency to the occluder, the opaque rectangles occlusion detection fails to discard stacks of opaque rounded corners. This is done specifically to avoid conflation artifacts with the rounded rectangle around web content in Firefox.

Source

fn build_composite_pass( &self, scene: &BuiltScene, ctx: &RenderTargetContext<'_, '_>, gpu_buffers: &mut GpuBufferBuilder, deferred_resolves: &mut Vec<DeferredResolve, FrameAllocator>, composite_state: &mut CompositeState, )

Trait Implementations§

Source§

impl Serialize for FrameBuilder

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<'a, T> Deserialize<'a> for T