Struct bevy::render::renderer::RenderInstance
pub struct RenderInstance(pub Instance);
Expand description
The GPU instance is used to initialize the RenderQueue
and RenderDevice
,
as well as to create WindowSurfaces
.
Tuple Fields§
§0: Instance
Methods from Deref<Target = Instance>§
pub fn enumerate_adapters(
&self,
backends: Backends
) -> impl Iterator<Item = Adapter>
pub fn enumerate_adapters( &self, backends: Backends ) -> impl Iterator<Item = Adapter>
pub fn request_adapter(
&self,
options: &RequestAdapterOptions<&Surface>
) -> impl Future<Output = Option<Adapter>> + Send
pub fn request_adapter( &self, options: &RequestAdapterOptions<&Surface> ) -> impl Future<Output = Option<Adapter>> + Send
Retrieves an [Adapter
] which matches the given [RequestAdapterOptions
].
Some options are “soft”, so treated as non-mandatory. Others are “hard”.
If no adapters are found that suffice all the “hard” options, None
is returned.
pub unsafe fn create_adapter_from_hal<A>(
&self,
hal_adapter: ExposedAdapter<A>
) -> Adapterwhere
A: HalApi,
pub unsafe fn create_adapter_from_hal<A>( &self, hal_adapter: ExposedAdapter<A> ) -> Adapterwhere A: HalApi,
Converts a wgpu-hal ExposedAdapter
to a wgpu [Adapter
].
Safety
hal_adapter
must be created from this instance internal handle.
pub unsafe fn create_surface<W>(
&self,
window: &W
) -> Result<Surface, CreateSurfaceError>where
W: HasRawWindowHandle + HasRawDisplayHandle,
pub unsafe fn create_surface<W>( &self, window: &W ) -> Result<Surface, CreateSurfaceError>where W: HasRawWindowHandle + HasRawDisplayHandle,
Creates a surface from a raw window handle.
If the specified display and window handle are not supported by any of the backends, then the surface will not be supported by any adapters.
Safety
raw_window_handle
must be a valid object to create a surface upon.raw_window_handle
must remain valid until after the returned [Surface
] is dropped.
Errors
- On WebGL2: Will return an error if the browser does not support WebGL2, or declines to provide GPU access (such as due to a resource shortage).
Panics
- On macOS/Metal: will panic if not called on the main thread.
- On web: will panic if the
raw_window_handle
does not properly refer to a canvas element.
pub unsafe fn create_surface_from_visual(&self, visual: *mut c_void) -> Surface
pub unsafe fn create_surface_from_visual(&self, visual: *mut c_void) -> Surface
Creates a surface from IDCompositionVisual
.
Safety
- visual must be a valid IDCompositionVisual to create a surface upon.
pub unsafe fn create_surface_from_surface_handle(
&self,
surface_handle: *mut c_void
) -> Surface
pub unsafe fn create_surface_from_surface_handle( &self, surface_handle: *mut c_void ) -> Surface
Creates a surface from SurfaceHandle
.
Safety
- surface_handle must be a valid SurfaceHandle to create a surface upon.
pub fn poll_all(&self, force_wait: bool) -> bool
pub fn poll_all(&self, force_wait: bool) -> bool
Polls all devices.
If force_wait
is true and this is not running on the web, then this
function will block until all in-flight buffers have been mapped and
all submitted commands have finished execution.
Return true
if all devices’ queues are empty, or false
if there are
queue submissions still in flight. (Note that, unless access to all
Queue
s associated with this [Instance
] is coordinated somehow,
this information could be out of date by the time the caller receives
it. Queue
s can be shared between threads, and other threads could
submit new work at any time.)
On the web, this is a no-op. Device
s are automatically polled.
pub fn generate_report(&self) -> GlobalReport
pub fn generate_report(&self) -> GlobalReport
Generates memory report.
Trait Implementations§
§impl Deref for RenderInstance
impl Deref for RenderInstance
§impl DerefMut for RenderInstance
impl DerefMut for RenderInstance
§fn deref_mut(&mut self) -> &mut <RenderInstance as Deref>::Target
fn deref_mut(&mut self) -> &mut <RenderInstance as Deref>::Target
impl Resource for RenderInstancewhere RenderInstance: Send + Sync + 'static,
Auto Trait Implementations§
impl !RefUnwindSafe for RenderInstance
impl Send for RenderInstance
impl Sync for RenderInstance
impl Unpin for RenderInstance
impl !UnwindSafe for RenderInstance
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.§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, 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>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
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.