mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2025-08-03 21:08:18 +00:00
parent
bdc1ef926a
commit
366906b956
3 changed files with 30 additions and 1 deletions
|
@ -9,7 +9,7 @@ use num_traits::{cast::cast as num_cast, Num, NumCast};
|
|||
#[cfg(target_arch = "spirv")]
|
||||
use spirv_std::num_traits::{cast::cast as num_cast, float::Float, FromPrimitive, Num, NumCast, ToPrimitive};
|
||||
|
||||
pub use self::color::Color;
|
||||
pub use self::color::{Color, Luma};
|
||||
|
||||
pub mod adjustments;
|
||||
#[cfg(not(target_arch = "spirv"))]
|
||||
|
|
|
@ -14,6 +14,34 @@ use bytemuck::{Pod, Zeroable};
|
|||
|
||||
use super::{Alpha, AssociatedAlpha, Luminance, Pixel, Rec709Primaries, RGB, SRGB};
|
||||
|
||||
#[repr(C)]
|
||||
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
|
||||
#[cfg_attr(feature = "std", derive(specta::Type))]
|
||||
#[derive(Debug, Default, Clone, Copy, PartialEq, DynAny, Pod, Zeroable)]
|
||||
pub struct Luma(pub f32);
|
||||
|
||||
impl Luminance for Luma {
|
||||
type LuminanceChannel = f32;
|
||||
fn luminance(&self) -> f32 {
|
||||
self.0
|
||||
}
|
||||
}
|
||||
|
||||
impl RGB for Luma {
|
||||
type ColorChannel = f32;
|
||||
fn red(&self) -> f32 {
|
||||
self.0
|
||||
}
|
||||
fn green(&self) -> f32 {
|
||||
self.0
|
||||
}
|
||||
fn blue(&self) -> f32 {
|
||||
self.0
|
||||
}
|
||||
}
|
||||
|
||||
impl Pixel for Luma {}
|
||||
|
||||
/// Structure that represents a color.
|
||||
/// Internally alpha is stored as `f32` that ranges from `0.0` (transparent) to `1.0` (opaque).
|
||||
/// The other components (RGB) are stored as `f32` that range from `0.0` up to `f32::MAX`,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue