55 lines
1.6 KiB
Rust
55 lines
1.6 KiB
Rust
bitflags! {
|
|
/// Constants shared by multiple CSS Box Alignment properties
|
|
///
|
|
/// These constants match Gecko's `NS_STYLE_ALIGN_*` constants.
|
|
#[derive(MallocSizeOf)]
|
|
#[repr(C)]
|
|
pub struct AlignFlags: u8 {
|
|
/// 'auto'
|
|
const AUTO = 0;
|
|
/// 'normal'
|
|
const NORMAL = 1;
|
|
/// 'start'
|
|
const START = 1 << 1;
|
|
/// 'end'
|
|
const END = 1 << 2;
|
|
const ALIAS = Self::END.bits;
|
|
/// 'flex-start'
|
|
const FLEX_START = 1 << 3;
|
|
const MIXED = 1 << 4 | AlignFlags::FLEX_START.bits | AlignFlags::END.bits;
|
|
const MIXED_SELF = 1 << 5 | AlignFlags::FLEX_START.bits | AlignFlags::END.bits;
|
|
}
|
|
}
|
|
|
|
/// An arbitrary identifier for a native (OS compositor) surface
|
|
#[repr(C)]
|
|
#[derive(Debug, Copy, Clone, Hash, Eq, PartialEq)]
|
|
pub struct NativeSurfaceId(pub u64);
|
|
|
|
impl NativeSurfaceId {
|
|
/// A special id for the native surface that is used for debug / profiler overlays.
|
|
pub const DEBUG_OVERLAY: NativeSurfaceId = NativeSurfaceId(u64::MAX);
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Debug, Copy, Clone, Hash, Eq, PartialEq)]
|
|
#[cfg_attr(feature = "capture", derive(Serialize))]
|
|
#[cfg_attr(feature = "replay", derive(Deserialize))]
|
|
pub struct NativeTileId {
|
|
pub surface_id: NativeSurfaceId,
|
|
pub x: i32,
|
|
pub y: i32,
|
|
}
|
|
|
|
impl NativeTileId {
|
|
/// A special id for the native surface that is used for debug / profiler overlays.
|
|
pub const DEBUG_OVERLAY: NativeTileId = NativeTileId {
|
|
surface_id: NativeSurfaceId::DEBUG_OVERLAY,
|
|
x: 0,
|
|
y: 0,
|
|
};
|
|
}
|
|
|
|
#[no_mangle]
|
|
pub extern "C" fn root(flags: AlignFlags, tile: NativeTileId) {}
|