use crate::vk;
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Debug)]
#[repr(transparent)]
pub struct Packed24_8(u32);
impl Packed24_8 {
pub fn new(low_24: u32, high_8: u8) -> Self {
Self((low_24 & 0x00ff_ffff) | (u32::from(high_8) << 24))
}
pub fn low_24(&self) -> u32 {
self.0 & 0xffffff
}
pub fn high_8(&self) -> u8 {
(self.0 >> 24) as u8
}
}
use vk::ColorComponentFlags;
impl ColorComponentFlags {
pub const RGBA: Self = Self(Self::R.0 | Self::G.0 | Self::B.0 | Self::A.0);
}
impl From<vk::Extent2D> for vk::Extent3D {
fn from(value: vk::Extent2D) -> Self {
Self {
width: value.width,
height: value.height,
depth: 1,
}
}
}
impl From<vk::Extent2D> for vk::Rect2D {
fn from(extent: vk::Extent2D) -> Self {
Self {
offset: Default::default(),
extent,
}
}
}