pub struct FrametimeGraphMaterial {
pub values: Handle<ShaderStorageBuffer>,
pub config: FrameTimeGraphConfigUniform,
}Expand description
The material used to render the frame time graph ui node
Fields§
§values: Handle<ShaderStorageBuffer>The history of the previous frame times value.
This should be updated every frame to match the frame time history from the DiagnosticsStore
config: FrameTimeGraphConfigUniformThe configuration values used by the shader to control how the graph is rendered
Trait Implementations§
Source§impl AsBindGroup for FrametimeGraphMaterial
impl AsBindGroup for FrametimeGraphMaterial
type Param = (Res<'static, RenderAssets<GpuImage>>, Res<'static, FallbackImage>, Res<'static, RenderAssets<GpuShaderStorageBuffer>>)
Source§fn unprepared_bind_group(
&self,
layout: &BindGroupLayout,
render_device: &RenderDevice,
(images, fallback_image, storage_buffers): &mut SystemParamItem<'_, '_, Self::Param>,
force_no_bindless: bool,
) -> Result<UnpreparedBindGroup, AsBindGroupError>
fn unprepared_bind_group( &self, layout: &BindGroupLayout, render_device: &RenderDevice, (images, fallback_image, storage_buffers): &mut SystemParamItem<'_, '_, Self::Param>, force_no_bindless: bool, ) -> Result<UnpreparedBindGroup, AsBindGroupError>
Returns a vec of (binding index,
OwnedBindingResource). Read morefn bind_group_data(&self) -> Self::Data
Source§fn bind_group_layout_entries(
render_device: &RenderDevice,
force_no_bindless: bool,
) -> Vec<BindGroupLayoutEntry>
fn bind_group_layout_entries( render_device: &RenderDevice, force_no_bindless: bool, ) -> Vec<BindGroupLayoutEntry>
Returns a vec of bind group layout entries. Read more
fn bindless_descriptor() -> Option<BindlessDescriptor>
Source§fn bindless_slot_count() -> Option<BindlessSlabResourceLimit>
fn bindless_slot_count() -> Option<BindlessSlabResourceLimit>
The number of slots per bind group, if bindless mode is enabled. Read more
Source§fn bindless_supported(_: &RenderDevice) -> bool
fn bindless_supported(_: &RenderDevice) -> bool
True if the hardware actually supports bindless textures for this
type, taking the device and driver capabilities into account. Read more
Source§fn as_bind_group(
&self,
layout_descriptor: &BindGroupLayoutDescriptor,
render_device: &RenderDevice,
pipeline_cache: &PipelineCache,
param: &mut <Self::Param as SystemParam>::Item<'_, '_>,
) -> Result<PreparedBindGroup, AsBindGroupError>
fn as_bind_group( &self, layout_descriptor: &BindGroupLayoutDescriptor, render_device: &RenderDevice, pipeline_cache: &PipelineCache, param: &mut <Self::Param as SystemParam>::Item<'_, '_>, ) -> Result<PreparedBindGroup, AsBindGroupError>
Creates a bind group for
self matching the layout defined in AsBindGroup::bind_group_layout.Source§fn bind_group_layout(render_device: &RenderDevice) -> BindGroupLayoutwhere
Self: Sized,
fn bind_group_layout(render_device: &RenderDevice) -> BindGroupLayoutwhere
Self: Sized,
Creates the bind group layout matching all bind groups returned by
AsBindGroup::as_bind_groupSource§fn bind_group_layout_descriptor(
render_device: &RenderDevice,
) -> BindGroupLayoutDescriptorwhere
Self: Sized,
fn bind_group_layout_descriptor(
render_device: &RenderDevice,
) -> BindGroupLayoutDescriptorwhere
Self: Sized,
Creates the bind group layout descriptor matching all bind groups returned by
AsBindGroup::as_bind_group
TODO: we only need RenderDevice to determine if bindless is supportedSource§impl Clone for FrametimeGraphMaterial
impl Clone for FrametimeGraphMaterial
Source§fn clone(&self) -> FrametimeGraphMaterial
fn clone(&self) -> FrametimeGraphMaterial
Returns a duplicate of the value. Read more
1.0.0 · 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 FrametimeGraphMaterial
impl Debug for FrametimeGraphMaterial
Source§impl TypePath for FrametimeGraphMaterial
impl TypePath for FrametimeGraphMaterial
Source§fn type_path() -> &'static str
fn type_path() -> &'static str
Returns the fully qualified path of the underlying type. Read more
Source§fn short_type_path() -> &'static str
fn short_type_path() -> &'static str
Returns a short, pretty-print enabled path to the type. Read more
Source§fn type_ident() -> Option<&'static str>
fn type_ident() -> Option<&'static str>
Source§fn crate_name() -> Option<&'static str>
fn crate_name() -> Option<&'static str>
Source§impl UiMaterial for FrametimeGraphMaterial
impl UiMaterial for FrametimeGraphMaterial
Source§fn fragment_shader() -> ShaderRef
fn fragment_shader() -> ShaderRef
Returns this materials fragment shader. If
ShaderRef::Default is returned, the default
UI fragment shader will be used.Source§fn vertex_shader() -> ShaderRef
fn vertex_shader() -> ShaderRef
Returns this materials vertex shader. If
ShaderRef::Default is returned, the default UI
vertex shader will be used.fn stack_z_offset() -> f32
fn specialize( descriptor: &mut RenderPipelineDescriptor, key: UiMaterialKey<Self>, )
Source§impl VisitAssetDependencies for FrametimeGraphMaterial
impl VisitAssetDependencies for FrametimeGraphMaterial
fn visit_dependencies(&self, visit: &mut impl FnMut(UntypedAssetId))
impl Asset for FrametimeGraphMaterial
Auto Trait Implementations§
impl Freeze for FrametimeGraphMaterial
impl !RefUnwindSafe for FrametimeGraphMaterial
impl Send for FrametimeGraphMaterial
impl Sync for FrametimeGraphMaterial
impl Unpin for FrametimeGraphMaterial
impl !UnwindSafe for FrametimeGraphMaterial
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
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> 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
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>
Converts
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>
Converts
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)
Converts
&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)
Converts
&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> DynamicTypePath for Twhere
T: TypePath,
impl<T> DynamicTypePath for Twhere
T: TypePath,
Source§fn reflect_type_path(&self) -> &str
fn reflect_type_path(&self) -> &str
See
TypePath::type_path.Source§fn reflect_short_type_path(&self) -> &str
fn reflect_short_type_path(&self) -> &str
Source§fn reflect_type_ident(&self) -> Option<&str>
fn reflect_type_ident(&self) -> Option<&str>
See
TypePath::type_ident.Source§fn reflect_crate_name(&self) -> Option<&str>
fn reflect_crate_name(&self) -> Option<&str>
See
TypePath::crate_name.Source§fn reflect_module_path(&self) -> Option<&str>
fn reflect_module_path(&self) -> Option<&str>
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>
Converts
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>
Converts
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>
Converts this type into the system output type.
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>
Creates a type-erased clone of this value.