pub struct RenderInstance(/* private fields */);Expand description
The GPU instance is used to initialize the RenderQueue and RenderDevice.
Implementations§
Source§impl RenderInstance
impl RenderInstance
Sourcepub fn new(t: Instance) -> RenderInstance
pub fn new(t: Instance) -> RenderInstance
Constructs a new instance of WgpuWrapper which will wrap the specified value.
Sourcepub fn into_inner(self) -> Instance
pub fn into_inner(self) -> Instance
Unwraps the value.
Methods from Deref<Target = Instance>§
Sourcepub fn wgsl_language_features(&self) -> WgslLanguageFeatures
pub fn wgsl_language_features(&self) -> WgslLanguageFeatures
Returns the set of WGSL language extensions supported by this instance.
Sourcepub fn request_adapter(
&self,
options: &RequestAdapterOptions<&Surface<'_>>,
) -> impl Future<Output = Result<Adapter, RequestAdapterError>> + WasmNotSend
pub fn request_adapter( &self, options: &RequestAdapterOptions<&Surface<'_>>, ) -> impl Future<Output = Result<Adapter, RequestAdapterError>> + WasmNotSend
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 satisfy all the “hard” options, an error is returned.
When targeting WebGL2, a compatible_surface
must be specified; using RequestAdapterOptions::default() will not succeed.
Sourcepub fn create_surface<'window>(
&self,
target: impl Into<SurfaceTarget<'window>>,
) -> Result<Surface<'window>, CreateSurfaceError>
pub fn create_surface<'window>( &self, target: impl Into<SurfaceTarget<'window>>, ) -> Result<Surface<'window>, CreateSurfaceError>
Creates a new surface targeting a given window/canvas/surface/etc..
Internally, this creates surfaces for all backends that are enabled for this instance.
See SurfaceTarget for what targets are supported.
See Instance::create_surface_unsafe() for surface creation with unsafe target variants.
Most commonly used are window handles (or provider of windows handles)
which can be passed directly as they’re automatically converted to SurfaceTarget.
Sourcepub unsafe fn create_surface_unsafe<'window>(
&self,
target: SurfaceTargetUnsafe,
) -> Result<Surface<'window>, CreateSurfaceError>
pub unsafe fn create_surface_unsafe<'window>( &self, target: SurfaceTargetUnsafe, ) -> Result<Surface<'window>, CreateSurfaceError>
Creates a new surface targeting a given window/canvas/surface/etc. using an unsafe target.
Internally, this creates surfaces for all backends that are enabled for this instance.
See SurfaceTargetUnsafe for what targets are supported.
See Instance::create_surface for surface creation with safe target variants.
§Safety
- See respective
SurfaceTargetUnsafevariants for safety requirements.
Sourcepub 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
Queues associated with this Instance is coordinated somehow,
this information could be out of date by the time the caller receives
it. Queues can be shared between threads, and other threads could
submit new work at any time.)
On the web, this is a no-op. Devices are automatically polled.
Sourcepub fn generate_report(&self) -> Option<GlobalReport>
pub fn generate_report(&self) -> Option<GlobalReport>
Generates memory report.
Returns None if the feature is not supported by the backend
which happens only when WebGPU is pre-selected by the instance creation.
Sourcepub unsafe fn as_hal<A>(&self) -> Option<&<A as Api>::Instance>where
A: Api,
pub unsafe fn as_hal<A>(&self) -> Option<&<A as Api>::Instance>where
A: Api,
Get the wgpu_hal instance from this Instance.
Find the Api struct corresponding to the active backend in wgpu_hal::api,
and pass that struct to the to the A type parameter.
Returns a guard that dereferences to the type of the hal backend
which implements A::Instance.
§Types
hal::api::Vulkanuseshal::vulkan::Instancehal::api::Metaluseshal::metal::Instancehal::api::Dx12useshal::dx12::Instancehal::api::Glesuseshal::gles::Instance
§Errors
This method will return None if:
- The instance is not from the backend specified by
A. - The instance is from the
webgpuorcustombackend.
§Safety
- The returned resource must not be destroyed unless the guard is the last reference to it and it is not in use by the GPU. The guard and handle may be dropped at any time however.
- All the safety requirements of wgpu-hal must be upheld.
Sourcepub unsafe fn create_adapter_from_hal<A>(
&self,
hal_adapter: ExposedAdapter<A>,
) -> Adapterwhere
A: Api,
pub unsafe fn create_adapter_from_hal<A>(
&self,
hal_adapter: ExposedAdapter<A>,
) -> Adapterwhere
A: Api,
Converts a wgpu-hal hal::ExposedAdapter to a wgpu Adapter.
§Types
The type of hal_adapter.adapter depends on the backend:
hal::api::Vulkanuseshal::vulkan::Adapterhal::api::Metaluseshal::metal::Adapterhal::api::Dx12useshal::dx12::Adapterhal::api::Glesuseshal::gles::Adapter
§Safety
hal_adapter must be created from this instance internal handle.
Trait Implementations§
Source§impl Clone for RenderInstance
impl Clone for RenderInstance
Source§fn clone(&self) -> RenderInstance
fn clone(&self) -> RenderInstance
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Component for RenderInstance
impl Component for RenderInstance
Source§const STORAGE_TYPE: StorageType = bevy_ecs::component::StorageType::SparseSet
const STORAGE_TYPE: StorageType = bevy_ecs::component::StorageType::SparseSet
Source§type Mutability = Mutable
type Mutability = Mutable
Component<Mutability = Mutable>,
while immutable components will instead have Component<Mutability = Immutable>. Read moreSource§fn register_required_components(
_requiree: ComponentId,
required_components: &mut RequiredComponentsRegistrator<'_, '_>,
)
fn register_required_components( _requiree: ComponentId, required_components: &mut RequiredComponentsRegistrator<'_, '_>, )
Source§fn clone_behavior() -> ComponentCloneBehavior
fn clone_behavior() -> ComponentCloneBehavior
Source§fn relationship_accessor() -> Option<ComponentRelationshipAccessor<RenderInstance>>
fn relationship_accessor() -> Option<ComponentRelationshipAccessor<RenderInstance>>
ComponentRelationshipAccessor required for working with relationships in dynamic contexts. Read moreSource§fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_discard() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_discard() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn map_entities<E>(_this: &mut Self, _mapper: &mut E)where
E: EntityMapper,
fn map_entities<E>(_this: &mut Self, _mapper: &mut E)where
E: EntityMapper,
EntityMapper. This is used to remap entities in contexts like scenes and entity cloning.
When deriving Component, this is populated by annotating fields containing entities with #[entities] Read moreSource§const HAS_SUMMARY_TICK: bool = false
const HAS_SUMMARY_TICK: bool = false
Source§impl Deref for RenderInstance
impl Deref for RenderInstance
Source§impl DerefMut for RenderInstance
impl DerefMut for RenderInstance
impl Resource for RenderInstance
impl Send for RenderInstance
impl Sync for RenderInstance
Auto Trait Implementations§
impl !RefUnwindSafe for RenderInstance
impl !UnwindSafe for RenderInstance
impl Freeze for RenderInstance
impl Unpin for RenderInstance
impl UnsafeUnpin for RenderInstance
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<C> Bundle for Cwhere
C: Component,
impl<C> Bundle for Cwhere
C: Component,
fn component_ids( components: &mut ComponentsRegistrator<'_>, ) -> impl Iterator<Item = ComponentId> + use<C>
Source§fn get_component_ids(
components: &Components,
) -> impl Iterator<Item = Option<ComponentId>>
fn get_component_ids( components: &Components, ) -> impl Iterator<Item = Option<ComponentId>>
Source§impl<C> BundleFromComponents for Cwhere
C: Component,
impl<C> BundleFromComponents for Cwhere
C: Component,
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> ConditionalSend for Twhere
T: Send,
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>, which can then be
downcast into Box<dyn 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>, which 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.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<C> DynamicBundle for Cwhere
C: Component,
impl<C> DynamicBundle for Cwhere
C: Component,
Source§unsafe fn get_components(
ptr: MovingPtr<'_, C>,
func: &mut impl FnMut(StorageType, OwningPtr<'_>),
) -> <C as DynamicBundle>::Effect
unsafe fn get_components( ptr: MovingPtr<'_, C>, func: &mut impl FnMut(StorageType, OwningPtr<'_>), ) -> <C as DynamicBundle>::Effect
Source§unsafe fn apply_effect(
_ptr: MovingPtr<'_, MaybeUninit<C>>,
_entity: &mut EntityWorldMut<'_>,
)
unsafe fn apply_effect( _ptr: MovingPtr<'_, MaybeUninit<C>>, _entity: &mut EntityWorldMut<'_>, )
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
Source§fn into_result(self) -> Result<T, RunSystemError>
fn into_result(self) -> Result<T, RunSystemError>
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
impl<T> Settings for T
Source§impl<T> Template for T
impl<T> Template for T
Source§fn build_template(
&self,
_context: &mut TemplateContext<'_, '_>,
) -> Result<<T as Template>::Output, BevyError>
fn build_template( &self, _context: &mut TemplateContext<'_, '_>, ) -> Result<<T as Template>::Output, BevyError>
entity context to produce a Template::Output.Source§fn clone_template(&self) -> T
fn clone_template(&self) -> T
Clone.Source§impl<T> TypeData for T
impl<T> TypeData for T
Source§fn clone_type_data(&self) -> Box<dyn TypeData>
fn clone_type_data(&self) -> Box<dyn TypeData>
self.