Struct rerun::external::eframe::egui_wgpu::Renderer

pub struct Renderer {
    pipeline: RenderPipeline,
    index_buffer: SlicedBuffer,
    vertex_buffer: SlicedBuffer,
    uniform_buffer: Buffer,
    previous_uniform_buffer_content: UniformBuffer,
    uniform_bind_group: BindGroup,
    texture_bind_group_layout: BindGroupLayout,
    textures: HashMap<TextureId, Texture, RandomState>,
    next_user_texture_id: u64,
    samplers: HashMap<TextureOptions, Sampler, RandomState>,
    dithering: bool,
    pub callback_resources: TypeMap,
}
Expand description

Renderer for a egui based GUI.

Fields§

§pipeline: RenderPipeline§index_buffer: SlicedBuffer§vertex_buffer: SlicedBuffer§uniform_buffer: Buffer§previous_uniform_buffer_content: UniformBuffer§uniform_bind_group: BindGroup§texture_bind_group_layout: BindGroupLayout§textures: HashMap<TextureId, Texture, RandomState>§next_user_texture_id: u64§samplers: HashMap<TextureOptions, Sampler, RandomState>§dithering: bool§callback_resources: TypeMap

Storage for resources shared with all invocations of CallbackTrait’s methods.

See also CallbackTrait.

Implementations§

§

impl Renderer

pub fn new( device: &Device, output_color_format: TextureFormat, output_depth_format: Option<TextureFormat>, msaa_samples: u32, dithering: bool ) -> Renderer

Creates a renderer for a egui UI.

output_color_format should preferably be wgpu::TextureFormat::Rgba8Unorm or wgpu::TextureFormat::Bgra8Unorm, i.e. in gamma-space.

pub fn render( &self, render_pass: &mut RenderPass<'static>, paint_jobs: &[ClippedPrimitive], screen_descriptor: &ScreenDescriptor )

Executes the egui renderer onto an existing wgpu renderpass.

Note that the lifetime of render_pass is 'static which requires a call to wgpu::RenderPass::forget_lifetime. This allows users to pass resources that live outside of the callback resources to the render pass. The render pass internally keeps all referenced resources alive as long as necessary. The only consequence of forget_lifetime is that any operation on the parent encoder will cause a runtime error instead of a compile time error.

pub fn update_texture( &mut self, device: &Device, queue: &Queue, id: TextureId, image_delta: &ImageDelta )

Should be called before Self::render.

pub fn free_texture(&mut self, id: &TextureId)

pub fn texture(&self, id: &TextureId) -> Option<&Texture>

Get the WGPU texture and bind group associated to a texture that has been allocated by egui.

This could be used by custom paint hooks to render images that have been added through epaint::Context::load_texture.

pub fn register_native_texture( &mut self, device: &Device, texture: &TextureView, texture_filter: FilterMode ) -> TextureId

Registers a wgpu::Texture with a epaint::TextureId.

This enables the application to reference the texture inside an image ui element. This effectively enables off-screen rendering inside the egui UI. Texture must have the texture format wgpu::TextureFormat::Rgba8UnormSrgb.

pub fn update_egui_texture_from_wgpu_texture( &mut self, device: &Device, texture: &TextureView, texture_filter: FilterMode, id: TextureId )

Registers a wgpu::Texture with an existing epaint::TextureId.

This enables applications to reuse epaint::TextureIds.

pub fn register_native_texture_with_sampler_options( &mut self, device: &Device, texture: &TextureView, sampler_descriptor: SamplerDescriptor<'_> ) -> TextureId

Registers a wgpu::Texture with a epaint::TextureId while also accepting custom wgpu::SamplerDescriptor options.

This allows applications to specify individual minification/magnification filters as well as custom mipmap and tiling options.

The texture must have the format wgpu::TextureFormat::Rgba8UnormSrgb. Any compare function supplied in the wgpu::SamplerDescriptor will be ignored.

pub fn update_egui_texture_from_wgpu_texture_with_sampler_options( &mut self, device: &Device, texture: &TextureView, sampler_descriptor: SamplerDescriptor<'_>, id: TextureId )

Registers a wgpu::Texture with an existing epaint::TextureId while also accepting custom wgpu::SamplerDescriptor options.

This allows applications to reuse epaint::TextureIds created with custom sampler options.

pub fn update_buffers( &mut self, device: &Device, queue: &Queue, encoder: &mut CommandEncoder, paint_jobs: &[ClippedPrimitive], screen_descriptor: &ScreenDescriptor ) -> Vec<CommandBuffer>

Uploads the uniform, vertex and index data used by the renderer. Should be called before Self::render.

Returns all user-defined command buffers gathered from CallbackTrait::prepare & CallbackTrait::finish_prepare callbacks.

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> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
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<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

§

impl<T> Downcast for T
where T: Any,

§

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.
§

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.
§

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.
§

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.
§

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

§

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.

§

impl<T> Instrument for T

§

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

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

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> 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> IntoRequest<T> for T

source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
source§

impl<Src, Dst> LosslessTryInto<Dst> for Src
where Dst: LosslessTryFrom<Src>,

source§

fn lossless_try_into(self) -> Option<Dst>

Performs the conversion.
source§

impl<Src, Dst> LossyInto<Dst> for Src
where Dst: LossyFrom<Src>,

source§

fn lossy_into(self) -> Dst

Performs the conversion.
source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
§

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

§

fn to<T>(self) -> T
where Self: Into<T>,

Converts to T by calling Into<T>::into.
§

fn try_to<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Tries to convert to T by calling TryInto<T>::try_into.
source§

impl<T, U> TryFrom<U> for T
where 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 T
where 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.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.
§

impl<T> Ungil for T
where T: Send,

§

impl<T> WasmNotSend for T
where T: Send,

§

impl<T> WasmNotSendSync for T

§

impl<T> WasmNotSync for T
where T: Sync,