pub struct Renderer {
pub callback_resources: CallbackResources,
/* private fields */
}
Expand description
Renderer for a egui based GUI.
Fields§
§callback_resources: CallbackResources
Storage for resources shared with all invocations of CallbackTrait
’s methods.
See also CallbackTrait
.
Implementations§
Source§impl Renderer
impl Renderer
Sourcepub fn new(
device: &Device,
output_color_format: TextureFormat,
output_depth_format: Option<TextureFormat>,
msaa_samples: u32,
dithering: bool,
) -> Self
pub fn new( device: &Device, output_color_format: TextureFormat, output_depth_format: Option<TextureFormat>, msaa_samples: u32, dithering: bool, ) -> Self
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.
Sourcepub fn render(
&self,
render_pass: &mut RenderPass<'static>,
paint_jobs: &[ClippedPrimitive],
screen_descriptor: &ScreenDescriptor,
)
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.
Sourcepub fn update_texture(
&mut self,
device: &Device,
queue: &Queue,
id: TextureId,
image_delta: &ImageDelta,
)
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)
Sourcepub fn texture(&self, id: &TextureId) -> Option<&Texture>
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
.
Sourcepub fn register_native_texture(
&mut self,
device: &Device,
texture: &TextureView,
texture_filter: FilterMode,
) -> TextureId
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
.
Sourcepub fn update_egui_texture_from_wgpu_texture(
&mut self,
device: &Device,
texture: &TextureView,
texture_filter: FilterMode,
id: TextureId,
)
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::TextureId
s.
Sourcepub fn register_native_texture_with_sampler_options(
&mut self,
device: &Device,
texture: &TextureView,
sampler_descriptor: SamplerDescriptor<'_>,
) -> TextureId
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.
Sourcepub fn update_egui_texture_from_wgpu_texture_with_sampler_options(
&mut self,
device: &Device,
texture: &TextureView,
sampler_descriptor: SamplerDescriptor<'_>,
id: TextureId,
)
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::TextureId
s created with custom sampler options.
Sourcepub fn update_buffers(
&mut self,
device: &Device,
queue: &Queue,
encoder: &mut CommandEncoder,
paint_jobs: &[ClippedPrimitive],
screen_descriptor: &ScreenDescriptor,
) -> Vec<CommandBuffer>
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.