pub enum CompositorConfig {
    Draw {
        max_partial_present_rects: usize,
        draw_previous_partial_present_regions: bool,
        partial_present: Option<Box<dyn PartialPresentCompositor>>,
    },
    Native {
        compositor: Box<dyn Compositor>,
    },
}
Expand description

Public interface specified in WebRenderOptions that configures how WR compositing will operate.

Variants§

§

Draw

Fields

§max_partial_present_rects: usize

If this is zero, a full screen present occurs at the end of the frame. This is the simplest and default mode. If this is non-zero, then the operating system supports a form of ‘partial present’ where only dirty regions of the framebuffer need to be updated.

§draw_previous_partial_present_regions: bool

If this is true, WR must draw the previous frames’ dirty regions when doing a partial present. This is used for EGL which requires the front buffer to always be fully consistent.

§partial_present: Option<Box<dyn PartialPresentCompositor>>

A client provided interface to a compositor handling partial present. Required if webrender must query the backbuffer’s age.

Let WR draw tiles via normal batching. This requires no special OS support.

§

Native

Fields

§compositor: Box<dyn Compositor>

A client provided interface to a native / OS compositor.

Use a native OS compositor to draw tiles. This requires clients to implement the Compositor trait, but can be significantly more power efficient on operating systems that support it.

Implementations§

source§

impl CompositorConfig

source

pub fn compositor(&mut self) -> Option<&mut Box<dyn Compositor>>

source

pub fn partial_present( &mut self ) -> Option<&mut Box<dyn PartialPresentCompositor>>

Trait Implementations§

source§

impl Default for CompositorConfig

source§

fn default() -> Self

Default compositor config is full present without partial present.

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

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 Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.