pub enum StorageTextureAccess {
WriteOnly,
ReadOnly,
ReadWrite,
}
Expand description
Specific type of a sample in a texture binding.
For use in BindingType::StorageTexture
.
Corresponds to WebGPU GPUStorageTextureAccess
.
Variants§
WriteOnly
The texture can only be written in the shader and it:
- may or may not be annotated with
write
(WGSL). - must be annotated with
writeonly
(GLSL).
Example WGSL syntax:
@group(0) @binding(0)
var my_storage_image: texture_storage_2d<r32float, write>;
Example GLSL syntax:
layout(set=0, binding=0, r32f) writeonly uniform image2D myStorageImage;
ReadOnly
The texture can only be read in the shader and it must be annotated with read
(WGSL) or
readonly
(GLSL).
Features::TEXTURE_ADAPTER_SPECIFIC_FORMAT_FEATURES
must be enabled to use this access
mode. This is a native-only extension.
Example WGSL syntax:
@group(0) @binding(0)
var my_storage_image: texture_storage_2d<r32float, read>;
Example GLSL syntax:
layout(set=0, binding=0, r32f) readonly uniform image2D myStorageImage;
ReadWrite
The texture can be both read and written in the shader and must be annotated with
read_write
in WGSL.
Features::TEXTURE_ADAPTER_SPECIFIC_FORMAT_FEATURES
must be enabled to use this access
mode. This is a nonstandard, native-only extension.
Example WGSL syntax:
@group(0) @binding(0)
var my_storage_image: texture_storage_2d<r32float, read_write>;
Example GLSL syntax:
layout(set=0, binding=0, r32f) uniform image2D myStorageImage;
Trait Implementations§
Source§impl Clone for StorageTextureAccess
impl Clone for StorageTextureAccess
Source§fn clone(&self) -> StorageTextureAccess
fn clone(&self) -> StorageTextureAccess
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for StorageTextureAccess
impl Debug for StorageTextureAccess
Source§impl Hash for StorageTextureAccess
impl Hash for StorageTextureAccess
Source§impl PartialEq for StorageTextureAccess
impl PartialEq for StorageTextureAccess
impl Copy for StorageTextureAccess
impl Eq for StorageTextureAccess
impl StructuralPartialEq for StorageTextureAccess
Auto Trait Implementations§
impl Freeze for StorageTextureAccess
impl RefUnwindSafe for StorageTextureAccess
impl Send for StorageTextureAccess
impl Sync for StorageTextureAccess
impl Unpin for StorageTextureAccess
impl UnwindSafe for StorageTextureAccess
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<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>
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>
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)
&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> DowncastSync for T
impl<T> DowncastSync for T
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§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
key
and return true
if they are equal.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 more