1
0
mirror of https://github.com/TomHarte/CLK.git synced 2025-08-09 05:25:01 +00:00

constexpr the TMS palette.

This commit is contained in:
Thomas Harte
2023-01-01 22:34:07 -05:00
parent 27812fd0e2
commit 459ef39b08

View File

@@ -123,21 +123,21 @@ struct LineBufferPointer {
}; };
template <Personality personality> struct Base { template <Personality personality> struct Base {
Base();
static constexpr int output_lag = 11; // i.e. pixel output will occur 11 cycles static constexpr int output_lag = 11; // i.e. pixel output will occur 11 cycles
// after corresponding data read. // after corresponding data read.
static constexpr uint32_t palette_pack(uint8_t r, uint8_t g, uint8_t b) { static constexpr uint32_t palette_pack(uint8_t r, uint8_t g, uint8_t b) {
uint32_t result = 0; #if TARGET_RT_BIG_ENDIAN
uint8_t *const result_ptr = reinterpret_cast<uint8_t *>(&result); return uint32_t((r << 24) | (g << 16) | (b << 8));
result_ptr[0] = r; #else
result_ptr[1] = g; return uint32_t((b << 16) | (g << 8) | r);
result_ptr[2] = b; #endif
result_ptr[3] = 0;
return result;
} }
// The default TMS palette. // The default TMS palette.
const uint32_t palette[16] = { static constexpr std::array<uint32_t, 16> palette {
palette_pack(0, 0, 0), palette_pack(0, 0, 0),
palette_pack(0, 0, 0), palette_pack(0, 0, 0),
palette_pack(33, 200, 66), palette_pack(33, 200, 66),
@@ -159,8 +159,6 @@ template <Personality personality> struct Base {
palette_pack(255, 255, 255) palette_pack(255, 255, 255)
}; };
Base();
Outputs::CRT::CRT crt_; Outputs::CRT::CRT crt_;
TVStandard tv_standard_ = TVStandard::NTSC; TVStandard tv_standard_ = TVStandard::NTSC;