diff --git a/include/gint/drivers/r61523.h b/include/gint/drivers/r61523.h index 70d9fa1..372cb9f 100644 --- a/include/gint/drivers/r61523.h +++ b/include/gint/drivers/r61523.h @@ -23,6 +23,9 @@ void r61523_display_rect( /* r61523_win_set(): Set the display window */ void r61523_win_set(int x1, int x2, int y1, int y2); +/* r61523_set_pixel(): Write a pixel directly to DD (slow) */ +void r61523_set_pixel(int x, int y, int color); + #ifdef __cplusplus } #endif diff --git a/src/r61523/r61523.c b/src/r61523/r61523.c index 827e63c..92cfa7e 100644 --- a/src/r61523/r61523.c +++ b/src/r61523/r61523.c @@ -172,6 +172,18 @@ void r61523_display_rect( } } +void r61523_set_pixel(int x, int y, int color) +{ + if((unsigned)x >= 320 || (unsigned)y >= 528) + return; + + // dma_transfer_wait(0); + r61523_win_set(x, x, y, y); + select(44); + uint16_t volatile *DISPLAY = (void *)0xb4000000; + *DISPLAY = color; +} + static bool r61523_update(int x, int y, image_t const *fb, int flags) { if(fb->format != IMAGE_RGB565)