7#include "sfloat_rgba16.hpp"
8#include "../color/sRGB.hpp"
11namespace hi::inline
v1 {
29 constexpr operator uint32_t()
noexcept
36 hilet &rhs_v = rhs.get();
38 hilet r = sRGB_linear16_to_gamma8(rhs_v[0].get());
39 hilet g = sRGB_linear16_to_gamma8(rhs_v[1].get());
40 hilet b = sRGB_linear16_to_gamma8(rhs_v[2].get());
41 hilet a =
static_cast<uint8_t
>(std::clamp(rhs_v[3] * 255.0f, 0.0f, 255.0f));
42 v = (
static_cast<uint32_t
>(a) << 24) | (
static_cast<uint32_t
>(b) << 16) | (
static_cast<uint32_t
>(g) << 8) |
43 static_cast<uint32_t
>(r);
48 hilet &rhs_v = rhs.get();
50 hilet r = sRGB_linear16_to_gamma8(rhs_v[0]);
51 hilet g = sRGB_linear16_to_gamma8(rhs_v[1]);
52 hilet b = sRGB_linear16_to_gamma8(rhs_v[2]);
53 hilet a =
static_cast<uint8_t
>(std::clamp(rhs_v[3] * 255.0f, 0.0f, 255.0f));
54 v = (
static_cast<uint32_t
>(a) << 24) | (
static_cast<uint32_t
>(b) << 16) | (
static_cast<uint32_t
>(g) << 8) |
55 static_cast<uint32_t
>(r);
63 return {rhs.v & 0x00ffffff};
72 for (
auto rowNr = 0; rowNr < src.height; rowNr++) {
73 hilet srcRow = src.at(rowNr);
74 auto dstRow = dst.at(rowNr);
75 for (
auto columnNr = 0; columnNr < src.width; columnNr++) {
76 dstRow[columnNr] = srcRow[columnNr];
#define hi_assert(expression)
Assert if expression is true.
Definition assert.hpp:86
#define hilet
Invariant should be the default for variables.
Definition utility.hpp:23
DOXYGEN BUG.
Definition algorithm.hpp:15
A 2D canvas of pixels.
Definition pixel_map.hpp:111
Definition sfloat_rgba16.hpp:19
Definition srgb_abgr8_pack.hpp:13