Skip to main content

HalDevice

Trait HalDevice 

Source
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§

Source

type Buffer: Send + Sync + 'static

Source

type Texture: Send + Sync + 'static

Source

type Sampler: Send + Sync + 'static

Source

type CommandRecorder: Send + Sync + 'static

Required Methods§

Source

fn create_buffer(&self, desc: &BufferDesc<'_>) -> Result<Self::Buffer, HalError>

Source

fn destroy_buffer(&self, buffer: Self::Buffer)

Source

fn write_buffer( &self, buffer: &Self::Buffer, offset: u64, bytes: &[u8], ) -> Result<(), HalError>

Source

fn read_buffer( &self, buffer: &Self::Buffer, offset: u64, dest: &mut [u8], ) -> Result<(), HalError>

Source

fn create_texture( &self, desc: &TextureDesc<'_>, ) -> Result<Self::Texture, HalError>

Source

fn destroy_texture(&self, texture: Self::Texture)

Source

fn create_sampler( &self, desc: &SamplerDesc<'_>, ) -> Result<Self::Sampler, HalError>

Source

fn destroy_sampler(&self, sampler: Self::Sampler)

Source

fn create_command_recorder(&self) -> Result<Self::CommandRecorder, HalError>

Source

fn register_bindless_buffer( &self, buffer: &Self::Buffer, ) -> Result<u32, HalError>

Source

fn unregister_bindless_buffer(&self, slot: u32)

Source

fn register_bindless_texture( &self, texture: &Self::Texture, ) -> Result<u32, HalError>

Source

fn unregister_bindless_texture(&self, slot: u32)

Source

fn register_bindless_storage_image( &self, texture: &Self::Texture, ) -> Result<u32, HalError>

Source

fn unregister_bindless_storage_image(&self, slot: u32)

Source

fn register_bindless_sampler( &self, sampler: &Self::Sampler, ) -> Result<u32, HalError>

Source

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§