Skip to main content

ShadowGradeConfig

Struct ShadowGradeConfig 

Source
pub struct ShadowGradeConfig {
    pub fg_dim_strength: f32,
    pub bg_dim_strength: f32,
    pub fg_desaturate_strength: f32,
    pub bg_desaturate_strength: f32,
    pub fg_tint_strength: f32,
    pub bg_tint_strength: f32,
    pub preserve_fg_alpha: bool,
    pub preserve_bg_alpha: bool,
    pub replacement_char: Option<char>,
}
Expand description

Color grading parameters for the grade-underlying shadow compositing mode.

Each strength field ranges from 0.0 (no effect) to 1.0 (maximum). Effective per-cell strength is field_value * shadow_coverage, where coverage is derived from the rendered shadow cell’s alpha channels.

Background grading is intentionally stronger than foreground grading in the dramatic preset to preserve text readability while making the shadow region clearly visible.

§Example

use tui_vfx_shadow::ShadowGradeConfig;

// Use the recommended dramatic preset
let grade = ShadowGradeConfig::dramatic();
assert!(grade.bg_dim_strength > grade.fg_dim_strength);

// Or configure manually
let custom = ShadowGradeConfig {
    fg_dim_strength: 0.15,
    bg_dim_strength: 0.40,
    ..Default::default()
};

Fields§

§fg_dim_strength: f32

Foreground dimming strength (0.0–1.0).

§bg_dim_strength: f32

Background dimming strength (0.0–1.0).

§fg_desaturate_strength: f32

Foreground desaturation strength (0.0–1.0).

§bg_desaturate_strength: f32

Background desaturation strength (0.0–1.0).

§fg_tint_strength: f32

Foreground tint-toward-shadow-color strength (0.0–1.0).

§bg_tint_strength: f32

Background tint-toward-shadow-color strength (0.0–1.0).

§preserve_fg_alpha: bool

When true, preserve the destination foreground alpha channel.

§preserve_bg_alpha: bool

When true, preserve the destination background alpha channel.

§replacement_char: Option<char>

Optional replacement character for color-inert glyphs (emoji, PUA).

When Some, glyphs that ignore ANSI fg color attributes are replaced with this character during grading. This prevents bright bitmap glyphs from creating visual artifacts in dimmed shadow regions.

Set to None to preserve all original glyphs (backward compatible default).

Implementations§

Source§

impl ShadowGradeConfig

Source

pub const fn dramatic() -> Self

Returns the recommended dramatic grade preset.

This preset is intentionally moderate-to-strong so the shadow region is clearly visible on ordinary RGB terminal cells. Background grading is stronger than foreground grading to maintain text readability.

Numeric values are locked by plan and must not change without a plan update.

Trait Implementations§

Source§

impl Clone for ShadowGradeConfig

Source§

fn clone(&self) -> ShadowGradeConfig

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ShadowGradeConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ShadowGradeConfig

Source§

fn default() -> Self

Returns a neutral (zero-strength) grade configuration.

Source§

impl<'de> Deserialize<'de> for ShadowGradeConfig

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for ShadowGradeConfig

Source§

fn eq(&self, other: &ShadowGradeConfig) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for ShadowGradeConfig

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Copy for ShadowGradeConfig

Source§

impl StructuralPartialEq for ShadowGradeConfig

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,