Struct bevy_render::renderer::RenderContext
source · pub struct RenderContext<'w> { /* private fields */ }
Expand description
The context with all information required to interact with the GPU.
The RenderDevice
is used to create render resources and the
the CommandEncoder
is used to record a series of GPU operations.
Implementations§
source§impl<'w> RenderContext<'w>
impl<'w> RenderContext<'w>
sourcepub fn new(
render_device: RenderDevice,
adapter_info: AdapterInfo,
diagnostics_recorder: Option<DiagnosticsRecorder>
) -> Self
pub fn new( render_device: RenderDevice, adapter_info: AdapterInfo, diagnostics_recorder: Option<DiagnosticsRecorder> ) -> Self
Creates a new RenderContext
from a RenderDevice
.
sourcepub fn render_device(&self) -> &RenderDevice
pub fn render_device(&self) -> &RenderDevice
Gets the underlying RenderDevice
.
sourcepub fn diagnostic_recorder(&self) -> impl RecordDiagnostics
pub fn diagnostic_recorder(&self) -> impl RecordDiagnostics
Gets the diagnostics recorder, used to track elapsed time and pipeline statistics of various render and compute passes.
sourcepub fn command_encoder(&mut self) -> &mut CommandEncoder
pub fn command_encoder(&mut self) -> &mut CommandEncoder
Gets the current CommandEncoder
.
sourcepub fn begin_tracked_render_pass<'a>(
&'a mut self,
descriptor: RenderPassDescriptor<'a, '_>
) -> TrackedRenderPass<'a>
pub fn begin_tracked_render_pass<'a>( &'a mut self, descriptor: RenderPassDescriptor<'a, '_> ) -> TrackedRenderPass<'a>
Creates a new TrackedRenderPass
for the context,
configured using the provided descriptor
.
sourcepub fn add_command_buffer(&mut self, command_buffer: CommandBuffer)
pub fn add_command_buffer(&mut self, command_buffer: CommandBuffer)
Append a CommandBuffer
to the command buffer queue.
If present, this will flush the currently unflushed CommandEncoder
into a CommandBuffer
into the queue before appending the provided
buffer.
sourcepub fn add_command_buffer_generation_task(
&mut self,
task: impl FnOnce(RenderDevice) -> CommandBuffer + 'w + Send
)
pub fn add_command_buffer_generation_task( &mut self, task: impl FnOnce(RenderDevice) -> CommandBuffer + 'w + Send )
Append a function that will generate a CommandBuffer
to the
command buffer queue, to be ran later.
If present, this will flush the currently unflushed CommandEncoder
into a CommandBuffer
into the queue before appending the provided
buffer.
sourcepub fn finish(
self
) -> (Vec<CommandBuffer>, RenderDevice, Option<DiagnosticsRecorder>)
pub fn finish( self ) -> (Vec<CommandBuffer>, RenderDevice, Option<DiagnosticsRecorder>)
Finalizes and returns the queue of CommandBuffer
s.
This function will wait until all command buffer generation tasks are complete by running them in parallel (where supported).
The CommandBuffer
s will be returned in the order that they were added.
Auto Trait Implementations§
impl<'w> Freeze for RenderContext<'w>
impl<'w> !RefUnwindSafe for RenderContext<'w>
impl<'w> Send for RenderContext<'w>
impl<'w> !Sync for RenderContext<'w>
impl<'w> Unpin for RenderContext<'w>
impl<'w> !UnwindSafe for RenderContext<'w>
Blanket Implementations§
source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist.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.