PicoGraphics: Remove last vestiges of template approach.

driver/sh1107
Phil Howard 2022-06-09 13:45:52 +01:00
rodzic 1d32b967c2
commit a558d35cab
4 zmienionych plików z 11 dodań i 19 usunięć

Wyświetl plik

@ -166,7 +166,7 @@ namespace pimoroni {
// Native 16-bit framebuffer update
void ST7735::update(PicoGraphics *graphics) {
if(graphics->pen_type == PicoGraphics::PEN_RGB565) {
command(reg::RAMWR, width * height * sizeof(uint16_t), (const char*)graphics->get_data());
command(reg::RAMWR, width * height * sizeof(uint16_t), (const char*)graphics->frame_buffer);
} else {
command(reg::RAMWR);
gpio_put(dc, 1); // data mode
@ -174,7 +174,7 @@ namespace pimoroni {
uint16_t row_buf[width];
for(auto y = 0u; y < height; y++) {
graphics->get_data(y, &row_buf);
graphics->get_row_rgb565(&row_buf, width * y, width);
// TODO: Add DMA->SPI / PIO while we prep the next row
spi_write_blocking(spi, (const uint8_t*)row_buf, width * sizeof(uint16_t));
}

Wyświetl plik

@ -248,7 +248,7 @@ namespace pimoroni {
uint8_t cmd = reg::RAMWR;
if(graphics->pen_type == PicoGraphics::PEN_RGB565) { // Display buffer is screen native
command(cmd, width * height * sizeof(uint16_t), (const char*)graphics->get_data());
command(cmd, width * height * sizeof(uint16_t), (const char*)graphics->frame_buffer);
} else if(spi) { // SPI Bus
gpio_put(dc, 0); // command mode
gpio_put(cs, 0);
@ -257,7 +257,7 @@ namespace pimoroni {
uint16_t row_buf[width];
for(auto y = 0u; y < height; y++) {
graphics->get_data(y, &row_buf);
graphics->get_row_rgb565(&row_buf, width * y, width);
// TODO: Add DMA->SPI / PIO while we prep the next row
spi_write_blocking(spi, (const uint8_t*)row_buf, width * sizeof(uint16_t));
}
@ -271,7 +271,7 @@ namespace pimoroni {
uint16_t row_buf[width];
for(auto y = 0u; y < height; y++) {
graphics->get_data(y, &row_buf);
graphics->get_row_rgb565(&row_buf, width * y, width);
// TODO: Add DMA->SPI / PIO while we prep the next row
write_blocking_parallel((const uint8_t*)row_buf, width * sizeof(uint16_t));
}

Wyświetl plik

@ -8,7 +8,7 @@ namespace pimoroni {
int PicoGraphics::reset_pen(uint8_t i) {return -1;};
int PicoGraphics::create_pen(uint8_t r, uint8_t g, uint8_t b) {return -1;};
void PicoGraphics::set_pixel(const Point &p) {};
void PicoGraphics::palette_lookup(void *frame_buffer, void *result, uint offset, uint length) {};
void PicoGraphics::get_row_rgb565(void *result, uint offset, uint length) {};
void PicoGraphics::set_dimensions(int width, int height) {
bounds = clip = {0, 0, width, height};
@ -18,14 +18,6 @@ namespace pimoroni {
this->frame_buffer = frame_buffer;
}
void *PicoGraphics::get_data() {
return frame_buffer;
}
void PicoGraphics::get_data(uint y, void *row_buf) {
palette_lookup(frame_buffer, row_buf, y * bounds.w, bounds.w);
}
void PicoGraphics::set_font(const bitmap::font_t *font){
this->bitmap_font = font;
this->hershey_font = nullptr;

Wyświetl plik

@ -109,7 +109,7 @@ namespace pimoroni {
virtual int reset_pen(uint8_t i);
virtual int create_pen(uint8_t r, uint8_t g, uint8_t b);
virtual void set_pixel(const Point &p);
virtual void palette_lookup(void *frame_buffer, void *result, uint offset, uint length);
virtual void get_row_rgb565(void *result, uint offset, uint length);
void set_font(const bitmap::font_t *font);
void set_font(const hershey::font_t *font);
@ -119,7 +119,7 @@ namespace pimoroni {
void set_framebuffer(void *frame_buffer);
void *get_data();
void get_data(uint y, void *row_buf);
void get_data(PenType type, uint y, void *row_buf);
void set_clip(const Rect &r);
void remove_clip();
@ -192,7 +192,7 @@ namespace pimoroni {
*f &= m; // clear bits
*f |= b; // set value
}
void palette_lookup(void *frame_buffer, void *result, uint offset, uint length) override {
void get_row_rgb565(void *result, uint offset, uint length) override {
uint8_t *src = (uint8_t *)frame_buffer;
uint16_t *dst = (uint16_t *)result;
for(auto x = 0u; x < length; x++) {
@ -255,7 +255,7 @@ namespace pimoroni {
uint8_t *buf = (uint8_t *)frame_buffer;
buf[p.y * bounds.w + p.x] = color;
}
void palette_lookup(void *frame_buffer, void *result, uint offset, uint length) override {
void get_row_rgb565(void *result, uint offset, uint length) override {
uint8_t *src = (uint8_t *)frame_buffer;
uint16_t *dst = (uint16_t *)result;
for(auto x = 0u; x < length; x++) {
@ -295,7 +295,7 @@ namespace pimoroni {
uint8_t *buf = (uint8_t *)frame_buffer;
buf[p.y * bounds.w + p.x] = color;
}
void palette_lookup(void *frame_buffer, void *result, uint offset, uint length) override {
void get_row_rgb565(void *result, uint offset, uint length) override {
uint8_t *src = (uint8_t *)frame_buffer;
uint16_t *dst = (uint16_t *)result;
for(auto x = 0u; x < length; x++) {