#include #include #include #include #include struct LayoutUnit; struct UnknownUnit; template struct TypedLength { T _0; }; template using Length = TypedLength; using LayoutLength = TypedLength; template struct TypedSideOffsets2D { T top; T right; T bottom; T left; }; template using SideOffsets2D = TypedSideOffsets2D; using LayoutSideOffsets2D = TypedSideOffsets2D; template struct TypedSize2D { T width; T height; }; template using Size2D = TypedSize2D; using LayoutSize2D = TypedSize2D; template struct TypedPoint2D { T x; T y; }; template using Point2D = TypedPoint2D; using LayoutPoint2D = TypedPoint2D; template struct TypedRect { TypedPoint2D origin; TypedSize2D size; }; template using Rect = TypedRect; using LayoutRect = TypedRect; template struct TypedTransform2D { T m11; T m12; T m21; T m22; T m31; T m32; }; extern "C" { void root(TypedLength length_a, TypedLength length_b, Length length_c, LayoutLength length_d, TypedSideOffsets2D side_offsets_a, TypedSideOffsets2D side_offsets_b, SideOffsets2D side_offsets_c, LayoutSideOffsets2D side_offsets_d, TypedSize2D size_a, TypedSize2D size_b, Size2D size_c, LayoutSize2D size_d, TypedPoint2D point_a, TypedPoint2D point_b, Point2D point_c, LayoutPoint2D point_d, TypedRect rect_a, TypedRect rect_b, Rect rect_c, LayoutRect rect_d, TypedTransform2D transform_a, TypedTransform2D transform_b); } // extern "C"