Struct bevy::render::renderer::ErasedRenderDevice
pub struct ErasedRenderDevice(/* private fields */);
Implementations§
§impl ErasedRenderDevice
impl ErasedRenderDevice
pub fn new(value: Device) -> ErasedRenderDevice
pub fn try_unwrap(self) -> Option<Device>
Methods from Deref<Target = Device>§
pub fn poll(&self, maintain: Maintain<SubmissionIndex>) -> bool
pub fn poll(&self, maintain: Maintain<SubmissionIndex>) -> bool
Check for resource cleanups and mapping callbacks.
Return true
if the queue is empty, or false
if there are more queue
submissions still in flight. (Note that, unless access to the [Queue
] is
coordinated somehow, this information could be out of date by the time
the caller receives it. Queue
s can be shared between threads, so
other threads could submit new work at any time.)
On the web, this is a no-op. Device
s are automatically polled.
pub fn features(&self) -> Features
pub fn features(&self) -> Features
List all features that may be used with this device.
Functions may panic if you use unsupported features.
pub fn limits(&self) -> Limits
pub fn limits(&self) -> Limits
List all limits that were requested of this device.
If any of these limits are exceeded, functions may panic.
pub fn create_shader_module(
&self,
desc: ShaderModuleDescriptor<'_>
) -> ShaderModule
pub fn create_shader_module( &self, desc: ShaderModuleDescriptor<'_> ) -> ShaderModule
Creates a shader module from either SPIR-V or WGSL source code.
pub unsafe fn create_shader_module_unchecked(
&self,
desc: ShaderModuleDescriptor<'_>
) -> ShaderModule
pub unsafe fn create_shader_module_unchecked( &self, desc: ShaderModuleDescriptor<'_> ) -> ShaderModule
Creates a shader module from either SPIR-V or WGSL source code without runtime checks.
Safety
In contrast with create_shader_module
this function
creates a shader module without runtime checks which allows shaders to perform
operations which can lead to undefined behavior like indexing out of bounds, thus it’s
the caller responsibility to pass a shader which doesn’t perform any of this
operations.
This has no effect on web.
pub unsafe fn create_shader_module_spirv(
&self,
desc: &ShaderModuleDescriptorSpirV<'_>
) -> ShaderModule
pub unsafe fn create_shader_module_spirv( &self, desc: &ShaderModuleDescriptorSpirV<'_> ) -> ShaderModule
Creates a shader module from SPIR-V binary directly.
Safety
This function passes binary data to the backend as-is and can potentially result in a driver crash or bogus behaviour. No attempt is made to ensure that data is valid SPIR-V.
See also [include_spirv_raw!
] and [util::make_spirv_raw
].
pub fn create_command_encoder(
&self,
desc: &CommandEncoderDescriptor<Option<&str>>
) -> CommandEncoder
pub fn create_command_encoder( &self, desc: &CommandEncoderDescriptor<Option<&str>> ) -> CommandEncoder
Creates an empty CommandEncoder
.
pub fn create_render_bundle_encoder(
&self,
desc: &RenderBundleEncoderDescriptor<'_>
) -> RenderBundleEncoder<'_>
pub fn create_render_bundle_encoder( &self, desc: &RenderBundleEncoderDescriptor<'_> ) -> RenderBundleEncoder<'_>
Creates an empty [RenderBundleEncoder
].
pub fn create_bind_group(&self, desc: &BindGroupDescriptor<'_>) -> BindGroup
pub fn create_bind_group(&self, desc: &BindGroupDescriptor<'_>) -> BindGroup
Creates a new [BindGroup
].
pub fn create_bind_group_layout(
&self,
desc: &BindGroupLayoutDescriptor<'_>
) -> BindGroupLayout
pub fn create_bind_group_layout( &self, desc: &BindGroupLayoutDescriptor<'_> ) -> BindGroupLayout
Creates a [BindGroupLayout
].
pub fn create_pipeline_layout(
&self,
desc: &PipelineLayoutDescriptor<'_>
) -> PipelineLayout
pub fn create_pipeline_layout( &self, desc: &PipelineLayoutDescriptor<'_> ) -> PipelineLayout
Creates a PipelineLayout
.
pub fn create_render_pipeline(
&self,
desc: &RenderPipelineDescriptor<'_>
) -> RenderPipeline
pub fn create_render_pipeline( &self, desc: &RenderPipelineDescriptor<'_> ) -> RenderPipeline
Creates a [RenderPipeline
].
pub fn create_compute_pipeline(
&self,
desc: &ComputePipelineDescriptor<'_>
) -> ComputePipeline
pub fn create_compute_pipeline( &self, desc: &ComputePipelineDescriptor<'_> ) -> ComputePipeline
Creates a [ComputePipeline
].
pub fn create_buffer(&self, desc: &BufferDescriptor<Option<&str>>) -> Buffer
pub fn create_buffer(&self, desc: &BufferDescriptor<Option<&str>>) -> Buffer
Creates a [Buffer
].
pub fn create_texture(
&self,
desc: &TextureDescriptor<Option<&str>, &[TextureFormat]>
) -> Texture
pub fn create_texture( &self, desc: &TextureDescriptor<Option<&str>, &[TextureFormat]> ) -> Texture
Creates a new [Texture
].
desc
specifies the general format of the texture.
pub unsafe fn create_texture_from_hal<A>(
&self,
hal_texture: <A as Api>::Texture,
desc: &TextureDescriptor<Option<&str>, &[TextureFormat]>
) -> Texturewhere
A: HalApi,
pub unsafe fn create_texture_from_hal<A>( &self, hal_texture: <A as Api>::Texture, desc: &TextureDescriptor<Option<&str>, &[TextureFormat]> ) -> Texturewhere A: HalApi,
Creates a [Texture
] from a wgpu-hal Texture.
Safety
hal_texture
must be created from this device internal handlehal_texture
must be created respectingdesc
hal_texture
must be initialized
pub unsafe fn create_buffer_from_hal<A>(
&self,
hal_buffer: <A as Api>::Buffer,
desc: &BufferDescriptor<Option<&str>>
) -> Bufferwhere
A: HalApi,
pub unsafe fn create_buffer_from_hal<A>( &self, hal_buffer: <A as Api>::Buffer, desc: &BufferDescriptor<Option<&str>> ) -> Bufferwhere A: HalApi,
Creates a [Buffer
] from a wgpu-hal Buffer.
Safety
hal_buffer
must be created from this device internal handlehal_buffer
must be created respectingdesc
hal_buffer
must be initialized
pub fn create_sampler(&self, desc: &SamplerDescriptor<'_>) -> Sampler
pub fn create_sampler(&self, desc: &SamplerDescriptor<'_>) -> Sampler
Creates a new [Sampler
].
desc
specifies the behavior of the sampler.
pub fn create_query_set(
&self,
desc: &QuerySetDescriptor<Option<&str>>
) -> QuerySet
pub fn create_query_set( &self, desc: &QuerySetDescriptor<Option<&str>> ) -> QuerySet
Creates a new [QuerySet
].
pub fn on_uncaptured_error(
&self,
handler: Box<dyn UncapturedErrorHandler<Output = ()>, Global>
)
pub fn on_uncaptured_error( &self, handler: Box<dyn UncapturedErrorHandler<Output = ()>, Global> )
Set a callback for errors that are not handled in error scopes.
pub fn push_error_scope(&self, filter: ErrorFilter)
pub fn push_error_scope(&self, filter: ErrorFilter)
Push an error scope.
pub fn pop_error_scope(
&self
) -> impl Future<Output = Option<Error>> + WasmNotSend
pub fn pop_error_scope( &self ) -> impl Future<Output = Option<Error>> + WasmNotSend
Pop an error scope.
pub fn start_capture(&self)
pub fn start_capture(&self)
Starts frame capture.
pub fn stop_capture(&self)
pub fn stop_capture(&self)
Stops frame capture.
pub unsafe fn as_hal<A, F, R>(&self, hal_device_callback: F) -> Rwhere
A: HalApi,
F: FnOnce(Option<&<A as Api>::Device>) -> R,
pub unsafe fn as_hal<A, F, R>(&self, hal_device_callback: F) -> Rwhere A: HalApi, F: FnOnce(Option<&<A as Api>::Device>) -> R,
Apply a callback to this Device
’s underlying backend device.
If this Device
is implemented by the backend API given by A
(Vulkan,
Dx12, etc.), then apply hal_device_callback
to Some(&device)
, where
device
is the underlying backend device type, A::Device
.
If this Device
uses a different backend, apply hal_device_callback
to None
.
The device is locked for reading while hal_device_callback
runs. If
the callback attempts to perform any wgpu
operations that require
write access to the device (destroying a buffer, say), deadlock will
occur. The locks are automatically released when the callback returns.
Safety
- The raw handle passed to the callback must not be manually destroyed.
Trait Implementations§
§impl Clone for ErasedRenderDevice
impl Clone for ErasedRenderDevice
§fn clone(&self) -> ErasedRenderDevice
fn clone(&self) -> ErasedRenderDevice
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for ErasedRenderDevice
impl Debug for ErasedRenderDevice
§impl Deref for ErasedRenderDevice
impl Deref for ErasedRenderDevice
§impl Drop for ErasedRenderDevice
impl Drop for ErasedRenderDevice
impl Send for ErasedRenderDevice
impl Sync for ErasedRenderDevice
Auto Trait Implementations§
impl RefUnwindSafe for ErasedRenderDevice
impl Unpin for ErasedRenderDevice
impl UnwindSafe for ErasedRenderDevice
Blanket Implementations§
§impl<T, U> AsBindGroupShaderType<U> for Twhere
U: ShaderType,
&'a T: for<'a> Into<U>,
impl<T, U> AsBindGroupShaderType<U> for Twhere U: ShaderType, &'a T: for<'a> Into<U>,
§fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> 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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
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, Global>) -> Rc<dyn Any, Global>
fn into_any_rc(self: Rc<T, Global>) -> Rc<dyn Any, Global>
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)
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.§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.