aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Hannam <andrewh@inmarket.com.au>2012-11-11 05:50:38 -0800
committerAndrew Hannam <andrewh@inmarket.com.au>2012-11-11 05:50:38 -0800
commit33d7fe68b9cc5b509d468ecf21407482c0f0d257 (patch)
tree35ef68a073220e78e8d5a678255baa9e4cea1874
parent8b51bcf46f97d7cd752f3b3d9b52b9f39051f60f (diff)
parente8020a88c96c1781c60c5506bb820f35d7aba6ec (diff)
downloaduGFX-33d7fe68b9cc5b509d468ecf21407482c0f0d257.tar.gz
uGFX-33d7fe68b9cc5b509d468ecf21407482c0f0d257.tar.bz2
uGFX-33d7fe68b9cc5b509d468ecf21407482c0f0d257.zip
Merge pull request #3 from Tectu/master
Merge Tectu Changes
-rw-r--r--demos/mandelbrot/main.c1
-rw-r--r--docs/src/console.dox28
-rw-r--r--include/gdisp.h1
-rw-r--r--old/console.c216
-rw-r--r--old/console.h93
-rw-r--r--src/touchscreen.c6
6 files changed, 5 insertions, 340 deletions
diff --git a/demos/mandelbrot/main.c b/demos/mandelbrot/main.c
index 92f4aaa2..0c8dc47d 100644
--- a/demos/mandelbrot/main.c
+++ b/demos/mandelbrot/main.c
@@ -43,6 +43,7 @@ void mandelbrot(float x1, float y1, float x2, float y2) {
x = xx - yy + cx;
}
color = ((iter << 8) | (iter&0xFF));
+ //color = RGB565CONVERT(iter*4, iter*13, iter*10);
gdispDrawPixel(i, j, color);
}
}
diff --git a/docs/src/console.dox b/docs/src/console.dox
deleted file mode 100644
index b0721e8a..00000000
--- a/docs/src/console.dox
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- ChibiOS/GFX is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-/**
- * @addtogroup CONSOLE
- * @details The CONSOLE module provides a BaseSequentialStream abstraction.
- * It allows to easily use an LCD to output any generic data, for
- * example by using the chprintf() provided by ChibiOS/RT.
- * @details Read more here: http://chibios-gfx.com/documentation/console
- */
-
diff --git a/include/gdisp.h b/include/gdisp.h
index 9be97a12..db865284 100644
--- a/include/gdisp.h
+++ b/include/gdisp.h
@@ -293,6 +293,7 @@ void gdispDrawBox(coord_t x, coord_t y, coord_t cx, coord_t cy, color_t color);
/* Now obsolete functions */
#define gdispBlitArea(x, y, cx, cy, buffer) gdispBlitAreaEx(x, y, cx, cy, 0, 0, cx, buffer)
+#define RGB565CONVERT(r,g,b) RGB2COLOR(r,g,b)
/* Macro definitions for common gets and sets */
#define gdispSetPowerMode(powerMode) gdispControl(GDISP_CONTROL_POWER, (void *)(unsigned)(powerMode))
diff --git a/old/console.c b/old/console.c
deleted file mode 100644
index 55549fd1..00000000
--- a/old/console.c
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- ChibiOS/GFX is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-/**
- * @file src/console.c
- * @brief CONSOLE code.
- *
- * @addtogroup CONSOLE
- * @{
- */
-
-#include "ch.h"
-#include "hal.h"
-#include "console.h"
-
-#if GFX_USE_CONSOLE || defined(__DOXYGEN__)
-
-/*
- * Interface implementation. The interface is write only
- */
-static size_t write(void *ip, const uint8_t *bp, size_t n) {
- return gfxConsoleWrite((GConsole *)ip, bp, n);
-}
-
-static size_t read(void *ip, uint8_t *bp, size_t n) {
- (void)ip;
- (void)bp;
- (void)n;
-
- return 0;
-}
-
-static msg_t put(void *ip, uint8_t b) {
- (void)ip;
-
- return gfxConsolePut((GConsole *)ip, (char)b);
-}
-
-static msg_t get(void *ip) {
- (void)ip;
-
- return RDY_OK;
-}
-
-static msg_t putt(void *ip, uint8_t b, systime_t timeout) {
- (void)timeout;
-
- /* TODO: handle timeout */
-
- return gfxConsolePut((GConsole *)ip, (char)b);
-}
-
-static msg_t gett(void *ip, systime_t timeout) {
- (void)ip;
- (void)timeout;
-
- return RDY_OK;
-}
-
-static size_t writet(void *ip, const uint8_t *bp, size_t n, systime_t time) {
- (void)time;
-
- return gfxConsoleWrite((GConsole *)ip, bp, n);
-}
-
-static size_t readt(void *ip, uint8_t *bp, size_t n, systime_t time) {
- (void)ip;
- (void)bp;
- (void)n;
- (void)time;
-
- return 0;
-}
-
-static const struct GConsoleVMT vmt = {
- write, read, put, get,
- putt, gett, writet, readt
-};
-
-/**
- * @brief Initializes a console.
- *
- * @param[in] console The console driver struct
- * @param[in] x0,y0 The location of the upper left corner of the resulting window
- * @param[in] width, height The width and height of the window
- * @param[in] font The font to be used when printing to the console
- * @param[in] bkcolor The background color
- * @param[in] color The foreground / font color
- *
- * @return RDY_OK if done
- */
-msg_t gfxConsoleInit(GConsole *console, coord_t x0, coord_t y0, coord_t width, coord_t height, font_t font, pixel_t bkcolor, pixel_t color) {
- console->vmt = &vmt;
- /* read font, get height & padding */
- console->fy = gdispGetFontMetric(font, fontHeight);
- console->fp = gdispGetFontMetric(font, fontCharPadding);
-
- /* calculate the size of the console as an integer multiple of characters height*/
- console->sx = width;
- console->sy = (((int16_t)(height/console->fy))-1)*console->fy;
-
- console->cx = 0;
- console->cy = 0;
- console->x0 = x0;
- console->y0 = y0;
-
- console->bkcolor = bkcolor;
- console->color = color;
-
- console->font = font;
-
- gdispFillArea(x0, y0, x0 + width, y0 + height, console->bkcolor);
- return RDY_OK;
-}
-
-/**
- * @brief Write a single character to the console.
- *
- * @param[in] console The console driver struct
- * @param[in] c The char to be written
- *
- * @return RDY_OK if done
- */
-msg_t gfxConsolePut(GConsole *console, char c) {
- uint8_t width;
-
- if(c == '\n') {
- /* clear the text at the end of the line */
- if(console->cx < console->sx)
- gdispFillArea(console->x0 + console->cx, console->y0 + console->cy,
- console->sx - console->cx, console->fy,
- console->bkcolor);
- console->cx = 0;
- console->cy += console->fy;
- } else if(c == '\r') {
- /* TODO: work backwards through the buffer to the start of the current line */
- //console->cx = 0;
- } else {
- width = gdispGetCharWidth(c, console->font) + console->fp;
- if((console->cx + width) >= console->sx) {
- /* clear the text at the end of the line */
- if (console->cy <= console->sy)
- gdispFillArea(console->x0 + console->cx, console->y0 + console->cy,
- console->sx - (console->cx + width), console->fy,
- console->bkcolor);
- console->cx = 0;
- console->cy += console->fy;
- }
-
- if((console->cy > console->sy)) {
-#if GDISP_NEED_SCROLL
- /* scroll the console */
- gdispVerticalScroll(console->x0, console->y0, console->sx,
- console->sy + console->fy, console->fy, console->bkcolor);
- /* reset the cursor to the start of the line */
- console->cx = 0;
- console->cy = console->sy;
-#else
- /* clear the console */
- gdispFillArea(console->x0, console->y0,
- console->sx, console->sy + console->fy,
- console->bkcolor);
- /* reset the cursor to the top of the console */
- console->cx = 0;
- console->cy = 0;
-#endif
- }
-
- gdispDrawChar(console->x0 + console->cx, console->y0 + console->cy, c,
- console->font, console->color);
-
- /* update cursor */
- console->cx += width;
- }
- return RDY_OK;
-}
-
-/**
- * @brief Write a string to the console.
- *
- * @param[in] console The console driver struct
- * @param[in] bp The buffer / string
- * @param[in] n The size of the buffer
- *
- * @return RDY_OK if done
- *
- * @api
- */
-msg_t gfxConsoleWrite(GConsole *console, const uint8_t *bp, size_t n) {
- size_t i;
- for(i = 0; i < n; i++)
- gfxConsolePut(console, bp[i]);
-
- return RDY_OK;
-}
-
-#endif /* GFX_USE_CONSOLE */
-/** @} */
-
diff --git a/old/console.h b/old/console.h
deleted file mode 100644
index 224de096..00000000
--- a/old/console.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- ChibiOS/GFX is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-/**
- * @file include/console.h
- * @brief CONSOLE header file.
- *
- * @addtogroup CONSOLE
- * @{
- */
-
-#ifndef CONSOLE_H
-#define CONSOLE_H
-
-#ifndef GFX_USE_CONSOLE
- #define GFX_USE_CONSOLE FALSE
-#endif
-
-#if GFX_USE_CONSOLE
-
-#include "gdisp.h"
-
- /**
- * @extends BaseAsynchronousChannelVMT
- *
- * @brief @p GConsole virtual methods table.
- */
-struct GConsoleVMT {
- _base_asynchronous_channel_methods
-};
-
-/**
- * @extends BaseAsynchronousChannel
- *
- * @brief GConsole class.
- * @details This class extends @p BaseAsynchronousChannel by adding physical
- * I/O queues.
- */
-typedef struct _GConsole {
- /** @brief Virtual Methods Table.*/
- const struct GConsoleVMT *vmt;
- _base_asynchronous_channel_data
- /* WARNING: Do not add any data to this struct above this comment, only below */
- /* font */
- font_t font;
- /* lcd area to use */
- coord_t x0,y0;
- /* current cursor position, in pixels */
- coord_t cx,cy;
- /* console size in pixels */
- coord_t sx,sy;
- /* foreground and background colour */
- color_t bkcolor, color;
- /* font size in pixels */
- uint8_t fy;
- /* font inter-character padding in pixels */
- uint8_t fp;
-} GConsole;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-msg_t gfxConsoleInit(GConsole *console, coord_t x0, coord_t y0, coord_t width, coord_t height, font_t font, pixel_t bkcolor, pixel_t color);
-msg_t gfxConsolePut(GConsole *console, char c);
-msg_t gfxConsoleWrite(GConsole *console, const uint8_t *bp, size_t n);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GFX_USE_CONSOLE */
-
-#endif /* CONSOLE_H */
-/** @} */
-
diff --git a/src/touchscreen.c b/src/touchscreen.c
index fe51db5c..14eba4c5 100644
--- a/src/touchscreen.c
+++ b/src/touchscreen.c
@@ -200,9 +200,9 @@ coord_t tsReadX(void) {
case GDISP_ROTATE_90:
return y;
case GDISP_ROTATE_180:
- return GDISP_SCREEN_WIDTH - x - 1;
+ return gdispGetWidth() - x - 1;
case GDISP_ROTATE_270:
- return GDISP_SCREEN_HEIGHT - y - 1;
+ return gdispGetWidth() - y - 1;
}
return 0;
@@ -232,7 +232,7 @@ coord_t tsReadY(void) {
case GDISP_ROTATE_0:
return y;
case GDISP_ROTATE_90:
- return gdispGetWidth() - x - 1;
+ return gdispGetHeight() - x - 1;
case GDISP_ROTATE_180:
return gdispGetHeight() - y - 1;
case GDISP_ROTATE_270: