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:
@@ -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;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user