pub struct Lut3D {
pub size: u32,
pub data: Vec<[f32; 3]>,
}Expand description
A 3D color look-up table.
Fields§
§size: u32LUT dimension (e.g. 16 or 32). Total entries = size³.
data: Vec<[f32; 3]>RGB data, row-major: data[r + gsize + bsize*size] = (out_r, out_g, out_b).
Implementations§
Source§impl Lut3D
impl Lut3D
Sourcepub fn from_params(size: u32, params: &ColorGradeParams) -> Self
pub fn from_params(size: u32, params: &ColorGradeParams) -> Self
Generate a LUT from color grade parameters.
Sourcepub fn blend(&self, other: &Lut3D, t: f32) -> Lut3D
pub fn blend(&self, other: &Lut3D, t: f32) -> Lut3D
Linearly blend two LUTs together. t = 0.0 returns self, 1.0 returns other.
Sourcepub fn to_rgb_f32(&self) -> Vec<f32>
pub fn to_rgb_f32(&self) -> Vec<f32>
Convert to flat f32 RGB buffer for GPU upload.
Sourcepub fn to_rgb_u8(&self) -> Vec<u8> ⓘ
pub fn to_rgb_u8(&self) -> Vec<u8> ⓘ
Convert to u8 RGB buffer for GPU upload (RGBA8 3D texture).
Sourcepub fn entry_count(&self) -> usize
pub fn entry_count(&self) -> usize
Total number of entries.
Sourcepub fn memory_bytes(&self) -> usize
pub fn memory_bytes(&self) -> usize
Memory size in bytes (f32 RGB).
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Lut3D
impl RefUnwindSafe for Lut3D
impl Send for Lut3D
impl Sync for Lut3D
impl Unpin for Lut3D
impl UnsafeUnpin for Lut3D
impl UnwindSafe for Lut3D
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more