Skip to main content

BloomEncoder

Trait BloomEncoder 

Source
pub trait BloomEncoder {
    type Rec;
    type Args;

    // Required methods
    fn bloom_mip_count(&self) -> usize;
    fn begin_bloom(&self, rec: &Self::Rec, args: &Self::Args);
    fn bloom_prefilter(&self, rec: &Self::Rec, args: &Self::Args);
    fn bloom_downsample(&self, rec: &Self::Rec, args: &Self::Args, dst: usize);
    fn bloom_upsample(&self, rec: &Self::Rec, args: &Self::Args, dst: usize);
}
Expand description

Per-backend hooks the shared bloom driver encodes through.

Required Associated Types§

Source

type Rec

Per-backend command recorder (DX ID3D12GraphicsCommandList, VK vk::CommandBuffer).

Source

type Args

Per-invocation binding context (DX scene-colour SRV handle, VK frame index).

Required Methods§

Source

fn bloom_mip_count(&self) -> usize

Number of bloom mips; zero means bloom is off and the driver no-ops.

Source

fn begin_bloom(&self, rec: &Self::Rec, args: &Self::Args)

One-time per-encode preamble (DX root signature / heap / IA state; VK no-op).

Source

fn bloom_prefilter(&self, rec: &Self::Rec, args: &Self::Args)

Prefilter: scene colour -> mip 0 (soft-knee threshold + Karis average).

Source

fn bloom_downsample(&self, rec: &Self::Rec, args: &Self::Args, dst: usize)

Downsample: mip dst - 1 -> mip dst.

Source

fn bloom_upsample(&self, rec: &Self::Rec, args: &Self::Args, dst: usize)

Upsample: mip dst + 1 -> mip dst, additively blended.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§