pub struct Context;
Trait Implementations§
§impl Adapter for Context
impl Adapter for Context
type A = Api
unsafe fn open( &self, features: Features, _limits: &Limits, _memory_hints: &MemoryHints ) -> 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 Device for Context
impl Device for Context
type A = Api
§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 destroy_buffer(&self, buffer: Resource)
Free
buffer
and any GPU resources it owns. Read more§unsafe fn map_buffer(
&self,
buffer: &Resource,
range: Range<u64>
) -> Result<BufferMapping, DeviceError>
unsafe fn map_buffer( &self, buffer: &Resource, range: Range<u64> ) -> Result<BufferMapping, DeviceError>
Return a pointer to CPU memory mapping the contents of
buffer
. Read more§unsafe fn unmap_buffer(&self, buffer: &Resource)
unsafe fn unmap_buffer(&self, buffer: &Resource)
Remove the mapping established by the last call to
Device::map_buffer
. Read more§unsafe fn flush_mapped_ranges<I>(&self, buffer: &Resource, ranges: I)
unsafe fn flush_mapped_ranges<I>(&self, buffer: &Resource, ranges: I)
Indicate that CPU writes to mapped buffer memory should be made visible to the GPU. Read more
§unsafe fn invalidate_mapped_ranges<I>(&self, buffer: &Resource, ranges: I)
unsafe fn invalidate_mapped_ranges<I>(&self, buffer: &Resource, ranges: I)
Indicate that GPU writes to mapped buffer memory should be made visible to the CPU. Read more
§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 create_command_encoder( &self, desc: &CommandEncoderDescriptor<'_, Api> ) -> Result<Encoder, DeviceError>
Create a fresh
CommandEncoder
. Read moreunsafe 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_pipeline_cache( &self, desc: &PipelineCacheDescriptor<'_> ) -> Result<Resource, PipelineCacheError>
unsafe fn destroy_pipeline_cache(&self, cache: 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>
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 )
fn get_internal_counters(&self) -> HalCounters
fn pipeline_cache_validation_key(&self) -> Option<[u8; 16]>
unsafe fn pipeline_cache_get_data( &self, cache: &<Self::A as Api>::PipelineCache ) -> Option<Vec<u8>>
§impl Instance for Context
impl Instance for Context
type A = Api
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,
_surface_hint: Option<&Context>
) -> Vec<ExposedAdapter<Api>>
unsafe fn enumerate_adapters( &self, _surface_hint: Option<&Context> ) -> Vec<ExposedAdapter<Api>>
surface_hint
is only used by the GLES backend targeting WebGL2§impl Queue for Context
impl Queue for Context
type A = Api
§unsafe fn submit(
&self,
command_buffers: &[&Resource],
surface_textures: &[&Resource],
signal_fence: (&mut Resource, u64)
) -> Result<(), DeviceError>
unsafe fn submit( &self, command_buffers: &[&Resource], surface_textures: &[&Resource], signal_fence: (&mut Resource, u64) ) -> Result<(), DeviceError>
Submit
command_buffers
for execution on GPU. Read moreunsafe fn present( &self, surface: &Context, texture: Resource ) -> Result<(), SurfaceError>
unsafe fn get_timestamp_period(&self) -> f32
§impl Surface for Context
impl Surface for Context
type A = Api
§unsafe fn configure(
&self,
device: &Context,
config: &SurfaceConfiguration
) -> Result<(), SurfaceError>
unsafe fn configure( &self, device: &Context, config: &SurfaceConfiguration ) -> Result<(), SurfaceError>
§unsafe fn unconfigure(&self, device: &Context)
unsafe fn unconfigure(&self, device: &Context)
§unsafe fn acquire_texture(
&self,
timeout: Option<Duration>,
fence: &Resource
) -> Result<Option<AcquiredSurfaceTexture<Api>>, SurfaceError>
unsafe fn acquire_texture( &self, timeout: Option<Duration>, fence: &Resource ) -> Result<Option<AcquiredSurfaceTexture<Api>>, SurfaceError>
Return the next texture to be presented by
self
, for the caller to draw on. Read more§unsafe fn discard_texture(&self, texture: Resource)
unsafe fn discard_texture(&self, texture: Resource)
Relinquish an acquired texture without presenting it. Read more
Auto Trait Implementations§
impl Freeze for Context
impl RefUnwindSafe for Context
impl Send for Context
impl Sync for Context
impl Unpin for Context
impl UnwindSafe for Context
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
source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Casts the value.
source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Casts the value.
§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
§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> 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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request
source§impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
source§fn lossless_try_into(self) -> Option<Dst>
fn lossless_try_into(self) -> Option<Dst>
Performs the conversion.
source§impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
source§fn lossy_into(self) -> Dst
fn lossy_into(self) -> Dst
Performs the conversion.
source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Casts the value.
source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
Casts the value.
§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
Casts the value.
source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Casts the value.
source§impl<T> UnwrappedAs for T
impl<T> UnwrappedAs for T
source§fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
Casts the value.
source§impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
source§fn unwrapped_cast_from(src: Src) -> Dst
fn unwrapped_cast_from(src: Src) -> Dst
Casts the value.
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
source§impl<T> WrappingAs for T
impl<T> WrappingAs for T
source§fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
Casts the value.
source§impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
source§fn wrapping_cast_from(src: Src) -> Dst
fn wrapping_cast_from(src: Src) -> Dst
Casts the value.