HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
sint_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 <algorithm>
13
14namespace hi::inline v1 {
15
21 uint32_t v = 0;
22
23public:
24 constexpr sint_abgr8_pack() = default;
25 constexpr sint_abgr8_pack(sint_abgr8_pack const &rhs) noexcept = default;
26 constexpr sint_abgr8_pack(sint_abgr8_pack &&rhs) noexcept = default;
27 constexpr sint_abgr8_pack &operator=(sint_abgr8_pack const &rhs) noexcept = default;
28 constexpr sint_abgr8_pack &operator=(sint_abgr8_pack &&rhs) noexcept = default;
29
30 constexpr explicit sint_abgr8_pack(uint32_t const &rhs) noexcept : v(rhs) {}
31 constexpr sint_abgr8_pack &operator=(uint32_t const &rhs) noexcept
32 {
33 v = rhs;
34 return *this;
35 }
36 constexpr explicit operator uint32_t() noexcept
37 {
38 return v;
39 }
40
41 constexpr explicit sint_abgr8_pack(f32x4 const &rhs) noexcept : v(std::bit_cast<decltype(v)>(i8x4{rhs})) {}
42
43 constexpr sint_abgr8_pack &operator=(f32x4 const &rhs) noexcept
44 {
45 v = std::bit_cast<decltype(v)>(i8x4{rhs});
46 return *this;
47 }
48
49 constexpr explicit sint_abgr8_pack(corner_radii const &rhs) noexcept : sint_abgr8_pack(static_cast<f32x4>(rhs)) {}
50
51 [[nodiscard]] constexpr friend bool operator==(sint_abgr8_pack const &lhs, sint_abgr8_pack const &rhs) noexcept = default;
52};
53
54} // namespace hi::inline v1
DOXYGEN BUG.
Definition algorithm.hpp:13
4 x int8_t packed pixel format.
Definition sint_abgr8_pack.hpp:20