pub use crate::rational_poly::{
linear_to_srgb_fast as linear_to_srgb, srgb_to_linear_fast as srgb_to_linear,
};
pub use crate::scalar::{
linear_to_srgb_u8, linear_to_srgb_u16, linear_to_srgb_u16_fast, srgb_u8_to_linear,
srgb_u16_to_linear,
};
pub use crate::simd::{
gamma_to_linear_slice,
linear_to_gamma_slice,
linear_to_srgb_rgba_slice,
linear_to_srgb_slice,
linear_to_srgb_u8_rgba_slice,
linear_to_srgb_u8_slice,
linear_to_srgb_u16_rgba_slice,
linear_to_srgb_u16_rgba_slice_fast,
linear_to_srgb_u16_slice,
linear_to_srgb_u16_slice_fast,
srgb_to_linear_premultiply_rgba_slice,
srgb_to_linear_rgba_slice,
srgb_to_linear_slice,
srgb_u8_to_linear_premultiply_rgba_slice,
srgb_u8_to_linear_rgba_slice,
srgb_u8_to_linear_slice,
srgb_u16_to_linear_rgba_slice,
srgb_u16_to_linear_slice,
unpremultiply_linear_to_srgb_rgba_slice,
unpremultiply_linear_to_srgb_u8_rgba_slice,
};
#[allow(deprecated)]
pub use crate::simd::{
gamma_to_linear_premultiply_rgba_slice, unpremultiply_linear_to_gamma_rgba_slice,
};
pub use crate::scalar::{gamma_to_linear, linear_to_gamma};
#[cfg(feature = "transfer")]
pub use crate::tf::{
bt709_to_linear, hlg_to_linear, linear_to_bt709, linear_to_hlg, linear_to_pq, pq_to_linear,
};
#[cfg(feature = "transfer")]
#[archmage::autoversion]
pub fn hlg_to_linear_slice(values: &mut [f32]) {
for v in values.iter_mut() {
*v = crate::tf::hlg_to_linear(*v);
}
}
#[cfg(feature = "transfer")]
#[archmage::autoversion]
pub fn linear_to_hlg_slice(values: &mut [f32]) {
for v in values.iter_mut() {
*v = crate::tf::linear_to_hlg(*v);
}
}
#[cfg(feature = "transfer")]
#[archmage::autoversion]
pub fn pq_to_linear_slice(values: &mut [f32]) {
for v in values.iter_mut() {
*v = crate::tf::pq_to_linear(*v);
}
}
#[cfg(feature = "transfer")]
#[archmage::autoversion]
pub fn linear_to_pq_slice(values: &mut [f32]) {
for v in values.iter_mut() {
*v = crate::tf::linear_to_pq(*v);
}
}
#[cfg(feature = "transfer")]
#[archmage::autoversion]
pub fn bt709_to_linear_slice(values: &mut [f32]) {
for v in values.iter_mut() {
*v = crate::tf::bt709_to_linear(*v);
}
}
#[cfg(feature = "transfer")]
#[archmage::autoversion]
pub fn linear_to_bt709_slice(values: &mut [f32]) {
for v in values.iter_mut() {
*v = crate::tf::linear_to_bt709(*v);
}
}
pub use crate::lut::SrgbConverter;