ComputeShader

Trait ComputeShader 

Source
pub trait ComputeShader:
    AsBindGroup
    + Clone
    + Debug
    + FromWorld
    + ExtractResource {
    // Required methods
    fn compute_shader() -> ShaderRef;
    fn workgroup_size() -> UVec3;

    // Provided methods
    fn prepare_bind_group(
        commands: Commands<'_, '_>,
        pipeline: Res<'_, ComputePipeline<Self>>,
        render_device: Res<'_, RenderDevice>,
        input: Res<'_, Self>,
        param: StaticSystemParam<'_, '_, <Self as AsBindGroup>::Param>,
    ) { ... }
    fn readback(&self) -> Option<Readback> { ... }
    fn on_readback(
        _trigger: Trigger<'_, ReadbackComplete>,
        _world: DeferredWorld<'_>,
    ) { ... }
}
Expand description

Trait to implement for a custom compute shader.

Required Methods§

Source

fn compute_shader() -> ShaderRef

Asset path or handle to the shader.

Source

fn workgroup_size() -> UVec3

Workgroup size.

Provided Methods§

Source

fn prepare_bind_group( commands: Commands<'_, '_>, pipeline: Res<'_, ComputePipeline<Self>>, render_device: Res<'_, RenderDevice>, input: Res<'_, Self>, param: StaticSystemParam<'_, '_, <Self as AsBindGroup>::Param>, )

Optional bind group preparation.

Source

fn readback(&self) -> Option<Readback>

Optional readbacks.

Source

fn on_readback( _trigger: Trigger<'_, ReadbackComplete>, _world: DeferredWorld<'_>, )

Optional processing on readback. Could write back to the CPU buffer, etc.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§