diff options
Diffstat (limited to 'drivers/gdisp/QImage/gdisp_lld_driver.c')
-rw-r--r-- | drivers/gdisp/QImage/gdisp_lld_driver.c | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/drivers/gdisp/QImage/gdisp_lld_driver.c b/drivers/gdisp/QImage/gdisp_lld_driver.c new file mode 100644 index 00000000..dbd7c279 --- /dev/null +++ b/drivers/gdisp/QImage/gdisp_lld_driver.c @@ -0,0 +1,64 @@ +/*b + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#include "../../../gfx.h" + +#if GFX_USE_GDISP + +#define GDISP_DRIVER_VMT GDISPVMT_QImage +#include "gdisp_lld_config.h" +#include "../../../src/gdisp/gdisp_driver.h" +#include "gdisp_lld_qimage.h" + +#ifndef GDISP_SCREEN_HEIGHT + #define GDISP_SCREEN_HEIGHT 512 +#endif +#ifndef GDISP_SCREEN_WIDTH + #define GDISP_SCREEN_WIDTH 512 +#endif +#ifndef GDISP_INITIAL_CONTRAST + #define GDISP_INITIAL_CONTRAST 50 +#endif +#ifndef GDISP_INITIAL_BACKLIGHT + #define GDISP_INITIAL_BACKLIGHT 100 +#endif + +LLDSPEC bool_t gdisp_lld_init(GDisplay *g) +{ + /* No board interface and no private driver area */ + g->priv = g->board = 0; + + if (!qimage_init(g, GDISP_SCREEN_WIDTH, GDISP_SCREEN_HEIGHT)) { + return FALSE; + } + + /* Initialise the GDISP structure */ + g->g.Width = GDISP_SCREEN_WIDTH; + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Orientation = GDISP_ROTATE_0; + g->g.Powermode = powerOn; + g->g.Backlight = GDISP_INITIAL_BACKLIGHT; + g->g.Contrast = GDISP_INITIAL_CONTRAST; + + return TRUE; +} + +#if GDISP_HARDWARE_DRAWPIXEL + void gdisp_lld_draw_pixel(GDisplay *g) + { + qimage_setPixel(g); + } +#endif + +#if GDISP_HARDWARE_PIXELREAD + color_t gdisp_lld_get_pixel_color(GDisplay *g) + { + return qimage_getPixel(g); + } +#endif + +#endif /* GFX_USE_GDISP */ |