5#ifndef FLUTTER_IMPELLER_GEOMETRY_SIZE_H_
6#define FLUTTER_IMPELLER_GEOMETRY_SIZE_H_
116 constexpr size_t minimum_mip = 1u;
127template <
class T,
class U,
class = std::enable_if_t<std::is_arithmetic_v<U>>>
132template <
class T,
class U,
class = std::enable_if_t<std::is_arithmetic_v<U>>>
134 return {
static_cast<T>(
s) /
p.width,
static_cast<T>(
s) /
p.height};
142static_assert(
sizeof(
Size) == 2 *
sizeof(
Scalar));
151 out <<
"(" <<
s.width <<
", " <<
s.height <<
")";
static void round(SkPoint *p)
static float max(float r, float g, float b)
static float min(float r, float g, float b)
constexpr Color operator/(T value, const Color &c)
constexpr Color operator*(T value, const Color &c)
SIN Vec< N, float > floor(const Vec< N, float > &x)
SIN Vec< N, float > ceil(const Vec< N, float > &x)
std::ostream & operator<<(std::ostream &out, const impeller::Color &c)
constexpr TSize operator-() const
constexpr TSize Floor() const
constexpr TSize operator/(Scalar scale) const
constexpr TSize Max(const TSize &o) const
constexpr TSize(const TSize< U > &other)
constexpr Type Area() const
constexpr TSize Min(const TSize &o) const
constexpr TSize operator*(Scalar scale) const
constexpr TSize Round() const
constexpr TSize Abs() const
constexpr Type MaxDimension() const
static constexpr TSize Ceil(const TSize< U > &other)
constexpr bool operator==(const TSize &s) const
constexpr bool IsSquare() const
constexpr TSize operator+(const TSize &s) const
constexpr TSize Ceil() const
constexpr TSize operator-(const TSize &s) const
constexpr TSize(Type width, Type height)
constexpr size_t MipCount() const
static constexpr TSize MakeWH(Type width, Type height)
constexpr bool IsEmpty() const
Returns true if either of the width or height are 0, negative, or NaN.
constexpr bool operator!=(const TSize &s) const
constexpr TSize operator/(const TSize &s) const
static constexpr TSize Infinite()