pub struct Empty;
Available on crate feature
wgpu
only.Trait Implementations§
§impl Adapter<Api> for Context
impl Adapter<Api> for Context
unsafe fn open( &self, features: Features, _limits: &Limits ) -> Result<OpenDevice<Api>, DeviceError>
§unsafe fn texture_format_capabilities(
&self,
format: TextureFormat
) -> TextureFormatCapabilities
unsafe fn texture_format_capabilities( &self, format: TextureFormat ) -> TextureFormatCapabilities
Return the set of supported capabilities for a texture format.
§unsafe fn surface_capabilities(
&self,
surface: &Context
) -> Option<SurfaceCapabilities>
unsafe fn surface_capabilities( &self, surface: &Context ) -> Option<SurfaceCapabilities>
Returns the capabilities of working with a specified surface. Read more
§unsafe fn get_presentation_timestamp(&self) -> PresentationTimestamp
unsafe fn get_presentation_timestamp(&self) -> PresentationTimestamp
Creates a
PresentationTimestamp
using the adapter’s WSI.§impl Api for Api
impl Api for Api
type Instance = Context
type Surface = Context
type Adapter = Context
type Device = Context
type Queue = Context
type CommandEncoder = Encoder
type CommandBuffer = Resource
type Buffer = Resource
type Texture = Resource
type SurfaceTexture = Resource
type TextureView = Resource
type Sampler = Resource
type QuerySet = Resource
type Fence = Resource
type AccelerationStructure = Resource
type BindGroupLayout = Resource
type BindGroup = Resource
type PipelineLayout = Resource
type ShaderModule = Resource
type RenderPipeline = Resource
type ComputePipeline = Resource
§impl CommandEncoder<Api> for Encoder
impl CommandEncoder<Api> for Encoder
§unsafe fn begin_encoding(
&mut self,
label: Option<&str>
) -> Result<(), DeviceError>
unsafe fn begin_encoding( &mut self, label: Option<&str> ) -> Result<(), DeviceError>
Begin encoding a new command buffer.
§unsafe fn discard_encoding(&mut self)
unsafe fn discard_encoding(&mut self)
Discard currently recorded list, if any.
unsafe fn end_encoding(&mut self) -> Result<Resource, DeviceError>
§unsafe fn reset_all<I>(&mut self, command_buffers: I)
unsafe fn reset_all<I>(&mut self, command_buffers: I)
Reclaims all resources that are allocated for this encoder.
Must get all of the produced command buffers back,
and they must not be used by GPU at this moment.
unsafe fn transition_buffers<'a, T>(&mut self, barriers: T)
unsafe fn transition_textures<'a, T>(&mut self, barriers: T)
unsafe fn clear_buffer(&mut self, buffer: &Resource, range: Range<u64>)
unsafe fn copy_buffer_to_buffer<T>( &mut self, src: &Resource, dst: &Resource, regions: T )
§unsafe fn copy_texture_to_texture<T>(
&mut self,
src: &Resource,
src_usage: TextureUses,
dst: &Resource,
regions: T
)
unsafe fn copy_texture_to_texture<T>( &mut self, src: &Resource, src_usage: TextureUses, dst: &Resource, regions: T )
Copy from one texture to another.
Works with a single array layer.
Note:
dst
current usage has to be TextureUses::COPY_DST
.
Note: the copy extent is in physical size (rounded to the block size)§unsafe fn copy_buffer_to_texture<T>(
&mut self,
src: &Resource,
dst: &Resource,
regions: T
)
unsafe fn copy_buffer_to_texture<T>( &mut self, src: &Resource, dst: &Resource, regions: T )
Copy from buffer to texture.
Works with a single array layer.
Note:
dst
current usage has to be TextureUses::COPY_DST
.
Note: the copy extent is in physical size (rounded to the block size)§unsafe fn copy_texture_to_buffer<T>(
&mut self,
src: &Resource,
src_usage: TextureUses,
dst: &Resource,
regions: T
)
unsafe fn copy_texture_to_buffer<T>( &mut self, src: &Resource, src_usage: TextureUses, dst: &Resource, regions: T )
Copy from texture to buffer.
Works with a single array layer.
Note: the copy extent is in physical size (rounded to the block size)
§unsafe fn begin_query(&mut self, set: &Resource, index: u32)
unsafe fn begin_query(&mut self, set: &Resource, index: u32)
Safety: Read more
unsafe fn write_timestamp(&mut self, set: &Resource, index: u32)
unsafe fn reset_queries(&mut self, set: &Resource, range: Range<u32>)
unsafe fn copy_query_results( &mut self, set: &Resource, range: Range<u32>, buffer: &Resource, offset: u64, stride: NonZero<u64> )
unsafe fn begin_render_pass(&mut self, desc: &RenderPassDescriptor<'_, Api>)
unsafe fn end_render_pass(&mut self)
§unsafe fn set_bind_group(
&mut self,
layout: &Resource,
index: u32,
group: &Resource,
dynamic_offsets: &[u32]
)
unsafe fn set_bind_group( &mut self, layout: &Resource, index: u32, group: &Resource, dynamic_offsets: &[u32] )
Sets the bind group at
index
to group
, assuming the layout
of all the preceeding groups to be taken from layout
.§unsafe fn set_push_constants(
&mut self,
layout: &Resource,
stages: ShaderStages,
offset_bytes: u32,
data: &[u32]
)
unsafe fn set_push_constants( &mut self, layout: &Resource, stages: ShaderStages, offset_bytes: u32, data: &[u32] )
Sets a range in push constant data. Read more
unsafe fn insert_debug_marker(&mut self, label: &str)
unsafe fn begin_debug_marker(&mut self, group_label: &str)
unsafe fn end_debug_marker(&mut self)
unsafe fn set_render_pipeline(&mut self, pipeline: &Resource)
unsafe fn set_index_buffer<'a>( &mut self, binding: BufferBinding<'a, Api>, format: IndexFormat )
unsafe fn set_vertex_buffer<'a>( &mut self, index: u32, binding: BufferBinding<'a, Api> )
unsafe fn set_viewport(&mut self, rect: &Rect<f32>, depth_range: Range<f32>)
unsafe fn set_scissor_rect(&mut self, rect: &Rect<u32>)
unsafe fn set_stencil_reference(&mut self, value: u32)
unsafe fn set_blend_constants(&mut self, color: &[f32; 4])
unsafe fn draw( &mut self, first_vertex: u32, vertex_count: u32, first_instance: u32, instance_count: u32 )
unsafe fn draw_indexed( &mut self, first_index: u32, index_count: u32, base_vertex: i32, first_instance: u32, instance_count: u32 )
unsafe fn draw_indirect( &mut self, buffer: &Resource, offset: u64, draw_count: u32 )
unsafe fn draw_indexed_indirect( &mut self, buffer: &Resource, offset: u64, draw_count: u32 )
unsafe fn draw_indirect_count( &mut self, buffer: &Resource, offset: u64, count_buffer: &Resource, count_offset: u64, max_count: u32 )
unsafe fn draw_indexed_indirect_count( &mut self, buffer: &Resource, offset: u64, count_buffer: &Resource, count_offset: u64, max_count: u32 )
unsafe fn begin_compute_pass(&mut self, desc: &ComputePassDescriptor<'_, Api>)
unsafe fn end_compute_pass(&mut self)
unsafe fn set_compute_pipeline(&mut self, pipeline: &Resource)
unsafe fn dispatch(&mut self, count: [u32; 3])
unsafe fn dispatch_indirect(&mut self, buffer: &Resource, offset: u64)
§unsafe fn build_acceleration_structures<'a, T>(
&mut self,
_descriptor_count: u32,
descriptors: T
)
unsafe fn build_acceleration_structures<'a, T>( &mut self, _descriptor_count: u32, descriptors: T )
To get the required sizes for the buffer allocations use
get_acceleration_structure_build_sizes
per descriptor
All buffers must be synchronized externally
All buffer regions, which are written to may only be passed once per function call,
with the exception of updates in the same descriptor.
Consequences of this limitation: Read moreunsafe fn place_acceleration_structure_barrier( &mut self, _barriers: AccelerationStructureBarrier )
§impl Device<Api> for Context
impl Device<Api> for Context
§unsafe fn create_buffer(
&self,
desc: &BufferDescriptor<'_>
) -> Result<Resource, DeviceError>
unsafe fn create_buffer( &self, desc: &BufferDescriptor<'_> ) -> Result<Resource, DeviceError>
Creates a new buffer. Read more
unsafe fn destroy_buffer(&self, buffer: Resource)
unsafe fn map_buffer( &self, buffer: &Resource, range: Range<u64> ) -> Result<BufferMapping, DeviceError>
unsafe fn unmap_buffer(&self, buffer: &Resource) -> Result<(), DeviceError>
unsafe fn flush_mapped_ranges<I>(&self, buffer: &Resource, ranges: I)
unsafe fn invalidate_mapped_ranges<I>(&self, buffer: &Resource, ranges: I)
§unsafe fn create_texture(
&self,
desc: &TextureDescriptor<'_>
) -> Result<Resource, DeviceError>
unsafe fn create_texture( &self, desc: &TextureDescriptor<'_> ) -> Result<Resource, DeviceError>
Creates a new texture. Read more
unsafe fn destroy_texture(&self, texture: Resource)
unsafe fn create_texture_view( &self, texture: &Resource, desc: &TextureViewDescriptor<'_> ) -> Result<Resource, DeviceError>
unsafe fn destroy_texture_view(&self, view: Resource)
unsafe fn create_sampler( &self, desc: &SamplerDescriptor<'_> ) -> Result<Resource, DeviceError>
unsafe fn destroy_sampler(&self, sampler: Resource)
unsafe fn create_command_encoder( &self, desc: &CommandEncoderDescriptor<'_, Api> ) -> Result<Encoder, DeviceError>
unsafe fn destroy_command_encoder(&self, encoder: Encoder)
§unsafe fn create_bind_group_layout(
&self,
desc: &BindGroupLayoutDescriptor<'_>
) -> Result<Resource, DeviceError>
unsafe fn create_bind_group_layout( &self, desc: &BindGroupLayoutDescriptor<'_> ) -> Result<Resource, DeviceError>
Creates a bind group layout.
unsafe fn destroy_bind_group_layout(&self, bg_layout: Resource)
unsafe fn create_pipeline_layout( &self, desc: &PipelineLayoutDescriptor<'_, Api> ) -> Result<Resource, DeviceError>
unsafe fn destroy_pipeline_layout(&self, pipeline_layout: Resource)
unsafe fn create_bind_group( &self, desc: &BindGroupDescriptor<'_, Api> ) -> Result<Resource, DeviceError>
unsafe fn destroy_bind_group(&self, group: Resource)
unsafe fn create_shader_module( &self, desc: &ShaderModuleDescriptor<'_>, shader: ShaderInput<'_> ) -> Result<Resource, ShaderError>
unsafe fn destroy_shader_module(&self, module: Resource)
unsafe fn create_render_pipeline( &self, desc: &RenderPipelineDescriptor<'_, Api> ) -> Result<Resource, PipelineError>
unsafe fn destroy_render_pipeline(&self, pipeline: Resource)
unsafe fn create_compute_pipeline( &self, desc: &ComputePipelineDescriptor<'_, Api> ) -> Result<Resource, PipelineError>
unsafe fn destroy_compute_pipeline(&self, pipeline: Resource)
unsafe fn create_query_set( &self, desc: &QuerySetDescriptor<Option<&str>> ) -> Result<Resource, DeviceError>
unsafe fn destroy_query_set(&self, set: Resource)
unsafe fn create_fence(&self) -> Result<Resource, DeviceError>
unsafe fn destroy_fence(&self, fence: Resource)
unsafe fn get_fence_value(&self, fence: &Resource) -> Result<u64, DeviceError>
§unsafe fn wait(
&self,
fence: &Resource,
value: u64,
timeout_ms: u32
) -> Result<bool, DeviceError>
unsafe fn wait( &self, fence: &Resource, value: u64, timeout_ms: u32 ) -> Result<bool, DeviceError>
Calling wait with a lower value than the current fence value will immediately return.
unsafe fn start_capture(&self) -> bool
unsafe fn stop_capture(&self)
unsafe fn create_acceleration_structure( &self, desc: &AccelerationStructureDescriptor<'_> ) -> Result<Resource, DeviceError>
unsafe fn get_acceleration_structure_build_sizes<'a>( &self, _desc: &GetAccelerationStructureBuildSizesDescriptor<'a, Api> ) -> AccelerationStructureBuildSizes
unsafe fn get_acceleration_structure_device_address( &self, _acceleration_structure: &Resource ) -> u64
unsafe fn destroy_acceleration_structure( &self, _acceleration_structure: Resource )
§impl HalApi for Api
impl HalApi for Api
const VARIANT: Backend = Backend::Empty
fn create_instance_from_hal(_: &str, _: <Api as Api>::Instance) -> Instance
fn instance_as_hal(_: &Instance) -> Option<&<Api as Api>::Instance>
fn hub<G>(_: &Global<G>) -> &Hub<Api>where
G: GlobalIdentityHandlerFactory,
fn get_surface(_: &Surface) -> Option<&HalSurface<Api>>
§impl Instance<Api> for Context
impl Instance<Api> for Context
unsafe fn init(desc: &InstanceDescriptor<'_>) -> Result<Context, InstanceError>
unsafe fn create_surface( &self, _display_handle: RawDisplayHandle, _window_handle: RawWindowHandle ) -> Result<Context, InstanceError>
unsafe fn destroy_surface(&self, surface: Context)
unsafe fn enumerate_adapters(&self) -> Vec<ExposedAdapter<Api>>
§impl Queue<Api> for Context
impl Queue<Api> for Context
§unsafe fn submit(
&self,
command_buffers: &[&Resource],
signal_fence: Option<(&mut Resource, u64)>
) -> Result<(), DeviceError>
unsafe fn submit( &self, command_buffers: &[&Resource], signal_fence: Option<(&mut Resource, u64)> ) -> Result<(), DeviceError>
Submits the command buffers for execution on GPU. Read more
unsafe fn present( &self, surface: &Context, texture: Resource ) -> Result<(), SurfaceError>
unsafe fn get_timestamp_period(&self) -> f32
§impl Surface<Api> for Context
impl Surface<Api> for Context
§unsafe fn configure(
&self,
device: &Context,
config: &SurfaceConfiguration
) -> Result<(), SurfaceError>
unsafe fn configure( &self, device: &Context, config: &SurfaceConfiguration ) -> Result<(), SurfaceError>
Configures the surface to use the given device. Read more
§unsafe fn unconfigure(&self, device: &Context)
unsafe fn unconfigure(&self, device: &Context)
Unconfigures the surface on the given device. Read more
§unsafe fn acquire_texture(
&self,
timeout: Option<Duration>
) -> Result<Option<AcquiredSurfaceTexture<Api>>, SurfaceError>
unsafe fn acquire_texture( &self, timeout: Option<Duration> ) -> Result<Option<AcquiredSurfaceTexture<Api>>, SurfaceError>
Returns the next texture to be presented by the swapchain for drawing Read more
unsafe fn discard_texture(&self, texture: Resource)
Auto Trait Implementations§
impl RefUnwindSafe for Api
impl Send for Api
impl Sync for Api
impl Unpin for Api
impl UnwindSafe for Api
Blanket Implementations§
source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Convert the source color to the destination color using the specified
method.
source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Convert the source color to the destination color using the bradford
method by default.
source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Cast a collection of colors into a collection of arrays.
source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
Cast this collection of arrays into a collection of colors.
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, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Cast a collection of colors into a collection of color components.
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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
.§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
.§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.§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.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
Performs a conversion from
angle
.source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
Converts
other
into Self
, while performing the appropriate scaling,
rounding and clamping.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
source§fn into_angle(self) -> U
fn into_angle(self) -> U
Performs a conversion into
T
.source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
source§fn into_color(self) -> U
fn into_color(self) -> U
Convert into T with values clamped to the color defined bounds Read more
source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
Convert into T. The resulting color might be invalid in its color space Read more
source§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
Converts
self
into T
, while performing the appropriate scaling,
rounding and clamping.§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
The error for when
try_into_colors
fails to cast.source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Try to cast this collection of color components into a collection of
colors. Read more
source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
Convert into T, returning ok if the color is inside of its defined
range, otherwise an
OutOfBounds
error is returned which contains
the unclamped color. Read moresource§impl<C, U> UintsFrom<C> for Uwhere
C: IntoUints<U>,
impl<C, U> UintsFrom<C> for Uwhere
C: IntoUints<U>,
source§fn uints_from(colors: C) -> U
fn uints_from(colors: C) -> U
Cast a collection of colors into a collection of unsigned integers.
source§impl<C, U> UintsInto<C> for Uwhere
C: FromUints<U>,
impl<C, U> UintsInto<C> for Uwhere
C: FromUints<U>,
source§fn uints_into(self) -> C
fn uints_into(self) -> C
Cast this collection of unsigned integers into a collection of colors.