Create pattern

This commit is contained in:
Jaby 2022-09-11 13:40:20 +02:00
parent 2024024bf1
commit 3adf7c54a3
2 changed files with 26 additions and 10 deletions

View File

@ -38,7 +38,7 @@ namespace GPU {
}
};
class Color16 {
class Color {
private:
static constexpr auto RedRange = BitRange<uint16_t>::from_to(0, 4);
static constexpr auto BlueRange = BitRange<uint16_t>::from_to(5, 9);
@ -48,26 +48,27 @@ namespace GPU {
ComplexBitMap<uint16_t> value = {0};
public:
constexpr Color16() = default;
constexpr Color16(uint8_t r, uint8_t g, uint8_t b) {
Color16::set_red(r);
Color16::set_green(g);
Color16::set_blue(b);
static constexpr Color from_rgb(uint8_t r, uint8_t g, uint8_t b) {
return Color().set_red(r).set_green(g).set_blue(b);
}
constexpr Color16(const Color24& color) : Color16(color.red, color.green, color.blue) {
static constexpr Color from(const Color24& color) {
return Color::from_rgb(color.red, color.green, color.blue);
}
constexpr void set_red(uint8_t red) {
constexpr Color& set_red(uint8_t red) {
this->value.set_value(static_cast<uint16_t>(red), RedRange);
return *this;
}
constexpr void set_green(uint8_t green) {
constexpr Color& set_green(uint8_t green) {
this->value.set_value(static_cast<uint16_t>(green), GreenRange);
return *this;
}
constexpr void set_blue(uint8_t blue) {
constexpr Color& set_blue(uint8_t blue) {
this->value.set_value(static_cast<uint16_t>(blue), BlueRange);
return *this;
}
};

View File

@ -2,6 +2,21 @@
#include <PSX/GPU/GPU.h>
namespace GPU {
static const Color TestSequence[] = {
Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()),
Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()),
Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()),
Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()),
Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()),
Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()),
Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()),
Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()),
Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()),
Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()),
Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()),
Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()), Color::from(Color24::Blue()), Color::from(Color24::Red()), Color::from(Color24::Green()),
};
void display_logo() {
Display::disable();
quick_fill_fast(Color24(0x0, 0x80, 0x80), PositionU16(0, 0), SizeU16(640, 480));