HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
uint_abgr8_pack.hpp
Go to the documentation of this file.
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
9#pragma once
10
11#include "../geometry/module.hpp"
12#include "../macros.hpp"
13#include <algorithm>
14
15namespace hi::inline v1 {
16
22 uint32_t v = {};
23
24public:
25 constexpr uint_abgr8_pack() = default;
26 constexpr uint_abgr8_pack(uint_abgr8_pack const &rhs) noexcept = default;
27 constexpr uint_abgr8_pack(uint_abgr8_pack &&rhs) noexcept = default;
28 constexpr uint_abgr8_pack &operator=(uint_abgr8_pack const &rhs) noexcept = default;
29 constexpr uint_abgr8_pack &operator=(uint_abgr8_pack &&rhs) noexcept = default;
30
31 constexpr explicit uint_abgr8_pack(uint32_t const &rhs) noexcept : v(rhs) {}
32 constexpr uint_abgr8_pack &operator=(uint32_t const &rhs) noexcept
33 {
34 v = rhs;
35 return *this;
36 }
37 constexpr explicit operator uint32_t() noexcept
38 {
39 return v;
40 }
41
42 constexpr explicit uint_abgr8_pack(f32x4 const &rhs) noexcept : v(std::bit_cast<decltype(v)>(u8x4{rhs})) {}
43
44 constexpr uint_abgr8_pack &operator=(f32x4 const &rhs) noexcept
45 {
46 v = std::bit_cast<decltype(v)>(u8x4{rhs});
47 return *this;
48 }
49
50 constexpr explicit uint_abgr8_pack(corner_radii const &rhs) noexcept : uint_abgr8_pack(static_cast<f32x4>(rhs)) {}
51
52 [[nodiscard]] constexpr friend bool operator==(uint_abgr8_pack const &lhs, uint_abgr8_pack const &rhs) noexcept = default;
53};
54
55} // namespace hi::inline v1
DOXYGEN BUG.
Definition algorithm.hpp:16
constexpr Out narrow_cast(In const &rhs) noexcept
Cast numeric values without loss of precision.
Definition cast.hpp:377
4 x uint8_t pixel packed format.
Definition uint_abgr8_pack.hpp:21