feat(servo): isolate profiles with hardware sidecars
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
//! Cross-process IOSurface descriptors used by the macOS hardware path.
|
||||
|
||||
/// A send right for importing the current IOSurface in another process.
|
||||
///
|
||||
/// `surface_id` is the system IOSurface ID. The receiver owns the transferred
|
||||
/// Mach send right and must deallocate it after importing the surface.
|
||||
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
|
||||
#[cfg_attr(feature = "servo-engine", derive(serde::Deserialize, serde::Serialize))]
|
||||
pub struct IOSurfaceHandle {
|
||||
pub mach_port_name: u32,
|
||||
pub surface_id: u64,
|
||||
pub width: u32,
|
||||
pub height: u32,
|
||||
}
|
||||
|
||||
/// Stable identity of a presented IOSurface without creating a Mach port.
|
||||
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
|
||||
pub struct IOSurfaceIdentity {
|
||||
pub surface_id: u64,
|
||||
pub width: u32,
|
||||
pub height: u32,
|
||||
}
|
||||
|
||||
impl IOSurfaceIdentity {
|
||||
#[must_use]
|
||||
pub fn from_handle(handle: IOSurfaceHandle) -> Self {
|
||||
Self { surface_id: handle.surface_id, width: handle.width, height: handle.height }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user