pub struct EguiSoftwareRender { /* private fields */ }Expand description
Software render backend for egui.
Implementations§
Source§impl EguiSoftwareRender
impl EguiSoftwareRender
Sourcepub fn new(output_field_order: ColorFieldOrder) -> Self
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.
Sourcepub fn with_convert_tris_to_rects(self, set: bool) -> Self
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.
Sourcepub fn with_allow_raster_opt(self, set: bool) -> Self
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.
Sourcepub fn with_caching(self, set: bool) -> Self
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.
Sourcepub fn render(
&mut self,
buffer_ref: &mut BufferMutRef<'_>,
paint_jobs: &[ClippedPrimitive],
textures_delta: &TexturesDelta,
pixels_per_point: f32,
)
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 ofegui::ClippedPrimitivefrom egui to be rendered.textures_delta- The change in egui textures since last framepixels_per_point- The number of physical pixels for each logical point.
Sourcepub fn render_to_canvas(
&mut self,
width: usize,
height: usize,
paint_jobs: &[ClippedPrimitive],
textures_delta: &TexturesDelta,
pixels_per_point: f32,
)
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 ofegui::ClippedPrimitivefrom egui to be rendered.textures_delta- The change in egui textures since last framepixels_per_point- The number of physical pixels for each logical point.
Sourcepub fn blit_canvas_to_buffer(&mut self, buffer: &mut BufferMutRef<'_>)
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§
impl Freeze for EguiSoftwareRender
impl RefUnwindSafe for EguiSoftwareRender
impl Send for EguiSoftwareRender
impl Sync for EguiSoftwareRender
impl Unpin for EguiSoftwareRender
impl UnsafeUnpin for EguiSoftwareRender
impl UnwindSafe for EguiSoftwareRender
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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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)
fn as_any(&self) -> &(dyn Any + 'static)
&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)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.