HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
sfloat_rgba32x4.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/geometry.hpp"
12#include "../utility/utility.hpp"
13#include "../macros.hpp"
14#include <hikocpu/hikocpu.hpp>
15#include <algorithm>
16#include <array>
17#include <bit>
18#include <cstdint>
19
20hi_export_module(hikogui.image.sfloat_rgba32x4);
21
22hi_export namespace hi::inline v1 {
23
29public:
30 constexpr sfloat_rgba32x4() = default;
31 constexpr sfloat_rgba32x4(sfloat_rgba32x4 const& rhs) noexcept = default;
32 constexpr sfloat_rgba32x4(sfloat_rgba32x4&& rhs) noexcept = default;
33 constexpr sfloat_rgba32x4& operator=(sfloat_rgba32x4 const& rhs) noexcept = default;
34 constexpr sfloat_rgba32x4& operator=(sfloat_rgba32x4&& rhs) noexcept = default;
35 [[nodiscard]] constexpr friend bool operator==(sfloat_rgba32x4 const&, sfloat_rgba32x4 const&) noexcept = default;
36
37 constexpr sfloat_rgba32x4(std::array<f32x4,4> const& rhs) noexcept
38 {
39 for (auto j = 0_uz; j != 4; ++j) {
40 for (auto i = 0_uz; i != 4; ++i) {
41 _v[j * 4 + i] = rhs[j][i];
42 }
43 }
44 }
45
46 constexpr sfloat_rgba32x4& operator=(std::array<f32x4, 4> const& rhs) noexcept
47 {
48 for (auto j = 0_uz; j != 4; ++j) {
49 for (auto i = 0_uz; i != 4; ++i) {
50 _v[j * 4 + i] = rhs[j][i];
51 }
52 }
53 return *this;
54 }
55
56 constexpr sfloat_rgba32x4(matrix3 const& rhs) noexcept : sfloat_rgba32x4(static_cast<std::array<f32x4, 4>>(rhs)) {}
57
58private:
60};
61
62} // namespace hi::inline v1
DOXYGEN BUG.
Definition algorithm_misc.hpp:20
4 x 4 x float32 pixel format.
Definition sfloat_rgba32x4.hpp:28