GpuBackend

Trait GpuBackend 

Source
pub trait GpuBackend: Send + Sync {
    // Required methods
    fn kind(&self) -> GpuBackendKind;
    fn adapter_info(&self) -> GpuAdapterInfo;
    fn capabilities(&self) -> GpuCapabilities;
    fn select_adapter(
        &self,
        opts: &GpuOptions,
    ) -> Result<GpuAdapterInfo, GpuError>;
    fn as_any(&self) -> &dyn Any;
    fn create_buffer(
        &self,
        req: &GpuRequest,
    ) -> Result<GpuBufferHandle, GpuError>;
    fn create_image(
        &self,
        req: &GpuImageRequest,
    ) -> Result<GpuImageHandle, GpuError>;

    // Provided methods
    fn upload_texture(
        &self,
        _req: &GpuImageRequest,
        _data: &[u8],
    ) -> Result<GpuImageHandle, GpuError> { ... }
    fn read_texture(
        &self,
        _handle: &GpuImageHandle,
    ) -> Result<Vec<u8>, GpuError> { ... }
    fn stats(&self) -> TransferStats { ... }
    fn take_stats(&self) -> TransferStats { ... }
    fn record_download(&self, _bytes: u64) { ... }
}
Expand description

GPU backend trait; no backend-specific types exposed.

use daedalus_gpu::{GpuBackend, GpuBackendKind};
fn uses_backend(backend: &dyn GpuBackend) -> GpuBackendKind {
    backend.kind()
}
let _ = uses_backend;

Required Methods§

Provided Methods§

Implementors§