// SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense struct Bic { a: u32, b: u32, } fn bic_combine(x: Bic, y: Bic) -> Bic { let m = min(x.b, y.a); return Bic(x.a + y.a - m, x.b + y.b - m); } struct ClipInp { // Index of the draw object. ix: u32, // This is a packed encoding of an enum with the sign bit as the tag. If positive, // this entry is a BeginClip and contains the associated path index. If negative, // it is an EndClip and contains the bitwise-not of the EndClip draw object index. path_ix: i32, } struct ClipEl { parent_ix: u32, bbox: vec4, }