diff options
author | inmarket <andrewh@inmarket.com.au> | 2015-02-07 00:07:49 +1000 |
---|---|---|
committer | inmarket <andrewh@inmarket.com.au> | 2015-02-07 00:07:49 +1000 |
commit | f8c06e70a78914ac2e42b565050f5443bcecbb6f (patch) | |
tree | 754afb55a58b4dc8ca0e04dce3a00a72fd01ab4d /drivers/gdisp/PCD8544 | |
parent | 795b8a5e7dd88d920fd778cd03ad9c7b7825247e (diff) | |
download | uGFX-f8c06e70a78914ac2e42b565050f5443bcecbb6f.tar.gz uGFX-f8c06e70a78914ac2e42b565050f5443bcecbb6f.tar.bz2 uGFX-f8c06e70a78914ac2e42b565050f5443bcecbb6f.zip |
Fixes to all monochrome drivers
TLS8204 driver is now operational
Diffstat (limited to 'drivers/gdisp/PCD8544')
-rw-r--r-- | drivers/gdisp/PCD8544/gdisp_lld_PCD8544.c | 29 | ||||
-rw-r--r-- | drivers/gdisp/PCD8544/gdisp_lld_config.h | 1 |
2 files changed, 30 insertions, 0 deletions
diff --git a/drivers/gdisp/PCD8544/gdisp_lld_PCD8544.c b/drivers/gdisp/PCD8544/gdisp_lld_PCD8544.c index 67584576..ddc67be0 100644 --- a/drivers/gdisp/PCD8544/gdisp_lld_PCD8544.c +++ b/drivers/gdisp/PCD8544/gdisp_lld_PCD8544.c @@ -110,6 +110,8 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { write_data(g, RAM(g), GDISP_SCREEN_BYTES); release_bus(g); + + g->flags &= ~GDISP_FLG_NEEDFLUSH; } #endif @@ -152,6 +154,33 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { } #endif +#if GDISP_HARDWARE_PIXELREAD + LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_90: + x = g->p.y; + y = GDISP_SCREEN_HEIGHT-1 - g->p.x; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = GDISP_SCREEN_HEIGHT-1 - g->p.y; + break; + case GDISP_ROTATE_270: + x = GDISP_SCREEN_WIDTH-1 - g->p.y; + y = g->p.x; + break; + } + return (RAM(g)[xyaddr(x, y)] & xybit(y)) ? White : Black; + } +#endif + #if GDISP_NEED_CONTROL LLDSPEC void gdisp_lld_control(GDisplay *g) { switch(g->p.x) { diff --git a/drivers/gdisp/PCD8544/gdisp_lld_config.h b/drivers/gdisp/PCD8544/gdisp_lld_config.h index 6ad8a571..253b2aaf 100644 --- a/drivers/gdisp/PCD8544/gdisp_lld_config.h +++ b/drivers/gdisp/PCD8544/gdisp_lld_config.h @@ -16,6 +16,7 @@ #define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing #define GDISP_HARDWARE_DRAWPIXEL TRUE +#define GDISP_HARDWARE_PIXELREAD TRUE #define GDISP_HARDWARE_CONTROL TRUE // Set this to your frame buffer pixel format. |