Skip to main content

EguiSoftwareRender

Struct EguiSoftwareRender 

Source
pub struct EguiSoftwareRender { /* private fields */ }
Expand description

Software render backend for egui.

Implementations§

Source§

impl EguiSoftwareRender

Source

pub fn new(output_field_order: ColorFieldOrder) -> Self

§Arguments
  • output_field_order - egui textures and vertex colors will be swizzled before rendering to match the desired output buffer order.
Source

pub fn with_convert_tris_to_rects(self, set: bool) -> Self

If true: attempts to optimize by converting suitable triangle pairs into rectangles for faster rendering. Things should look the same with this set to true while rendering faster.

Source

pub fn with_allow_raster_opt(self, set: bool) -> Self

If false: Rasterize everything with triangles, always calculate vertex colors, uvs, use bilinear everywhere, etc… Things should look the same with this set to true while rendering faster.

Source

pub fn with_caching(self, set: bool) -> Self

If true: rasterized ClippedPrimitives are cached and rendered to an intermediate tiled canvas. That canvas is then rendered over the frame buffer. If false ClippedPrimitives are rendered directly to the frame buffer. Rendering without caching is much slower and primarily intended for testing.

Source

pub fn render( &mut self, buffer_ref: &mut BufferMutRef<'_>, paint_jobs: &[ClippedPrimitive], textures_delta: &TexturesDelta, pixels_per_point: f32, )

Renders the given paint jobs to buffer_ref. Alternatively, when using caching EguiSoftwareRender::render_to_canvas() and subsequently EguiSoftwareRender::blit_canvas_to_buffer() can be run separately so that the primary rendering in render_to_canvas() can happen without a lock on the frame buffer.

§Arguments
  • paint_jobs - List of egui::ClippedPrimitive from egui to be rendered.
  • textures_delta - The change in egui textures since last frame
  • pixels_per_point - The number of physical pixels for each logical point.
Source

pub fn render_to_canvas( &mut self, width: usize, height: usize, paint_jobs: &[ClippedPrimitive], textures_delta: &TexturesDelta, pixels_per_point: f32, )

Renders the given paint jobs to an intermediate canvas.

§Arguments
  • width - The width of the output in pixels. Must match final output buffer dimensions.
  • height - The height of the output in pixels. Must match final output buffer dimensions.
  • paint_jobs - List of egui::ClippedPrimitive from egui to be rendered.
  • textures_delta - The change in egui textures since last frame
  • pixels_per_point - The number of physical pixels for each logical point.
Source

pub fn blit_canvas_to_buffer(&mut self, buffer: &mut BufferMutRef<'_>)

Draw canvas alpha over given buffer. Only run after EguiSoftwareRender::render_to_canvas(), or use EguiSoftwareRender::render() to run both. Only writes tile regions that contain pixels that are not fully transparent.

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> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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, 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<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more