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>

source

pub fn new( render_device: RenderDevice, adapter_info: AdapterInfo, diagnostics_recorder: Option<DiagnosticsRecorder> ) -> Self

Creates a new RenderContext from a RenderDevice.

source

pub fn render_device(&self) -> &RenderDevice

Gets the underlying RenderDevice.

source

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.

source

pub fn command_encoder(&mut self) -> &mut CommandEncoder

Gets the current CommandEncoder.

source

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.

source

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.

source

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.

source

pub fn finish( self ) -> (Vec<CommandBuffer>, RenderDevice, Option<DiagnosticsRecorder>)

Finalizes and returns the queue of CommandBuffers.

This function will wait until all command buffer generation tasks are complete by running them in parallel (where supported).

The CommandBuffers 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> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T, U> AsBindGroupShaderType<U> for T
where U: ShaderType, &'a T: for<'a> Into<U>,

source§

fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U

Return the T ShaderType for self. When used in AsBindGroup derives, it is safe to assume that all images in self exist.
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<T> for T

source§

fn downcast(&self) -> &T

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> 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>,

§

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

source§

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

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

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

source§

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