pub trait HalDevice:
Send
+ Sync
+ 'static {
type Buffer: Send + Sync + 'static;
type Texture: Send + Sync + 'static;
type Sampler: Send + Sync + 'static;
type CommandRecorder: Send + Sync + 'static;
Show 17 methods
// Required methods
fn create_buffer(
&self,
desc: &BufferDesc<'_>,
) -> Result<Self::Buffer, HalError>;
fn destroy_buffer(&self, buffer: Self::Buffer);
fn write_buffer(
&self,
buffer: &Self::Buffer,
offset: u64,
bytes: &[u8],
) -> Result<(), HalError>;
fn read_buffer(
&self,
buffer: &Self::Buffer,
offset: u64,
dest: &mut [u8],
) -> Result<(), HalError>;
fn create_texture(
&self,
desc: &TextureDesc<'_>,
) -> Result<Self::Texture, HalError>;
fn destroy_texture(&self, texture: Self::Texture);
fn create_sampler(
&self,
desc: &SamplerDesc<'_>,
) -> Result<Self::Sampler, HalError>;
fn destroy_sampler(&self, sampler: Self::Sampler);
fn create_command_recorder(&self) -> Result<Self::CommandRecorder, HalError>;
fn register_bindless_buffer(
&self,
buffer: &Self::Buffer,
) -> Result<u32, HalError>;
fn unregister_bindless_buffer(&self, slot: u32);
fn register_bindless_texture(
&self,
texture: &Self::Texture,
) -> Result<u32, HalError>;
fn unregister_bindless_texture(&self, slot: u32);
fn register_bindless_storage_image(
&self,
texture: &Self::Texture,
) -> Result<u32, HalError>;
fn unregister_bindless_storage_image(&self, slot: u32);
fn register_bindless_sampler(
&self,
sampler: &Self::Sampler,
) -> Result<u32, HalError>;
fn unregister_bindless_sampler(&self, slot: u32);
}Required Associated Types§
type Buffer: Send + Sync + 'static
type Texture: Send + Sync + 'static
type Sampler: Send + Sync + 'static
type CommandRecorder: Send + Sync + 'static
Required Methods§
fn create_buffer(&self, desc: &BufferDesc<'_>) -> Result<Self::Buffer, HalError>
fn destroy_buffer(&self, buffer: Self::Buffer)
fn write_buffer( &self, buffer: &Self::Buffer, offset: u64, bytes: &[u8], ) -> Result<(), HalError>
fn read_buffer( &self, buffer: &Self::Buffer, offset: u64, dest: &mut [u8], ) -> Result<(), HalError>
fn create_texture( &self, desc: &TextureDesc<'_>, ) -> Result<Self::Texture, HalError>
fn destroy_texture(&self, texture: Self::Texture)
fn create_sampler( &self, desc: &SamplerDesc<'_>, ) -> Result<Self::Sampler, HalError>
fn destroy_sampler(&self, sampler: Self::Sampler)
fn create_command_recorder(&self) -> Result<Self::CommandRecorder, HalError>
fn register_bindless_buffer( &self, buffer: &Self::Buffer, ) -> Result<u32, HalError>
fn unregister_bindless_buffer(&self, slot: u32)
fn register_bindless_texture( &self, texture: &Self::Texture, ) -> Result<u32, HalError>
fn unregister_bindless_texture(&self, slot: u32)
fn register_bindless_storage_image( &self, texture: &Self::Texture, ) -> Result<u32, HalError>
fn unregister_bindless_storage_image(&self, slot: u32)
fn register_bindless_sampler( &self, sampler: &Self::Sampler, ) -> Result<u32, HalError>
fn unregister_bindless_sampler(&self, slot: u32)
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementors§
Source§impl HalDevice for VulkanDevice
Available on crate feature vulkan only.
impl HalDevice for VulkanDevice
Available on crate feature
vulkan only.