pub struct DeviceRequirementsError {
pub adapter: String,
pub backend: Backend,
pub missing_limits: Vec<MissingLimit>,
pub missing_features: Features,
}Expand description
The adapter can’t provide the limits or features the game asked for in
GraphicsConfig. Returned (inside the anyhow::Error) by
Graphics::new; downcast_ref it to tell it apart from other init
failures.
WebGL2 (the web fallback when the browser has no WebGPU) has no compute shaders and much
lower limits, so a game that requires compute fails here there. To show a “WebGPU
required” screen instead, set continue_without_requirements and check
Graphics::unmet_requirements(), or ask with preferred_limits and check
Graphics::supports_compute and
ctx.gfx.device().limits() in Game::init.
Fields§
§adapter: StringThe adapter’s name, as wgpu reports it.
backend: Backend§missing_limits: Vec<MissingLimit>§missing_features: FeaturesTrait Implementations§
Source§impl Clone for DeviceRequirementsError
impl Clone for DeviceRequirementsError
Source§fn clone(&self) -> DeviceRequirementsError
fn clone(&self) -> DeviceRequirementsError
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for DeviceRequirementsError
impl Debug for DeviceRequirementsError
Source§impl Display for DeviceRequirementsError
impl Display for DeviceRequirementsError
impl Eq for DeviceRequirementsError
Source§impl Error for DeviceRequirementsError
impl Error for DeviceRequirementsError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Source§impl PartialEq for DeviceRequirementsError
impl PartialEq for DeviceRequirementsError
impl StructuralPartialEq for DeviceRequirementsError
Auto Trait Implementations§
impl Forget for DeviceRequirementsError
impl Freeze for DeviceRequirementsError
impl RefUnwindSafe for DeviceRequirementsError
impl Send for DeviceRequirementsError
impl Sync for DeviceRequirementsError
impl Unpin for DeviceRequirementsError
impl UnsafeUnpin for DeviceRequirementsError
impl UnwindSafe for DeviceRequirementsError
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
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,
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>
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>
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)
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)
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> DowncastSync for T
impl<T> DowncastSync for T
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.