HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
int_abgr8_pack.hpp
1// Copyright Take Vos 2021.
2// Distributed under the Boost Software License, Version 1.0.
3// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
4
5#pragma once
6
8#include <algorithm>
9
10namespace hi::inline v1 {
11
13 uint32_t v = 0;
14
15public:
16 constexpr int_abgr8_pack() = default;
17 constexpr int_abgr8_pack(int_abgr8_pack const &rhs) noexcept = default;
18 constexpr int_abgr8_pack(int_abgr8_pack &&rhs) noexcept = default;
19 constexpr int_abgr8_pack &operator=(int_abgr8_pack const &rhs) noexcept = default;
20 constexpr int_abgr8_pack &operator=(int_abgr8_pack &&rhs) noexcept = default;
21
22 constexpr explicit int_abgr8_pack(uint32_t const &rhs) noexcept : v(rhs) {}
23 constexpr int_abgr8_pack &operator=(uint32_t const &rhs) noexcept
24 {
25 v = rhs;
26 return *this;
27 }
28 constexpr explicit operator uint32_t() noexcept
29 {
30 return v;
31 }
32
33 constexpr explicit int_abgr8_pack(f32x4 const &rhs) noexcept : v(std::bit_cast<decltype(v)>(i8x4{rhs})) {}
34
35 constexpr int_abgr8_pack &operator=(f32x4 const &rhs) noexcept
36 {
37 v = std::bit_cast<decltype(v)>(i8x4{rhs});
38 return *this;
39 }
40
41 constexpr explicit int_abgr8_pack(corner_radii const &rhs) noexcept : int_abgr8_pack(static_cast<f32x4>(rhs)) {}
42
43 [[nodiscard]] constexpr friend bool operator==(int_abgr8_pack const &lhs, int_abgr8_pack const &rhs) noexcept = default;
44};
45
46} // namespace hi::inline v1
Defined the corner_radii type.
DOXYGEN BUG.
Definition algorithm.hpp:15
Definition int_abgr8_pack.hpp:12