pub struct ImColor32(/* private fields */);
Expand description
Wraps u32 that represents a packed RGBA color. Mostly used by types in the
low level custom drawing API, such as DrawListMut
.
The bits of a color are in “0xAABBGGRR
” format (e.g. RGBA as little endian
bytes). For clarity: we don’t support an equivalent to the
IMGUI_USE_BGRA_PACKED_COLOR
define.
This used to be named ImColor
, but was renamed to avoid confusion with
the type with that name in the C++ API (which uses 32 bits per channel).
While it doesn’t provide methods to access the fields, they can be accessed
via the Deref
/DerefMut
impls it provides targeting
imgui::color::ImColor32Fields
, which has
no other meaningful uses.
§Example
let mut c = imgui::ImColor32::from_rgba(0x80, 0xc0, 0x40, 0xff);
assert_eq!(c.to_bits(), 0xff_40_c0_80); // Note: 0xAA_BB_GG_RR
// Field access
assert_eq!(c.r, 0x80);
assert_eq!(c.g, 0xc0);
assert_eq!(c.b, 0x40);
assert_eq!(c.a, 0xff);
c.b = 0xbb;
assert_eq!(c.to_bits(), 0xff_bb_c0_80);
Implementations§
Source§impl ImColor32
impl ImColor32
Sourcepub const TRANSPARENT: ImColor32
pub const TRANSPARENT: ImColor32
Convenience constant for full transparency.
Sourcepub const fn from_rgba(r: u8, g: u8, b: u8, a: u8) -> ImColor32
pub const fn from_rgba(r: u8, g: u8, b: u8, a: u8) -> ImColor32
Construct a color from 4 single-byte u8
channel values, which should
be between 0 and 255.
Sourcepub const fn from_rgb(r: u8, g: u8, b: u8) -> ImColor32
pub const fn from_rgb(r: u8, g: u8, b: u8) -> ImColor32
Construct a fully opaque color from 3 single-byte u8
channel values.
Same as Self::from_rgba
with a == 255
Sourcepub fn from_rgba_f32s(r: f32, g: f32, b: f32, a: f32) -> ImColor32
pub fn from_rgba_f32s(r: f32, g: f32, b: f32, a: f32) -> ImColor32
Construct a fully opaque color from 4 f32
channel values in the range
0.0 ..= 1.0
(values outside this range are clamped to it, with NaN
mapped to 0.0).
Note: No alpha premultiplication is done, so your input should be have premultiplied alpha if needed.
Sourcepub fn to_rgba_f32s(self) -> [f32; 4]
pub fn to_rgba_f32s(self) -> [f32; 4]
Return the channels as an array of f32 in [r, g, b, a]
order.
Sourcepub fn from_rgb_f32s(r: f32, g: f32, b: f32) -> ImColor32
pub fn from_rgb_f32s(r: f32, g: f32, b: f32) -> ImColor32
Equivalent to Self::from_rgba_f32s
, but with an alpha of 1.0 (e.g.
opaque).
Sourcepub const fn from_bits(u: u32) -> ImColor32
pub const fn from_bits(u: u32) -> ImColor32
Construct a color from the u32
that makes up the bits in 0xAABBGGRR
format.
Specifically, this takes the RGBA values as a little-endian u32 with 8 bits per channel.
Note that ImColor32::from_rgba
may be a bit easier to use.
Trait Implementations§
Source§impl Deref for ImColor32
impl Deref for ImColor32
Source§type Target = ImColor32Fields
type Target = ImColor32Fields
Source§fn deref(&self) -> &ImColor32Fields
fn deref(&self) -> &ImColor32Fields
Source§impl DerefMut for ImColor32
impl DerefMut for ImColor32
Source§fn deref_mut(&mut self) -> &mut ImColor32Fields
fn deref_mut(&mut self) -> &mut ImColor32Fields
Source§impl Ord for ImColor32
impl Ord for ImColor32
Source§impl PartialOrd for ImColor32
impl PartialOrd for ImColor32
impl Copy for ImColor32
impl Eq for ImColor32
impl StructuralPartialEq for ImColor32
Auto Trait Implementations§
impl Freeze for ImColor32
impl RefUnwindSafe for ImColor32
impl Send for ImColor32
impl Sync for ImColor32
impl Unpin for ImColor32
impl UnwindSafe for ImColor32
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> ⓘ
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> ⓘ
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian()
.