HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
src
hikogui
image
unorm_a2bgr10_pack.hpp
Go to the documentation of this file.
1
// Copyright Take Vos 2020-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 "../SIMD/module.hpp"
12
#include <algorithm>
13
14
namespace
hi::inline
v1
{
15
16
//[[nodiscard]] constexpr uint32_t make_unorm_a2bgr10_pack_value(f32x4 const &rhs) noexcept
17
//{
18
// hilet r = static_cast<uint32_t>(std::clamp(rhs.r, 0.0f, 1.0f) * 1023.0f);
19
// hilet g = static_cast<uint32_t>(std::clamp(rhs.g, 0.0f, 1.0f) * 1023.0f);
20
// hilet b = static_cast<uint32_t>(std::clamp(rhs.b, 0.0f, 1.0f) * 1023.0f);
21
// hilet a = static_cast<uint32_t>(std::clamp(rhs.a, 0.0f, 1.0f) * 3.0f);
22
// return (a << 30) | (b << 20) | (g << 10) | r;
23
//}
24
29
struct
unorm_a2bgr10_pack
{
30
uint32_t value;
31
32
unorm_a2bgr10_pack
() =
default
;
33
unorm_a2bgr10_pack
(
unorm_a2bgr10_pack
const
&rhs)
noexcept
=
default
;
34
unorm_a2bgr10_pack
(
unorm_a2bgr10_pack
&&rhs)
noexcept
=
default
;
35
unorm_a2bgr10_pack
&operator=(
unorm_a2bgr10_pack
const
&rhs)
noexcept
=
default
;
36
unorm_a2bgr10_pack
&operator=(
unorm_a2bgr10_pack
&&rhs)
noexcept
=
default
;
37
~unorm_a2bgr10_pack
() =
default
;
38
39
//explicit unorm_a2bgr10_pack(f32x4 const &rhs) noexcept : value(make_unorm_a2bgr10_pack_value(rhs)) {}
40
41
//unorm_a2bgr10_pack &operator=(f32x4 const &rhs) noexcept
42
//{
43
// value = make_unorm_a2bgr10_pack_value(rhs);
44
// return *this;
45
//}
46
47
explicit
operator
f32x4()
const
noexcept
48
{
49
return
f32x4{
50
static_cast<
float
>
((value >> 20) & 0x3ff) / 1023.0f,
51
static_cast<
float
>
((value >> 10) & 0x3ff) / 1023.0f,
52
static_cast<
float
>
(value & 0x3ff) / 1023.0f,
53
static_cast<
float
>
(value >> 30) / 3.0f};
54
}
55
};
56
57
}
// namespace hi::inline v1
v1
DOXYGEN BUG.
Definition
algorithm.hpp:13
v1::unorm_a2bgr10_pack
1 x uint2_t, 3 x uint10_t pixel packed format.
Definition
unorm_a2bgr10_pack.hpp:29
Generated on Mon Apr 22 2024 12:52:45 for HikoGUI by
1.10.0