pub struct Global<G: GlobalIdentityHandlerFactory> {
pub instance: Instance,
pub surfaces: Registry<Surface, SurfaceId, G>,
/* private fields */
}
Fields
instance: Instance
surfaces: Registry<Surface, SurfaceId, G>
Implementations
sourceimpl<G: GlobalIdentityHandlerFactory> Global<G>
impl<G: GlobalIdentityHandlerFactory> Global<G>
pub fn command_encoder_clear_buffer<A: HalApi>(
&self,
command_encoder_id: CommandEncoderId,
dst: BufferId,
offset: BufferAddress,
size: Option<BufferSize>
) -> Result<(), ClearError>
pub fn command_encoder_clear_texture<A: HalApi>(
&self,
command_encoder_id: CommandEncoderId,
dst: TextureId,
subresource_range: &ImageSubresourceRange
) -> Result<(), ClearError>
sourceimpl<G: GlobalIdentityHandlerFactory> Global<G>
impl<G: GlobalIdentityHandlerFactory> Global<G>
pub fn command_encoder_run_compute_pass<A: HalApi>(
&self,
encoder_id: CommandEncoderId,
pass: &ComputePass
) -> Result<(), ComputePassError>
sourceimpl<G: GlobalIdentityHandlerFactory> Global<G>
impl<G: GlobalIdentityHandlerFactory> Global<G>
pub fn command_encoder_write_timestamp<A: HalApi>(
&self,
command_encoder_id: CommandEncoderId,
query_set_id: QuerySetId,
query_index: u32
) -> Result<(), QueryError>
pub fn command_encoder_resolve_query_set<A: HalApi>(
&self,
command_encoder_id: CommandEncoderId,
query_set_id: QuerySetId,
start_query: u32,
query_count: u32,
destination: BufferId,
destination_offset: BufferAddress
) -> Result<(), QueryError>
sourceimpl<G: GlobalIdentityHandlerFactory> Global<G>
impl<G: GlobalIdentityHandlerFactory> Global<G>
pub fn command_encoder_run_render_pass<A: HalApi>(
&self,
encoder_id: CommandEncoderId,
pass: &RenderPass
) -> Result<(), RenderPassError>
sourceimpl<G: GlobalIdentityHandlerFactory> Global<G>
impl<G: GlobalIdentityHandlerFactory> Global<G>
pub fn command_encoder_copy_buffer_to_buffer<A: HalApi>(
&self,
command_encoder_id: CommandEncoderId,
source: BufferId,
source_offset: BufferAddress,
destination: BufferId,
destination_offset: BufferAddress,
size: BufferAddress
) -> Result<(), CopyError>
pub fn command_encoder_copy_buffer_to_texture<A: HalApi>(
&self,
command_encoder_id: CommandEncoderId,
source: &ImageCopyBuffer,
destination: &ImageCopyTexture,
copy_size: &Extent3d
) -> Result<(), CopyError>
pub fn command_encoder_copy_texture_to_buffer<A: HalApi>(
&self,
command_encoder_id: CommandEncoderId,
source: &ImageCopyTexture,
destination: &ImageCopyBuffer,
copy_size: &Extent3d
) -> Result<(), CopyError>
pub fn command_encoder_copy_texture_to_texture<A: HalApi>(
&self,
command_encoder_id: CommandEncoderId,
source: &ImageCopyTexture,
destination: &ImageCopyTexture,
copy_size: &Extent3d
) -> Result<(), CopyError>
sourceimpl<G: GlobalIdentityHandlerFactory> Global<G>
impl<G: GlobalIdentityHandlerFactory> Global<G>
pub fn command_encoder_finish<A: HalApi>(
&self,
encoder_id: CommandEncoderId,
_desc: &CommandBufferDescriptor<Label<'_>>
) -> (CommandBufferId, Option<CommandEncoderError>)
pub fn command_encoder_push_debug_group<A: HalApi>(
&self,
encoder_id: CommandEncoderId,
label: &str
) -> Result<(), CommandEncoderError>
pub fn command_encoder_insert_debug_marker<A: HalApi>(
&self,
encoder_id: CommandEncoderId,
label: &str
) -> Result<(), CommandEncoderError>
pub fn command_encoder_pop_debug_group<A: HalApi>(
&self,
encoder_id: CommandEncoderId
) -> Result<(), CommandEncoderError>
sourceimpl<G: GlobalIdentityHandlerFactory> Global<G>
impl<G: GlobalIdentityHandlerFactory> Global<G>
pub fn queue_write_buffer<A: HalApi>(
&self,
queue_id: QueueId,
buffer_id: BufferId,
buffer_offset: BufferAddress,
data: &[u8]
) -> Result<(), QueueWriteError>
pub fn queue_create_staging_buffer<A: HalApi>(
&self,
queue_id: QueueId,
buffer_size: BufferSize,
id_in: Input<G, StagingBufferId>
) -> Result<(StagingBufferId, *mut u8), QueueWriteError>
pub fn queue_write_staging_buffer<A: HalApi>(
&self,
queue_id: QueueId,
buffer_id: BufferId,
buffer_offset: BufferAddress,
staging_buffer_id: StagingBufferId
) -> Result<(), QueueWriteError>
pub fn queue_validate_write_buffer<A: HalApi>(
&self,
_queue_id: QueueId,
buffer_id: BufferId,
buffer_offset: u64,
buffer_size: u64
) -> Result<(), QueueWriteError>
pub fn queue_write_texture<A: HalApi>(
&self,
queue_id: QueueId,
destination: &ImageCopyTexture,
data: &[u8],
data_layout: &ImageDataLayout,
size: &Extent3d
) -> Result<(), QueueWriteError>
pub fn queue_submit<A: HalApi>(
&self,
queue_id: QueueId,
command_buffer_ids: &[CommandBufferId]
) -> Result<WrappedSubmissionIndex, QueueSubmitError>
pub fn queue_get_timestamp_period<A: HalApi>(
&self,
queue_id: QueueId
) -> Result<f32, InvalidQueue>
pub fn queue_on_submitted_work_done<A: HalApi>(
&self,
queue_id: QueueId,
closure: SubmittedWorkDoneClosure
) -> Result<(), InvalidQueue>
sourceimpl<G: GlobalIdentityHandlerFactory> Global<G>
impl<G: GlobalIdentityHandlerFactory> Global<G>
pub fn adapter_is_surface_supported<A: HalApi>(
&self,
adapter_id: AdapterId,
surface_id: SurfaceId
) -> Result<bool, IsSurfaceSupportedError>
pub fn surface_get_supported_formats<A: HalApi>(
&self,
surface_id: SurfaceId,
adapter_id: AdapterId
) -> Result<Vec<TextureFormat>, GetSurfaceSupportError>
pub fn surface_get_supported_modes<A: HalApi>(
&self,
surface_id: SurfaceId,
adapter_id: AdapterId
) -> Result<Vec<PresentMode>, GetSurfaceSupportError>
pub fn device_features<A: HalApi>(
&self,
device_id: DeviceId
) -> Result<Features, InvalidDevice>
pub fn device_limits<A: HalApi>(
&self,
device_id: DeviceId
) -> Result<Limits, InvalidDevice>
pub fn device_downlevel_properties<A: HalApi>(
&self,
device_id: DeviceId
) -> Result<DownlevelCapabilities, InvalidDevice>
pub fn device_create_buffer<A: HalApi>(
&self,
device_id: DeviceId,
desc: &BufferDescriptor<'_>,
id_in: Input<G, BufferId>
) -> (BufferId, Option<CreateBufferError>)
sourcepub fn create_buffer_error<A: HalApi>(
&self,
id_in: Input<G, BufferId>,
label: Label<'_>
)
pub fn create_buffer_error<A: HalApi>(
&self,
id_in: Input<G, BufferId>,
label: Label<'_>
)
Assign id_in
an error with the given label
.
Ensure that future attempts to use id_in
as a buffer ID will propagate
the error, following the WebGPU “contagious invalidity” style.
Firefox uses this function to comply strictly with the WebGPU spec,
which requires GPUBufferDescriptor
validation to be generated on the
Device timeline and leave the newly created GPUBuffer
invalid.
Ideally, we would simply let device_create_buffer
take care of all
of this, but some errors must be detected before we can even construct a
wgpu_types::BufferDescriptor
to give it. For example, the WebGPU API
allows a GPUBufferDescriptor
’s usage
property to be any WebIDL
unsigned long
value, but we can’t construct a
wgpu_types::BufferUsages
value from values with unassigned bits
set. This means we must validate usage
before we can call
device_create_buffer
.
When that validation fails, we must arrange for the buffer id to be considered invalid. This method provides the means to do so.
sourcepub fn create_texture_error<A: HalApi>(
&self,
id_in: Input<G, TextureId>,
label: Label<'_>
)
pub fn create_texture_error<A: HalApi>(
&self,
id_in: Input<G, TextureId>,
label: Label<'_>
)
Assign id_in
an error with the given label
.
See create_buffer_error
for more context and explaination.
pub fn buffer_label<A: HalApi>(&self, id: BufferId) -> String
pub fn buffer_destroy<A: HalApi>(
&self,
buffer_id: BufferId
) -> Result<(), DestroyError>
pub fn buffer_drop<A: HalApi>(&self, buffer_id: BufferId, wait: bool)
pub fn device_create_texture<A: HalApi>(
&self,
device_id: DeviceId,
desc: &TextureDescriptor<'_>,
id_in: Input<G, TextureId>
) -> (TextureId, Option<CreateTextureError>)
sourcepub unsafe fn create_texture_from_hal<A: HalApi>(
&self,
hal_texture: A::Texture,
device_id: DeviceId,
desc: &TextureDescriptor<'_>,
id_in: Input<G, TextureId>
) -> (TextureId, Option<CreateTextureError>)
pub unsafe fn create_texture_from_hal<A: HalApi>(
&self,
hal_texture: A::Texture,
device_id: DeviceId,
desc: &TextureDescriptor<'_>,
id_in: Input<G, TextureId>
) -> (TextureId, Option<CreateTextureError>)
Safety
hal_texture
must be created fromdevice_id
corresponding raw handle.hal_texture
must be created respectingdesc
hal_texture
must be initialized
pub fn texture_label<A: HalApi>(&self, id: TextureId) -> String
pub fn texture_destroy<A: HalApi>(
&self,
texture_id: TextureId
) -> Result<(), DestroyError>
pub fn texture_drop<A: HalApi>(&self, texture_id: TextureId, wait: bool)
pub fn texture_create_view<A: HalApi>(
&self,
texture_id: TextureId,
desc: &TextureViewDescriptor<'_>,
id_in: Input<G, TextureViewId>
) -> (TextureViewId, Option<CreateTextureViewError>)
pub fn texture_view_label<A: HalApi>(&self, id: TextureViewId) -> String
pub fn texture_view_drop<A: HalApi>(
&self,
texture_view_id: TextureViewId,
wait: bool
) -> Result<(), TextureViewDestroyError>
pub fn device_create_sampler<A: HalApi>(
&self,
device_id: DeviceId,
desc: &SamplerDescriptor<'_>,
id_in: Input<G, SamplerId>
) -> (SamplerId, Option<CreateSamplerError>)
pub fn sampler_label<A: HalApi>(&self, id: SamplerId) -> String
pub fn sampler_drop<A: HalApi>(&self, sampler_id: SamplerId)
pub fn device_create_bind_group_layout<A: HalApi>(
&self,
device_id: DeviceId,
desc: &BindGroupLayoutDescriptor<'_>,
id_in: Input<G, BindGroupLayoutId>
) -> (BindGroupLayoutId, Option<CreateBindGroupLayoutError>)
pub fn bind_group_layout_label<A: HalApi>(&self, id: BindGroupLayoutId) -> String
pub fn bind_group_layout_drop<A: HalApi>(
&self,
bind_group_layout_id: BindGroupLayoutId
)
pub fn device_create_pipeline_layout<A: HalApi>(
&self,
device_id: DeviceId,
desc: &PipelineLayoutDescriptor<'_>,
id_in: Input<G, PipelineLayoutId>
) -> (PipelineLayoutId, Option<CreatePipelineLayoutError>)
pub fn pipeline_layout_label<A: HalApi>(&self, id: PipelineLayoutId) -> String
pub fn pipeline_layout_drop<A: HalApi>(
&self,
pipeline_layout_id: PipelineLayoutId
)
pub fn device_create_bind_group<A: HalApi>(
&self,
device_id: DeviceId,
desc: &BindGroupDescriptor<'_>,
id_in: Input<G, BindGroupId>
) -> (BindGroupId, Option<CreateBindGroupError>)
pub fn bind_group_label<A: HalApi>(&self, id: BindGroupId) -> String
pub fn bind_group_drop<A: HalApi>(&self, bind_group_id: BindGroupId)
pub fn device_create_shader_module<A: HalApi>(
&self,
device_id: DeviceId,
desc: &ShaderModuleDescriptor<'_>,
source: ShaderModuleSource<'_>,
id_in: Input<G, ShaderModuleId>
) -> (ShaderModuleId, Option<CreateShaderModuleError>)
sourcepub unsafe fn device_create_shader_module_spirv<A: HalApi>(
&self,
device_id: DeviceId,
desc: &ShaderModuleDescriptor<'_>,
source: Cow<'_, [u32]>,
id_in: Input<G, ShaderModuleId>
) -> (ShaderModuleId, Option<CreateShaderModuleError>)
pub unsafe fn device_create_shader_module_spirv<A: HalApi>(
&self,
device_id: DeviceId,
desc: &ShaderModuleDescriptor<'_>,
source: Cow<'_, [u32]>,
id_in: Input<G, ShaderModuleId>
) -> (ShaderModuleId, Option<CreateShaderModuleError>)
Safety
This function passes SPIR-V binary to the backend as-is and can potentially result in a driver crash.
pub fn shader_module_label<A: HalApi>(&self, id: ShaderModuleId) -> String
pub fn shader_module_drop<A: HalApi>(&self, shader_module_id: ShaderModuleId)
pub fn device_create_command_encoder<A: HalApi>(
&self,
device_id: DeviceId,
desc: &CommandEncoderDescriptor<Label<'_>>,
id_in: Input<G, CommandEncoderId>
) -> (CommandEncoderId, Option<DeviceError>)
pub fn command_buffer_label<A: HalApi>(&self, id: CommandBufferId) -> String
pub fn command_encoder_drop<A: HalApi>(
&self,
command_encoder_id: CommandEncoderId
)
pub fn command_buffer_drop<A: HalApi>(&self, command_buffer_id: CommandBufferId)
pub fn device_create_render_bundle_encoder(
&self,
device_id: DeviceId,
desc: &RenderBundleEncoderDescriptor<'_>
) -> (RenderBundleEncoderId, Option<CreateRenderBundleError>)
pub fn render_bundle_encoder_finish<A: HalApi>(
&self,
bundle_encoder: RenderBundleEncoder,
desc: &RenderBundleDescriptor<'_>,
id_in: Input<G, RenderBundleId>
) -> (RenderBundleId, Option<RenderBundleError>)
pub fn render_bundle_label<A: HalApi>(&self, id: RenderBundleId) -> String
pub fn render_bundle_drop<A: HalApi>(&self, render_bundle_id: RenderBundleId)
pub fn device_create_query_set<A: HalApi>(
&self,
device_id: DeviceId,
desc: &QuerySetDescriptor<'_>,
id_in: Input<G, QuerySetId>
) -> (QuerySetId, Option<CreateQuerySetError>)
pub fn query_set_drop<A: HalApi>(&self, query_set_id: QuerySetId)
pub fn device_create_render_pipeline<A: HalApi>(
&self,
device_id: DeviceId,
desc: &RenderPipelineDescriptor<'_>,
id_in: Input<G, RenderPipelineId>,
implicit_pipeline_ids: Option<ImplicitPipelineIds<'_, G>>
) -> (RenderPipelineId, Option<CreateRenderPipelineError>)
sourcepub fn render_pipeline_get_bind_group_layout<A: HalApi>(
&self,
pipeline_id: RenderPipelineId,
index: u32,
id_in: Input<G, BindGroupLayoutId>
) -> (BindGroupLayoutId, Option<GetBindGroupLayoutError>)
pub fn render_pipeline_get_bind_group_layout<A: HalApi>(
&self,
pipeline_id: RenderPipelineId,
index: u32,
id_in: Input<G, BindGroupLayoutId>
) -> (BindGroupLayoutId, Option<GetBindGroupLayoutError>)
Get an ID of one of the bind group layouts. The ID adds a refcount,
which needs to be released by calling bind_group_layout_drop
.
pub fn render_pipeline_label<A: HalApi>(&self, id: RenderPipelineId) -> String
pub fn render_pipeline_drop<A: HalApi>(
&self,
render_pipeline_id: RenderPipelineId
)
pub fn device_create_compute_pipeline<A: HalApi>(
&self,
device_id: DeviceId,
desc: &ComputePipelineDescriptor<'_>,
id_in: Input<G, ComputePipelineId>,
implicit_pipeline_ids: Option<ImplicitPipelineIds<'_, G>>
) -> (ComputePipelineId, Option<CreateComputePipelineError>)
sourcepub fn compute_pipeline_get_bind_group_layout<A: HalApi>(
&self,
pipeline_id: ComputePipelineId,
index: u32,
id_in: Input<G, BindGroupLayoutId>
) -> (BindGroupLayoutId, Option<GetBindGroupLayoutError>)
pub fn compute_pipeline_get_bind_group_layout<A: HalApi>(
&self,
pipeline_id: ComputePipelineId,
index: u32,
id_in: Input<G, BindGroupLayoutId>
) -> (BindGroupLayoutId, Option<GetBindGroupLayoutError>)
Get an ID of one of the bind group layouts. The ID adds a refcount,
which needs to be released by calling bind_group_layout_drop
.
pub fn compute_pipeline_label<A: HalApi>(&self, id: ComputePipelineId) -> String
pub fn compute_pipeline_drop<A: HalApi>(
&self,
compute_pipeline_id: ComputePipelineId
)
pub fn surface_configure<A: HalApi>(
&self,
surface_id: SurfaceId,
device_id: DeviceId,
config: &SurfaceConfiguration
) -> Option<ConfigureSurfaceError>
sourcepub fn device_poll<A: HalApi>(
&self,
device_id: DeviceId,
maintain: Maintain<WrappedSubmissionIndex>
) -> Result<bool, WaitIdleError>
pub fn device_poll<A: HalApi>(
&self,
device_id: DeviceId,
maintain: Maintain<WrappedSubmissionIndex>
) -> Result<bool, WaitIdleError>
Check device_id
for freeable resources and completed buffer mappings.
Return queue_empty
indicating whether there are more queue submissions still in flight.
sourcepub fn poll_all_devices(&self, force_wait: bool) -> Result<bool, WaitIdleError>
pub fn poll_all_devices(&self, force_wait: bool) -> Result<bool, WaitIdleError>
Poll all devices on all backends.
This is the implementation of wgpu::Instance::poll_all
.
Return all_queue_empty
indicating whether there are more queue submissions still in flight.
pub fn device_label<A: HalApi>(&self, id: DeviceId) -> String
pub fn device_start_capture<A: HalApi>(&self, id: DeviceId)
pub fn device_stop_capture<A: HalApi>(&self, id: DeviceId)
pub fn device_drop<A: HalApi>(&self, device_id: DeviceId)
pub fn buffer_map_async<A: HalApi>(
&self,
buffer_id: BufferId,
range: Range<BufferAddress>,
op: BufferMapOperation
) -> Result<(), BufferAccessError>
pub fn buffer_get_mapped_range<A: HalApi>(
&self,
buffer_id: BufferId,
offset: BufferAddress,
size: Option<BufferAddress>
) -> Result<(*mut u8, u64), BufferAccessError>
pub fn buffer_unmap<A: HalApi>(
&self,
buffer_id: BufferId
) -> Result<(), BufferAccessError>
sourceimpl<G: GlobalIdentityHandlerFactory> Global<G>
impl<G: GlobalIdentityHandlerFactory> Global<G>
pub fn new(name: &str, factory: G, backends: Backends) -> Self
sourcepub unsafe fn from_hal_instance<A: HalApi>(
name: &str,
factory: G,
hal_instance: A::Instance
) -> Self
pub unsafe fn from_hal_instance<A: HalApi>(
name: &str,
factory: G,
hal_instance: A::Instance
) -> Self
Safety
Refer to the creation of wgpu-hal Instance for every backend.
sourcepub unsafe fn instance_as_hal<A: HalApi, F: FnOnce(Option<&A::Instance>) -> R, R>(
&self,
hal_instance_callback: F
) -> R
pub unsafe fn instance_as_hal<A: HalApi, F: FnOnce(Option<&A::Instance>) -> R, R>(
&self,
hal_instance_callback: F
) -> R
Safety
- The raw handle obtained from the hal Instance must not be manually destroyed
sourcepub unsafe fn from_instance(factory: G, instance: Instance) -> Self
pub unsafe fn from_instance(factory: G, instance: Instance) -> Self
Safety
- The raw handles obtained from the Instance must not be manually destroyed
pub fn clear_backend<A: HalApi>(&self, _dummy: ())
pub fn generate_report(&self) -> GlobalReport
sourceimpl<G: GlobalIdentityHandlerFactory> Global<G>
impl<G: GlobalIdentityHandlerFactory> Global<G>
pub fn surface_drop(&self, id: SurfaceId)
pub fn enumerate_adapters(
&self,
inputs: AdapterInputs<'_, Input<G, AdapterId>>
) -> Vec<AdapterId>
pub fn request_adapter(
&self,
desc: &RequestAdapterOptions,
inputs: AdapterInputs<'_, Input<G, AdapterId>>
) -> Result<AdapterId, RequestAdapterError>
sourcepub unsafe fn create_adapter_from_hal<A: HalApi>(
&self,
hal_adapter: ExposedAdapter<A>,
input: Input<G, AdapterId>
) -> AdapterId
pub unsafe fn create_adapter_from_hal<A: HalApi>(
&self,
hal_adapter: ExposedAdapter<A>,
input: Input<G, AdapterId>
) -> AdapterId
Safety
hal_adapter
must be created from this global internal instance handle.
pub fn adapter_get_info<A: HalApi>(
&self,
adapter_id: AdapterId
) -> Result<AdapterInfo, InvalidAdapter>
pub fn adapter_get_texture_format_features<A: HalApi>(
&self,
adapter_id: AdapterId,
format: TextureFormat
) -> Result<TextureFormatFeatures, InvalidAdapter>
pub fn adapter_features<A: HalApi>(
&self,
adapter_id: AdapterId
) -> Result<Features, InvalidAdapter>
pub fn adapter_limits<A: HalApi>(
&self,
adapter_id: AdapterId
) -> Result<Limits, InvalidAdapter>
pub fn adapter_downlevel_capabilities<A: HalApi>(
&self,
adapter_id: AdapterId
) -> Result<DownlevelCapabilities, InvalidAdapter>
pub fn adapter_drop<A: HalApi>(&self, adapter_id: AdapterId)
sourceimpl<G: GlobalIdentityHandlerFactory> Global<G>
impl<G: GlobalIdentityHandlerFactory> Global<G>
pub fn adapter_request_device<A: HalApi>(
&self,
adapter_id: AdapterId,
desc: &DeviceDescriptor<'_>,
trace_path: Option<&Path>,
id_in: Input<G, DeviceId>
) -> (DeviceId, Option<RequestDeviceError>)
sourcepub unsafe fn create_device_from_hal<A: HalApi>(
&self,
adapter_id: AdapterId,
hal_device: OpenDevice<A>,
desc: &DeviceDescriptor<'_>,
trace_path: Option<&Path>,
id_in: Input<G, DeviceId>
) -> (DeviceId, Option<RequestDeviceError>)
pub unsafe fn create_device_from_hal<A: HalApi>(
&self,
adapter_id: AdapterId,
hal_device: OpenDevice<A>,
desc: &DeviceDescriptor<'_>,
trace_path: Option<&Path>,
id_in: Input<G, DeviceId>
) -> (DeviceId, Option<RequestDeviceError>)
Safety
hal_device
must be created fromadapter_id
or its internal handle.desc
must be a subset ofhal_device
features and limits.
sourceimpl<G: GlobalIdentityHandlerFactory> Global<G>
impl<G: GlobalIdentityHandlerFactory> Global<G>
pub fn surface_get_current_texture<A: HalApi>(
&self,
surface_id: SurfaceId,
texture_id_in: Input<G, TextureId>
) -> Result<SurfaceOutput, SurfaceError>
pub fn surface_present<A: HalApi>(
&self,
surface_id: SurfaceId
) -> Result<Status, SurfaceError>
pub fn surface_texture_discard<A: HalApi>(
&self,
surface_id: SurfaceId
) -> Result<(), SurfaceError>
sourceimpl<G: GlobalIdentityHandlerFactory> Global<G>
impl<G: GlobalIdentityHandlerFactory> Global<G>
sourcepub unsafe fn texture_as_hal<A: HalApi, F: FnOnce(Option<&A::Texture>)>(
&self,
id: TextureId,
hal_texture_callback: F
)
pub unsafe fn texture_as_hal<A: HalApi, F: FnOnce(Option<&A::Texture>)>(
&self,
id: TextureId,
hal_texture_callback: F
)
Safety
- The raw texture handle must not be manually destroyed
Trait Implementations
Auto Trait Implementations
impl<G> !RefUnwindSafe for Global<G>
impl<G> Send for Global<G> where
<G as IdentityHandlerFactory<Id<BindGroup<Api>>>>::Filter: Send,
<G as IdentityHandlerFactory<Id<CommandBuffer<Api>>>>::Filter: Send,
<G as IdentityHandlerFactory<Id<Device<Api>>>>::Filter: Send,
<G as IdentityHandlerFactory<Id<Surface>>>::Filter: Send,
<G as IdentityHandlerFactory<Id<Adapter<Api>>>>::Filter: Send,
<G as IdentityHandlerFactory<Id<Buffer<Api>>>>::Filter: Send,
<G as IdentityHandlerFactory<Id<StagingBuffer<Api>>>>::Filter: Send,
<G as IdentityHandlerFactory<Id<RenderBundle<Api>>>>::Filter: Send,
<G as IdentityHandlerFactory<Id<BindGroupLayout<Api>>>>::Filter: Send,
<G as IdentityHandlerFactory<Id<PipelineLayout<Api>>>>::Filter: Send,
<G as IdentityHandlerFactory<Id<ShaderModule<Api>>>>::Filter: Send,
<G as IdentityHandlerFactory<Id<ComputePipeline<Api>>>>::Filter: Send,
<G as IdentityHandlerFactory<Id<RenderPipeline<Api>>>>::Filter: Send,
<G as IdentityHandlerFactory<Id<Texture<Api>>>>::Filter: Send,
<G as IdentityHandlerFactory<Id<TextureView<Api>>>>::Filter: Send,
<G as IdentityHandlerFactory<Id<Sampler<Api>>>>::Filter: Send,
<G as IdentityHandlerFactory<Id<QuerySet<Api>>>>::Filter: Send,
impl<G> Sync for Global<G> where
<G as IdentityHandlerFactory<Id<BindGroup<Api>>>>::Filter: Sync,
<G as IdentityHandlerFactory<Id<CommandBuffer<Api>>>>::Filter: Sync,
<G as IdentityHandlerFactory<Id<Device<Api>>>>::Filter: Sync,
<G as IdentityHandlerFactory<Id<Surface>>>::Filter: Sync,
<G as IdentityHandlerFactory<Id<Adapter<Api>>>>::Filter: Sync,
<G as IdentityHandlerFactory<Id<Buffer<Api>>>>::Filter: Sync,
<G as IdentityHandlerFactory<Id<StagingBuffer<Api>>>>::Filter: Sync,
<G as IdentityHandlerFactory<Id<RenderBundle<Api>>>>::Filter: Sync,
<G as IdentityHandlerFactory<Id<BindGroupLayout<Api>>>>::Filter: Sync,
<G as IdentityHandlerFactory<Id<PipelineLayout<Api>>>>::Filter: Sync,
<G as IdentityHandlerFactory<Id<ShaderModule<Api>>>>::Filter: Sync,
<G as IdentityHandlerFactory<Id<ComputePipeline<Api>>>>::Filter: Sync,
<G as IdentityHandlerFactory<Id<RenderPipeline<Api>>>>::Filter: Sync,
<G as IdentityHandlerFactory<Id<Texture<Api>>>>::Filter: Sync,
<G as IdentityHandlerFactory<Id<TextureView<Api>>>>::Filter: Sync,
<G as IdentityHandlerFactory<Id<Sampler<Api>>>>::Filter: Sync,
<G as IdentityHandlerFactory<Id<QuerySet<Api>>>>::Filter: Sync,
impl<G> Unpin for Global<G> where
<G as IdentityHandlerFactory<Id<BindGroup<Api>>>>::Filter: Unpin,
<G as IdentityHandlerFactory<Id<CommandBuffer<Api>>>>::Filter: Unpin,
<G as IdentityHandlerFactory<Id<Device<Api>>>>::Filter: Unpin,
<G as IdentityHandlerFactory<Id<Surface>>>::Filter: Unpin,
<G as IdentityHandlerFactory<Id<Adapter<Api>>>>::Filter: Unpin,
<G as IdentityHandlerFactory<Id<Buffer<Api>>>>::Filter: Unpin,
<G as IdentityHandlerFactory<Id<StagingBuffer<Api>>>>::Filter: Unpin,
<G as IdentityHandlerFactory<Id<RenderBundle<Api>>>>::Filter: Unpin,
<G as IdentityHandlerFactory<Id<BindGroupLayout<Api>>>>::Filter: Unpin,
<G as IdentityHandlerFactory<Id<PipelineLayout<Api>>>>::Filter: Unpin,
<G as IdentityHandlerFactory<Id<ShaderModule<Api>>>>::Filter: Unpin,
<G as IdentityHandlerFactory<Id<ComputePipeline<Api>>>>::Filter: Unpin,
<G as IdentityHandlerFactory<Id<RenderPipeline<Api>>>>::Filter: Unpin,
<G as IdentityHandlerFactory<Id<Texture<Api>>>>::Filter: Unpin,
<G as IdentityHandlerFactory<Id<TextureView<Api>>>>::Filter: Unpin,
<G as IdentityHandlerFactory<Id<Sampler<Api>>>>::Filter: Unpin,
<G as IdentityHandlerFactory<Id<QuerySet<Api>>>>::Filter: Unpin,
impl<G> !UnwindSafe for Global<G>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more