pub struct ClipBatcher {
    pub primary_clips: ClipBatchList,
    pub secondary_clips: ClipBatchList,
    gpu_supports_fast_clears: bool,
}Expand description
Batcher managing draw calls into the clip mask (in the RT cache).
Fields§
§primary_clips: ClipBatchListThe first clip in each clip task. This will overwrite all pixels in the clip region, so we can skip doing a clear and write with blending disabled, which is a big performance win on Intel GPUs.
secondary_clips: ClipBatchListAny subsequent clip masks (rare) for a clip task get drawn in a second pass with multiplicative blending enabled.
gpu_supports_fast_clears: boolImplementations§
Source§impl ClipBatcher
 
impl ClipBatcher
pub fn new(gpu_supports_fast_clears: bool, memory: &FrameMemory) -> Self
pub fn add_clip_region( &mut self, local_pos: LayoutPoint, sub_rect: DeviceRect, clip_data: ClipData, task_origin: DevicePoint, screen_origin: DevicePoint, device_pixel_scale: f32, )
Sourcefn add_tiled_clip_mask(
    &mut self,
    mask_screen_rect: DeviceRect,
    local_clip_rect: LayoutRect,
    clip_spatial_node_index: SpatialNodeIndex,
    spatial_tree: &SpatialTree,
    world_rect: &WorldRect,
    global_device_pixel_scale: DevicePixelScale,
    common: &ClipMaskInstanceCommon,
    is_first_clip: bool,
) -> bool
 
fn add_tiled_clip_mask( &mut self, mask_screen_rect: DeviceRect, local_clip_rect: LayoutRect, clip_spatial_node_index: SpatialNodeIndex, spatial_tree: &SpatialTree, world_rect: &WorldRect, global_device_pixel_scale: DevicePixelScale, common: &ClipMaskInstanceCommon, is_first_clip: bool, ) -> bool
Where appropriate, draw a clip rectangle as a small series of tiles, instead of one large rectangle.
Sourcefn get_batch_list(&mut self, is_first_clip: bool) -> &mut ClipBatchList
 
fn get_batch_list(&mut self, is_first_clip: bool) -> &mut ClipBatchList
Retrieve the correct clip batch list to append to, depending on whether this is the first clip mask for a clip task.
pub fn add( &mut self, clip_node_range: ClipNodeRange, root_spatial_node_index: SpatialNodeIndex, render_tasks: &RenderTaskGraph, gpu_cache: &GpuCache, clip_store: &ClipStore, transforms: &mut TransformPalette, actual_rect: DeviceRect, surface_device_pixel_scale: DevicePixelScale, task_origin: DevicePoint, screen_origin: DevicePoint, ctx: &RenderTargetContext<'_, '_>, ) -> bool
Trait Implementations§
Source§impl Debug for ClipBatcher
 
impl Debug for ClipBatcher
Auto Trait Implementations§
impl Freeze for ClipBatcher
impl RefUnwindSafe for ClipBatcher
impl Send for ClipBatcher
impl !Sync for ClipBatcher
impl Unpin for ClipBatcher
impl UnwindSafe for ClipBatcher
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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