Brought in some of amit's code to study and try out. amt/ has it.
This commit is contained in:
parent
2dfe5417b1
commit
5e63272f24
7 changed files with 1404 additions and 0 deletions
74
tests/amt_matrix.cpp
Normal file
74
tests/amt_matrix.cpp
Normal file
|
@ -0,0 +1,74 @@
|
|||
#include <cstdint>
|
||||
#include <print>
|
||||
#include "matrix.hpp"
|
||||
#include "pixel.hpp"
|
||||
|
||||
using namespace amt;
|
||||
|
||||
int main() {
|
||||
|
||||
auto const format = PixelFormat::abgr;
|
||||
PixelBuf b(2, 2, RGBA(0x01, 0x02, 0x03, 0x04));
|
||||
b[1][1] = HSLA(280, 20, 50, 80);
|
||||
std::println("{:h}", b);
|
||||
|
||||
|
||||
std::uint8_t ps[4 * 4] = {};
|
||||
b.copy_to(ps, format);
|
||||
|
||||
/*for (auto i = 0zu; i < sizeof(ps); ++i) {*/
|
||||
/* std::println("[{}]: 0x{:0x}", i, ps[i]);*/
|
||||
/*}*/
|
||||
|
||||
PixelBuf test(ps, 2, 2, format);
|
||||
|
||||
for (auto i = 0zu; auto color: test) {
|
||||
std::println("[{}]: {}", i++, color);
|
||||
}
|
||||
|
||||
auto m = Matrix<int>{
|
||||
{0, 1},
|
||||
{3, 4}
|
||||
};
|
||||
|
||||
std::println("{}", m);
|
||||
|
||||
|
||||
|
||||
{
|
||||
auto ca = RGBA::from_hex(0x333333ff);
|
||||
auto cb = RGBA::from_hex(0xaabbccff);
|
||||
std::println("========= RGBA ===========");
|
||||
std::println("Normal: 0x{:0x}", ca.blend(cb, BlendMode::normal).to_hex());
|
||||
std::println("Multiply: 0x{:0x}", ca.blend(cb, BlendMode::multiply).to_hex());
|
||||
std::println("Screen: 0x{:0x}", ca.blend(cb, BlendMode::screen).to_hex());
|
||||
std::println("Overlay: 0x{:0x}", ca.blend(cb, BlendMode::overlay).to_hex());
|
||||
std::println("darken: 0x{:0x}", ca.blend(cb, BlendMode::darken).to_hex());
|
||||
std::println("lighten: 0x{:0x}", ca.blend(cb, BlendMode::lighten).to_hex());
|
||||
std::println("Dodge: 0x{:0x}", ca.blend(cb, BlendMode::colorDodge).to_hex());
|
||||
std::println("Burn: 0x{:0x}", ca.blend(cb, BlendMode::colorBurn).to_hex());
|
||||
std::println("hard light: 0x{:0x}", ca.blend(cb, BlendMode::hardLight).to_hex());
|
||||
std::println("soft light: 0x{:0x}", ca.blend(cb, BlendMode::softLight).to_hex());
|
||||
std::println("difference: 0x{:0x}", ca.blend(cb, BlendMode::difference).to_hex());
|
||||
std::println("exclusion: 0x{:0x}", ca.blend(cb, BlendMode::exclusion).to_hex());
|
||||
}
|
||||
|
||||
{
|
||||
HSLA ca = RGBA::from_hex(0x333333ff);
|
||||
HSLA cb = RGBA::from_hex(0xaabbccff);
|
||||
std::println("========= HSLA ===========");
|
||||
std::println("Normal: {}", ca.blend(cb, BlendMode::normal));
|
||||
std::println("Multiply: {}", ca.blend(cb, BlendMode::multiply));
|
||||
std::println("Screen: {}", ca.blend(cb, BlendMode::screen));
|
||||
std::println("Overlay: {}", ca.blend(cb, BlendMode::overlay));
|
||||
std::println("darken: {}", ca.blend(cb, BlendMode::darken));
|
||||
std::println("lighten: {}", ca.blend(cb, BlendMode::lighten));
|
||||
std::println("Dodge: {}", ca.blend(cb, BlendMode::colorDodge));
|
||||
std::println("Burn: {}", ca.blend(cb, BlendMode::colorBurn));
|
||||
std::println("hard light: {}", ca.blend(cb, BlendMode::hardLight));
|
||||
std::println("soft light: {}", ca.blend(cb, BlendMode::softLight));
|
||||
std::println("difference: {}", ca.blend(cb, BlendMode::difference));
|
||||
std::println("exclusion: {}", ca.blend(cb, BlendMode::exclusion));
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue