35 constexpr sfloat_rgba16() noexcept : v() {}
37 constexpr sfloat_rgba16(sfloat_rgba16
const &rhs)
noexcept =
default;
38 constexpr sfloat_rgba16(sfloat_rgba16 &&rhs)
noexcept =
default;
39 constexpr sfloat_rgba16 &operator=(sfloat_rgba16
const &rhs)
noexcept =
default;
40 constexpr sfloat_rgba16 &operator=(sfloat_rgba16 &&rhs)
noexcept =
default;
42 constexpr sfloat_rgba16(f16x4
const &rhs) noexcept : v(std::bit_cast<
decltype(v)>(rhs)) {}
44 constexpr sfloat_rgba16 &operator=(f16x4
const &rhs)
noexcept
46 v = std::bit_cast<decltype(v)>(rhs);
50 constexpr explicit operator f16x4()
const noexcept
52 return std::bit_cast<f16x4>(v);
55 constexpr sfloat_rgba16(f32x4
const &rhs) noexcept : sfloat_rgba16(
static_cast<f16x4
>(rhs)) {}
57 constexpr sfloat_rgba16 &operator=(f32x4
const &rhs)
noexcept
59 return *
this =
static_cast<f16x4
>(rhs);
62 constexpr sfloat_rgba16(color
const &rhs) noexcept : sfloat_rgba16(
static_cast<f16x4
>(rhs)) {}
64 constexpr sfloat_rgba16 &operator=(color
const &rhs)
noexcept
66 return *
this =
static_cast<f16x4
>(rhs);
69 constexpr explicit operator color()
const noexcept
71 return color{
static_cast<f16x4
>(*this)};
74 [[nodiscard]]
constexpr sfloat_rgba16(corner_radii
const &rhs) noexcept : sfloat_rgba16(
static_cast<f32x4
>(rhs)) {}
78 return hash_mix(v[0], v[1], v[2], v[3]);
81 [[nodiscard]]
constexpr friend bool operator==(sfloat_rgba16
const &lhs, sfloat_rgba16
const &rhs)
noexcept =
default;
83 [[nodiscard]]
friend sfloat_rgba16 make_transparent(sfloat_rgba16
const &rhs)
noexcept
87 std::get<3>(r.v) = 0x0000;