diff options
author | Joel Bodenmann <joel@embedded.pro> | 2016-07-19 01:24:05 +0200 |
---|---|---|
committer | Joel Bodenmann <joel@embedded.pro> | 2016-07-19 01:24:05 +0200 |
commit | 038a1f3630a480cc9b2951e0af80b7a5dba58401 (patch) | |
tree | 611cd313e8d20132029b08d2e517033af23346a3 /drivers/gdisp/QImage/gdisp_lld_qimage.cpp | |
parent | 5ad68305a7c5929ca9e31ca7682fcce5dded769b (diff) | |
download | uGFX-038a1f3630a480cc9b2951e0af80b7a5dba58401.tar.gz uGFX-038a1f3630a480cc9b2951e0af80b7a5dba58401.tar.bz2 uGFX-038a1f3630a480cc9b2951e0af80b7a5dba58401.zip |
Adding QImage display driver
Diffstat (limited to 'drivers/gdisp/QImage/gdisp_lld_qimage.cpp')
-rw-r--r-- | drivers/gdisp/QImage/gdisp_lld_qimage.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/drivers/gdisp/QImage/gdisp_lld_qimage.cpp b/drivers/gdisp/QImage/gdisp_lld_qimage.cpp new file mode 100644 index 00000000..a133dfb4 --- /dev/null +++ b/drivers/gdisp/QImage/gdisp_lld_qimage.cpp @@ -0,0 +1,38 @@ +#include <QImage> +#include "../../../gfx.h" +#include "../../../src/gdisp/gdisp_driver.h" +#include "gdisp_lld_qimage.h" + +bool_t qimage_init(GDisplay* g, coord_t width, coord_t height) +{ + QImage* qimage = new QImage(width, height, QImage::Format_RGB888); + if (!qimage) { + return FALSE; + } + qimage->fill(Qt::gray); + + g->priv = qimage; + + return TRUE; +} + +void qimage_setPixel(GDisplay* g) +{ + QImage* qimage = static_cast<QImage*>(g->priv); + if (!qimage) { + return; + } + + QRgb rgbVal = qRgb(RED_OF(g->p.color), GREEN_OF(g->p.color), BLUE_OF(g->p.color)); + qimage->setPixel(g->p.x, g->p.y, rgbVal); +} + +color_t qimage_getPixel(GDisplay* g) +{ + const QImage* qimage = static_cast<const QImage*>(g->priv); + if (!qimage) { + return 0; + } + + return static_cast<color_t>(qimage->pixel(g->p.x, g->p.y)); +} |